トラッキングの実験

Msakoが検知した動体を固体識別し、その移動経路を追跡することはできないだろうか?

その1

3つのオブジェクトが登場。ただし、それぞれ時間をずらして登場するため、同時には1つのオブジェクトしか存在しない。簡単な問題。

tracking_14.mp4

その2

これも、3つのオブジェクトが登場するが、前の問題と違って同時に2つのオブジェクトが存在する。それぞれ移動速度や移動方向が一定であり、まだまだ単純な問題。

tracking_4.mp4

その3

オブジェクトが物陰に入り、一度視界から消え、再び登場する例。速度ベクトルと経過時間により、再出現する位置を予測する方法がうまくいった例。

tracking_734.mp4

その4

これも、物陰に入ったオブジェクトの再出現の問題。予測がうまく行かず、2つのオブジェクトとして認識してしまった失敗例。

tracking_18.mp4

その5

2つの接近したオブジェクト。しかも、大きな動作変化がない(ほぼ停止)する瞬間がある場合。惨敗(;;)コンビニなどで陳列商品を品定めするような場合は、これに類似する。

tracking_37.mp4

その6

オブジェクトの入れ替わり。少年Aが物陰に入り、続いて少年Bが物陰に入る。最初に物影から出てきたのは少年A、なのに少年Bとして認識。続いて出てきた少年Bは、新たな少年Cと認識。速度ベクトルによる推測は、このようなケースではまったく役に立たない。何でこんなことも認識できないんだろうorz

tracking_swap.mp4

考察

一般的には、これらの実験より更に複雑なケースがほとんどだろうから、本当にこの方法で実用に供するか?かなり疑わしい。

オブジェクトトラッキングと動画圧縮はいとこ同士のようなもの?オブジェクトトラッキングのために、MPEGなどの動画圧縮で使われるブロックマッチング法とその過程で用いられるThe three-step search(TSS) などの探索アルゴリズムを用いることがある。考えてみれば、動画圧縮も時間的、空間的な変化に着目しているので直感的にうなづける。アパーチャ問題など克服すべき問題も共通している。

このほかに、オブジェクトトラッキングの手法としては、山登り法の一種Mean-Shift法や、時間的に変化する離散量の推定のための定石、Kalmanフィルタなどの手法がある。特にKalmanフルタはカーナビなど広く応用されている有効で実用的な方法だ。しかし、カーナビが1秒に1度数バイト程度のデータが処理できれば良いのに対して、オブジェクトトラッキングでは100万バイト以上のデータを対象に1秒間に数10回処理しなければいけない。できれば次の実験ではこの辺を試してみたい。

Kalmanフィルタとは(Wikipedia)