コード解析

ここでは実際に顔認識をどのように進めていったかを解説を交えながら紹介していきます!

上記の画像がコードの全体となります。まず最初の数行で、必要モジュールを呼ぶためのコードを書いています。
たいていのプログラムでは、このようにimportメソッドを用い、コードを用意します。
そして7行目以降は顔認識に使用する画像、そして画像ファイルを読み込むための必要パスを書いています。
まず、画像を読み込んだら顔認識を行えるように分類機を用意します。
これはOpenCVに入っている学習済みモデルのひとつです。

このようなコードを実行できれば、分類機の準備は完了です。簡単にそれぞれのコードで何を行っているかを解説します。
まず一行目では、学習済モデルのxmlファイルを指します。"frontalface"と書かれているように正面の顔検出を可能にする事が出来ます。
二行目では、先ほど説明した分類機の読み込みを行っています。

ここでは読み込んだ画像をグレースケールの状態に変換しています。
このグレースケールというのは聞き馴染みが無い単語かもしれませんがカラー写真を白と黒のグラデーションで表現することをいいます。
グレースケール化にはcvtColorという関数を使っています

この部分では、顔の検出を行っています。

ここではバウンディングボックスの作成を行っています。
バウンディングボックスというのは画像の中の物体を囲んだ部分領域の事を指しており、今回は画像の部分から顔の領域のみ切り出すために使用します。
原理の部分で詳しく紹介していますので、そちらもご覧ください。

最後にいよいよ顔認識の段階へと入ります。