張曉宇 彭四偉
摘 要:介紹一種結合背景差分法和瞬時差分法的在視頻序列中識別運動目標算法。該算法利用瞬時差分法得到當前幀中運動目標的輪廓信息,在更新背景模型時不更新運動目標輪廓內區(qū)域,避免了由運動目標引起的背景模型更新誤差。給出用OpenCV實現(xiàn)算法的具體過程和關鍵代碼。實驗結果表明,該方法可以實現(xiàn)視頻序列中運動目標的識別,具有實時性,并能得到較好的識別結果。
關鍵詞:運動目標識別;背景差分法;瞬時差分法;OpenCV
中圖分類號:TP273
0 引 言
運動目標的識別就是對包含運動信息的視頻序列運用適當?shù)募夹g進行處理,把與背景存在相對運動的前景區(qū)分開的過程。它是計算機視覺信息提取中的一個重要問題,也是更高層次視頻分析,如基于對象的視頻編碼、目標跟蹤、運動分析基礎。目前,運動目標識別主要有三種方法:背景差分法、瞬時差分法和光流法。背景差分法可以得到比較完整的運動目標信息,但是背景模型的獲取和更新比較困難。瞬時差分法容易在目標內部產生空洞,不能得到完整的目標信息。光流法計算比較復雜,且抗噪性能差,如果沒有特定的硬件支持,一般很難用于運動目標識別的實時性操作。
在此介紹一種將背景差分法和瞬時差分法相結合的運動目標識別算法,并給出基于OpenCV實現(xiàn)算法的過程和實驗結果。
1 算法思想
背景差分法是利用當前圖像與背景圖像的差分來識別出運動目標的方法。背景模型的獲取和更新是該方法中的關鍵技術。一種簡單的獲取背景圖像的方法是當場景中無任何目標出現(xiàn)時捕獲背景圖像,這種人工的非自適應方法獲取的背景圖像僅適用于短時間內的視頻監(jiān)控。目前大多數(shù)算法已經放棄這種非自適應的背景圖像估計方法。當場景環(huán)境不是很復雜時,可以使用統(tǒng)計濾波完成場景中背景圖像的估計,大多數(shù)情況下都可以得到正確的背景估計圖像,但是當場景中有個別部分做無規(guī)則運動時,會引起場景中像素值不斷變化,從而引起估計誤差?;诟咚菇y(tǒng)計模型的背景估計方法在有部分區(qū)域不斷變化的場景中也能比較準確地估計出背景模型,但是它的計算比較復雜,加上識別過程中其他操作也可能無法滿足實時性需求。
瞬時差分法是在視頻序列中兩個相鄰幀間采用基于像素的時間差分,并且閾值化來提取出運動目標的方法。即將相鄰的兩幀圖像做逐像素相減運算,并設定閾值,若相減的值大于閾值,則將其看作前景圖像(運動目標);否則看作是背景圖像。瞬時差分法對于動態(tài)環(huán)境的適應性較強,不需要獲取背景圖像。當相鄰兩幀圖像的紋理、灰度等信息比較接近時,這種方法通常不能完整地檢測到目標的具體內容,在物體內部產生空洞。但是它可以較準確地得到運動物體的外圍輪廓。
在此將使用一種背景差分法和瞬時差分法相結合的方法。首先根據(jù)一定數(shù)量的視頻序列,采用基于高斯統(tǒng)計模型的方法獲得背景圖像。在后續(xù)處理中,對于每一幀的視頻圖像,首先用瞬時差分法識別出運動目標的輪廓,然后用這幀圖像運動目標輪廓以外的區(qū)域對背景模型進行基于統(tǒng)計濾波的更新。這樣就可以減少場景中運動目標對更新背景模型的影響,同時保證了系統(tǒng)運行時間的實時性,也可以得到較完整的目標識別信息。
2 算法實現(xiàn)
根據(jù)前文的算法思想,可以得到系統(tǒng)的流程圖如┩1所示。
開放源代碼的計算機視覺類庫OpenCV(Open Source Computer Vision Library)是由英特爾公司位于俄羅斯的研究實驗室所開發(fā)的一套可免費獲得,并由┮恍┆狢函數(shù)和C++類所組成的庫,用來實現(xiàn)一些常用的圖像處理及計算機視覺算法[7[CD*2]10]。下面給出利用OpenCV實現(xiàn)算法的具體過程和關鍵部分的代碼:
(1) 捕獲視頻幀
定義捕捉源:
(2) 基于高斯統(tǒng)計估計背景模型
定義高斯背景模型:
將高斯背景模型的背景圖像復制到事先定義的背景圖像pBkImg 中:
(3) 使用瞬時差分法獲得不包含運動區(qū)域的當前幀,并更新背景。當前幀pFrame和前一幀pFrame0做差分,結果放在差分圖像diff中,并二值化:
接下來要做的操作是,找到差分圖像中的輪廓,得到他們的外接矩形。將面積小的矩形視為噪音拋棄,剩下的則視為運動目標。同時設置當前幀pFrame和背景pBkImg的ROI為運動目標的外接矩形。先將當前幀的ROI置0,再對當前幀與背景的ROI進行邏輯┗(or)運算。這樣,對于運動目標所在區(qū)域,當前幀和背景的圖像信息是一樣的,也就達到了消除運動目標對背景更新的影響目的。
這段代碼如下所示:
用上述過程得到不包含運動目標信息的當前幀更新背景模型:
(4) 進行背景差分,得到當前幀運動目標識別結果的二值圖像pFrImg:
3 實驗結果
根據(jù)上述算法思想和實現(xiàn)過程,使用VC++6.0和OpenCV 1.0實現(xiàn)運動目標的識別。經過計算,該算法處理每一幀圖像的時間大約是16 ms,可以滿足實時性系統(tǒng)的要求。使用該算法對一段交通監(jiān)控圖像進行運動目標的識別,結果如圖2所示。其中,圖2(a)是當前幀圖像,圖2(b)是不包含運動信息的當前幀圖像,用矩形框標注出了由幀間差分檢測到運動目標的位置,┩2(c)是當前的背景模型,圖2(d)是背景差分的結果。オ
4 結 語
由上述實驗結果可以看出,本文介紹的算法可以較準確地得到背景圖像,并且實現(xiàn)運動目標的識別。
系統(tǒng)尚需改進的地方有對運動目標邊緣的檢測不夠清楚;如果可以加入陰影的檢測和去除,應該會取得[LL]更好的識別效果。這些將是進一步研究的工作。
參 考 文 獻
[1]劉雪.基于圖像序列的運動目標檢測與跟蹤算法研究[D].山東:山東大學,2007.
[2]許志良,周智恒,曹英烈,等.關于運動目標檢測的發(fā)展現(xiàn)狀研究[J].移動通信,2008(6):35[CD*2]38.
[3]丁忠校.視頻監(jiān)控圖像的運動目標檢測方法綜述[J].電視技術,2008,32(5):72[CD*2]76.
[4]尹彥,耿兆豐.基于背景模型的運動目標檢測與跟蹤[J].微計算機信息,2008,24(11):298[CD*2]300.
[5]趙占杰,林小竹,張金燕.基于背景重建的運動目標檢測算法[J].北京石油化工學院學報,2008,16(2):27[CD*2]30.
[6]肖麗軍,于哲舟,周栩,等.基于對稱差分算法的視頻運動目標分割[J].吉林大學學報:理學版,2008,46(4):691[CD*2]696.
[7]賈小軍,喻擎蒼.基于開源計算機視覺處理庫OpenCV的圖像處理[J].計算機應用與軟件,2008,25(4):276[CD*2]278.
[8]馬桂珍,朱玲贊,段麗.基于OpenCV的視頻應用程序的開發(fā)方法[J].現(xiàn)代電子技術,2007,30(4):78[CD*2]80.
[9]李振偉,陳翀,趙有.基于OpenCV的運動目標跟蹤及其實現(xiàn)[J].現(xiàn)代電子技術,2008,31(20):128[CD*2]131.
[10]劉瑞禎,于仕琪.OpenCV教程基礎篇[M].北京:北京航空航天大學出版社,2007.
作者簡介 張曉宇 女,1983年出生,遼寧人,碩士研究生。研究方向為視頻運動目標識別與跟蹤。
彭四偉 男,1970年出生,湖北人,副教授。研究方向為過程工業(yè)監(jiān)控、編譯技術應用、并行計算。