はじめに
NCS2とラズパイの組み合わせで顔識別というのも、今さら感が半端ないですが、ステッピングモーターを組み合わせて、識別した顔を追尾するというのは、あまり例がないので少しだけ書いてみます。
NCS2について
intel製のNeural Compute Stick 2というもので、AIをお手軽に体験できる素敵な奴です。
似たような製品は、他にもCoral USB Acceleratorとかがありますが、「ニューラルコンピューター ラズパイ」でググったときに比較的情報が多いかなという理由で、NCS2にしてみました。
ググればいろいろと出てきますので、詳細は書きませんが、ラズパイへのセットアップも容易で、箱から出して使えるようになるまでに1時間もかかりませんでした。
ラズパイについて(主観的感想)
ワンボードコンピューターは、学生の頃に授業で4ビットマイコンを作成したくらいでして、興味もなく過ごしてきました。
ラズパイ4になってラズパイというものを初めていじってみましたが、いろいろと楽しいです。
レトロゲームやらPC-98エミュやらと暇つぶしにはもってこいです。
顔識別&顔追尾(python3)
NCS2で画像識別処理を行う場合、openCVやopenVINOを使用して簡単にできてしまいます。これもググればいろいろと出てきますので、詳細は書きませんが・・・。
顔識別についても、先駆者様がいっぱいいらっしゃって、そういった方の記事を参考にすれば、それなりのものがすぐできてしまいます。
ただ、それだけでは独自性もないので、大した機能追加でもありませんが、カメラをステッピングモーターに載せて、識別した顔をカメラが追尾するようにしてみました。
諸々を合体した様
方法としては、カメラ動作部分とステッピングモーター部分をそれぞれスレッディングで動作させ、キューで顔識別位置を都度取得するという形にしています。
pythonに詳しい方だと、「そのやり方はどうよ?」と言われるかもしれませんが・・・。
こんな感じ
実際に追尾している動画はいずれアップしようと思います。