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

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

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

背景差分法は、移動物体の検出方法の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で画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。
この記事を書いた人
西住技研

在学中はシステム制御理論や画像処理、機械学習を専攻分野として研究していました。就職後は、プログラミング(Python)を活用したデータ分析や作業自動化に取り組み、現在に至ります。そこで得たノウハウをブログで発信しています。
YoutubeX(旧Twitter)でも情報発信中です

西住技研をフォローする
画像処理

コメント