孫 潔 錢 蕾
(華北理工大學(xué)電氣工程學(xué)院 唐山 063200)
云計(jì)算中心具有較強(qiáng)的計(jì)算處理能力,將網(wǎng)絡(luò)邊緣設(shè)備產(chǎn)生的數(shù)據(jù)上傳到云中心進(jìn)行存儲(chǔ)與處理已經(jīng)得到了普遍應(yīng)用[1]。隨著萬物互聯(lián)時(shí)代的到來,網(wǎng)絡(luò)邊緣設(shè)備的數(shù)量訊速增加,未來必將產(chǎn)生海量數(shù)據(jù),如果直接將源數(shù)據(jù)上傳到云計(jì)算中心進(jìn)行處理,一方面會(huì)占用很多不必要的存儲(chǔ)空間,另一方面給網(wǎng)絡(luò)帶寬資源帶來了巨大的負(fù)擔(dān)。施魏松等提出了邊緣計(jì)算模型[2],并從概念、原理以及挑戰(zhàn)等三個(gè)方面對(duì)其進(jìn)行介紹[3]。隨著物聯(lián)網(wǎng)的發(fā)展,攝像頭遍布了我們的生活。據(jù)統(tǒng)計(jì),大約有3000萬個(gè)監(jiān)控?cái)z像頭部署在美國(guó),每周生成超過40億小時(shí)的視頻數(shù)據(jù)[4],甚至一個(gè)攝像頭也能產(chǎn)生幾百GB的數(shù)據(jù)[5]。如果將這些攝像頭采集到的原始數(shù)據(jù)未經(jīng)處理直接上傳到云計(jì)算中心,那將會(huì)是十分龐大的數(shù)據(jù)量。為此,本文提出在視頻數(shù)據(jù)上傳至云中心之前,先在邊緣設(shè)備上執(zhí)行預(yù)處理,在監(jiān)控?cái)z像頭上加入計(jì)算能力,當(dāng)檢測(cè)到視頻畫面中有運(yùn)動(dòng)目標(biāo)時(shí),對(duì)監(jiān)控信息進(jìn)行存儲(chǔ),如果沒有運(yùn)動(dòng)目標(biāo)就不存儲(chǔ)。這樣可以節(jié)省大量的存儲(chǔ)空間,而且可以減輕數(shù)據(jù)傳輸對(duì)網(wǎng)絡(luò)帶寬的壓力。
運(yùn)動(dòng)物體檢測(cè)是智能監(jiān)控中視頻圖像分析的重點(diǎn)和難點(diǎn),關(guān)于運(yùn)動(dòng)目標(biāo)檢測(cè)的方法多種多樣,其中最基礎(chǔ)的有幀差法[6]、背景差分法[7]和光流法[8],其他都是在這三種基礎(chǔ)上的改進(jìn)或者組合。幀間差分法檢測(cè)到的前景區(qū)域的邊緣模糊不完整,而且當(dāng)物體移動(dòng)緩慢時(shí)會(huì)出現(xiàn)誤判和空洞現(xiàn)象。光流法準(zhǔn)確率高,但計(jì)算復(fù)雜,容易受到背景擾動(dòng)和光照變化的影響,不適用于實(shí)際應(yīng)用。背景差分法可以將運(yùn)動(dòng)目標(biāo)完整地檢測(cè)出來,但是容易受到光照變化和背景變化的影響,因此只適用于背景不變的情況[9]。針對(duì)上述問題,本文在幀間差分法的基礎(chǔ)上,選用三幀差分法結(jié)合形態(tài)學(xué)運(yùn)算和自適應(yīng)閾值計(jì)算方法進(jìn)行運(yùn)動(dòng)物體檢測(cè),其計(jì)算簡(jiǎn)單,可以檢測(cè)出完整的運(yùn)動(dòng)目標(biāo)。將該方法用于智能監(jiān)控系統(tǒng),可以對(duì)視頻信息選擇性存儲(chǔ),減輕了對(duì)網(wǎng)絡(luò)帶寬的壓力。在視頻檢索中,可以快速定位異常動(dòng)態(tài)圖象,在工作人員回放查看異常信息時(shí)節(jié)約時(shí)間。
幀間差分法是一種比較常見的運(yùn)動(dòng)目標(biāo)檢測(cè)方法,根據(jù)兩幀圖像的差分值與設(shè)定的閾值進(jìn)行比較來判定的。當(dāng)監(jiān)控畫面中有運(yùn)動(dòng)物體時(shí),相鄰兩幀圖像間就會(huì)有像素的變化。選取相鄰兩幀圖像,進(jìn)行灰度化處理,然后對(duì)處理后的圖像進(jìn)行差分運(yùn)算,將差分結(jié)果的絕對(duì)值與設(shè)定的閾值T進(jìn)行比較,若大于閾值T則判斷為畫面中有運(yùn)動(dòng)目標(biāo),若小于或等于閾值T則判斷為沒有運(yùn)動(dòng)目標(biāo)。其數(shù)學(xué)公式描述如下:
g(x,y)為連續(xù)兩幀圖像經(jīng)過差分運(yùn)算、二值化得到的二值圖像,fk(x,y)為當(dāng)前幀灰度值,fk-1(x,y)表示當(dāng)前幀前一幀的灰度值,T為二值化時(shí)設(shè)定的閾值,二值化將圖像呈現(xiàn)出只存在黑色和白色,g(x,y)=1表示前景,g(x,y)=0表示背景。幀間差分法不會(huì)受到緩慢光線變化的影響,算法簡(jiǎn)單易實(shí)現(xiàn)。但是該方法只能檢測(cè)到前后兩幀變化的部分,不能檢測(cè)到重疊部分,檢測(cè)到的運(yùn)動(dòng)目標(biāo)內(nèi)部容易出現(xiàn)空洞現(xiàn)象。
背景差分法主要應(yīng)用于背景靜止的情況下的運(yùn)動(dòng)目標(biāo)檢測(cè),選取沒有運(yùn)動(dòng)物體進(jìn)入監(jiān)控畫面時(shí)的圖像作為背景圖像,然后將當(dāng)前幀與背景幀做差分運(yùn)算,差分的結(jié)果與閾值T進(jìn)行比較,二值化得到運(yùn)動(dòng)目標(biāo)[10]。如果大于閾值T,則判斷有運(yùn)動(dòng)目標(biāo),如果小于等于閾值T,則判斷為沒有運(yùn)動(dòng)目標(biāo)。數(shù)學(xué)公式表示如下:
fk(x,y)為當(dāng)前幀圖像,b(x,y)為背景幀圖像,g(x,y)為當(dāng)前幀與背景幀經(jīng)過差分運(yùn)算、二值化后得到的二值圖像,g(x,y)=1表示運(yùn)動(dòng)目標(biāo),g(x,y)=0表示背景區(qū)域。
背景靜止的情況下,背景差分法可以檢測(cè)出完整的運(yùn)動(dòng)目標(biāo),但是當(dāng)背景中有光線變化或者樹葉晃動(dòng)等情況時(shí),就會(huì)發(fā)生誤判,因此不適用于背景發(fā)生變化的情況。
光流法[11]通過區(qū)別靜止的物體和運(yùn)動(dòng)的物體產(chǎn)生的運(yùn)動(dòng)場(chǎng)的不同,將運(yùn)動(dòng)目標(biāo)從背景中分離出來。光流法可以應(yīng)用于攝像機(jī)運(yùn)動(dòng)的情況下,但是光照變化、遮擋等因素存在時(shí)會(huì)影響光流場(chǎng)的分布,增加了計(jì)算的難度。這種方法計(jì)算復(fù)雜、實(shí)時(shí)性較差,使用存在局限性。
在幀差法的基礎(chǔ)上,研究學(xué)者提出了三幀差分法,基本思路是提取連續(xù)三幀圖像fk-1(x,y),fk(x,y),fk+1(x,y),然后將第k-1幀與第k幀進(jìn)行式(1)的運(yùn)算得到二值圖像g1(x,y),將第k幀與第k+1幀進(jìn)行式(1)的運(yùn)算得到二值圖像g2(x,y),然后對(duì)這兩個(gè)二值圖像進(jìn)行邏輯與運(yùn)算,提取相同的部分,從而得出運(yùn)動(dòng)目標(biāo)的二值圖像。三幀差分法的數(shù)學(xué)公式描述如下:
其中G(x,y)是g1(x,y)與g2(x,y)進(jìn)行邏輯相與的結(jié)果,三幀差分法可以定位出運(yùn)動(dòng)目標(biāo)在監(jiān)控畫面中的位置,要比幀間差分法更精確,但是檢測(cè)到的運(yùn)動(dòng)目標(biāo)內(nèi)部還是會(huì)存在空洞現(xiàn)象。三幀差分法的流程如圖1所示。
圖1 三幀差分法流程圖
輸入原始的監(jiān)控視頻流,對(duì)視頻流進(jìn)行圖像分幀,采集連續(xù)的三幀圖像,然后將分幀后的圖像從RGB彩色空間變換到灰度空間,獲取對(duì)應(yīng)的灰度圖像fk-1(x,y),fk(x,y),fk+1(x,y)。然后對(duì)兩組相鄰的圖像做差分運(yùn)算,也就是三幀差分。采用Otsu方法計(jì)算出最佳閾值對(duì)圖像二值化處理,將得到的兩個(gè)二值圖像邏輯與運(yùn)算。最后通過中值濾波來消除圖像中的噪聲,圖像形態(tài)學(xué)處理確定移動(dòng)物體的區(qū)域。整個(gè)算法的程序流程如圖2所示。
圖2 改進(jìn)的三幀差分法流程圖
3.1.1 最大類間方差閾值計(jì)算方法
在傳統(tǒng)的三幀差分法中,閾值T是根據(jù)不同的視頻、不同的背景、不同的運(yùn)動(dòng)目標(biāo)來設(shè)定的,若T選取得偏大,很可能出現(xiàn)漏檢或者檢測(cè)不完全,若T選取得偏小,會(huì)出現(xiàn)大量噪聲。本文采用Otsu方法(最大類間方差法),可自動(dòng)選取閾值進(jìn)行二值化。計(jì)算公式如下:
其中,w0為背景像素點(diǎn)數(shù)占圖像的比例,u0為背景像素點(diǎn)的平均灰度,w1為前景像素點(diǎn)占圖像的比例,u1為前景像素點(diǎn)的平均灰度,u為整個(gè)圖像的平均灰度,上式的最大值T即為圖像的最佳閾值。
3.1.2 圖像預(yù)處理
此時(shí)獲得的視頻圖像并不理想,其中含有大量的噪聲,需要通過圖像預(yù)處理來去除這些噪聲。常用的圖像去噪方法有均值濾波和中值濾波,中值濾波是圖像處理技術(shù)中最常用的預(yù)處理技術(shù),濾除噪聲的同時(shí),能夠保持圖像的清晰度。本文采用中值濾波的方法,通過3×3模版濾波,消除散雜噪聲點(diǎn)對(duì)運(yùn)動(dòng)目標(biāo)的影響。
對(duì)灰度化后的第k幀圖像進(jìn)行Canny邊緣檢測(cè)[12],得到第k幀圖像的邊緣圖像E(x,y)。然后將之與改進(jìn)三幀差分算法得到的二值圖像G(x,y)進(jìn)行與運(yùn)算,得到運(yùn)動(dòng)目標(biāo)的邊緣E1(x,y)。將E1(x,y)和G(x,y)進(jìn)行或運(yùn)算,然后再進(jìn)行形態(tài)學(xué)處理,從而可以得到完整的前景圖像G1(x,y)。
在普通PC機(jī)上進(jìn)行仿真實(shí)驗(yàn)(處理器為Intel(R)Core(TM)i5-3230M,主頻為2.60GHz,內(nèi)存為4GB,操作系統(tǒng)為Windows10專業(yè)版64位)。實(shí)驗(yàn)所用的視頻是在華北理工大學(xué)圖書館四層樓梯間門口拍攝,視頻為AVI格式,總時(shí)長(zhǎng)14s,幀速率24幀/s。分別采用幀間差分法、三幀差分法和改進(jìn)后的三幀差分法,利用Matlab2016a對(duì)監(jiān)控視頻進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè)。
提取視頻中的連續(xù)三幀圖像(分別為視頻序列中的第160幀、第161幀、第162幀圖像)進(jìn)行試驗(yàn),如圖3所示。
圖3 視頻序列中連續(xù)三幀圖像
圖4(a)是幀間差分法檢測(cè)到的運(yùn)動(dòng)目標(biāo),雖然可以將運(yùn)動(dòng)目標(biāo)的基本輪廓提取出來,但是檢測(cè)到的運(yùn)動(dòng)目標(biāo)輪廓不完整,且目標(biāo)內(nèi)部存在比較嚴(yán)重的空洞現(xiàn)象,當(dāng)選取的閾值過小會(huì)出現(xiàn)大量噪聲,容易出現(xiàn)誤報(bào)警的情況。
圖4(b)是文獻(xiàn)[13]中的三幀差分算法檢測(cè)到的運(yùn)動(dòng)目標(biāo),可以看出內(nèi)部有小范圍的空洞,而且部分邊緣缺失,前后兩幀之間運(yùn)動(dòng)物體灰度值相同的區(qū)域被判斷為背景,不能檢測(cè)到完整的運(yùn)動(dòng)目標(biāo)。
圖4(c)是本文算法提取的運(yùn)動(dòng)目標(biāo),可見輪廓清晰,檢測(cè)出的運(yùn)動(dòng)目標(biāo)非常完整,很好地解決了傳統(tǒng)三幀差分算法內(nèi)部空洞的問題,具有很強(qiáng)的抗干擾能力。檢測(cè)效果對(duì)比圖如圖4所示。
圖4 檢測(cè)效果對(duì)比圖
當(dāng)監(jiān)控畫面中有運(yùn)動(dòng)物體時(shí),經(jīng)過本文運(yùn)動(dòng)目標(biāo)檢測(cè)算法,可以提取出運(yùn)動(dòng)目標(biāo)(即白色的前景圖像)。而當(dāng)監(jiān)控畫面中沒有運(yùn)動(dòng)物體時(shí),經(jīng)過本文算法二值化后得到的是全黑的圖像。圖像是由一個(gè)個(gè)的像素點(diǎn)組成的,如果所有的像素點(diǎn)的值都為0,則判斷為沒有運(yùn)動(dòng)目標(biāo)。
以華北理工大學(xué)校園內(nèi)三處監(jiān)控?cái)z像頭作為實(shí)驗(yàn)對(duì)象,分別為蘭園2號(hào)樓一層自習(xí)室門口、蘭園2號(hào)樓五層樓道、圖書館三層電梯間門口。根據(jù)實(shí)際調(diào)查,這幾處攝像頭每天錄下的視頻會(huì)全部保存,保存時(shí)長(zhǎng)為三個(gè)月。然而,在這種存儲(chǔ)方式下保存的視頻很多是沒有意義的。比如,當(dāng)監(jiān)控畫面中沒有人走動(dòng)時(shí),錄下來的全部是靜態(tài)的背景視頻,可以直接刪除。本實(shí)驗(yàn)選取了三個(gè)監(jiān)控點(diǎn),每個(gè)監(jiān)控點(diǎn)分別取三個(gè)時(shí)間段的視頻作為實(shí)驗(yàn)數(shù)據(jù),得到的結(jié)果如表1所示。
監(jiān)控點(diǎn)A位于自習(xí)室門口,正常從這里經(jīng)過只要短短幾秒鐘,由表1中數(shù)據(jù)計(jì)算得出,有98%的時(shí)間是沒有運(yùn)動(dòng)目標(biāo)的。監(jiān)控點(diǎn)B位于宿舍樓道,早上7:00~8:00是洗漱和出行人數(shù)最多的時(shí)間,這個(gè)時(shí)候有運(yùn)動(dòng)目標(biāo)的視頻段數(shù)也是最多的。由表1中數(shù)據(jù)計(jì)算得出,在實(shí)驗(yàn)的這三個(gè)小時(shí)中,有52.7%的時(shí)間是沒有運(yùn)動(dòng)物體經(jīng)過的。監(jiān)控點(diǎn)C位于電梯間門口,可以看出除了等電梯和進(jìn)出電梯時(shí)有運(yùn)動(dòng)物體之外,其余67.8%的時(shí)間是沒有運(yùn)動(dòng)物體的。實(shí)驗(yàn)表明,將這些沒有運(yùn)動(dòng)目標(biāo)的視頻圖像直接刪除,保留下來的都是有用的信息,節(jié)省了大量的存儲(chǔ)空間。
表1 監(jiān)控視頻智能存儲(chǔ)實(shí)驗(yàn)結(jié)果
在邊緣計(jì)算模型的背景下,為了實(shí)現(xiàn)監(jiān)控視頻圖像的智能存儲(chǔ),本文提出將網(wǎng)絡(luò)攝像頭加入計(jì)算分析能力。在傳統(tǒng)三幀差分法的基礎(chǔ)上加入了最大類間方差閾值計(jì)算方法,因而檢測(cè)出的前景圖像既不會(huì)失真也沒有大量噪聲,Canny邊緣算子的加入使得前景圖像的輪廓更為完整。實(shí)驗(yàn)表明,本文算法能夠檢測(cè)出完整的運(yùn)動(dòng)目標(biāo),可以自動(dòng)檢測(cè)和分析監(jiān)控范圍內(nèi)的運(yùn)動(dòng)物體,并對(duì)視頻選擇性存儲(chǔ),節(jié)省了大量存儲(chǔ)空間。