背景差分法の原理・特徴・計算式

背景差分法による移動物体の検出原理や特徴、計算式についてまとめました。

背景差分法とは?移動物体を検出するアルゴリズム(原理)

背景差分法は、移動物体の検出方法の1つです。
入力画像と背景画像の差分を計算することで移動物体を抽出します。
そのため、背景画像を事前に用意する必要があります。

背景差分法は、固定カメラ(監視カメラなど)で移動動体を捉える場合に利用されます。
理由は、固定カメラの撮影映像は背景部分に変化が少なく、移動物体領域を前景として抽出しやすいためです。

背景差分法のアルゴリズムは以下のとおりです。

①入力画像I(左)と背景画像I_b(右)を用意します。

②二枚の画像の差分の絶対値を計算し、差分画像I_dを求めます。

(1)   \begin{eqnarray*} I_d(x,y)=|I(x,y)-I_b(x,y)| \end{eqnarray*}

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

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

あとは必要に応じて膨張収縮化フィルタをかけたり、マスク画像を使って元画像から前景部分の画素を取り出したりします。

【実装例】移動物体の検知

Python版OpenCVで背景差分法を実装する方法について以下ページで解説しています。

https://algorithm.joho.info/programming/python/opencv-background-subtraction-py/

関連ページ

【画像処理入門】アルゴリズム&プログラミング
画像処理における基本的なアルゴリズムとその実装例(プログラム)についてまとめました。
【Python版OpenCV入門】画像処理の基礎〜応用例までサンプルコード付きで徹底解説
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。

コメント