使用OpenCVのは、xmlファイルが付属して、カメラがリアルタイムで顔を検出することができます
機能のようなHaar-like、LBPの特徴は共通の特徴があり、様々な地域情報を記述
ハールは、ローカルスケールシェーディング画素値変換情報に画像を記述する
LBPは、ローカルエリアに対応するテクスチャ情報に記載されています
ハールLBPを異なる:
①HAAR前記浮動小数点演算、LBP前記整数演算;
、訓練された②HAARより大きいLBP必要なサンプルの数
、典型的には高速LBP HAARの速度よりも③、
④同じ試料検出結果ハールに訓練しましたLBPより正確;
⑤サンプルを拡張データLBPは、トレーニング効果HAARを達成することができます
pythonを達成するための静止画における顔検出
DEF face_detect_demo(イメージ): グレー = cv2.cvtColor(イメージ、cv2.COLOR_BGR2GRAY) face_detector = cv2.CascadeClassifier(" データ/ haarcascade_frontalface_default.xml ") #は、顔検出オブジェクトの作成 、1.02、= face_detector.detectMultiScale(灰色対向 5 ) #の顔検出 「」 " 対向= face_detector.detectMultiScale(IMG、scaleFactorで、minNeighbors) パラメータ:IMG:識別された原 scaleFactorを:画像の反復圧縮率 minNeighbors:各顔矩形ネイバーの最小数が予約 返します実測値:矩形のそれぞれの内側にあるリスト、(X、Y、W、H ) 人間の顔がフレーム "" " のための X、Y、W、H で顔: cv2.rectangle(画像、(X、Y)、(X + W、Y + H)、(0、0、255)、2 ) cv2.imshow(" face_detect_demo "、画像)
結果
ビデオ実現Pythonで顔検出
DEF 検出(): #1 オブジェクト作成顔検出 face_cascade = cv2.CascadeClassifier(" ../data/haarcascade_frontalface_default.xml " ) #Qオブジェクトの目検出作成 eye_cascade = cv2.CascadeClassifier(" ../data/haarcascade_eyeを。 XML " ) #は、Q笑顔検出対象を作成 smile_cascade = cv2.CascadeClassifier(" ../data/haarcascade_smile.xml 」) #カメラ取り付けオブジェクト番号0は、カメラを示し カメラ= cv2.VideoCapture(0) 、一方:真 #1 リード現在のフレーム取る RET、フレーム= )(camera.readを #スイッチグレースケール画像 グレー= cv2.cvtColor(フレーム、cv2.COLOR_BGR2GRAY) #の顔検出(H、W、X、Yの各要素のリストを返す ) 矩形の左上隅と幅と高さを表し 顔= face_cascadeを。 detectMultiScale(グレー、1.3、5 ) #顔矩形描画 のための(X、Y、W、H)の中面: #は、矩形の色及び線幅の左右の角座標を渡し、フレーム画像の絵に四角形を描画 = cv2.rectangle IMG(フレーム、(X、Y)、(X + W、Y + H)、(255、0、0)、2 ) #1 面析出 roi_gray =グレー[Y:Y + 、HをX:X + W] #顔に(40、40)の目を検出する最小サイズを設定され、その後、小部分が検出されません 目= eye_cascade.detectMultiScale(roi_gray、1.03、5、0、(40、40 )) #把眼睛画出来 用(EX、EY、EW、EH)に目: cv2.rectangle(IMG、(X + EX、Y + EY)、(X + EX + EW、Y + EY + EH)、(0、255、0)、2 ) cv2.imshow(" カメラ" 、フレーム) 場合 cv2.waitKey(5)&0xffの== ORD (" Q " ): ブレイク camera.release() cv2.destroyAllWindows()