摘 要: 針對視頻中運(yùn)動行人遮擋問題,提出了一種基于區(qū)域特征的頂視運(yùn)動行人檢測算法。首先結(jié)合三幀差分和背景減除算法檢測出所有可能的行人運(yùn)動區(qū)域,然后找出運(yùn)動區(qū)域的輪廓以及區(qū)域的外接矩形,并計(jì)算運(yùn)動區(qū)域的面積,最后根據(jù)外接矩形的長寬比以及運(yùn)動區(qū)域面積進(jìn)行區(qū)域篩選,找出有效的運(yùn)動區(qū)域,從而檢測出行人。實(shí)驗(yàn)結(jié)果表明,該方法能夠快速準(zhǔn)確地檢測出視頻中的行人。
關(guān)鍵詞: 區(qū)域特征; 運(yùn)動行人檢測; 區(qū)域篩選; 頂視視頻
運(yùn)動目標(biāo)檢測與跟蹤是計(jì)算機(jī)視覺領(lǐng)域的一個重要課題,在視頻監(jiān)控、交通監(jiān)測、機(jī)器人導(dǎo)航和軍事等領(lǐng)域都有廣泛的應(yīng)用[1]。目前國內(nèi)外研究者進(jìn)行了大量的運(yùn)動目標(biāo)檢測研究工作[1-3]。行人檢測在商業(yè)、國防、金融等多個領(lǐng)域發(fā)揮了重要作用,是行人跟蹤及行為理解等技術(shù)的基礎(chǔ)工作,近些年來對視頻序列中的人體行為分析已經(jīng)成了計(jì)算機(jī)視覺研究的一個熱點(diǎn)和難點(diǎn),因此對運(yùn)動行人的檢測具有特殊的意義。
常用的運(yùn)動區(qū)域檢測的算法主要有幀間差分、背景減除以及光流法[4]。光流法由于運(yùn)算較復(fù)雜而不利于運(yùn)動目標(biāo)的實(shí)時檢測。背景減除算法因其快速簡捷而成為運(yùn)動目標(biāo)檢測的主要方法,但是對光照變化敏感,對室外的復(fù)雜場景檢測也是一個難題[5],因此該方法適用于背景較穩(wěn)定情況下的運(yùn)動目標(biāo)的檢測。幀間差分根據(jù)連續(xù)兩幀圖像的差值得到中間幀運(yùn)動目標(biāo)的輪廓,能夠去除因?yàn)檫\(yùn)動而顯露的背景影響,從而得到準(zhǔn)確的運(yùn)動目標(biāo)輪廓,且對光照的適應(yīng)性強(qiáng)。改進(jìn)的幀間差分——三幀差分(對稱差分)將中間幀和前后幀的二值幀差圖像灰度邊緣重合部分作為中間幀運(yùn)動目標(biāo)輪廓,可有效消除運(yùn)動目標(biāo)遮擋和重現(xiàn)的紋理背景。
本文首先采用背景減除和三幀差分在行人頂視視頻序列檢測出運(yùn)動區(qū)域,然后對參考文獻(xiàn)[2]中非剛性物體運(yùn)動區(qū)域篩選方法進(jìn)行改進(jìn),運(yùn)用運(yùn)動區(qū)域外接矩形的長寬比以及運(yùn)動區(qū)域的面積特征進(jìn)行區(qū)域篩選,實(shí)現(xiàn)了運(yùn)動行人的快速檢測。
1 算法原理
頂視視頻的運(yùn)動行人檢測可以解決運(yùn)動行人的遮擋問題,且便于行人運(yùn)動區(qū)域的分析,頭部和肩部作為主要的運(yùn)動行人特征。通常情況下,采集的原始視頻序列圖像往往存在很嚴(yán)重的噪聲,因此先對原始圖像進(jìn)行濾波處理。直接從采集到的彩色視頻幀中檢測運(yùn)動目標(biāo)運(yùn)算量過大,而且運(yùn)動目標(biāo)檢測的目的是對運(yùn)動目標(biāo)定位、跟蹤以及計(jì)數(shù),因此首先進(jìn)行灰度變換,提高檢測的實(shí)時性。本文算法的整體流程如圖1所示。

1.1運(yùn)動區(qū)域檢測
1.1.1背景減除
背景減除算法的基本思想是將當(dāng)前視頻圖像與事先存儲或?qū)崟r更新得到的背景圖像相減,根據(jù)一定的閾值來判斷背景和運(yùn)動前景,從而得到運(yùn)動區(qū)域,步驟為:
(1) 首先選取第一幀為背景幀Bk,此時k=1。采用如圖2所示的背景累積差分算法[2]更新背景圖像Bk。其中a∈{0,1}表示用當(dāng)前幀更新背景的速率,a=0時,不更新背景;a=1時,背景被當(dāng)前幀Ii代替。一般情況下a=0.006。


