OpenCV 4.1でアニメ顔の検出(lbpcascade_animeface.xml)

以前から気になっていたアニメ顔の検出フィルタlbpcascade_animeface.xml
OpenCVによるアニメ顔検出ならlbpcascade_animeface.xml
https://github.com/nagadomi/lbpcascade_animeface

OpenCV 4をインストールしたので、動作を確認してみます。
Ubuntu 18.04 ServerにOpenCV 4.1.0をソースからインストール(install-opencv.sh使用)



サンプル画像



例に習い、こちらをサンプル画像としました。

976_01.png


カスケードファイルの取得とサンプル



公開されているカスケードファイルを取得。

$ wget --no-check-certificate https://raw.githubusercontent.com/nagadomi/lbpcascade_animeface/master/lbpcascade_animeface.xml



サンプルプログラムはこのようになりました。


  1. import cv2
  2. # ダウンロードしたファイルを指定
  3. cascade = cv2.CascadeClassifier('lbpcascade_animeface.xml')
  4. # 検出する画像ファイル読み込み
  5. image = cv2.imread('idol_master.png', cv2.IMREAD_COLOR)
  6. gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  7. gray = cv2.equalizeHist(gray)
  8. # 検出実行
  9. faces = cascade.detectMultiScale(gray,
  10.                                     # detector options
  11.                                     scaleFactor = 1.1,
  12.                                     minNeighbors = 5,
  13.                                     minSize = (24, 24))
  14. # 検出結果を描画
  15. for (x, y, w, h) in faces:
  16.     cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
  17. # 結果を出力
  18. cv2.imwrite('result.png', image)




実行すると、1人検出できませんでしたが概ね良好な結果です。

976_02.png


別の画像でも試してみます。

976_03.png

結果は良好です。

976_04.png

関連記事

コメント

非公開コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