この顔検出回路は、課題で制作した「キャプチャー回路」と「描画回路」を組み合わせた構成になっています。二つの回路については、これまでの記事で解説されたものとほとんど同じものを使用していますが、顔検出機能を実装するために、描画回路に新たなモジュールを追加しました。フレームを肌色および髪色で2値化するための「2値化モジュール」と、積分画像*1を生成する「積分モジュール」の二つです。
ここで、この回路の処理の流れを説明します。
(i)キャプチャー回路で映像を取り込む
(ii)取り込んだ映像を、RGB形式からHSV形式に変換する
(iii)変換した映像から、肌色と髪色で2値化したものをそれぞれ生成する
(iv)2値化したものから積分画像を生成する
(v)積分画像に対して走査を行い、顔の部分に白線を描画する
(i)については、キャプチャー回路の記事で解説しているので省略します。
(ii)では、取り込んだ映像はRGB形式になっていますが、RGB形式は色判定に不向きなので(光などで情報が変わってしまう)、HSV*2形式に変換します。