8

OpenCV バージョン 2.4.5 は、統計的手法を使用してバックグラウンドを推定する移動オブジェクトの追跡に使用できるいくつかの異なる実装を提供します。OpenCVにはBackgroundSubtractorMOGBackgroundSubtractorMOG2CPU上に実装されたクラスがあります。さらに、BackgroundSubtractorMOGBackgroundSubtractorMOG2、つまりgpu::MOG_GPUgpu::MOG2_GPUそれぞれの GPU 実装があります。他にも と の 2 つのアルゴリズムがgpu::GMG_GPUありgpu::FGDStatModelます。

私のアプリケーションでは、移動するオブジェクトがシーンに入るとすぐにセグメント化したいと考えています。影などの誤検知は避けたいです。これら 4 つのアルゴリズムは、同じ目標に焦点を当てているようです。時間の経過とともに背景のモデルを作成することで、背景を前景から分離します。これらの実装の経験がある人が、どの (GPU) 実装を使用するかを決定するのを手伝ってくれるかどうか、私は迷っていました。これらのアルゴリズム (MOG、MOG2、GMG、および FGDStatModel) は互いにどのように異なるのでしょうか? いずれかのアルゴリズムを使用する利点は何ですか? これらの実装は、速度、パラメーターを構成する機能、精度、影の検出 (誤検知) などの点でどのように比較されますか?

4

1 に答える 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
于 2013-04-25T16:15:52.003 に答える