日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV中高斯混合背景建模算法汇总

發布時間:2025/3/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV中高斯混合背景建模算法汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

引用地址:http://blog.csdn.net/chuhang_zhqr/article/details/51060745



???GMM是網上到處可見且用得最多的背景建模算法,論文上很多相關概率公式,又看了很多博客對于GMM的解釋,直到現在還總是覺得很難理解其中的真諦,從各方面整理一下目前自己所理解的內容,如果有理解偏差,歡迎指正。

? ? ? ? Mog2用的是自適應的高斯混合模型(Adaptive GMM,Gaussian Mixture Model),在OpenCV中開源了的幾種背景提取算法MOG,MOG2,GMG的測試程序結果中,MOG2確實在前景連續性及運算時間上都脫穎而出,后面會給出比較結果。下面就結合OpenCV2.4.9的mog2源碼和源碼文檔中指出的04年Zoran Zivkovic的三篇論文,簡要串一串GMM的理論基礎,MOG2的大致原理,在代碼實現上的結構及MOG2 API的用法。

背景建模的思想由來

? ? ? ? 在監控系統中,拍攝背景通常是變化較少的固定場景。通常我們假定沒有入侵物體的靜態場景具有一些常規特性,可以用一個統計模型描述。GMM就是用高斯模型,而且是多個高斯模型的加權和混合在一起來模擬背景的特性。這樣一旦已知這個背景模型,入侵物體就能通過標出場景圖像中不符合這一背景模型的部分來檢測到。這一過程被稱為背景減除(Backgroundsubtraction),我猜OpenCV中各種背景建模方法的基類稱作“BackgroundSubtractor”也源于此吧。

GMM模型參數估計的通常思路——GMM參數的EM估計

? ? ? ? ?一旦背景以高斯混合模型來模擬了,現在確定這個模型變成了解出高斯混合模型公式中的一系列參數,在解參數時通常用的是EM演算法,EM演算法分兩步:E-step和M-step。

? ? ? ? ?關于EM算法的推導過程,鏈接的這個博客闡述的非常詳細。

? ? ? ? ?最大似然估計, EM算法理解上很有難度,涉及到最大似然估計上面鏈接也可以作為參考。

?

Mog2建模過程及各可調參數意義

? ? ? ? ?上面說到GMM是用多個高斯模型的加權和來表示,假定是M個高斯分量,討論M的取值是MOG2的作者研究的一個重點:在他之前Stauffer & Grimson取固定個數的高斯分量(M=4), Zoran則根據不同輸入場景自動選擇分量的個數。這樣做的好處是在較簡單的場景下,將只選出一個較重要的高斯分量,節省了后期更新背景時選屬于哪一分量的時間,提高了速度。有兩個測試結果為證:一是用OpenCV中測試程序對同一簡單場景測試視頻跑不同算法得到的運行時間如下表,明顯mog2快很多;

?

?? ? ?mog? ? mog2? ?gmg
? ?電腦1? 26904? ?14386? 25533
? ?電腦2? 26947? ?14578? 28834?

? ? ? ? ?二是Zoran在講背景更新的論文[i]的三個測試視頻結果(圖1, 摘自[1]中Fig.1第1,2列), 圖中Traffic場景作為一個較簡單的場景,背景變化不大,第二行中純黑背景表示背景只用一個高斯分量,速度13ms較固定四個分量的19ms快了很多,而測試的Trees場景背景中包含樹影晃動,背景淺灰色部分表示有多個高斯分量在更新,在這種場景自適應方法并沒有優勢。

?

?

? ? ? ? ?對于整個圖像的每個像素點都建立了一個GMM模型,建模過程中運用EM算法來求解參數組,一旦模型建立,后面每新來一幀都可以根據是否符合已建立的北京模型判斷FG/BG,并會按論文中的參數更新公式更新GMM的所有參數。

OpenCV代碼實現結構梳理

? ? ? ? OpenCV中,各背景建模方法類繼承關系如下圖,BackgroundSubtractor是基類。

? ? ? ? 也給出一個博客,OpenCV中MOG2的代碼結構梳理。

? ? ? ? 在mog2的使用中,初始化后,operator()函數是執行背景更新的主要函數,operator()內部實現主要是OpenCV的一個并行框架parallel_for_(),再深入實際是MOG2Invoker類的operator()實現了背景更新的具體數學運算。具體實現可以查看MOG2Invoker?API文檔。

