スポンサーリンク
スポンサーリンク

【OpenCV】笑顔シャッター機能を作る【Python】

OpenCVを使った機能として、顔認識や目の認識などがありますが、こういったものを応用して「笑顔シャッター機能」を作ってみたいと思います。

顔認識をする

まずは普通の「顔認識機能」を作っていきます。

これは「haarcascade(ハールカスケード)」という分類器を使って行います。

分類器は「xml」ファイルなのですが、分類器を持っていない場合は以下のリンクからダウンロードしてください。

opencv/opencv
Open Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub.

ダウンロードしたフォルダの「opencv/data/haarcascades」フォルダ内に分類器があります。

 

ではここからは分類器がある前提で話を進めていきます。

まずは「main.py」というファイルを作成し、以下のプログラムを作ります。

(main.py)

実際にこのコードを実行してみてください。

あなたの顔が認識されて、四角い枠で囲われているはずです。

笑顔を認識

次に「笑顔」を認識します。

笑顔を認識するための分類器は「haarcascade_smile.xml」というファイルを使って行いますが、ここで注意が必要になります。

この「haarcascade_smile.xml」はネストして使う必要があります。

つまり、顔認識をした後に笑顔認識する必要があるということです。

実はこの笑顔認識は、認識された顔の中の「笑顔の特徴となりうるパーツ」を認識するんです。

なので、顔認識を行わずに笑顔認識を行ってしまうと、誤検知だらけになってしまいます。

(main.py)

これで笑顔認識ができました。

あとは、「笑顔の特徴と思われるパーツ」の個数によって、笑顔かどうかを判定し、シャッターを切ります。

笑顔シャッターを切る

笑顔シャッターは先ほどのプログラムに条件分を付け加えるだけなので、簡単です。

(main.py)

今回は「笑顔パーツ」が3つ以上あれば笑顔シャッターを切ることにしました。

 

さて、これで笑顔シャッターが完成しました!

是非、ご自身の顔で試してみてはいかがでしょうか?

コメント