パーティクル・フィルタとEMアルゴリズムを用いた複数対象追跡

元々,去年の9月に学会で発表していた時点では,プログラムはリアルタイムで動いていました.圧力センサの反応を入力として人の位置を追跡して,3人くらいが反復横跳びをしてもきちんと追跡できていました.

ところがその時のシステムでは,複数の人を識別するために正規分布の下の方を無視して,正規分布を近似する粒子数を大幅に削減するというかなり恣意的なことをやっていました.そうしたらもうそれは確率分布でも何でもないわけで,最終的に共同研究者に「何をやっているのか,よく分からないなあ」と言われてしまいました.

んなもんで,やりましたよ.きちんと正規分布を使うように改造を.そうしたら当然,人が近づいたら区別がつかなくなったので,「重み付きEMアルゴリズム」というのを導入しました.そうしたら,人の人数を推定する式がうまく推定してくれなくなってしまったので,「Fisher行列を近似的に考慮したMDL評価式」というのを導入しました.そうこうしているうちにプログラムがごちゃごちゃになって,凄く遅くなってしまいました.

結局,きちんと複数の人を追跡してくれて,かつ満足がいく速度でプログラムが動くようにするのに半年近くかかってしまいました.でも,これで明日の朝のミーティングで報告するネタができました.

今日の画像は,二人の人が部屋に入ってきて歩いている時の,「部屋の中にいる人の数」を推定した例です.カメラやセンサーなんてのは結構いい加減な信号を出すもので,一番奥の青いグラフみたく,ガタガタの入力が入ってきます.それを上手に確率統計的に処理をして推定に持っていくと,真ん中の赤いグラフのように滑らかな結果を出すことができます.

この研究は面白いのですが,世界中の人がやってる研究なので,もっともっとオリジナルな手法を考えなければなりません.いくつか考えていることがあるので,またプログラム作ってやってみましょう.