Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

有線LANポートつき小型SBC「Nano Pi Neo 2」であそぶ その5:監視カメラ的なのをつくる

ただ撮るだけじゃなく、差分があれば通知するようなのを

実際のところ

導入

前回の流用なのでfswebcamで撮影。
imagemagickが必要。

$ sudo apt install imagemagick

何も考えずに差分

ImageMagickで有り無し判定 - Bye Bye Moore
での知見を活かして

$ compare -metric AE -fuzz 40% sample1.png sample2.png diff.png
1062


しばらく間をあけて露光が落ち着いた状態でやると

$ compare -metric AE -fuzz 40% sample2.png sample3.png diff.png
0

障害物として、椅子を追加してみると

$ compare -metric AE -fuzz 40% sample3.png sample4.png diff.png
2347


差分数値をトリガーに何かしらす

差分数値は標準エラーに出るのでリダイレクトしつつ、100の数値変化が出た場合にのみ何かしら出力……とすると

$ compare -metric AE -fuzz 40% sample8.png sample9.png diff.png 2>&1 | awk '$1 >= 100 { print "an error detected"}' | netcat -w 1 192.168.0.21 9999

これの受け手は差分値が100を超えたとき、"an error detected"と表示されるようになります。

改善すべき内容

画像形式の都合か、意図しない所に放射状に差分判定が掛かったりしてる。
これは露光時間を弄ると幾分改善する模様。

屋外の撮影では木などの微妙な動きも拾う可能性があるので、使わない部分はフィルタしてもいいかもしれない。