王小鵬,渠燕紅,馬 鵬,張永芳
(蘭州交通大學(xué)電子與信息工程學(xué)院,甘肅蘭州 730070)
隨著計(jì)算機(jī)視覺技術(shù)的發(fā)展,利用視頻監(jiān)控[1]和圖像分析技術(shù)實(shí)現(xiàn)人流的智能統(tǒng)計(jì)分析已日漸成熟,并已逐步在車站、碼頭、機(jī)場和超市等公共場所得到應(yīng)用,通過人流統(tǒng)計(jì)可以獲取出入現(xiàn)場的人流密度,協(xié)助管理和決策者更好地進(jìn)行資源管理和分配,科學(xué)合理地規(guī)劃管理方案,同時(shí)也為人群密集場所提供安全預(yù)警。目前人數(shù)統(tǒng)計(jì)系統(tǒng)一般采用運(yùn)動(dòng)目標(biāo)識別和跟蹤相結(jié)合的方法,常見方法可以分為基于統(tǒng)計(jì)分類[2]和基于模板匹配[3]的人數(shù)統(tǒng)計(jì),其中基于模板匹配的方法首先建立頭部特征模型,利用該模型在視頻圖像中識別目標(biāo),然后通過跟蹤實(shí)現(xiàn)統(tǒng)計(jì)。文獻(xiàn)[4]提出了結(jié)合形狀特征信息和多曲率尺度的物體輪廓檢測方法,頭部檢測效果較好,但運(yùn)算量較大;文獻(xiàn)[5]利用頭部幾何輪廓和HSI顏色空間實(shí)現(xiàn)檢測,有效抑制了光照變化和陰影的影響;文獻(xiàn)[6]利用Kalman濾波對跟蹤窗口位置進(jìn)行預(yù)測,該方法在行人軌跡交叉的情況下依然能夠連續(xù)跟蹤。
要準(zhǔn)確統(tǒng)計(jì)出入口人流,首先需要準(zhǔn)確分割出幀圖像中的單個(gè)人,剔除其他非人目標(biāo),這就需要選擇一種或多種能夠可靠表征單人的特征。由于人頭部近似剛性,不存在形變,因此將頭部作為人個(gè)體特征較為理想。同時(shí)攝像頭垂直向下可以采集到較完整的頭部特征,減少遮擋現(xiàn)象。因此本文使用豎直向下攝像頭進(jìn)行監(jiān)控場景內(nèi)的行人頭部檢測,進(jìn)而進(jìn)行人流統(tǒng)計(jì)。對采集的視頻圖像,首先根據(jù)混合高斯模型[7]檢測出前景圖像,分割出感興趣的人流區(qū)域[8]并進(jìn)行邊緣檢測;然后對邊緣曲線進(jìn)行分類,僅選取滿足條件的獨(dú)立曲線進(jìn)行基于梯度方向的RHT圓檢測[9],并利用初始化的頭部篩選模型對圓形區(qū)域進(jìn)行篩選;最后通過Kalman濾波器實(shí)現(xiàn)目標(biāo)預(yù)測與跟蹤,并依據(jù)目標(biāo)反饋的特征參數(shù)更新篩選模型參數(shù)。由于該方法檢測并處理的區(qū)域是感興趣的人流區(qū)域,因此可以減少運(yùn)算量,同時(shí)通過RHT圓檢測消除了類圓非目標(biāo)的干擾,提高統(tǒng)計(jì)準(zhǔn)確率。
人流計(jì)數(shù)方法流程如圖1所示。首先提取視頻幀圖像前景,根據(jù)前景圖像分離出感興趣區(qū)域并進(jìn)行邊緣檢測;然后利用基于邊緣分類和梯度信息的RHT變換方法檢測出圓形目標(biāo),并依據(jù)基于面積和顏色信息的篩選模型對檢測結(jié)果進(jìn)行過濾,篩選出行人頭部;最后采用基于Kalman濾波預(yù)測的跟蹤對目標(biāo)進(jìn)行跟蹤和計(jì)數(shù),并將跟蹤目標(biāo)信息反饋給篩選模塊。
圖1 人數(shù)統(tǒng)計(jì)方法流程
混合高斯模型對光照變化有較強(qiáng)的適應(yīng)能力,由于本文的目標(biāo)識別與跟蹤區(qū)域?yàn)榍熬安糠?人流)而非背景,因此,將前景區(qū)域設(shè)置為感興趣區(qū)域。首先采用混合高斯模型提取前景二值圖像,以此作為掩模與原始幀圖像做點(diǎn)乘運(yùn)算,去除相對靜止的背景區(qū)域,分割出感興趣區(qū)域,然后再利用Canny算子提取感興趣區(qū)域邊緣。假設(shè)目標(biāo)前景二值圖像為h(x,y),原始彩色圖像的RGB分量依次為R(x,y),G(x,y)和B(x,y),則感興趣區(qū)域可表示為
( 1 )
感興趣區(qū)域分割和邊緣檢測結(jié)果如圖2所示,將前景圖像設(shè)置為感興趣區(qū)域,只對該區(qū)域進(jìn)行邊緣檢測,一方面可減小后處理運(yùn)算量,另一方面避免了背景中類似頭部的類圓目標(biāo)對后續(xù)特征檢測的影響。
(a)原始圖像 (b)感興趣區(qū)域
(c)邊緣檢測結(jié)果圖2 感興趣區(qū)域邊緣提取結(jié)果
通過感興趣區(qū)域邊緣提取獲取行人等邊緣后,需要進(jìn)一步提取頭部而剔除其他部分,由于頭部在垂直拍攝時(shí),其形狀基本為圓形。因此,可以通過檢測圓的方法進(jìn)行頭部檢測。RHT是一種有效圓檢測方法,通過隨機(jī)抽取3個(gè)不在同一條直線上的點(diǎn),映射成參數(shù)空間中的一個(gè)點(diǎn),并根據(jù)參數(shù)累計(jì)結(jié)果確定真正的圓。RHT變換是多到一映射,減小了傳統(tǒng)Hough變換一到多映射的計(jì)算量,這種優(yōu)勢在處理簡單圖像時(shí)明顯有效,但對于視頻中復(fù)雜場景的幀圖像,由于無效積累過多,會(huì)導(dǎo)致計(jì)算量過大。為了降低無效累積的概率,文獻(xiàn)[10]提出基于梯度信息的RHT變換改進(jìn)算法,利用梯度方向信息對參數(shù)空間累積操作之前的采樣點(diǎn)進(jìn)行共圓判斷,只有通過判斷的點(diǎn)才能進(jìn)行參數(shù)空間的累積操作,該算法雖然對采樣點(diǎn)進(jìn)行了篩選,但對于邊緣點(diǎn)集較多的情況,計(jì)算量仍然較大。為此,提出一種基于邊緣分類和梯度信息的RHT圓檢測方法,基本思路是對檢測出的邊緣信息進(jìn)行分類,選取滿足一定條件的單獨(dú)邊緣曲線進(jìn)行基于梯度信息的RHT圓變換,從而減小運(yùn)算量。
Canny邊緣檢測后得到一些相互獨(dú)立的邊緣曲線,由于同一頭部輪廓點(diǎn)必然位于同一條邊緣上,而RHT變換采樣是隨機(jī)抽取3個(gè)不在一條直線上的點(diǎn),像素總數(shù)小于3的邊緣曲線不滿足該條件。因此,本文方法獲得的獨(dú)立邊緣曲線可以分為兩類:一類是像素點(diǎn)數(shù)大于3;另一類是小于等于3。如果僅對像素點(diǎn)數(shù)大于3的獨(dú)立邊緣曲線進(jìn)行基于梯度信息的RHT圓檢測,便可以剔除部分無效的邊緣曲線,減少無效的累積,從而減少運(yùn)算時(shí)間。假設(shè)邊緣圖像中邊緣點(diǎn)數(shù)大于3的獨(dú)立曲線集為{D1,D2,D3,…,Dn},那么改進(jìn)后的頭部圓檢測算法過程如下:
步驟1構(gòu)造邊緣曲線Di的點(diǎn)集Oi,記錄各點(diǎn)梯度方向,初始化參數(shù)單元集P=NULL和循環(huán)次數(shù)k=0。
步驟2從Oi中隨機(jī)抽取3個(gè)點(diǎn):d1(x1,y1),d2(x2,y2),d3(x3,y3)。
步驟3計(jì)算這3個(gè)點(diǎn)的梯度方向直線α1和α2的交點(diǎn)c1(x4,y4),α2和α3的交點(diǎn)c2(x5,y5)。若滿足|x4-x5|≤δ,|y4-y5|≤δ(也可計(jì)算α1和α3的交點(diǎn),選取其中兩個(gè)交點(diǎn)進(jìn)行判斷即可),則利用式( 2 )~式( 4 )計(jì)算這3個(gè)點(diǎn)所確定的圓參數(shù)(a,b,r),轉(zhuǎn)至步驟4;否則,轉(zhuǎn)至步驟7。
( 2 )
( 3 )
( 4 )
步驟4在P中尋找點(diǎn)pc(xc,yc),如果滿足以下條件,則轉(zhuǎn)至步驟6,否則轉(zhuǎn)至步驟5。
( 5 )
步驟5將特征參數(shù)(a,b,r)作為新參數(shù)插入P,其對應(yīng)計(jì)數(shù)值設(shè)置為1,轉(zhuǎn)至步驟7。
步驟6將pc的計(jì)數(shù)值加1,如果小于指定閾值N,轉(zhuǎn)至步驟7;否則轉(zhuǎn)至步驟8。
步驟7令k=k+1,若k>Kmax,則結(jié)束,否則轉(zhuǎn)至步驟2。
步驟8pc為候選圓特征參數(shù),若該參數(shù)對應(yīng)圓邊緣點(diǎn)數(shù)m>Mmin,則轉(zhuǎn)至步驟9;否則為虛假圓,從P中刪除pc,轉(zhuǎn)至步驟2。
步驟9pc為真實(shí)圓參數(shù),將落在參數(shù)相對應(yīng)特征上的點(diǎn)從Di中去掉,判斷已檢測到圓的數(shù)目是否達(dá)到規(guī)定值,或者檢測一個(gè)圓循環(huán)次數(shù)是否達(dá)到最大值,如果是則結(jié)束;否則,重置P=NULL,k=0,轉(zhuǎn)至步驟2。
上述步驟中,Kmax為設(shè)定檢測一個(gè)圓所允許采樣的最大循環(huán)次數(shù);Mmin為圓所需的最小點(diǎn)數(shù),一般設(shè)為2πRλ,λ為固定系數(shù),取值范圍為0~1;m為圖像空間中落到候選圓上的點(diǎn)數(shù)。
在攝像頭垂直拍攝條件下,行人具有類圓的頭部輪廓,但不同行人頭部大小之間存在差異,發(fā)色相對于周圍環(huán)境有明顯不同,因此采用頭部面積和顏色[11]信息可以建立篩選模型。
篩選模型根據(jù)人體先驗(yàn)知識和實(shí)際場景頭部特征初始化參數(shù),模型參數(shù)為Smin,Smax,Rcb和Rcr,其中Smin和Smax是根據(jù)實(shí)際情況設(shè)置的頭部面積最小和最大值。假設(shè)檢測出的頭部圓半徑為r,那么頭部區(qū)域面積S=πr2,如果Smin-δ≤S≤Smax+δ,則說明目標(biāo)大小符合要求。頭發(fā)顏色信息根據(jù)采集的發(fā)色樣本,利用混合高斯模型對不同顏色分量概率分布進(jìn)行描述,可以發(fā)現(xiàn)常見的黑色、棕色和金色等頭發(fā)顏色在YCbCr顏色空間具有較好的聚類效果,因此,利用Rcb和Rcr分別表示YCbCr空間內(nèi)的Cb和Cr通道值,且兩者滿足
( 6 )
根據(jù)顏色分量的聚類范圍,對檢測出的頭部特征進(jìn)行顏色信息篩選,進(jìn)一步剔除不滿足條件的圓形區(qū)域。
通過建立面積和顏色信息的篩選模型可以去除偽目標(biāo)。圖3(a)是僅進(jìn)行圓檢測的結(jié)果,圖3(b)是加入篩選模型后的檢測結(jié)果,可以看出圖3(a)將垃圾桶檢測出來,而圖3(b)則剔除了垃圾桶,而將頭部保留。
(a)圓檢測結(jié)果 (b)加入篩選模型后圖3 頭部特征檢測結(jié)果
人流屬于實(shí)時(shí)移動(dòng)目標(biāo),當(dāng)頭部檢測出來后,可以通過跟蹤頭部實(shí)現(xiàn)每個(gè)行人的狀態(tài)估計(jì)和位置預(yù)測,通過關(guān)聯(lián)準(zhǔn)則將視頻序列中相同的單個(gè)人準(zhǔn)確匹配,從而獲得行人在連續(xù)視頻中的運(yùn)動(dòng)軌跡。由于Kalman濾波[12]預(yù)測能夠較為精準(zhǔn)地預(yù)測目標(biāo)運(yùn)動(dòng)軌跡,并且場景中運(yùn)動(dòng)頭部在相鄰幾幀圖像內(nèi)的運(yùn)動(dòng)可以近似為勻速直線運(yùn)動(dòng)。因此,本文采用基于Kalman濾波預(yù)測的頭部跟蹤方法,利用Kalman濾波器對運(yùn)動(dòng)頭部在下一幀的位置進(jìn)行預(yù)測和更新,將預(yù)測出的頭部目標(biāo)與當(dāng)前幀目標(biāo)進(jìn)行匹配,最后將匹配成功的目標(biāo)反饋到篩選模型庫,實(shí)現(xiàn)篩選信息的更新。
將頭部外接矩形作為跟蹤窗口,依次選取跟蹤窗口中心點(diǎn)坐標(biāo)、速度和頭部區(qū)域的均值和方差作為狀態(tài)模型參量,目標(biāo)狀態(tài)向量為
( 7 )
( 8 )
( 9 )
式中:pix(x,y)為半徑為R,中心點(diǎn)位于(x,y)的頭部區(qū)域內(nèi)像素值;N為頭部區(qū)域內(nèi)像素總數(shù)。利用頭部檢測結(jié)果對狀態(tài)模型初始化后,進(jìn)行基于Kalman預(yù)測的跟蹤與計(jì)數(shù),具體過程如下:
(10)
(11)
(12)
步驟2狀態(tài)更新,根據(jù)實(shí)際觀測值和預(yù)測出的狀態(tài)方程以及誤差協(xié)方差對預(yù)測結(jié)果進(jìn)行修正,獲得系統(tǒng)狀態(tài)的最佳估計(jì)值,更新過程如下
(13)
(14)
(15)
(16)
式中:Zk為系統(tǒng)觀測向量;V為觀測噪聲,設(shè)為零均值高斯白噪聲;H為設(shè)定觀測矩陣;R為觀測噪聲協(xié)方差;I為單位矩陣;Kk為卡爾曼增益。
步驟3頭部匹配,將當(dāng)前檢測的結(jié)果與之前檢測目標(biāo)進(jìn)行匹配。
(17)
式中:Ud為目標(biāo)之間距離的閾值。如果匹配成功,將目標(biāo)信息反饋到篩選模型進(jìn)行更新;否則,說明目標(biāo)可能因?yàn)榭焖僖苿?dòng)或者遮擋而產(chǎn)生假消失等現(xiàn)象,此時(shí)直接利用Kalman預(yù)測值更新參數(shù),并將其標(biāo)記為假消失對象。如果在規(guī)定時(shí)間段內(nèi)仍然沒有找到匹配的對象,則將其判為離場。
步驟4人數(shù)統(tǒng)計(jì),進(jìn)出口處人流自動(dòng)統(tǒng)計(jì)采用雙線法進(jìn)行軌跡判斷,即在視頻圖像中設(shè)定兩條計(jì)數(shù)虛擬線,虛擬線之間區(qū)域視為計(jì)數(shù)區(qū)域。當(dāng)跟蹤窗口中心點(diǎn)進(jìn)入兩線之間區(qū)域,計(jì)數(shù)開始,如果中心點(diǎn)離開計(jì)數(shù)區(qū)域,則計(jì)數(shù)結(jié)束。
圖4給出了基于Kalman預(yù)測的跟蹤和計(jì)數(shù)過程結(jié)果,由于引入了Kalman預(yù)測,避免了行人運(yùn)動(dòng)過快或遮擋導(dǎo)致的跟蹤丟失等情況。
(a)雙向人流密集場景
(b)背景變化場景
(c)攜帶行李場景圖4 跟蹤計(jì)數(shù)過程
為了驗(yàn)證方法的有效性和計(jì)數(shù)性能,采用實(shí)際場景監(jiān)控視頻進(jìn)行仿真測試,采用MATLAB和C++語言進(jìn)行編程仿真。采用的評價(jià)指標(biāo)為檢測率DR和準(zhǔn)確率AR,具體定義如下
(18)
(19)
式中:p為正確檢測人數(shù);q為誤檢人數(shù);r為漏檢人數(shù)。
首先選取不同場景的監(jiān)控視頻進(jìn)行測試,分別為圖4(a)的雙向密集人流且存在相互遮擋,圖4(b)背景環(huán)境發(fā)生突變以及圖4(c)行人攜帶行李的場景。從表1數(shù)據(jù)可以看出,平均準(zhǔn)確率在94%以上,由于設(shè)置感興趣區(qū)域和頭部篩選模型能夠減弱背景中類圓物體的干擾,采用Kalman濾波跟蹤減少了遮擋導(dǎo)致的漏檢,使本文方法能夠在不同場景下具有較高的計(jì)數(shù)準(zhǔn)確率。但在人流密度較大的情況下,由于行人之間長時(shí)間遮擋和頭部輪廓的嚴(yán)重缺失,計(jì)數(shù)準(zhǔn)確率會(huì)出現(xiàn)降低。另外,當(dāng)行人攜帶類似頭部大小和顏色行李時(shí),容易誤判為行人,導(dǎo)致計(jì)數(shù)誤差。
表1 不同場景檢測率和準(zhǔn)確率測試結(jié)果
為了進(jìn)一步評估本文方法,對大小為320×240的視頻序列與不同方法進(jìn)行了實(shí)驗(yàn)數(shù)據(jù)對比。表2(其中AT表示運(yùn)算時(shí)間)為不同方法計(jì)數(shù)之間的測試結(jié)果,其中基于HOG特征的Adaboost目標(biāo)檢測檢測率較高,但漏計(jì)較為嚴(yán)重,降低了計(jì)數(shù)準(zhǔn)確率;結(jié)合Hough變換檢測與光流法跟蹤的人流統(tǒng)計(jì)僅以Hough檢測結(jié)果作為跟蹤依據(jù),不能有效排除類圓物體干擾,且光流法計(jì)算復(fù)雜度較大,使檢測率和準(zhǔn)確率降低。相比之下,本文設(shè)置的感興趣區(qū)域和篩選模型,剔除了類圓物體的干擾,改進(jìn)的RHT變換提高了圓檢測的效率,因此,本文方法的總體檢測率和準(zhǔn)確率相對較高,計(jì)算復(fù)雜度較低。
表2 不同方法結(jié)果對比
本文提出一種利用視頻圖像中頭部特征快速且較準(zhǔn)確實(shí)現(xiàn)雙向人流計(jì)數(shù)的方法,通過設(shè)置感興趣區(qū)域和篩選模型,消除背景中類圓物體的干擾,提高檢測的準(zhǔn)確率;提出了基于邊緣分類和梯度信息的RHT變換圓檢測方法,提高頭部檢測的速度;根據(jù)跟蹤匹配結(jié)果,將匹配成功目標(biāo)信息反饋給篩選模型,實(shí)現(xiàn)了模型的更新,保證了篩選條件的準(zhǔn)確性。