2013-04-22 72 views
8

OpenCVバージョン2.4.5では、統計的手法を使用して背景を推定する移動物体を追跡するために使用できるいくつかの異なる実装を提供しています。 OpenCVはBackgroundSubtractorMOG,BackgroundSubtractorMOG2のクラスをCPUに実装しています。さらに、それはBackgroundSubtractorMOGBackgroundSubtractorMOG2のGPUの実装、すなわちそれぞれgpu::MOG_GPUgpu::MOG2_GPUを持っています。 2つの他のアルゴリズムgpu::GMG_GPUgpu::FGDStatModelもあります。OpenCVの前景 - 背景セグメンテーション手法の相違点

私のアプリケーションでは、移動するオブジェクトがシーンに入るとすぐに分割したいと考えています。私は陰影などの偽陽性を避けたい。これらの4つのアルゴリズムは、同じ目標に重点を置いているように見えます。時間の経過とともにバックグラウンドのモデルを作成することによって、バックグラウンドをフォアグラウンドから分離します。これらの実装で経験を積んだ人が、どの(GPU)実装を使用するかを決める手助けができたら、私はさまよっていました。これらのアルゴリズム(MOG、MOG2、GMG、FGDStatModel)はどのように異なっていますか? 1つまたは他のアルゴリズムを使用する利点は何ですか?これらの実装は、速度、パラメータの設定能力、精度、シャドー検出(偽陽性)などの点でどのように比較されますか?

答えて

5

デモのソースコードbgfg_segm.cppがありました。{opencv_folder}\samples\gpuにあります。デモでは、これは私がアルゴリズムを比較するために必要な正確に何である以下の背景フォアグラウンドセグメンテーションクラス

FGDStatModel 
MOG_GPU 
MOG2_GPU 
VIBE_GPU <- listed under `non-free functionality` in OpenCV documentation 
GMG_GPU 

の使用やディスプレイ出力を示しています。明らかに、与えられたアプリケーションに適合する1つのアルゴリズム(パラメータのセットと共に)を見つけるアルゴリズムのパラメータを調整する必要があります。

速度比較:全てのパラメータのチューニングについて

FGDStatModel ~60 frames per second (fps) <-slowest 
MOG_GPU  ~650 fps 
MOG2_GPU  ~650 fps 
VIBE_GPU  ~1000 fps <- fastest 
GMG_GPU  ~190 fps 
+0

と何? – nkint

+0

@nkint正確には、アプリケーションと、与えられたアルゴリズムで選択されたパラメータによって異なります。私は広範な研究をしなかった。 – Alexey

+0

とどのパラメータを使用しましたか?手動で微調整した? – nkint