簡単にできるOpenCVを使った顔検出

簡単にできるOpenCVを使った顔検出

画像からの顔検出は意外と簡単

こんにちは。

AI coordinatorの清水秀樹です。

以前から画像に写っている顔の検出ができたら良いなぁって思っていましたが、そう簡単ではないイメージを持っていました。

ただ、最近になってちょっと調べてみたら、案外簡単にできそうだということが分かったので挑戦してみました。

そしてビックリするほどあっさりできたので、その内容を紹介します。

 

OpenCVを使えばあっさり画像からの顔検出ができますので、興味がある方はぜひやってみてください。

 

テスト環境

macOS Sierra

Anaconda3-4.2.0-MacOSX-x86_64

opencv3 3.1.0

 

顔検出に挑戦

それでは早速、画像からの顔検出に挑戦したいと思います。

今回使用する画像は以下の画像です。

簡単にできるOpenCVを使った顔検出 画像1

 

適当にネットから拝借してきた新垣結衣さんの画像を使ってみたいと思います。

ソースコードは本当に少なくてすみます。

OpenCVには初めから顔検出ができるカスケードファイルが準備されています。

顔検出をしたい場合は、「haarcascade_frontalface_alt.xml」を指定しください。(ソースコードの真ん中あたり)

顔と検出した部分を赤枠で囲み、ファイル出力するようにしています。

 

実行はjupyter notebookで実行して頂ければ、入力前の画像と出力画像をjupyter notebook上に表示できるようにしています。

 

それでは早速実行しみましょう。

実行すると以下のような結果が表示されます。

簡単にできるOpenCVを使った顔検出 画像2

 

しっかりと顔を検出できました。

画像が小さすぎる場合、上記ソースコードそのままでは検出しないことがあります。

その場合は、minSize(100,100)部分の数字を小さくしてください。

これは100ピクセル以下の画像は検出させないという指定になっています。

 

今度は別のカスケードファイルを使ってみましょう。

目を検出するカスケードファイルを使ってみると以下のような画像になりました。

簡単にできるOpenCVを使った顔検出 画像3

minSize = (10,10)で実行しています。

なんだが目以外の画像も目と検出しているようです。

この辺の精度はあまり高くなさそうですね。

 

いずれにせよ、OpenCVを使用すれば簡単に画像からの物体検出ができるようです。

この技術を使えば色々なことに使用できそうですね。

ぜひお試しあれ。

それではまた。

この記事の内容について、相談したい方へ

技術選定・実装の進め方・組織での導入など、AI/IoT全般のご相談を受け付けています。

無料相談会(30分・オンライン)

About The Author

Hideki
東京大学発AIスタートアップでロボット開発室室長・画像解析室室長・動画解析室室長を務め、画像認識関連のAI特許を在籍中に3件取得。その後、KDDIグループでプロダクトリーダーとして自然言語処理パッケージの自社開発を経て、現在はAGRIST株式会社の執行役員CTO 兼 VPoEとして、農業の人手不足解決に向けた収穫ロボットの開発組織を統括しています。AI・ハード・エレキ・通信・クラウド・IoTまでを一気通貫で設計できる視点を強みに、性能だけでなく「感動やワクワク体験」までデザインできるロボットの研究を進めています。並行して、AI coordinatorとして企業のAI導入・教育機関のAI授業・地域の技術相談を月額契約で継続伴走しています。

COMMENTS & TRACKBACKS

  • Comments ( 0 )
  • Trackbacks ( 2 )

コメントはまだありません。

  1. […] 前回の記事で、OpenCVを使った顔認識を紹介しました。 […]

  2. […] 「簡単にできるOpenCVを使った顔検出」の記事も合わせてご確認ください。 […]

LEAVE A REPLY

*
*
* (公開されません)