龐首顏,張元勝
(重慶交通大學信息科學與工程學院,重慶, 400074)
隨著社會的發(fā)展,人們對安全的要求逐漸提高。智能監(jiān)控已經(jīng)逐漸從軍事偵查、氣象監(jiān)控、科學研究等專業(yè)領域走進了人們的日常生活,逐漸在銀行、高速公路、智能小區(qū)等廣泛使用起來。運動目標檢測一直都是視頻流分析的重點和難點,其檢測的準確精度直接決定了后續(xù)的目標跟蹤和識別等研究,是視頻圖像跟蹤識別系統(tǒng)中的重要環(huán)節(jié)。目前常用的運動目標檢測方法有背景差分法[1]、幀間差分法[2]和光流法[3]。
幀間差分法是在連續(xù)的圖像序列中2個或3個相鄰幀間,采用逐像素的差分并閾值化來提取出圖像中的運動區(qū)域,它能較快地檢測出視頻圖像中發(fā)生變化的部分。由于連續(xù)兩幀圖像之間的時間間隔較短,差分圖像受光線、氣候等環(huán)境因素變化的影響較較小,因此具有很強的自適應性。但當連續(xù)兩幀圖像灰度和紋理比較接近時將無法得到完整的目標,形成較明顯的目標“空洞”,從而不利于目標的后期進一步分析與識別。
此處以單目固定機位攝像機輸出的視頻圖像序列為研究對象,針對對稱差分提出了一種改進算法。首先通過三幀差分法快速得到運動目標,這時候的運動目標一般都伴隨著“空洞”和“重影”[4],所以先對其進行二值填充,得到較完整的運動區(qū)域二值填充圖。為了進一步精確檢測運動目標,結合Canny算子對中間幀進行物體的邊緣處理[5],得到其二值邊緣模板,然后與該運動區(qū)域的二值填充圖相“與”,從而順利分割出運動目標。
在連續(xù)的視頻流中采集某一時間段里的視頻序列圖像,設f(x,y,t)表示t時刻當前幀,f(x,y,t-1),表示t時刻的前一幀,則幀間差分法為:
(1)先對連續(xù)2幀差分:
(2)對得到的差分結果進行閾值化得到二值結果:
幀間差分法能有效的抑制在背景差分法中屬于背景的噪音,運動前景輪廓的提取也比較完整。在實驗中可以發(fā)現(xiàn),幀間差分法對光線等場景變換不太敏感,能夠適應動態(tài)的環(huán)境,因此表現(xiàn)出較好的穩(wěn)定性。但幀間差分法檢測出來的物體是前后兩幀相對變化的部分,出現(xiàn)“雙影”的概率較大。另外,由于檢測出來的物體是前后兩幀相對變化的部分,無法檢測重疊部分,導致檢測到的目標發(fā)生“空洞”[6]。為了改進差分運算效果,提出了基于相鄰三幀的差分法。
在視頻序列中,設 f(x,y,t)表示 t時刻當前幀,其前后相鄰的兩幀分別用 f(x,y,t-1)和 f(x,y,t+1)表示,則三幀差分法為:
(2)利用公式(1)對差分結果閾值化得到二值結果。
常用的邊緣檢測算子[7]有Canny算子、Roberts算子、Sobel算子、Kirsch算子、Laplacian算子等。其中Roberts算子提取的邊緣比較粗,邊緣定位不是很準確,Soble算子對灰度簡便和噪聲較多的圖像處理效果比較好,常用于邊緣定位;Kirsch算子對灰度漸變和噪聲較多的圖像處理效果較好;LapLacian算子對圖像中的階躍邊緣點定位準確,但對噪聲非常敏感,容易造成一些不連續(xù)的檢測邊緣。它們都是局域窗口梯度算子,對噪聲敏感,所以在處理實際圖像時效果并不是十分明顯。而Canny算子不容易受噪聲干擾,能夠檢測出真正的弱邊緣,不容易別噪聲“填充”,更容易檢測出真正的弱邊緣,所以此處的邊緣檢測采取Canny算子。
對比幀間差分法,三幀差分法一定程度上解決了對目標運動速度的敏感性,增加了系統(tǒng)的魯棒性。同幀間差分法相同,三幀差分法可以對噪聲進行有效的抑制。幀間差分法和三幀差分法本質(zhì)上相同,都采用相鄰幀間的差值,尋找?guī)g不同的像素點,提取運動目標,因此是有著相同計算模式的兩種算法。在選擇幀間差距的時候由于目標運動速度的差異,也導致了三幀差分法的計算結果中部分目標中心會有“空洞”出現(xiàn)。所以此處結合三幀差分自身的特點及運動目標周圍的環(huán)境,制定算法。其具體的流程如圖1所示。
其具體步驟為:
圖1 程序流程圖
(1)分別對當前幀 f(x,y,t),前一幀 f(x,y,t-1),后一幀 f(x,y,t+1)進行平滑去噪;
(2)f(x,y,t),f(x,y,t-1),f(x,y,t+1)分別做差分,得到差分圖像 D1(x,y,t),D2(x,y,t);
(3)分別對差分結果 D1(x,y,t),D2(x,y,t)進行閾值二值化;
(4)對二值化后的差分結果進行相“與”運算,得到相“與”結果B(x,y,t);
(5)對 B(x,y,t)進行區(qū)域填充;
(6)對平滑去噪后當前幀f(x,y,t)進行Canny算子邊緣檢測,得到當前幀的物體邊緣結構;
(7)將當前幀的邊緣結構與步驟(5)的結果相“與”,得到運動目標的邊界;
(8)將(7)得到的目標邊界利用橢圓自適應膨脹,進一步完善不完整的邊界,從而得到封閉的邊界圖像,從而實現(xiàn)運動目標的順利提取。
此外,考慮到三幀差分法的計算量較背景差分法有較大的增加,因此將幀間間隔從連續(xù)的3幀擴大到相隔N幀的3幀,其中2≤N≤5,N的取值為經(jīng)驗值,在這個范圍內(nèi),目標運動速度小范圍的波動,程序仍然能夠保持準確性和穩(wěn)定性。
利用此處的方法在普通PC機(CPU為Intel(R)Pentium 2.00G Hz,內(nèi)存為2 GB)上,利用VC++6.0和Opencv1.0實現(xiàn)對圖像圖序列的處理,圖像序列的格式為 JPG,25幀/秒。檢測結果如圖2所示:
圖2(a)—(d)為圖像序列中每隔5幀提取的圖像;圖2(e)—(h)是三幀差分的結果;圖2(i)—(l)是此處算法提取的目標邊緣結果;圖2(m)—(p)是目標區(qū)域提取結果。可以看出三幀差分法檢測到的目標很模糊,而且輪廓不清晰,而文中算法可以比較準確的提取到目標的運動邊界,且對車輛等剛體的邊緣提取效果明顯,解決了傳統(tǒng)三幀差分算法里的邊緣檢測不完整的問題。此外,提取的目標區(qū)域結果比較完整,尤其對面積較大的目標提取效果良好,一定程度上解決了三幀差分算法易產(chǎn)生目標“空洞”的缺點,能準確的實現(xiàn)目標區(qū)域的提取。
圖2 圖像序列檢測結果
提出了基于三幀差分和Canny算子邊緣檢測相結合的運動目標檢測方法。該方法的優(yōu)點在于當有運動目標存在時,能準確地將運動邊緣檢測出來;另外,該方法也較好的實現(xiàn)了運動目標的提取。實驗結果表明,該方法快速準確,有一定的實用價值,不僅在光照變化和背景變化的條件下能夠檢測到目標的邊緣,而且在運動目標周圍背景存在過多邊緣時,仍能夠檢測到目標的邊緣,而且目標信息完整,抗噪性能佳。但該方法在運動目標面積較小的情況下,填充效果不理想,是下一步需要繼續(xù)研究的方向。
[1]HARTAOHU I,HARWOOD D,DAVIS L.Real-time surveillance of people and their activities[J].IEEE Trans Pattern Analysis and Ma2 chine Intelligence,2000,22(8):809-830
[2]LIPTON A,F(xiàn)UJIYOSHI H,PATIL R.Moving target classification and tracking from real-time video[A].Proc IEEE Workshop on Application of Computer Vision[C].Princeton:NJ,1998:8-14
[3]MEYER D,DENZ LE J,N IEMANN H.Model based extraction of articulated objects in image sequences for gait analysis[A].Proc IEEE Interl national Conference on I mage Processing[C].Santa Barbara,California,1997:78-81
[4]陳春雨,姚秋香,喬玉龍.基于幀差法和邊緣檢測法的視頻分割算法[J].濟南大學學報:自然科學版,2012,26(1):31-35
[5]張 鶴,吳謹,吳雪垠.結合對稱差分和邊界信息的運動目標檢測方法[J].信息技術,2011(11):138-141
[6]莫林,廖鵬,劉勛.一種基于背景減除與三幀差分的運動目標檢測算法[J].微計算機信息,2009(12):274-276
[7]GONZALEZ R C,WOODS R E.數(shù)學圖像處理[M].2版.阮裘琦,阮宇智,譯.北京:電子工業(yè)出版社,2007