20180723_3


"すにゃいぱー"は電動水鉄砲の発射でにゃんこに退散してもらうことにしていますが、
発射のトリガの為になにかしらの方法で"ネコのみ"を検出することが必要となります。
今回はPCとカメラを使用して簡易的な画像処理をして検出することとしました。

カメラは、夫がもっていたアクションカメラを使うこととします。
(インドア派の夫がなぜアクションカメラなるものをもっていたのか不明。
  一体何に使おうとしたのか。あやしぃ・・・)


このアクションカメラですが、いわゆるGoProのクローン品となりますが、
低価格ながら、Wi-Fiに対応していて、カメラの映像をスマホなどでも確認できなかなか高機能でいい感じです。
で、いろいろと調べてみたところ、海外のQ&Aにストリームでアクセスできることを見つけました。
ストリームのアドレスは以下となります。これで、Wi-Fi経由でPCにカメラ画像を取り込めそうです。

rtsp://192.168.1.254/sjcam.mov

その他、試してはいませんが、その他の機能もWi-Fi経由でコマンド実行できるみたいでした。
あと、このメーカの他カメラのストリームサーバのアドレス一覧もここにありました。

PC側の方はじぃ(祖父)から使用していないノートPC(NEC VersaPro)を譲り受けたので、

これにPython(32bit-2.7.10.3)とOpenCV(3.0.0)の環境を構築します。
OSはWindows10(32bit)となります。

これでやっとカメラ画像を使った画像処理の環境が整いましたっ!!

そして、次に画像処理でネコを検出にとりかかります。

検出方法については、流行りのディープラーニングなどをやってみたかったですが、
明らかにPCのスペック的に無理なので、OpenCVでデフォルトで使えるhaar-like特徴分類器で行うこととしました。

カスケードファイルは・・・・
こちらのサイトで猫の顔検出モデルを作成、配布されていたので
今回使用させていただきました。


ただ、ねこ愛が感じられますので、非常に罪悪感が(汗)。。

一通り環境が組みあがりましたので、フリー素材のねこ動画で検出テストしてみます。

おぉ・・



PCのスペックが厳しいですので、検出に時間がかかるものの、検出ができました。
カスケードファイルの精度がたいへん素晴らしいです。
(リアルタイム性を重視しますので、検出動作は別スレッドで構成しました)

ただ顔検出ですので、後ろ姿や横顔は検出は厳しいです。
これはまた別途検討することにしよう・・・





まぁ、なんにせよ、これでネコの検出部分は一旦完成です。

次回は検出状態BlueTooth経由で本体に通知して、Arudunoで電動水鉄砲をONさせる部分の
構築していきます。

にほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村



電子工作ランキング