Yolo v3の物体検知中にアラート画面を出す


物体検知中にアラート画面を出す

Yolov3を使用したリアルタイムの物体検知は出来たものの、
展示会用途だとそれだけではツマラナイのでそれに反応する何かも作りたい。
結果的にはあまりビジネスにはならない多くのお客様が興味を持ってくださいました。

1、物体検知でひたすら検知物を表示
2、検知した物の中からスマホ(Cell Phone)を抽出
3、スマホを見つけたら黒猫が注意する
4、5秒後に猫は消える
5、ログはどんどん溜まるのでプログラム開始時に全て上書き

ログ収集

まずは、yoloを動かして出たログをresult.txtに全てぶち込む。
teeにしたのは今回は出力画面も見せつつログ集めをしたかったから。(デモだから。)

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights |tee result.txt

こんな感じで見つけたものをどんどん記録。
スマホは無いか?

Yolo3を動かすまでは前の記事
https://qiita.com/qiitaroi/items/9c86d5d48c7e30da8589

Cell phoneの抽出と画面表示

ログを参照して終わりの15行からcell phoneを検知し、あれば猫画像を出力。

\#!/bin/sh
while true 
 do
  tail -n 15 ./result.txt >detect.txt       #終わりの15行を抽出してdetect.txtに書き出し
  grep "cell phone" ./detect.txt >/dev/null #cell phoneを抽出してnullへポイ
        if [ $? = 0 ]; then           #もし有ったらログ側にはecho メッセージと日付を表示
                echo "Black cat watching you."
                date
                timeout 5 eog cat1.jpg     #5秒間猫の絵を表示する
        fi
 sleep 2
done

いた! スマホ発見!

スマホ見てる人はモニターの画面なんて見ないって!?
くっ 今度はパトランプとサイレンでも付けるか。。


単なる思いつきからの付け焼刃なので、ログの増大など課題はあるものの、
展示会の4日分は動いていたので良しとする!