【Python版OpenCV】アニメ顔を検出

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で画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。

コメント