庭にリスが来たことを見逃さないために | 55歳過ぎてもアメリカでIT企業のエンジニア・PMとして挑戦します

55歳過ぎてもアメリカでIT企業のエンジニア・PMとして挑戦します

一昔前なら定年を意識する年齢ですが、家族で夢をかなえるために2019年4月に渡米、現地のIT企業のソフトウェア開発部門のエンジニア・PM(プログラムマネージャー)として挑戦しています。

現在、やってみたいと思っていたことの一つに「リス検出システム」があります。
うちの庭にリスがやってきたら、室内のランプが光るなどしてリスが来たことを知らせてくれる、というシステムです。



消費電力の少ないラズパイを活用し、外にはUSBカメラを設置、例えば30秒おきにリスの餌置き場の様子を自動的に撮影し、それを解析するようにします。

もしもリスが写っていたら、室内にランプを設置するか、もしくは音で知らせるのでもいいのですが、とにかく室内にいて外を見ていなくてもリスが来たことがわかるようにしたいのです。


リスがとっても頻繁にやってきてくれるならこんなシステムもいらないのですが、一日に3回くらいしか来てくれないので、見過ごしてしまう可能性があります。

リスは現状うちの癒しになってくれており、その姿を見て家族で和んでいます。
ぜひ、リスが来ていることを見逃さないようにしたいところです。



さて、このシステムを作るうえでの最大のポイントは、やはり「リスが写っているかどうかを検出する」ロジックです。

現在の流行でもあるのですが、こういった画像認識をしたり画像の加工をしたりするライブラリとしてOpenCVというものが有名です。

OpenCV公式サイト: https://opencv.org/

例えば人間の顔を認証させるのであれば、人間の顔の写真を何千枚も使って学習させ、カスケードファイルと呼ばれるファイルを作り、そのカスケードファイルを使って、非常に簡単なコードで人間の顔がソースイメージファイルに存在するかを検出することができます。

以下はPythonのコード例です。これだけでobjectsに検出された顔部分を取り出すことができます。
(cascadefilename はカスケードファイルのフルパス、sourceimageはソース画像のフルパスを指定します)

cascade = cv2.CascadeClassifier(cascadefilename)
objects = cascade.detectMultiScale(sourceimage, 1.1, 3)


人間の顔認証のカスケードファイルは、OpenCVのライブラリをダウンロードすればついてくるのですぐ実験できるのですが、さすがにリスのカスケードファイルはありません。

しかし、Webに様々な種類のカスケードファイルがフリーでアップロードされているので、ちょっと探してみました。。がリスは発見できませんでした。。

とりあえず実験用に、ネコの顔を検出できるカスケードファイルがあったのでダウンロードして実験したところ、以下の通り認識できました。


(ちなみにこのネコはうちにパトロールに来てくれる 近所のネコです)


そしてリスの検出をするためには、リスのカスケードファイルを自作する必要があります。
しかしこれがなかなか簡単ではありません。

現時点でまだ、リスが認識できるところまでてきていないので、この続きはまた成功したら書きたいと思います。