2021/12/15 よりサイトリニューアルしました

Open CVとRaspberry Piで顔認識&追尾カメラを作成(Python)

ラズパイ 顔追従

 

前回、カラートラッキング物体追尾カメラを作成しました。↓

 

今回はOpen CVの顔認識を使って、それを追従するカメラをRaspberry Piで作りたいと思います。

前回同様、Open CVのコードにつきましては先人の方々の作品を参考にさせて頂きました。(いかんせんOpen CVは、初学者にとって理解するのに時間がかかる。身をもって体験した。。)

顔認識だけなら、意外とすんなり出来るのですが(ライブラリのおかげで)、それに「カメラ追従」が加わるとちょっと何言ってるか分からなくなります。なんとなくは分かるんですが、理解できた!とは決してならないですね。。継続して勉強が必要ですね。

それでは、内容をまとめていこうかと思います。

 

初めに

システムの概要

※Open CVはインストール済みということが前提で進めます。インストールについては冒頭に張っているリンクの過去記事でまとめています。

おおまかな動作の流れとしては、下記のような感じのものを作ります。

raspberry pi4 ⇒ i2c ⇒ pca9685 ⇒ サーボモーター

pythonプログラムを作成し、カメラの顔認証に合わせたカメラ軸の位置をOpen CVとPCA96852ライブラリで決めてサーボモータドライバへ伝え、サーボモーターを駆動させます。

ちなみにカメラは、ラズパイ純正のカメラモジュールでも、USBカメラでも両方OKです。

 

カスケード分類器の準備

顔認証させるには、カメラに映った人間の顔を「人間の顔」と判別させるために、多くの人間の顔のデータを機械学習させて、それと比較させる必要があります。この比較できるデータをカスケード分類機と呼びます。

Open CVにはあらかじめこのデータが準備されているので、簡単なテストならばとりあえず人間の顔については機械学習させる必要はありません。データさえ手に入ればOKです。したがって、まずはそのデータをDLしておきます。

データはgit hubに公開されているので、下記コマンドで手に入れます。

opencv-master 名のディレクトリがDLされるので、その配下にある「haarcascade_frontalface_alt.xml」へのパスを覚えておきます。

opencv-master /data/haarcascades/ haarcascade_frontalface_alt.xml

このパスは後ほど作成するプログラムで使用します。

 

顔認証のみのプログラム

python

以下、RaspBerry Pi &Python開発ブログさまのサイトを参考にさせていただきました。顔認証のみのプログラムになります。

Rasberry Pi & Python開発ブログ

カスケード分類機へのパスは、ご使用の環境に合わせて適宜変更してください。

こんな感じで、しっかり顔認証ができています。↓

続いて、これにカメラ追従を付け足したいと思います。

 

顔認証+カメラ追従のプログラム

Python

以下、上記のプログラムを参考にカメラ追従のプログラムを追加した、顔認証+カメラ追従のプログラムになります。

少し分かりずらいですが、一応顔を認識して顔の動きに応じてカメラが追従してくれています。↓

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です