陸子幸, 宋 健, 王 凱, 解福祥
(1.山東科技大學(xué) 機(jī)械電子工程學(xué)院,山東 青島 266590;2.濰坊學(xué)院 機(jī)電與車輛工程學(xué)院,山東 濰坊 261061)
隨著科學(xué)技術(shù)的不斷發(fā)展,安防監(jiān)控系統(tǒng)也在不斷地進(jìn)步和更新。在實(shí)現(xiàn)安防監(jiān)控的過程中,視頻圖像的處理和傳輸,以及對(duì)移動(dòng)目標(biāo)的檢測(cè)是比較關(guān)鍵的技術(shù),尤其是移動(dòng)目標(biāo)的檢測(cè)[1-3]。
對(duì)于移動(dòng)目標(biāo)的檢測(cè),Wren等提出使用單一的高斯模型對(duì)背景像素值建模[4-6],視覺系統(tǒng)還實(shí)現(xiàn)對(duì)目標(biāo)的追蹤和定位。國內(nèi)有人提出把幀間差分法與背景差分法結(jié)合的檢測(cè)算法,還有人提出用多幀檢測(cè)的方法結(jié)合背景減法的檢測(cè)算法[7-11]。
本文設(shè)計(jì)的安防監(jiān)控系統(tǒng)是以ARM9為硬件平臺(tái),應(yīng)用Linux操作系統(tǒng),把通過UVC攝像頭采集到的視頻圖像序列用改進(jìn)的幀差法進(jìn)行目標(biāo)檢測(cè)。以此解決由于前景像素值和背景像素值相近而造成誤檢和漏檢的問題,并且該算法還能滿足對(duì)快速移動(dòng)目標(biāo)的檢測(cè)。此外,系統(tǒng)采用WiFi技術(shù)實(shí)現(xiàn)圖像的無線傳輸,達(dá)到遠(yuǎn)程監(jiān)控的目的。
圖1 安防監(jiān)控系統(tǒng)整體方案示意圖
本安防監(jiān)控系統(tǒng)是應(yīng)用jz2440開發(fā)板,開發(fā)板的處理器是Samsung公司研發(fā)的S3C2440,它是一款基于ARM920t內(nèi)核和0.18μmCMOS工藝的16/32位RISC微處理器。開發(fā)板的外圍設(shè)備:128 MB的SDRAM、2 MB的NOR FLASH、256 MB的NAND FLASH;還有外部擴(kuò)展模塊:音頻輸入輸出接口,網(wǎng)卡,觸摸屏,LCD接口,SD卡,電源, USB攝像頭等模塊。開發(fā)板外接UVC攝像頭、WiFi無線網(wǎng)卡以及報(bào)警器,其硬件連接如圖2所示。
該系統(tǒng)用的是一般的UVC攝像頭,使用圖3 USB接口電路圖標(biāo)準(zhǔn)的USB接口就可以滿足要求。USB接口的電路設(shè)計(jì)圖如圖3所示。
圖2 系統(tǒng)硬件框圖
圖3 USB接口電路圖
該系統(tǒng)攝像頭采集圖像是通過V4L2接口編程取最終輸入的圖像信息,它是內(nèi)核提供給應(yīng)用程序訪問視頻驅(qū)動(dòng)程序的統(tǒng)一接口。在Linux操作系統(tǒng)中,連接上攝像頭后會(huì)生成設(shè)備文件/dev/video0。V4L2視頻圖像采集框架的流程如圖4所示。
圖4 V4L2視頻圖像采集流程圖
移動(dòng)目標(biāo)的檢測(cè)算法一般是針對(duì)某些特定的背景,而不是一種算法適用于所有的場(chǎng)合,現(xiàn)有的檢測(cè)移動(dòng)目標(biāo)的方法有幀間差分法、背景差分法、光流法。幀間差分法是通過比較相鄰兩幀圖像的灰度像素值的差是否大于某一閾值來檢測(cè)出運(yùn)動(dòng)物體。它的算法簡單,易于實(shí)現(xiàn),且受光線變化的影響較小,缺點(diǎn)是容易出現(xiàn)誤檢和漏檢。背景差分法是利用當(dāng)前幀與背景圖像的像素差值來提取運(yùn)動(dòng)目標(biāo)的數(shù)據(jù)。它的缺點(diǎn)是容易受到噪聲以及多變的外界因素的干擾。光流法是把每個(gè)像素點(diǎn)初始化成一個(gè)矢量運(yùn)動(dòng)場(chǎng),且根據(jù)每個(gè)像素點(diǎn)的速度矢量進(jìn)行動(dòng)態(tài)分析。它的缺點(diǎn)是計(jì)算量大,也容易受到噪聲的干擾[12-15]。
后來在幀間差分的基礎(chǔ)上又提出了經(jīng)典的三幀差法,它的基本算法是提取圖像序列中的連續(xù)3幀圖像,然后進(jìn)行兩兩差分,接著進(jìn)行二值化,達(dá)到去噪的目的。最后再做兩個(gè)二值圖像的與運(yùn)算,從而能夠檢測(cè)出中間幀的運(yùn)動(dòng)對(duì)象。整個(gè)的算法過程:
(1) 第1和第2幀的差分二值化
(1)
(2) 第2和第3幀的差分二值化。
其次,照片成為超文本之后,一張完整的照片能充當(dāng)節(jié)點(diǎn),成為一張超照片,是正在發(fā)展的對(duì)話的一個(gè)不明確的、形象化的、未解說的、誘人的數(shù)據(jù)段,只要讀者愿意,他可以被引至其他照片、其他媒介、其他觀念。[1]69當(dāng)它們接入網(wǎng)絡(luò)環(huán)境里,攝影被討論和被重估:
(2)
(3) 然后對(duì)前兩次的差分取與運(yùn)算,得到含有運(yùn)動(dòng)對(duì)象和兩差分其余重疊部分的圖像,即
Mk(x,y)=Dk(x,y)∩Dk+1(x,y)=
(3)
經(jīng)典的3幀差法雖在一定程度上解決了空洞問題,但在復(fù)雜的背景下還是不能檢測(cè)出完整的目標(biāo),尤其是對(duì)于背景像素值與前景像素值相近的背景下,很容易出現(xiàn)漏檢和誤檢的問題。本系統(tǒng)采用motion軟件進(jìn)行目標(biāo)檢測(cè),它是一個(gè)免費(fèi)開源的動(dòng)態(tài)圖像檢測(cè)算法庫,對(duì)目標(biāo)檢測(cè)應(yīng)用的是原始的幀間差分法。
由于幀差法受噪聲影響很大,在復(fù)雜的背景下容易出現(xiàn)錯(cuò)誤的檢測(cè)和針對(duì)由于背景像素值與前景像素值相近和移動(dòng)目標(biāo)的速度較快而造成的誤檢和漏檢的問題,本文對(duì)motion軟件上的算法進(jìn)行改進(jìn),然后應(yīng)用到監(jiān)控系統(tǒng)的識(shí)別上。改進(jìn) 后的算法是通過3幀圖像進(jìn)行多次差分,再與邊緣檢測(cè)的Robert方法相結(jié)合,該方法的算法流程圖如圖5所示。
改進(jìn)算法后的步驟為:
步驟1提取3幀視頻序列,并對(duì)圖像進(jìn)行去躁和中值濾波處理,還有灰度化和精度的轉(zhuǎn)換等預(yù)處理。分別用fk-1(x,y),fk(x,y),fk+1(x,y)表示第k-1幀,第k幀,第k+1幀圖像的像素灰度值。
步驟2將經(jīng)過預(yù)處理的第k幀與第k-1幀,第k+1幀與第k幀,第k-1幀與第k+1幀,分別進(jìn)行差分運(yùn)算,得到圖像d1,d2,d3,公式如下:
圖5 改進(jìn)幀差法的原理流程圖
d1=|fk(x,y)-fk-1(x,y)|
(4)
d2=|fk+1(x,y)-fk(x,y)|
(5)
d3=|fk+1(x,y)-fk-1(x,y)|
(6)
步驟3對(duì)得到的3幅差分圖像d1、d2、d3分別進(jìn)行二值化處理。其中,閾值T1、T2、T3通過使用自動(dòng)獲取闕值法中的迭代法進(jìn)行確定,通過二值化處理得到的圖像就可以看到檢測(cè)出來的效果,判斷公式如下:
(7)
(8)
(9)
步驟5對(duì)第k幀使用Robert算子提取邊緣s,再與區(qū)域D進(jìn)行與運(yùn)算,得到M=s∩D。然后再對(duì)M進(jìn)行形態(tài)學(xué)處理,減去一些由于誤檢造成的多余的小目標(biāo),得到比較完整、準(zhǔn)確的運(yùn)動(dòng)目標(biāo)的輪廓。
步驟6把第1幀與第3幀的差分二值化圖像做形態(tài)學(xué)預(yù)處理得到n,目的是使得到的圖像比較平滑無毛刺,同時(shí)也移除目標(biāo)物體以外的小對(duì)象。再把處理后的圖像與步驟5中的M做或運(yùn)算得到較為完整的目標(biāo)物體的形狀S=M∪n。
步驟7將步驟6得到的結(jié)果進(jìn)行形態(tài)學(xué)處理,主要是針對(duì)空洞的補(bǔ)償,做開運(yùn)算或者閉運(yùn)算,膨脹或腐蝕處理,消除毛刺和對(duì)圖像略微加粗或者略微收縮的運(yùn)算,最終獲得比較完美的目標(biāo)的整體形狀。
雖然目前對(duì)于閾值的選取一般采用自動(dòng)獲取的方法,本文也選取了迭代的方法,但是閾值在目標(biāo)檢測(cè)中起著決定性的作用,往往會(huì)影響到最后的檢測(cè)效果。下面針對(duì)閾值在檢測(cè)過程中的影響進(jìn)行分析,實(shí)驗(yàn)選擇10組閾值數(shù)據(jù)進(jìn)行比較,通過圖像的比較得到閾值對(duì)檢測(cè)結(jié)果的影響如圖6所示。
圖6 特征閾值對(duì)檢測(cè)結(jié)果影響的對(duì)比圖
從圖6可以明顯看出,閾值對(duì)檢測(cè)目標(biāo)的完整度和精確度有著很大的影響。隨著閾值的不斷增長,完整度不斷提高,而精確度卻不斷降低,兩者相互制約。從圖上可以看出,閾值約為0.02時(shí),完整度和精確度能達(dá)到一個(gè)最佳的檢測(cè)結(jié)果,從圖像的檢測(cè)結(jié)果分析也得到此結(jié)論。本文采用的迭代法得到的閾值是0.021 3,基本符合最佳閾值點(diǎn)0.02。
實(shí)驗(yàn)通過連接不同分辨率的攝像頭來測(cè)試本監(jiān)控系統(tǒng)處理圖像的速度,分別采用640×480,320×240的攝像頭進(jìn)行比較,結(jié)果如表1所示。
由表1可見,改進(jìn)的幀差法與經(jīng)典的3幀差法速度上幾乎是相差無幾,又由于原始的幀差法是采用2幀圖像進(jìn)行差分,所以說它的處理速度要比后兩者的速度快1倍。從表中也可以看出,分辯率對(duì)處理速度的影響也是1倍的關(guān)系,分辨率越大,處理速度越慢;相反,則處理速度越快。
實(shí)驗(yàn)為了更好地說明本文中改進(jìn)的算法能夠解決由于背景像素值與前景像素值相近和移動(dòng)目標(biāo)的速度較快而造成的誤檢和漏檢的問題。通過Matlab進(jìn)行仿真,把原始的幀差法和經(jīng)典的3幀差法與本文改進(jìn)的算法做對(duì)比。下面選用視頻中目標(biāo)移動(dòng)速度較快的3幀圖像,分別是第82幀,83幀,84幀。用上面的3種算法分別對(duì)圖像進(jìn)行識(shí)別檢測(cè),結(jié)果如圖7所示。
(b) 第83幀
(c) 第84幀
(d) 原始幀差法
(e) 經(jīng)典3幀差法
(f) 改進(jìn)的幀差法
根據(jù)實(shí)驗(yàn)結(jié)果可以看出,前兩種方法易受到背景和前景像素值相近的影響,很難把前景和背景分開,容易產(chǎn)生誤檢,又由于移動(dòng)目標(biāo)速度太快造成檢測(cè)時(shí)出現(xiàn)“空洞”的現(xiàn)象。使用本文改進(jìn)的幀差法可以很好地處理像素值相近的問題,完全沒有出現(xiàn)誤檢的情況,并且移動(dòng)目標(biāo)的速度是比較快的,也沒有出現(xiàn)漏檢。應(yīng)用公式計(jì)算出3種算法對(duì)運(yùn)動(dòng)目標(biāo)的檢出率和誤檢率進(jìn)行比較,如表2所示。
表2 3種算法檢測(cè)結(jié)果的比較 %
通過表2可以很明顯看出,原始幀差法和經(jīng)典三幀差法誤檢率很高,根本無法準(zhǔn)確地識(shí)別出運(yùn)動(dòng)物體,而改進(jìn)的幀差法在誤檢和漏檢上達(dá)到了較好的檢測(cè)效果,能夠檢測(cè)出快速移動(dòng)目標(biāo)的全部,不存在漏檢和誤檢的問題。結(jié)合圖6和表2說明,在背景像素值與前景像素值相近的環(huán)境下,本文改進(jìn)的算法能夠滿足對(duì)快速移動(dòng)物體的檢測(cè)。
本文在嵌入式的平臺(tái)下,完成了對(duì)安防監(jiān)控系統(tǒng)的設(shè)計(jì)。為了解決前景像素值和背景像素值相似而出現(xiàn)誤檢和漏檢的問題,提出了一種新的對(duì)移動(dòng)目標(biāo)進(jìn)行識(shí)別和檢測(cè)的算法,并且該算法可以識(shí)別快速移動(dòng)的目標(biāo),由于與當(dāng)前幀的前后2幀的二值化圖像進(jìn)行了或運(yùn)算使得誤檢率降低,又結(jié)合邊緣檢測(cè)的方法,可以獲得完整地移動(dòng)目標(biāo)的輪廓。改進(jìn)的幀差法在安防監(jiān)控系統(tǒng)中的應(yīng)用使得在快速移動(dòng)目標(biāo)像素值和背景像素值相近的時(shí)候,基本可以檢測(cè)出全部的目標(biāo),還不會(huì)出現(xiàn)漏檢的問題。