フレーム差分法の原理・特徴・計算式

この記事では、フレーム差分法による移動物体の検出原理や特徴、計算式についてまとめました。

スポンサーリンク

フレーム差分法

フレーム差分法は、移動物体の検出方法の1つです。
連続する画像の差分から動体を検出することができます。
この方法の大きな特徴としては、背景差分法のように背景画像(モデル)を用意する必要がない点です。
そのアルゴリズムの処理手順は次の通りです。

スポンサーリンク

アルゴリズム

①連続する3枚の画像I_1, I_2,I_3を用意します。

②画像I_1I_2I_2I_3それぞれの差分の絶対値を計算し、差分画像を2枚(I_{d1}, I_{d2})作ります。

(1)   \begin{eqnarray*} I_{d1}(x,y)=|I_1(x,y)-I_2(x,y)|\\ I_{d2}(x,y)=|I_2(x,y)-I_3(x,y)| \end{eqnarray*}

③2枚の差分画像I_{d1}, I_{d2}の論理積を計算し、論理積画像I_aを作成します。

(2)   \begin{eqnarray*} I_a(x,y)=I_{d1}(x,y)\land I_{d2}(x,y) \end{eqnarray*}

④論理積画像I_aに二値化処理を行います。
そして、背景(黒色)と前景(白色)に分けたマスク画像(I_m)を作成します。

(3)   \begin{eqnarray*} I_m(x,y)= \left{ \begin{array}{r@{\,}c@{\,}r@{\,}c@{\,}r@{\;\leq\;}r} 255 \hspace{15pt}  (I_a(x,y)>T)\\ 0 \hspace{15pt} (I_a(x,y)\leq T) \end{array}% \right. \end{eqnarray*}


これで移動物体の領域を取り出すことができました。
あとは必要に応じて膨張収縮化フィルタをかけたり、マスク画像を使って元画像から前景部分の画素を取り出したりします。
ただし、前景部分全てを取り出せるわけではないため、一般的には移動物体がカメラの前を通過したかどうかの判定に使います。
例えば、「マスク画像にある白色の画素数が500個以上なら不審な物体が通過した」と判定したりします。

関連記事
1 【Python/OpenCV】フレーム間差分法で移動物体の検出
2 【画像処理入門】アルゴリズム&プログラミング
画像処理
スポンサーリンク

コメント