Python+OpenCVでCascade識別器(分類器)を実装し、画像からアニメ顔を検出する方法をソースコード付きで解説します。
LBP Cascade
OpenCVでは、cv2.CascadeClassifierとdetectMultiScaleメソッドでカスケード型識別器を実装できます。
書式
cascade = cv2.CascadeClassifier(path) face = cascade.detectMultiScale(src, scaleFactor, minNeighbors, minSize)
パラメータ名 | 説明 |
---|---|
path | 使用するカスケード識別器のファイルパス |
src | 入力画像 |
scaleFactor | 画像スケールにおける縮小量 |
minNeighbors | 矩形を要素とするベクトル |
minSize | 探索窓の最小サイズ(これより小さい対象は無視) |
face | 探索結果(見つかった場所の左上座標・幅・高さを格納したリスト) |
今回はアニメの顔を検出するために有志がGithubで公開してくださっている「lbpcascade_animeface.xml」を使います。
このカスケード型識別器は下記URL先から入手できます。
https://github.com/nagadomi/lbpcascade_animeface
ソースコード(Python3 + OpenCV3)
サンプルプログラムのソースコードです。
実行結果
サンプルプログラムの実行結果です。
お借りした画像:プロ生ちゃん(暮井 慧)
【Python版OpenCV超入門】使い方とサンプルコードを解説
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。
コメント