許向陽 姚洪猛
摘要 針對三幀差法前景檢測時出現(xiàn)“空洞”現(xiàn)象,本文提出了一種融合三幀差法與自適應碼本算法的前景檢測方法。首先利用三幀差法對目標進行前景檢測得到目標的輪廓信息,利用自適應碼本算法對目標進行前景檢測得到目標的內(nèi)部信息。其次將檢測出目標的輪廓信息與內(nèi)部信息作邏輯或運算,便可以得到完整的目標前景信息。然后利用Camshift跟蹤算法對運動目標實時跟蹤,最后將運動目標的輪廓和運動軌跡標記出來。實驗表明,在目標的顏色相對比較明顯的情況下該方法具有很好的魯棒性和精確性。
【關鍵詞】空洞現(xiàn)象 三幀差法 碼本算法Camshift 算法
隨著智能監(jiān)控技術的不斷發(fā)展,能否準確的檢測出視頻中移動的目標,對后期的目標分析起到了很大作用。傳統(tǒng)的檢測方法有幀差法、光流法等。幀差法是一種通過圖像序列相鄰幀作差獲得移動目標運動信息的方法,該方法計算量相對較小、處理簡單、對動態(tài)場景有較強的適應性、能夠快速有效的檢測出移動目標的運動情況,但幀差法不能提取出完整的目標前景信息,它往往存在“空洞”現(xiàn)象;光流法計算量較復雜,既可以對目標進行檢測也可以對目標進行跟蹤,但光流法需要特定的硬件對其支持,一般很難滿足實時跟蹤的要求。
因此,本文提出一種融合三幀差法與自適應碼本算法目標前景檢測法,并采用質(zhì)心算法與經(jīng)典Camshift跟蹤方法相結(jié)合對該方法進一步的驗證。
1 三幀差法
本文基于固定場景下對目標進行檢測,為了能夠檢測到相對完整的前景信息,將目標前景信息從目標的輪廓信息和目標的內(nèi)部信息兩方面分別去考慮。
為了能夠提取出完整的目標輪廓信息,本文采用三幀差法對目標的輪廓信息進行提取。由于三幀差法主要檢測的是前后兩幀相對變化的部分,無法檢測出重疊的部分,導致檢測出的目標具有明顯的“空洞”現(xiàn)象,但是前景卻保留了目標的輪廓信息。
根據(jù)三幀差法的思想,首先選取圖像序列連續(xù)三幀圖像Ik-1(X,y),Ik(X,y),Ik+l(X,y),通過公式(1)、公式(2)計算出相鄰兩幀圖像的差值DSR(k,k-1)、DSRck+l,k)。再通過公式(3)、公式(4)選擇合適閾值T進行圖像二值化處理。利用公式(5)對每一個像素點得到二值圖像進行邏輯與運算,得到中間幀圖像Ik(x,y)的二值化圖像Dk(x,y),最后將二值化圖像進行形態(tài)學處理,提取出相對完整目標輪廓信息。
2 碼本算法
碼本算法是Kim等提出的一種新穎的背景建模方法。為了能夠提取出目標的內(nèi)部信息,本文采用自適應碼本算法,通過實時更新碼本中的碼字,來建立新的碼本模型。具體步驟如下:
首先,建立背景模型。根據(jù)公式(6)、公式(7)為當前圖像中的每一個像素點建立一個碼本(CB)數(shù)組,每一個碼本(CB)數(shù)組由n個碼字(CE)組成,每一個碼字是由6個元素組成的數(shù)組。
CB= {CE1,CE2,CE3,…,CEn,T}
(6)
式中:n為一個碼本中所包含的碼字數(shù)目,當n較小時,退化為簡單背景;當n較大時,可以對復雜背景進行建模,T為碼本更新的次數(shù)。
式中:learnHigh和learnLow分別為更新時的學習上下界;max和mm分別為記錄當前像素的最大值和最小值;lastUpDate為上次更新的時間;stale為陳舊時間,用來刪除很少使用的碼字。
其次,檢測像素是否更新。令當前訓練圖像P中的一個像素為P(x,y),背景閾值的增長判定閾值為Bounds。該像素的碼本更新算法步驟如下,如圖1。
Step1:遍歷碼本中的每一個碼字,若滿足條件: leamLow<=P(x,y)<=learnHigh,則跳轉(zhuǎn)到step3;
Step2:創(chuàng)建一個新的碼字并添加到碼本數(shù)組中,將新添加的碼字的max與mm都賦值為P(x,y)、learnHigh賦值為P(x,y)+Bounds、learnLow賦值為P(x,y)-Bounds,再跳轉(zhuǎn)到step5;
Step3:更新該碼字的上次更新時間的lastUpDate,若當前像素值P(x,y)大于該碼字的max,則將P(x,y)值賦予max;若當前像素值P(x,y)小于該碼字的max,則將P(x,y)值賦予mm;
Step4:更新該碼字的學習上下界,以增加背景模型對于復雜背景的適應能力。若leamHigh< P(x,y)+ Bounds,則 learnHigh +1;若leamLow> P(x,y) - Bounds,則learnLoW-l;
Step5:更新碼本中每一個碼字的時間stale,如此反復更新;
然后,前景和背景的分離。對于當前待檢測圖像上的像素P(x,y)。遍歷它對應像素背景模型碼本中的每一個碼字,若存在碼字使得P(x,y)< max+ maxMod并且P(x,y)>min minMod,則P(x,y)被判斷為背景,否則被判斷為前景。其中:前景的范圍上下界為minMod和maxMod。
最后,分離出的前景信息將包含大部分目標的內(nèi)部信息,再腐蝕膨脹操作使目標的內(nèi)部信息盡可能的全部提取出來。
3 改進算法
針對三幀差法的對目標前景檢測時出現(xiàn)“空洞現(xiàn)象”。本文提出一種融合三幀差法的碼本算法。主要將三幀差法與自適應碼本算法相結(jié)合,提取出相對完整前景信息。改進算法流程圖如圖1所示。
為了減小光照對目標信息的提取的影響,首先對目標是否受外界光照因素的影響進行判斷。若是,則通過混合高斯建模,來降低光照對目標的干擾后。再對目標進行前景的信息提取;若否,直接對目標進行前景的信息提取。然后將提取出的前景信息進行背景差分計算后,與三幀差法提取出目標的輪廓信息進行或操作,來彌補三幀差法前景檢測時內(nèi)部“空洞”現(xiàn)象。最后,對目標作形態(tài)學處理,使前景圖像更加清晰、完整便于后期對移動目標作實時跟蹤處理。
4 實驗結(jié)果與分析
4.1 前景檢測結(jié)果與分析
實驗在window7系統(tǒng)下,采用開源OpenCV2庫和軟件VS2012,對移動目標進行實驗仿真。圖2(a)為室內(nèi)視頻場景;圖2(b)采用傳統(tǒng)的三幀差法;圖2(c)采用碼本算法;圖2(d)為本文方法。
由圖2(b)分析得:傳統(tǒng)的三幀差法經(jīng)過腐蝕膨脹可以有效的提取目標的輪廓信息;圖2(c)分析得:碼本算法通過對背景的實時更新,有效提取了前景的內(nèi)部信息;圖2(d)分析得:本文方法能有效的提取出相對完整的前景信息,抑制外部環(huán)境對前景檢測的影響,提高了移動目標前景檢測的魯棒性。
4.2 跟蹤結(jié)果與分析
本文采用Camshift算法與質(zhì)心算法結(jié)合對目標進行跟蹤,進一步說明本文方法對前景檢測的優(yōu)越性。圖3為三幀差法跟蹤效果圖,圖4為本文方法跟蹤效果圖。
由圖3分析得:在采用相同的跟蹤方法下。由于三幀差法前景檢測時出現(xiàn)空洞現(xiàn)象,邊緣并不是連續(xù)的,導致再對目標進行連通區(qū)域連接時會將目標分為多個子目標,從而出現(xiàn)多個被標記的目標,導致標記出現(xiàn)偏差或者多個目標被標記。圖4分析得:目標在跟蹤窗口中移動,移動目標運動的方向和路徑波動不大。有效的解決移動目標遮擋問題,當目標發(fā)生尺寸變化,其跟蹤窗口也隨之改變,有效避免了目標跟蹤丟失問題。
5 結(jié)束語
本文采用融合三幀差法與自適應碼本算法的前景檢測方法。通過驗證:該方法能夠提取出相對完整前景對象,有效解決了三幀差法前景檢測時,目標出現(xiàn)“空洞”的問題;該方法結(jié)合Camshift跟蹤算法,有效解決了目標變形、遮擋時目標跟蹤丟失的問題;該方法結(jié)合質(zhì)心算法能夠直觀的觀察到移動目標的運動狀態(tài)和軌跡。因此,在智能監(jiān)控系統(tǒng)中,對移動目標進行檢測與跟蹤分析時,本文方法可以提取相對完整的前景信息,在環(huán)境相對簡單情況下,可以對目標做到實時跟蹤處理,便于對監(jiān)控視頻中移動目標的內(nèi)容分析。
參考文獻
[1]張英,車進,牟曉凱等,改進的Meanshift運動目標跟蹤算法[J]電視技術,201 6,40 (10): 97-100.
[2]周同雪,朱明,視頻圖像中的運動目標檢測[J].液晶與顯示,2017,32 (01): 40-47.
[3]葉勇,管業(yè)鵬,李晶晶,基于混合高斯模型與碼本算法的前景目標檢測[J].計算