前回に引き続きまだまだAIプログラムを動かしていきたいと思います。 セットアップは完了しているため、今回は早速プログラムを動かしてみたいと思います。
目次
①今日のコンセプト
今回は動作させるプログラムを変えてみます。 DetectNetというもので、画像上の物体検出を行なうネットワークです。こちらを使って、サンプルや自前の画像を検出していきたいと思います。また、今回は動画ファイルでも検出を試していきます。 ・DetectNetを使って画像上の物体検出 ・DetectNetを使って動画上の物体検出 ・モデルを変更して検出結果の変化を確認
②準備
インストール自体は前回の記事にて完了しているため、今回は素材を集めたらすぐに実行可能です。実行ファイルは前回使用したimagenet.py(赤線)と同じ階層にある「detectnet.py(赤枠)」を使用します。実行方法もほぼ同じなのでサクッと進めたいと思います。
./detectnet.py 入力 出力
上記の形式で実行します。
③DetectNetの実行
③-01. 付属の画像で実行
まずはimageフォルダ内に付属されているサンプル画像で試してみたいと思います。
元画像上に検出された物体がバウンディングボックスとともに記載されています。上の画像では馬と人が検出されています。下の方は解像度が高めになっているため見にくいですが人が4人検知されています。問題なく検知ができています。
③-02. 用意した画像で実行
続いては用意した画像で検知を試します。3種類の画像を用意しました。 ①4つのもの(マウス・人参・コントローラー・フィギュア)が入った画像 ②おもちゃを拡大した画像 ③観葉植物と亀のフィギュア?の画像 ①はおそらくマウス・コントローラー・人参は検知されるのではないかと思っています。 ②はキャラクターなので出ないだろうと思い、③については亀が検知されないかと思って試しています。
元画像 | 出力画像 |
---|---|
ほとんど検知不可という悲しい結末となってしまいました。人参はいけるだろうと思っていたのですがいけないのですね、、、 また、亀についても検知できていません。。 なかなかものを選ぶようです。
③-03. 動画で物体の検知
DetectNetは画像だけでなく動画も検知可能です。フリー素材を使用して試してみたいと思います。 動画は、男女が浜辺でビーチボールで遊んでいて、その間を犬が走り回っているものです。実行してみます。
人物がpersonとして検知されています。 体勢によっては検知が外れてしまったり、一部全体を指して「surfboard」となっている場面があったりします。動画内でここは間違っているなと思う箇所は以下のようになっていました。
- personが外れてしまっている
- 全体がsurfboardとして検知されている
- 犬がbirdとして検知されている
- そもそも犬が検知されていない
- 男性の影がsnowboardとなっている
スクロールできます
誤検知などはありますが、人物に関しては概ね検知できていました。
④モデルを変更して実行
学習済みのモデルを変えながら各画像・動画に差異が出てくるのか確認していきます。モデル変更で誤検知が減ってくれるといいのですが、、 デフォルトはSSD-Mobilenet-v2です。書きを試していきます。 ・SSD-Inception-v2 ・TAO DashCamNet ・DetectNet-COCO-Dog 出力画像をどんどん貼っていきます。
SSD-Inception-v2
スクロールできます
SSD-Inception-v2では概ね同じような結果でした。画像の検知ではコントローラーが検知できておらず、他の画像が未検知なのは同様でした。動画については人物の検知の制度が上がっているように思います。犬についてはデフォルトよりも長時間「bird」となっています。
TAO DashCamNet
スクロールできます
画像はすべて未検知、動画においてはほんの一瞬「person」が検知されていますが、1秒にも満たない時間しか見れていません。あまりこれらには向いてないようです。
DetectNet-COCO-Dog
スクロールできます
このモデルは名前からもわかるように犬の検知に向いたものです。動画部分で活躍すると思い選定しました。 するとコントローラーが犬として検知されています。。。 動画の犬は割と検知できています。しかし犬がいない波や人の影なんかも犬として検知されてしまっています。。。 精度はまだまだといったところですね。
⑤まとめ
人間は検知しやすいですが、その他のものはまだまだでした。 やはり学習済みモデルをそのまま使うのは難しいので、ファインチューニングなんかも試してみたいですね。 動画の検知も試してみました。処理の際に動画を再生しながら処理するため、少し時間がかかりました。録画した映像だけでなく、カメラで撮影しながら処理していくものも活用していきたいですね。
コメント