????? 隨著人們生活水平的提高以及安全防范意識的加強,視頻監控系統得到了廣泛應用。目前的監控多以PC機為主,只能起到簡單的視頻記錄功能,同時需要配備專人監視屏幕。對于一些少有人出入的重要場所,通過人工方式對屏幕監控是一件麻煩的事情,而且PC機還需要配備大容量的硬盤來保存所有視頻圖像,硬盤使用量極大。針對這種情況,本文設計了一個無人值守的監控系統。系統在無人進入監視范圍時不保存視頻圖像,當有人進入監視范圍時才啟動視頻記錄程序,同時自動快速捕獲人臉,利用模式識別與圖像處理技術對人臉特征進行分析,提取其特征量并與人臉庫中的特征量進行匹配,判斷是否為非法人員,如果是則進行報警,并通過網絡提醒遠程監控中心注意監視。對于平時很少有人出現的場合,利用該監控系統可以減少數據容量,減少監控人員,而且不會擔心錯過監視對象。本系統是在原有一代產品的基礎上對硬件電路設計及軟件算法上進行了改進。實踐證明系統的反應速度、識別處理速度等都有了較大提高。
1 系統概述
????? 攝像機在主控系統的控制下工作,在沒有移動目標進入的情況下,攝像機的數據不存儲。當拍攝到有人進入后,主控系統立即控制攝像機對非法進入指定區域的人體進行跟蹤,并在跟蹤過程當中對人臉定位并快速準確地獲取其面部圖像,同時啟動錄像功能;然后通過一系列的數字圖像處理方法對面部圖像進行分析、處理,確定是否為非法入侵,如果是則啟動報警系統。利用多個這樣的子系統可組成一個監控網絡,各個子系統通過網絡與監控中心連接。因各個子系統具有智能監控功能,所以監控中心只配備一個值守人員即可監控20個以上的監控點,大大減少了人員的使用。
2 系統硬件組成
由于該系統處理的數據量較大,且要求實時性強,故采用DSP和FPGA相結合的方法,加上圖像數據采集芯片以及存儲芯片,構成核心圖像處理單元。同時配備有本地報警模塊、網絡傳輸等,從而構成了一個完整的監控系統。系統組成框圖如圖1所示。與原有系統相比,本系統作了如下改進:把原來只作為數據緩沖處理的FPGA設計為主控芯片,控制數據的輸入調理和輸出報警,而把DSP解放出來,專門用作圖像處理及傳輸。這樣可以提高數據的處理速度,從而提高系統的反應速度。
2.1 系統主要芯片的選用
(1)圖像采集芯片采用TVP5150。TVP5150是具備超低功耗、支持NTSC/PAL/SECAM等格式的高性能視頻解碼器。在正常工作時,它的功耗僅115 mW,通過設置內部寄存器,可以將模擬圖像信號轉換為YUV4:2:2格式的ITU-R BT.656數字信號,并直接送到DM642進行處理。
(2)為提供系統的快速反應能力,圖像處理芯片的選擇尤為關鍵,綜合各方面的因素,DSP選用TI公司專用多媒體芯片TMS320DM642(簡稱“DM642”)。DM642基于C64x內核,可在720 MHz時鐘頻率下工作,每個指令周期可并行8條32 bit指令,能達到5 760 MIPS的峰值計算速度[6]。DM642采用了2級緩存結構(L1和L2),大大提高了程序的運行速度。片內64 bit的EMIF(External Memory Interface)接口可以與SDRAM、Flash等存儲器進行無縫連接,極大地方便了大量數據的搬移。此外,DM642還擁有3個專用的視頻端口(VP0~VP2),用于接收、處理視頻和音頻數據,系統功能擴展十分方便。此外,DM642自帶的EMAC口以及從EMTF口擴展出來的ATA口,還為處理完成后產生的海量數據提供了存儲通道[5]。DM642需要外加SDRAM(4 M64 bit),用于存放程序和緩存數字視頻,以及FLASH(4 M8 bit),用于存放固化程序,以便進行ROM引導。
(3)FPGA負責實現系統的邏輯、輸出控制以及內部緩存的時序控制。為實現圖像的實時采集和處理,需要視頻采集和圖像處理并行工作。采集到的圖像數據送到DSP前的緩存接口設計是關鍵,設計的優劣直接影響到系統的反應速度。要提高數據緩存讀取速度,可利用FPGA內部資源構建高速雙口RAM作為內部緩存,使數據幀處理交替進行,從而實現數據采集與處理同時進行,其內部結構如圖2的虛線框內所示。采集到的數字視頻信號先經過濾波處理,之后送入邏輯單元A,A負責產生時鐘及數據邏輯控制。輸入的視頻數據信號在A的控制下,進入到緩沖器寄存器B和C,在控制單元D的控制下,送到雙口RAM。為了實現實時圖像采集和處理,使得FPGA對圖像數據的緩沖和DSP對圖像數據的讀取同步進行,將RAM分成相等的2塊,即RAM1和RAM2。在系統工作的過程中,一塊用于緩沖圖像數據,FPGA分類緩沖后的圖像信號寫入該存儲區;另一塊則由DSP用于對圖像數據的讀取,DSP可以直接對這個存儲區的數據進行運算。該緩存結構的另一特點是FPGA和DSP對雙口RAM的尋址是來回切換的。因為DSP讀取RAM的速度大于FPGA寫RAM的速度,所以切換信號僅由FPGA發出。當FPGA分類緩沖數據寫滿RAM1時,FPGA向DSP發出一個中斷信號,此時DSP讀取RAM1中的數據,同時FPGA的緩沖數據寫入RAM2。當RAM2中數據寫滿時,FPGA再向DSP發出中斷信號,DSP讀取RAM2中的數據,同時FPGA的緩沖數據RAM1。如此交替實現圖像數據讀寫同時進行,從而提高了數據處理的速度。
????? FPGA的選擇較為關鍵,內部RAM的資源決定系統的反應速度。在原有一代系統中選用的FPGA資源較少,不足以存儲一幀圖像,因此數據的讀寫只能分塊進行,需要控制邏輯較為復雜,同時也降低了整個系統的速度。對于一幀720×576的圖像,共有414 720像素,每個像素8 bit,即共有414 KB的數據。因此可選用Altera公司的CycloneIII系列產品EP3C120。Cyclone III系列的FPGA采用65 nm技術,具有低功耗、低成本和高性能特點, EP3C120內部擁有120K個邏輯單元(LE),4 Mbit嵌入式存儲器,288個嵌入式18×18乘法器,可以滿足一幀圖像的存儲,在處理數據時可按照奇偶幀分別進行讀寫。
2.2 系統工作過程
系統上電或復位后,首先完成FPGA芯片的配置、對TVP5150進行的初始化以及DSP啟動引導及其外圍芯片的初始化工作,之后便開始進行圖像采集。利用FPGA模擬I2C口對系統中的其他芯片進行控制,從攝像頭采集到的摸擬視頻信號經過視頻解碼器轉換為數字視頻信號,經預處理后送入DM642的視頻通道(VP端口)。在檢測到有人進入監視區域時,啟動錄像功能,DM642將接收到的數字視頻信號和數字音頻信號用MPEG4標準編碼壓縮,并通過以太網傳送到監控中心。同時捕捉人臉圖像并進行身份識別,如有異常則啟動報警程序。
3 系統軟件組成
對于本系統來說,系統軟件主要包括3部分:運動目標檢測、人臉的檢測定位、人臉匹配。其中人臉的檢測定位尤為關鍵,是正確識別的前提。因為圖像的拍攝受到各種因素的干擾,如亮度、人物移動速度、表情、著裝等,這些因素如果在檢測時不能得到有效處理,勢必會影響后期的匹配,造成識別率下降。因此,如何將人臉從背景中檢測出來,并進行適當的處理、分割,是關系到識別成敗的關鍵環節,需要著重進行處理。
3.1 運動目標檢測
對于運動目標的檢測,常用的方法有背景差值法、圖像差分法、光流分割法和模式匹配法。由于光流分割和模式匹配等方法數據計算量較大,無法滿足實時檢測的要求。背景差值法計算簡單、速度快且檢測準確,但需要在背景靜止時檢測有效,對于背景變化的場合不適合。對于背景變化的場合,可以采用圖像差分法,即通過檢測圖像序列相鄰兩幀對應像素點之間灰度值的變化確定移動的物體。設圖像定義f(x,y,i),其中(x,y)為圖像的位置坐標,i、j為圖像幀數,T為設定的閾值,則幀f(x,y,i)與幀f(x,y,j)之間的變化可用如下的二值差分圖像表示:
式中取值為1和0的像素分別對應于前景(運動目標區域)和背景(非運動區域)。
對于緩慢移動的物體,圖像差分的變化量很小,有可能會被濾波器濾掉,解決方法是通過累積差分法ADP[2](Accumulative Difference Picture)。該法不僅可以用于可靠檢測緩慢移動的物體,還可用于估計物體移動速度的大小和方向以及物體尺度的大小。獲得累積差分圖像的過程如下:將圖像序列的每一幀圖像與參考圖像進行比較,當差值大于某一閾值時就在累積差分圖像中加1,這樣,在第i幀圖像上的累積差分圖像ADP(x,y,i)為:
通過判斷灰度值的變化,即可判斷出移動物體及其方向。
針對本系統,可以先利用背景差值法確定是否有移動目標進入監視區。如有則啟動錄像功能,結合圖像差分法,經過一系列檢測檢出運動目標,并啟動跟蹤程序。具體程序如圖3所示。
????? 3.2 人臉的檢測定位
在檢測出運動的目標之后,要判斷目標為人體還是其他動物,這可以通過目標的尺寸及目標的空間特征(如寬高比等)來區分。在確定為人體目標之后,就要確定出人臉的區域。確定人臉區域的方法有多種,本系統采集的是彩色圖像,可以根據膚色進行判別。利用膚色提取色彩信息的方法已被廣泛應用在計算機視覺研究領域中。膚色是人臉的重要信息,不依賴于面部的細節特征,對于旋轉、表情等變化情況都能適用,具有相對的穩定性并且和大多數背景物體的顏色相區別。與其他人臉檢測方法相比,膚色的判斷在速度上具有明顯優勢。因此,將其作為人臉檢測的其他方法的預處理,可以在很大程度上減小人臉檢測的搜索范圍,降低誤報率,進而大大提高人臉檢測算法的整體性能。
人臉檢測過程如下:對于彩色圖像首先進行膚色檢測;在檢測出膚色區域后,需要進行區域分隔及形態學運算,通過形態學處理可以過濾由于噪音或者其他原因引起的一些較小的不可能為人臉的類膚色區域,減少候選區域和提高檢測速度,降低誤判的可能性;之后根據它們在色度上的相似性和空間上的相關性分割出可能的人臉區域,同時利用區域的幾何特征及灰度特征驗證是否為人臉,以排除其他色彩類似膚色的物體。
用膚色來檢測人臉,要先確定膚色模型。基本的膚色模型有3種:RGB模型、HIS模型和YCbCr模型。這里選用YCbCr模型,原因是圖形采集輸出的格式為YUV,而YUV格式和YCbCr格式在數學上具有一致性,同時對于后期的數據進行MPEG壓縮也很方便。人臉檢測的程序流程如圖4所示。具體過程分析如下:
(1)膚色判斷
可采用Anil K.Jain的Cb、Cr橢圓聚類方法[7]進行膚色分割,得到膚色區域在CbCr空間中近似于橢圓,可用如下公式表示:
若該值小于1,則表示落在橢圓內,是膚色,否則不為膚色。對確定的膚色區域進行平滑、連通、合并處理,構成一個候選區域,待進一步分析以判斷是否為人臉區域。
(2)區域分割與處理
在確定膚色區域之后,需要根據它們在色度上的相似性和空間上的相關性分割出可能的人臉區域,再利用區域的幾何特征或灰度特征進行是否是人臉的驗證,以排除其他色彩類似膚色的物體。本文采用Sobel算子[-1,-2,-1;0,0,0;1,2,1]來完成邊緣的檢測。經過一系列處理分割出膚色區域,并進行形態學開、閉運算,以消除噪聲或空洞對特征分析的影響。
(3)特征分析
人臉候選區域分割完畢后,需對每一個區域進行分析,以判斷該區域是否是人臉。為了提高檢測速度,可以忽略人臉的面部特征,而主要檢查人臉候選區域的形狀、結構、比例及灰度分布等。若符合人臉的這些特點,則認為該區域代表一個人臉。根據人臉的幾何規則及顏色聚類的特點,如果一個區域滿足2個條件:(a)高度/寬度比例范圍介于1.2與2.0之間;(b)該區域內的像素平均灰度值與距該區域上部達10像素以上的區域的平均灰度值之差介于0.2~0.6之間。符合這兩個條件,則可認為該區域代表人臉。
(4)人臉區域驗證
對于初步檢測的人臉區域,還需要進行驗證才能確定是否為真正的人臉。對于人臉的驗證,一般有3種方法:(1)基于先驗知識的方法;(2)基于局部特征的方法;(3)基于模板的人臉檢測方法。基于先驗知識的方法識別率不高,如果圖像背景中存在類人臉區域,則必然會導致誤檢測。基于模板的方法數據量運算大,不能滿足實時性要求。本系統采用的是基于局部特征的方法。
在人臉的特征中,最明顯的特征就是眼睛,因此可把人眼作為驗證的主要依據,同時配合嘴唇或鼻子進行驗證。首先要找到眼睛的位置,在灰度圖像下,眼睛的特征最為明顯,通過設定適當的閾值很容易確定出人眼的可能區域。通過計算這兩個區域的中心距離D,在該距離中心點的位置下方找到嘴部位置,長度為L。當D/L滿足:1 3.3 人臉識別 人臉的識別算法有多種,不同的算法各有優缺點。本文主要借鑒彈性圖匹配技術來完成人臉的識別。彈性圖匹配是一種基于幾何特征和對灰度分布信息進行小波紋理分析相結合的識別算法。由于該算法較好地利用了人臉的結構和灰度分布信息,而且還具有自動精確定位面部特征點的功能,因而具有良好的識別效果。在FERET測試中,該技術的若干指標名列前茅。其缺點是運算量大,實現稍復雜。通過對該算法進行改進,配合一定的代碼優化措施,可以滿足實時檢測要求。 在人臉識別時,首先要進行人臉特征提取。主要采用恰當的小波分解,得到高頻分量和低頻分量,其中的高頻分量主要表示人臉的細節,低頻分量表示人臉的基本特征,對人臉的表情反應比較遲鈍,只提取低頻分量,這樣可以提高準確率和運算速度。對提取的人臉特征,利用支持向量機(SVM)分類器識別人臉,和系統自建的人臉庫進行匹配,以確定是否為非法入侵者,是否啟動報警系統和通知小區監控中心。算法流程如圖6所示。 本文設計的人臉檢測系統,利用運動目標檢測方法,大大緩解了硬盤數據存儲的壓力,同時提高了系統的智能化程度。利用膚色判斷與特征分析來確定人臉,可以提高系統的檢測速度。針對膚色判斷受光照影響很大的問題,本系統在原有系統的基礎上增加了補光措施光,減少了光照的影響,提高了檢出的準確率。通過攝像頭輸入720×576的彩色圖片,檢出的人臉在擁有300人的自建人臉庫中識別,平均用時0.9 s,識別率達93%以上,可以滿足安防監控的要求,具有較高的實用價值。
評論
查看更多