ラズパイとComputer Vision APIと監視カメラ

ラズパイ(Raspberry Pi)とAzureのComputer Vision APIで画像処理を行います。

<今回、用意したもの>
Raspberry Pi Type B 512MB
BUFFALO マイク内蔵320万画素WEBカメラ
※2014年もので、まだまだ現役で使っています。

監視カメラのソフト:motion

<Azure>
App Service(Windows):Free (ディスク領域 1GB)
Cognitive Services  :Free (5,000トランザクション / 月)

motionで動体検知して動画と画像をラズパイに保存。画像のみをメールで送付しています。
(夜間、休日の監視)

motionの動体検知ですが、日差しや影に反応してしまうのでなんとかしたいところでした。
今回、AzureのComputer Vision APIを使って画像に人が写っていないか判定させます。

メールの送付は、ラズパイのcrontabにより画像ファイル(jpg)が、保存されていれば送付する仕様。

Computer Vision APIを使うには画像ファイルをインターネット上の見える場所に保存しないと使えないのでAzure appサービス(Windows)上に置きます。Freeプランであればディスク容量が1Gまで使えます。

<ラズパイのバッチ処理の流れ(bashシェルです)>
・curlコマンドより画像ファイルをAzureへ送信(ftps)。格納ディレクトリも指定しておきます。
・curlコマンドよりAzureに置いたPHPをGET(画像ファイル名を送付)で呼び出す。
  azure側のPHPは、画像ファイル名を受け取り、Computer Vision API 呼び出す。
  画像解析結果はJSONで受け取る。
  JSONデータを読み込み、人を表すタグが存在した場合、’person’ を出力する。
  人を表すタグがなければ、画像ファイルを削除する。
・上記の処理結果が’person’であれば、画像ファイルをメールで送付する。

Computer Vision APIのパタメータ
‘visualFeatures’ => ‘Description’
を使いました。

こんな感じでAzure機能を無料の枠内で使えるのでとても便利です。

コメントを残す

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

CAPTCHA