?

Mog2.operator()

? ? ? ? ? ? Parallel_for_()

? ? ? ? ? ? ? ? ?Invoker.operator()

MOG2 API用法(how to use)

? ? ? ?Mog,mog2,gmg的整體框架都一樣,用法也很簡單,可以根據openCV官方的tutorial來看。

?

[i]?Efficient adaptivedensity estimation per image pixel for the task of background subtraction.

原文:

http://blog.csdn.net/chuhang_zhqr/article/details/51060745

?

在很多基礎應用中背景檢出都是一個非常重要的步驟。例如顧客統計,使用一個靜態攝像頭來記錄進入和離開房間的人數,或者是交通攝像頭,需要提取交通工具的信息等。在所有的這些例子中,首先要將人或車單獨提取出來。?
技術上來說,我們需要從靜止的背景中提取移動的前景。如果你有一張背景(僅有背景不含前景)圖像,比如沒有顧客的房間,沒有交通工具的道路等,那就好辦了。我們只需要在新的圖像中減去背景就可以得到前景對象了。但是在大多數情況下,我們沒有這樣的(背景)圖像,所以我們需要從我們有的圖像中提取背景。如果圖像中的交通工具還有影子的話,那這個工作就更難了,因為影子也在移動,僅僅使用減法會把影子也當成前景。真是一件很復雜的事情。?
1:BackgroundSubtractorMOG?
這是一個以混合高斯模型為基礎的前景/背景分割算法。它是 P.KadewTraKuPong和 R.Bowden 在 2001 年提出的。它使用 K(K=3 或 5)個高斯分布混合對背景像素進行建模。使用這些顏色(在整個視頻中)存在時間的長短作為混合的權重。背景的顏色一般持續的時間最長,而且更加靜止。一個像素怎么會有分布呢?在 x,y 平面上一個像素就是一個像素沒有分布,但是我們現在講的背景建模是基于時間序列的,因此每一個像素點所在的位置在整個時間序列中就會有很多值,從而構成一個分布。

在編寫代碼時,我們需要使用函數: cv2.createBackgroundSubtractorMOG()創建一個背景對象。這個函數有些可選參數,比如要進行建模場景的時間長度,高斯混合成分的數量,閾值等。將他們全部設置為默認值。然后在整個視頻中我們是需要使用 backgroundsubtractor.apply() 就可以得到前景的掩模了。

2:BackgroundSubtractorMOG2?
這個也是以高斯混合模型為基礎的背景/前景分割算法。它是以 2004 年和 2006 年 Z.Zivkovic 的兩篇文章為基礎的。這個算法的一個特點是它為每一個像素選擇一個合適數目的高斯分布。(上一個方法中我們使用是 K 高斯分布)。這樣就會對由于亮度等發生變化引起的場景變化產生更好的適應。?
和前面一樣我們需要創建一個背景對象。但在這里我們我們可以選擇是否檢測陰影。如果detectShadows = T rue(默認值),它就會檢測并將影子標記出來,但是這樣做會降低處理速度。影子會被標記為灰色。

3:BackgroundSubtractorGMG?
此算法結合了靜態背景圖像估計和每個像素的貝葉斯分割。這是 2012年Andrew_B.Godbehere, Akihiro_Matsukawa 和 Ken_Goldberg 在文章中提出的。它使用前面很少的圖像(默認為前 120 幀)進行背景建模。使用了概率前景估計算法(使用貝葉斯估計鑒定前景)。這是一種自適應的估計,新觀察到的?
對象比舊的對象具有更高的權重,從而對光照變化產生適應。一些形態學操作如開運算閉運算等被用來除去不需要的噪音。在前幾幀圖像中你會得到一個黑色窗口。?
對結果進行形態學開運算對與去除噪聲很有幫助。

BackgroundSubtractorMOG 的結果?

BackgroundSubtractorMOG2 的結果?
灰色區域代表陰影?

BackgroundSubtractorGMG 的結果?
使用形態學開運算將噪音去除。?



轉載于:https://my.oschina.net/u/3702502/blog/1798413

總結

以上是生活随笔為你收集整理的OpenCV中高斯混合背景建模算法汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。