動体検出 その2

問題のモデル化

検出ロジックを考えるにあたり、まずは問題をモデル化します。以下、条件付き確率の基本的な知識があることを想定しています。

画像の情報はRGBの値(画素値)がただ並んでいるだけの配列であり、人がいるかどうかを判断するためには何らかのモデル化(定式化)が必要です。

ある時刻tにおいて、x_tを人物の位置(今回は2次元座標空間),y_tを観測値(今回は実画像、すなわち画素値の配列)とします。一般にx_tは状態ベクトル,y_tは観測データと呼ばれます。

まずは今回のモデル化のイメージを図示してみます。

この図のようにモデル化とは現実世界を簡略化・抽象化し、x_ty_tの世界(空間)で問題を考える事です。※1このモデル化された世界をそれぞれ状態モデル、観測モデルと呼ぶことにします。以下、これらのモデルについて詳しく述べていきます。

まず状態モデルの空間を、現実世界から、ある確率分布p(x_t)に従って生成されたものと仮定し、これを
 x_t \thicksim p(x_t)  ・・・(1)
と表します。※2(ここで記号\thicksimは、左辺の変数が右辺の確率分布に従うことを意味します。)ある座標Xにおけるp(X)の値が大きい程、人が位置Xに存在する確率が高いことを意味すると考えてください。

また、今回の問題設定では白い背景の前を人が動くことになっているので、人の位置が変わればそれに応じて画素値の配列も変わることが予想されます。つまり観測データy_tは状態ベクトルx_tに確率的に依存すると考えられ、条件付き確率を用いて
y_t \thicksim p(y_t|x_t) ・・・(2)
と表されます。※3
現実世界からではなく、x_tの世界からy_tの世界(画像)が観測されたと考えるわけです。確率を用いて表現するのは、影やノイズなどの不確定な要素を考慮する必要があるためと考えることもできます。

ここで改めて今回の目的を思い出してみましょう。目的は「単色背景上を動く人物の重心座標を求めること」でした。我々が直接得ることができる情報は、ある時刻tにおける画像y_tのみです。ここから、人物の位置x_tを推定する必要があります。
すなわち、「観測ベクトルy_tが与えられた時の状態ベクトルx_tの条件付き確率分布p(x_t|y_t)を求める」ことが今回の目的です。※4

p(x_t|y_t)は、Bayesの定理を用いることで
 \displaystyle p(x_t|y_t) = \frac{ p(y_t|x_t)p(x_t) }{ \sum p(y_t|x_t)p(x_t) }  ・・・(3)
と変形できます。すなわち(3)式の右辺を計算することが当面の目標となります。

次回はこの式を計算する方法について述べていきます。


※1 厳密にはそれぞれ確率空間であり、必ずしも2次元平面で図示できるわけではありませんが、ここではイメージを優先しました。
※2 通常、x_tは、一時刻前の位置x_{t-1}に依存すると考えられるため、p(x_t|x_{t-1})に従うと仮定するのが一般的ですが、今回は時刻依存性を仮定していません。
※3 (1),(2)式をまとめて状態空間モデルと呼びます。
※4 より正確にはp(x_t|y_t)の期待値を求めることになります。