許向陽(yáng) 姚洪猛



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