OpenCV・pythonで、顔認識をやってみよう

>>> 本サイトのTOPはこちら。

こんにちは。株式会社マックスネット 人工知能・AI開発チームのIsoです。
今回はディープラーニングを小休止して、Opencvを使っての顔認識をやってみよう。

**********

顔認識というのは、ある画像の顔の部分を検出して矩形で囲む技術のことだ。

まずは顔画像を用意しよう。

こちらの画像を使って、顔認識できるのかを検証してみよう。

pythonのコードなどは、以下の記事を参照した。
Python, OpenCVで顔検出と瞳検出(顔認識、瞳認識)

上記サイトに記載のコードを適当な名前で保存(ここではtest01.py)して、実行してみる。
成功したら、保存した画像を表示してみよう。

とまあ、Opencvを使うと、いとも簡単に顔認識できるのかがわかる。
(ちなみに緑色の矩形は瞳認識だ。それと、右奥のライトを誤認識している)

で、ここで終わるには何ともつまらないので、いろんな画像を入れてみて、顔として認識できるのかを検証してみよう。

まず、アライグマ写真はどうだ。

…こちらは認識できずだった。そうですか。動物は苦手なんですね。

では、同じ霊長類だったら。
こちらのゴリラ画像はどうだ。

顔ではなく、鼻を顔として認識したようだ。言われてみれば、鼻の穴が目に見えなくもない。

お次に、たくさんの人物画像はどうだ。

顔は認識できたり、できなかったり。
瞳はほとんど認識できずだ。

ここで、真ん中行のメガネの男性は顔も認識できていない。
てことは、メガネ系は弱いのだろうか。

では、こちらの解像度バッチリのメガネ男性を認識チェックしてみる。

お見事に認識できている。但し、瞳認識はできていない。

結論を出すにはサンプル数が少な過ぎるが、ここまでの感想としては、解像度がそこそこあり、正面系の顔画像なら、結構な確率で顔認識はできるようだ。
しかし、瞳認識については、正面系でなるべくメガネ無し、でないときついのでは、といった感じだ。

いずれにせよ、結構楽しいOpencvでの顔認識だった。
時間があれば、下記も検証してみたい。

・イラスト画像は?
・人間顔に似た霊長類を探してチェック?
・変顔はどうなのか?
などなど。

皆さんもぜひ実験してみては。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です