(4)重復(fù)步驟(2)、步驟(3)可得到一系列二值背景減除圖像BWi。
1.1.2 三幀差分
幀間差分是根據(jù)連續(xù)兩幀圖像的差值來判斷有無運(yùn)動物體:

其中,T是用來對幀間差分圖像進(jìn)行二值處理的閾值,相鄰幀差值大于該值時認(rèn)為是運(yùn)動前景,反之則認(rèn)為是背景點(diǎn)。
由于相鄰幀間的時間間隔很短,可以克服光照變化、天氣變化等外界干擾,能夠去除因?yàn)檫\(yùn)動而顯露的背景的影響,從而得到運(yùn)動目標(biāo)輪廓。對非剛性物體(如人)而言,不是物體的各個部分都同時發(fā)生移動,相鄰幀之間必然有重疊的部分,與重疊部分對應(yīng)的幀差圖像中將出現(xiàn)“空洞”。
通常幀間差分檢測出來的運(yùn)動區(qū)域比實(shí)際的運(yùn)動區(qū)域大,通過對幀間差分進(jìn)行改進(jìn)得到三幀差分法,即選擇連續(xù)的三幀視頻序列Ii-1、Ii+1進(jìn)行幀差處理[4]。具體過程為:首先按照式(4)分別計(jì)算Ii-1、Ii和Ii+1的二值幀間差分圖像,分別記為Ii,i-1和Ii+1,i,然后將Ii,i-1和Ii+1,i作與運(yùn)算,兩者的公共部分即為中間幀Ii的運(yùn)動輪廓:

1.2 區(qū)域輪廓提取及外接矩形標(biāo)記
通過背景減除和三幀差分結(jié)合的方法提取出了運(yùn)動區(qū)域,采用OpenCV函數(shù)庫中的輪廓查找函數(shù)cvFindContours可以找出運(yùn)動區(qū)域的輪廓。通過設(shè)置method參數(shù)可以選擇提取的輪廓類型,本文選取method=CV_RETR_EXTERNAL,從而查找出區(qū)域的最外層輪廓。然后采用cvBoundingRect 函數(shù)計(jì)算輪廓點(diǎn)集最外面的矩形邊界并返回運(yùn)動區(qū)域的外接矩形。
1.3 區(qū)域篩選
本文針對頂視視頻序列進(jìn)行運(yùn)動行人檢測,行人大部分都是上下(進(jìn)出)行走,各個運(yùn)動區(qū)域的面積(像素值為255的像素點(diǎn)的個數(shù))也不相等,面積較小的運(yùn)動區(qū)域可能是手、腳等部位的運(yùn)動帶來的,而肩部(包含背部)的運(yùn)動區(qū)域面積很大,而且肩部區(qū)域的外接矩形長寬比均小于1。因此,本文對參考文獻(xiàn)[2]中標(biāo)記區(qū)域外接矩形算法進(jìn)行改進(jìn),結(jié)合外接矩形的長寬比及運(yùn)動區(qū)域面積篩選出具有代表性且更有效的肩部區(qū)域,從而檢測出運(yùn)動行人。
2 實(shí)驗(yàn)結(jié)果分析
本文算法在VC++6.0平臺上實(shí)現(xiàn),結(jié)合OpenCV函數(shù)庫,對單目攝像機(jī)正上方采集的通道內(nèi)的視頻序列進(jìn)行處理[6],視頻畫面大小為320×240,視頻幀率為25幀/s??紤]到該環(huán)境下視頻背景簡單,光照變化也不大,結(jié)合觀察到的視頻信息特點(diǎn),背景更新率取值為a=0.006,選擇固定閾值70和30分別對背景減除圖像和幀間差分圖像進(jìn)行二值化。針對二值背景減除圖像,采用形態(tài)學(xué)開運(yùn)算去除雜散的點(diǎn)和小的運(yùn)動區(qū)域,同時平滑了運(yùn)動區(qū)域的邊界。由于二值三幀差分圖像的內(nèi)容是運(yùn)動目標(biāo)的輪廓,因此采用形態(tài)學(xué)閉運(yùn)算進(jìn)行處理,填充小的空洞,搭接鄰近的輪廓,提高運(yùn)動輪廓的完整性。以視頻序列第72幀為例,運(yùn)動區(qū)域檢測的實(shí)驗(yàn)結(jié)果如圖3所示。

