keras yolo V3を高画質ビデオカメラや一眼レフカメラでリアルタイム物体検出する方法

keras yolo V3を高画質ビデオカメラや一眼レフカメラでリアルタイム物体検出する方法

Let’s play with AI.

AI coordinator管理人の清水秀樹です。

皆様、コロナウイルスが猛威を奮っておりますが、いかがお過ごしでしょうか?

人混みは避けて過ごしたいですね。

さてさて、今回のテーマはkeras yolo v3を高画質ビデオカメラや一眼レフカメラを使って、リアルタイムに物体検出ができる方法をご紹介したいと思います。

普段皆様はリアリタイム物体検出を試しに実行する場合、ほとんど方はUSBカメラやPC内臓のカメラを使っているかと思います。

それはそれで問題ないのですが、もっと拡大した映像で試したいですとか、もっと望遠レンズで物体検出を試してみたいなど使用用途に合わせて実験してみたいと思ったことはありませんか?

特に仕事で画像解析している方はカメラ選定に苦労しているのではないでしょうか?

工業製品的な専門的なカメラは正直金額が高いのでなかなか手が出せない。

そんな方にお勧めなのが、自宅にあるビデオカメラや一眼レフカメラでリアルタイム物体検出ができる方法があるので、それをご紹介したいと思います。

実験で使ったソースコードも当ページ下部に掲載しておきます。

 

USB HDMI変換アダプター 

今回ご紹介する製品はこちらになります。

I-O DATAから販売されている商品でサイズも小さく持ち運びにとても便利です。

PC接続するだけで簡単に使用できて、しかもドライバ等のインストールも必要ありません。

HDMI出力できる機器であれば基本なんでもUSBカメラとしてPC入力できるかと思います。

試してないのですが、HDDレコーダーなんかももしかしたら取り込めるかもしれません。

百聞は一見に如かずということで、実際にyolo v3を使ってリアルタイム物体検出している様をyoutubeで紹介しています。

ぜひ参考にしてみてください。

keras yolo3

参考github

こちらが動く前提で話を進めます。

修正するファイルは、

  • yolo_video.py
  • yolo.py

の2つファイルです。

もともとは保存済みの動画ファイルをインプットする仕組みになっているため、カメラからの映像入力にソースが対応しておりません。

なので、少しだけ改造してUSBカメラでも動くように修正しましょう。

修正版はこちらのgithubからどうぞ。

yolo_video.py

修正内容の説明です。

55行目のtypeをintに変更しましょう。

これはOpenCVのVideoCapture()に渡す引数を定義するために修正します。

USBカメラが複数ある場合は、それに該当する番号をコマンドから入力しましょう。

内蔵カメラは ‘0’

usbカメラは ‘1’ 以降になります、。

yolo.py

177行目の

に変更しましょう。

webcamはこれでないと録画できないようです。

これで修正は完了です。

ぜひ試してみてください。

それではまた!

About The Author

Hideki
東京大学発AIスタートアップ企業でロボット開発室室長、画像解析室室長、動画解析室室長を務め、AIエンジニアとしても画像認識関連の特許を在籍中に3つ取得。その後、KDDIグループ内でプロダクトリーダーとして自然言語処理パッケージの自社開発を経て、現在はAGRISTのテックリードとして農業の人手不足の解決に向けた収穫ロボットの開発にチャレンジしている。ロボットは技術の総合格闘技との考え方から、AIだけでなく、ハードやエレキ、通信からクラウド、IOTまで幅広く手掛けることができる。最近では人とロボットの共存を目指すべく、性能だけを追い求める開発から「感動やワクワク体験」をデザインできるロボットの研究を進めており、人とロボットがうまく共存できる世界を作り出したいと日々行動している。

LEAVE A REPLY

*
*
* (公開されません)