カメラで顔認識させてみる

・ここでは、べゼリーに内蔵したカメラで人間の顔を認識させてみます。

・顔の認識にはオープンソースの画像処理ライブラリ「Open CV(Open Source Computer Vision Library)」を使います。

準備

・「カメラを使ってみる」をクリアした状態(ラズパイカメラを接続し、HDMIディスプレイが接続された状態)にしておいてください。

サンプルプログラム sample_face1.py

・パソコンからの遠隔操作だと動画が表示されないことがあるので、ラズパイに直接つなげたキーボードとディスプレイで実行してください。(回避手段はありますが、ここでは説明しません)

・ディスプレイに表示されているカメラ画像の中に顔が収まると、赤い四角が表示され、べゼリーが喋るはずです。顔が画面からはみ出ていたり、傾いていたり、遠すぎると反応しません。
・終了したいときはキーボードの「q」ボタンを押してください。

ソースコード

解説

・9~10行目:顔認識のための分類器を読み込んでいます。
・25行目:カメラの画像をRGBでキャプチャーしています。
・26行目:RGB動画をグレースケールに変換しています。
・27~31行目:顔を認識しています。
・33~39行目:顔が見つかった場合の処理です。

応用

・28~31行目が顔を認識するためのパラメータです。いろいろ数値をいじってみましょう。例えばminSizeは顔として認識する最低のサイズですので、これを小さくすると、遠くの顔も認識されるようになります。そのかわり、壁に貼ってある写真など、顔じゃないものを誤認識する確率が上がってしまうかもしれません。


Tips

・OpenCVのCVはComputer Visionの略です。

・べゼリー音声対話キットに付属しているmicroSDカードには予めOpen CVがインストールされていますが、自分でインストールする場合はコマンドラインから以下のコマンドを打ち込んでください。

・途中で何か聞かれたら「y」と答えてください。