2016年3月11日金曜日

物体追跡

OpenCvで物体を追跡するヤツを作っています。最終的な目的はWebカメラ(or UVCなキャプチャデバイス)からリアルタイムに動画を読み込んで電動雲台で追尾することですが、とりあえず今は動画ファイルを読み込んで追尾しています(OpenCvは動画とカメラをほぼ同じように扱えるので便利)。

とりあえず最低限の動作は実装できたので、試しにロケットの動画を読み込ませてみました。手持ちにロケットの映像が無かったのでyoutubeから。


そして結果がこちら。




打ち上げ直後は綺麗に追尾できていますが、上空に上がって煙が太陽に照らされると煙自体を追尾するようになってしまいました。二値化の閾値をギリギリにするとうまく追尾できますが、値に余裕が無いので現地でリアルタイムに設定するのは結構大変だと思います。
解像度256x256でダイナミックレンジ広くて12bitくらいで輝度情報だけ出てくるUSBカメラがあれば良いんだけど。インダストリアルでそんなの無いかな。

画像自体は256x256にリサイズした後に処理しているので、FHDに比べれば情報量は多くありませんが、それでもCore i5 3.2GHzのマシンで18fps前後が限界です。Core i5 2.3GHzのノートでは10fpsも出ませんでした。早いCPUを積んだデスクトップならリアルタイムでトラッキングできると思いますが、射場にそんなの持ち込むわけにもいかないので、どうにか高速化する必要があると思います。
GeForce搭載のハイエンドノートとかもありますから、お金があるチームはそれを使うのが手かも。値段もTOUGHBOOKより安いですしw。

他には、例えばAIM-9X 画像誘導ミサイルの解像度は128x128ピクセルで、これでも10km程度先の戦闘機をLockできるはずですから、解像度自体はその程度でも十分なのかもしれません。ただし望遠レンズで視野が狭いですから、追尾用のカメラは小型軽量なモノを独立した高速なジンバルに載せてやる必要があります。


いろいろ課題は有りますが、少しずつ進めていこうと思っています。

0 件のコメント:

コメントを投稿