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

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

背景差分法の仕組み

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

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

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

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

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

$$ I_d(x,y)=|I(x,y)-I_b(x,y)| $$

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

$$ I_m(x,y)= \begin{cases} 255 & (I_d(x,y) > T) \\ 0 & (I_d(x,y)\leq T) \end{cases} $$

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

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

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

【Python/OpenCV】背景差分法で移動物体の検出
Python版OpenCVで背景差分法を実装し、移動物体を検出する方法をソースコード付きで解説します。

関連ページ

【画像処理超入門】アルゴリズムの仕組みと実装方法を簡単に解説
画像処理超アルゴリズムの仕組みとプログラミングによる実装方法を簡単に解説します。
【PythonとOpenCVで画像処理超入門】使い方とサンプルコードを解説
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。
この記事を書いた人
西住技研

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

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

コメント