筑波大学情報学群の実験講座「組み込み技術キャンパスOJT」(以下、COJT)における最後のカリキュラム「自由課題」で、私たち尾前と西口は、「顔検出」をテーマに据えて各自の作品を設計しました(自由課題については前回の記事を参照)。1年間の総まとめである自由課題で、私たちがこれまでの学びをどう生かし、設計を進めていったのかについて2回に分けてお伝えします。今回は、尾前の作品について説明します。

画像中の一部領域に注目

 尾前は、顔検出の回路を作りました。まず、言葉で説明するよりも先に、実際に動いている様子を見ていただきたいと思います。

顔検出システム

 さて、ではこのシステムについて説明します。

 このシステムでは、画像中の一部領域に注目して、その領域に顔が含まれるかどうかを判定することで、顔を検出します。検出の流れと画像中の走査の様子を以下に示しました。

検出の流れ
[画像のクリックで拡大表示]
画像の走査
[画像のクリックで拡大表示]

 この注目する一部領域を「検出窓」と呼びます。検出窓内に顔があるかどうかは、この後で説明する「識別器」によって判定します。判定が終了したら検出窓を移動させ、画像全体を走査していきます。

 上の図では、顔全体が検出窓の中に収まる大きさだったため、問題はありませんでした。しかし、顔全体が検出窓よりも大きかった場合はうまく識別できません。この問題に対応するために、最初の走査で顔全体を識別できなかったら画像を縮小し、縮小後の画像を再度走査します。