圖3(a)是更新后的背景幀,圖3(b)、圖3(c)和圖3(d)分別是視頻序列中的第71、72和73幀的灰度圖像,圖3(e)是幀間差分法得到的第72幀的運(yùn)動輪廓,圖3(f)是三幀差分得到的第72幀的運(yùn)動輪廓圖,較圖3(e)輪廓更細(xì),且圖3(e)中的小的區(qū)域被去除了,因此圖3(f)表示的第72幀的運(yùn)動輪廓更加精確。圖3(g)是通過背景減除法得到的二值圖像,圖3(h)是圖3(f)和圖3(g)相或得到的前景圖像,即背景減除和三幀差分算法相結(jié)合檢測到的運(yùn)動區(qū)域。相比于圖3(g),圖3(h)區(qū)域面積更大,更具有代表性。對視頻序列中其他幀進(jìn)行實(shí)驗(yàn)分析亦可得到同樣的結(jié)論。
運(yùn)動區(qū)域檢測出來后,再進(jìn)行區(qū)域輪廓查找以及外接矩形標(biāo)記。肩部運(yùn)動區(qū)域外接矩形的長寬比應(yīng)不大于1。對包含單一行人進(jìn)出(單進(jìn)單出)的視頻序列中前后各幀運(yùn)動區(qū)域進(jìn)行面積統(tǒng)計(jì),統(tǒng)計(jì)結(jié)果如圖4所示。

當(dāng)行人從剛進(jìn)入監(jiān)控范圍到監(jiān)控區(qū)域中心時,運(yùn)動區(qū)域面積將增至最大,表示有運(yùn)動物體,當(dāng)行人到達(dá)攝像機(jī)正下方時區(qū)域面積最大;然后區(qū)域面積減小至0,表示運(yùn)動物體消失或靜止。根據(jù)面積統(tǒng)計(jì)結(jié)果和實(shí)際觀察的運(yùn)動區(qū)域的情況,本文選擇700個像素點(diǎn)為面積閾值,對小于該值的區(qū)域不再作標(biāo)記。結(jié)合外接矩形長寬比小于1的特征,對第72幀運(yùn)動區(qū)域進(jìn)行檢測,結(jié)果如圖5所示。

由圖5可以看出,圖5(a)中對手腳運(yùn)動出現(xiàn)的較小運(yùn)動區(qū)域也進(jìn)行了標(biāo)記,影響運(yùn)動行人的跟蹤計(jì)數(shù),圖5(b)中只對較大的肩部運(yùn)動區(qū)域進(jìn)行了標(biāo)記。由此可以看出,本文對參考文獻(xiàn)[2]中區(qū)域查找和外接矩形標(biāo)記算法改進(jìn)后,篩選出了更有效的運(yùn)動區(qū)域。對視頻序列中含有兩個行人(一進(jìn)一出,同進(jìn)同出)的情況進(jìn)行實(shí)驗(yàn),結(jié)果表明本文算法也能準(zhǔn)確檢測出運(yùn)動行人,其中一幀的檢測結(jié)果如圖6所示。

本文通過背景累積差分更新背景減除法克服了光線微弱變化帶來的干擾,利用三幀差分檢測出更有效的運(yùn)動區(qū)域輪廓,通過背景減除和三幀差分相結(jié)合的算法檢測出了運(yùn)動區(qū)域,利用運(yùn)動區(qū)域外接矩形的長寬比特征以及運(yùn)動區(qū)域面積特征對檢測出的運(yùn)動區(qū)域進(jìn)行篩選,準(zhǔn)確找出了代表行人的肩部運(yùn)動區(qū)域,從而檢測出了運(yùn)動行人。實(shí)驗(yàn)結(jié)果表明,本文算法能快速準(zhǔn)確地檢測出含有單一行人(單進(jìn)單出)、含有兩個行人(一進(jìn)一出,同進(jìn)同出)視頻序列中的運(yùn)動行人,為行人跟蹤及計(jì)數(shù)工作奠定了基礎(chǔ)。
參考文獻(xiàn)
[1] 余靜, 游志勝. 自動目標(biāo)識別與跟蹤技術(shù)研究綜述[J].計(jì)算機(jī)應(yīng)用研究, 2005,22(1):12-14.
[2] 吳曉陽.基于OpenCV的運(yùn)動目標(biāo)檢測與跟蹤[D].杭州:浙江大學(xué),2008.
[3] 張建榮,姜昱明. 基于逆運(yùn)動學(xué)的人體步態(tài)特征提取[J].計(jì)算機(jī)仿真,2005,22(5):172-175.
[4] 莫林, 廖鵬,劉勛. 一種基于背景減除與三幀差分的運(yùn)動目標(biāo)檢測算法[J]. 微計(jì)算機(jī)信息, 2009,25(4-3):
274-276.
[5] POWER P W, SCHOONEES J A. Understanding background mixture models for foreground segmentation[C].Proceedings Image and Vision Computing, New Zealand,2002:266-271.
[6] LEFLOCH D. Real time people counting system using video camera[D]. University of Bourgogne, 2007.
