OpenCV、機械学習、はやりのDeep learningの環境構築の方法、サンプルの動かし方、APIの使い方、Tipsなどをすぐに忘れてしまうので、備忘録として記録している。記憶がなくなるスピードが、早いのでメモしておかないと再現できなくなる確率が高まっている。 最近、再度HDDを飛ばしてしまい、過去の自分のページに再度助けられた。 また、DNNモジュールを触る機会が増えているので、C++からPyhonへと鞍替え中。 内容を気にいっていただければ、twitterで紹介願います。
2012年12月28日金曜日
Mastering OpenCVの第8章の顔認識のメモ step2 前半
Mastering OpenCV with Practical Computer Vision Projectの第8章の顔認識は、4つのStepで構成されている。
今回は、Step2の、顔認識の精度を高めるための前処理に関して
両目を検出する
・OpenCV 2.4の目の辞書は、目が開いていても閉じていても検出できる
・目を閉じている場合を検出するには、左右異なる辞書を使用する
haarcascade_mcs_lefteye、haarcascade_lefteye_2splits(右も同様)
・lefteyeが意味するのは、実際の体の左側を示している。カメライメージでは右側になる。
・検出精度は、下記の順番である。
(1) haarcascade_mcs_lefteye.xml
haarcascade_mcs_righteye.xml
(2) haarcascade_lefteye_2splits.xml
haarcascade_righteye_2splits.xml
(3) haarcascade_eye.xml
(4) haarcascade_eye_tree_eyeglasses.xml
・haarcascade_eye_tree_eyeglassesは、めがねをかけていても検出できるが、かけていないと検出できない
・目の検出には、目の近傍の画像を使用しなければいけない。顔全体で検出すると信頼性が下がる
・haarcascade_mcs_lefteye、haarcascade_lefteye_2splitsは、目の近傍の少し大きめの範囲に対応できる。一方、haarcascade_eyeは、目の近傍の狭い範囲しか対応できない
・近傍のエリア割合の表が、掲載されているが、LBPで検出された顔領域に対するものである。
・各辞書に対する検出率の表が掲載
両目を検出するため、検出率は2乗になる
・目の画像は小さくなるためなるべく大きな画像を使用したほうがよい
・最初にhaarcascade_mcs_lefteyeを試して、失敗したらhaarcascade_lefteye_2splitsを試すとよい
・顔認識の場合、目を閉じていると信頼性が下がるため、haarcascade_eyeを試し、失敗したらhaarcascade_eye_tree_eyeglassesを試すとよい
後半に続く
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