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