2016年10月25日火曜日

【Python × OpenCV】 動画で歩行者検知

リクエストがあったので動画で歩行者検知してみました。

結果

中々良い感じ。

動画ファイル読み込み


動画の処理についてはいつも通りチュートリアルを参考にしました。プログラムの流れは

  1. cv2.VideoCaptureで動画を読み込んで
  2. frame毎に画像表示させる

という簡単な手順です。

ただ私の環境ではVideoCaptureが機能しなかったので、StackOverflowを見たところ、
OpenCVフォルダ内のffmpeg関連の名前変更してpythonフォルダにコピペする必要がありました。

VideoCaptureが動いたら、前回のコードと合わせて「動画で歩行者検知」完成です。


使った動画


問題点

とにかく重いです。
ただでさえ重い歩行者検知に加え、動画を読み込んでいるからだと思います。
なので一般的には、動画をフレーム毎に画像にしたデータ群を使って検証するみたいです。

結果は動画読み込みと同じですが、倍以上早いプログラムがこちらです。

パラメータは前回良かった

  • hit_threshold = 0
  • group_threshold = 5

を使いました。

おわりに


想像以上にこのデフォルト検出器の性能が良かったので、改良意欲が湧いてきました。
とはいえ専門家でもないので、実装しながら色々考えてみるつもりです、おわり。