RaspBerry Pi 4 64Bit OSで顔認識(OpenCV)

Raspberry Pi 用 OSの64 Bit beta版が出たので、早速試してみた。
OSの名前もRaspbianからRaspberry Pi OSになったようだ。
以前Raspberry Pi 3で少し試した時には、レスポンスが今一だったが、今回Python3、OpenCVを利用した機械学習による顔認識、認証のパフォーマンスと比較してみたい。
ついでに、ようやくRaspberry Pi 4でUSB BOOTができるようになったので導入した。
高速なUSBストレージでのパフォーマンス改善も期待したい。
ここで、猫爺さんに登場してもらって、爺さんの顔を検出して、認識できるかどうか。
人の顔を検出する学習済みhaarcascade_frontalface_default.xmlを使用した。

Raspberry Pi 4B 2GBにPython3, OpenCV, Dlib, face_recognition,  imutilsなどのパッケージをインストールした。
OpenCVだけでは日本語が表示されないので、Pillowの助けを借りて、何とか表示できるようにした。
Raspberry PiにUSB接続のビデオカメラを使用。

このプロジェクトの実行手順として
1.認識したい人の顔を登録する。datasetのフォルダ名が表示する人の名前になる。複数の人を登録できる。登録されてないと"不明"と表示。
2.datasetの画像から複数の人の顔を機械学習して、顔データベースに埋め込む。PiではCNN(畳み込み学習)は重たすぎるのでHogを使用。
3.Piのカメラの動画ストリームから人の顔を検出して、識別する。

結論として思ったよりいい結果が出てる。
顔認識処理をしながらの動画ストリームも6から9FPS程度は出てる。動きも滑らかだ。
以前は1FPS程度だったので、大幅にパフォーマンスアップ。
眼鏡をかけてると識別精度が落ちるのは仕方ないかな。
もう少し手を入れれば、AIで強化された監視カメラなどとしても使えそうだ。
顔認識処理動画は以下で再生できます。
猫の顔は検出しないはずが、猫が鳴いて口を開けると、人として検出するのが興味深い。
猫ひろしは検出するかな。

動画を再生するにはvideoタグをサポートしたブラウザが必要です。

詳細な続きは次回に。

コメント powered by CComment