什麼是運動偵測
移動偵測技術是運動檢測錄像技術的基礎,現在已經被廣泛使用於
網路攝像機、汽車監控鎖、數字
寶護神、嬰兒監視器、自動取樣儀、自識別門禁等眾多安防儀器和設施上。常見的
移動偵測系統還允許使用者可以自由設定布防撤防時間、偵測的靈敏度、探測區域。當觸發時應可聯動錄像、聯動報警輸出、聯動攝像機轉到相應的預置位。
運動偵測原理
運動偵測允許在指定區域能識別
圖像的變化,檢測運動物體的存在並避免由光線變化帶來的干擾。但是如何從實時的序列
圖像中將變化區域從
背景圖像中提取出來,還要考慮運動區域的有效分割對於目標分類、跟蹤等後期處理是非常重要的,因為以後的處理過程僅僅考慮圖像中對應於運動區域的像素。然而,由於
背景圖像的動態變化,如天氣、光照、影子及混亂干擾等的影響,使得運動檢測成為一項相當困難的工作。
早期的運動檢測如MPEG1是對編碼後產生的I幀進行比較分析,通過視頻幀的比較來檢測圖像變化是一種可行的途徑。原理如下:MPEG1
視頻流由三類編碼幀組成,它們分別是:
關鍵幀(I幀),預測幀(P幀)和內插雙向幀(B幀)。I幀按JPEG標準編碼,獨立於其他編碼幀,它是MPEG1
視頻流中唯一可存取的幀,每12幀出現一次。截取連續的I幀,經過解碼運算,以幀為單位連續存放在記憶體的緩衝區中,再利用函式在緩衝區中將連續的兩幀轉化為
點陣圖形式,存放在另外的記憶體空間以作比較之用,至於比較的方法有多種。此方法是對編碼後的數據進行處理,而目前的MPEG1/MPEG4編碼都是
有損壓縮,對比原有的圖像肯定存在誤報和不準確的現象。
實際套用
運動偵測可以降低公共機構和企業場所的人工監控成本,並且避免人員長期值守疲勞導致的監察失誤,可以極大地提高監控效率和監控精度。主要被用於以下場合
1、遠程無線嬰幼兒監護
2、家庭、企業、銀行、碼頭、倉庫防盜
3、設備智慧型啟動、自動觸發門禁
4、交通、鐵路等違規拍攝和記錄
5、教學取樣、實驗室數據無人值守採集
6、保育、醫療、養老等護理機構和場所的監控報警
目前常用的方法
1.背景減除(Background Subtraction )
背景減除方法是目前運動檢測中最常用的一種方法,它是利用當前圖像與
背景圖像的差分來檢測出運動區域的一種技術。它一般能夠提供最完全的特徵數據,但對於動態場景的變化,如光照和外來無關事件的干擾等特別敏感。最簡單的背景模型是時間平均圖像,大部分的研究人員目前都致力於開發不同的背景模型,以期減少動態場景變化對於運動分割的影響。
2.時間差分(Temporal Difference )
時間差分(又稱相鄰幀差)方法是在連續的圖像序列中兩個或三個相鄰幀間採用基於像素的時間差分並且閾值化來提取出圖像中的運動區域。時間差分運動檢測方法對於動態環境具有較強的自適應性,但一般不能完全提取出所有相關的特徵像素點,在運動實體內部容易產生空洞現象。
3.光流(Optical Flow)
基於光流方法的運動檢測採用了運動目標隨時間變化的光流特性,如Meyer[2] 等通過計算位移向量光流場來初始化基於輪廓的跟蹤算法,從而有效地提取和跟蹤運動目標。該方法的優點是在攝像機運動存在的前提下也能檢測出獨立的運動目標。然而,大多數的光流計算方法相當複雜,且抗噪性能差,如果沒有特別的硬體裝置則不能被套用於全幀
視頻流的實時處理。
當然,在運動檢測中還有一些其他的方法,運動向量檢測法,適合於多維變化的環境,能消除背景中的振動像素,使某一方向的運動對象更加突出的顯示出來,但運動向量檢測法也不能精確地分割出對象。
運動檢測的實現
作為國內知名的視音頻編解碼卡的生產商,依靠中電集團第52研究所強大的技術研發力量,在DSP(
數位訊號處理器)上完成MPEG4/H264實時編碼,在給用戶的SDK的接口中,提供了有效的運動檢測分析功能。其過程如下圖:
· 信號輸入處理模組:標準模擬視頻信號(CVBS彩色或黑白)是亮度信號和色度信號通過頻普間置疊加在一起,需經過A/D晶片(如philips7113)的解碼,將
模擬信號轉成數位訊號,產生標準的ITU 656 YUV格式的數位訊號以幀為單位送到編碼卡上的DSP和記憶體中。
·ICP(Image Coprocessor圖像協處理器)處理模組:YUV數據在DSP中加上OSD(字元時間疊加)和LOGO(
點陣圖)等,複合後通過PCI匯流排送到顯存中,供視頻實時預覽用,還將複合後的數據送到編碼卡的記憶體中,供編碼使用。
·ENCODER(編碼)模組:將編碼卡記憶體中的YUV數據送到MPEG4/H264編碼器中,產生壓縮好的碼流,送到主機記憶體中,供錄像或
網路傳輸使用。
·MOTIONDETECT處理模組:對編碼卡記憶體中的以幀為單位YUV數據進行處理。目前,我們採用的是背景差分和時間差分相結合的一種幀差分的算法。通過計算兩個有一定時間間隔的幀的像素差分獲得場景變化。主要分以下幾個步驟:
1.設定運動檢測區域等參數:
用戶可以通過SDK中的函式,來設定1-99個有效的矩形,還可以設定快速和慢速兩種運動檢測狀態。快速檢測是對每隔兩幀的兩幀數據進行差分運算,慢速檢測是指對相隔12幀以上的兩幀數據進行差分運算。
2.啟動運動檢測功能:
因為經過A/D轉換後的數據是標準的ITU 656 YUV 4:2:2格式,而人眼又是對亮度最敏感,為了簡化算法,提高效率,直接對亮度(Y)值進行處理。對於某個檢測區域內每個象素點(x,y),T時刻與 T-n時刻亮度(Y)的差值為Mx,y(T)=||Yx,y(T) Yx,y(T-n)||,IF ||Mx,y(T) Mx,y(T-n)||≥Ta THEN L=TRUE,得到區域差分係數IMsum=ΣL。實際決定是否報警。
在CIF格式下,整個畫面的解析度是352*288(PAL),按16*16像素宏塊大小來劃分整個檢測區域,宏塊內的像素點是逐點從左到右,從上到下進行差分運算並得到宏塊差分係數。整個檢測區域又是按16*16的宏塊從左到右,從上到下進行掃描,最後計算出整個區域的差分係數。
3.返回運動檢測結果
如果整個區域的差分係數大於設定的閥值,置報警狀態並實時將每個檢測區域的宏塊差分係數都返回。根據預先設定的快速和慢速兩種檢測狀態,對畫面進行不間斷的分析處理,並返回結果,直到停止運動檢測。
如果整個區域的差分係數小於設定的閥值,復位報警狀態。這種基於幀差分算法的運動檢測完全獨立於編碼,可以靈活的任意啟動停止。實現“動則錄,不動則不錄 ”。配合其他
接口函式,還可以實現預錄像功能,即通常狀態下只是進行畫面預覽監控和運動檢測,編碼後的數據不寫入檔案,只暫時寫入一個FIFO緩衝區里,一旦發生運動檢測報警,可以先將報警之前緩衝區的數據寫入檔案,然後再實時將編碼後的數據寫入檔案,報警解除後,延時一段時間再停止寫檔案,轉入寫緩衝區狀態。實現運動檢測報警的全過程錄像。這樣既可以完整獲取整個報警事件的過程,又可以節約系統的資源,在相同的
存儲空間下,可以大大延長保存錄像的時間。
運動檢測技術評估
要對運動檢測技術的性能進行評估並不容易,特別是要進行定量的分析時,必須提供一個供作比較、研究的標準視頻序列,它應該包括突然場景變化,攝像機移動以及光線明暗變換等特殊效果。檢測方案可用多種參數來評估,比如檢測成功率、檢測失敗率等等。在實際套用環境中,可以通過調節閥值對室內普通環境,室外環境獲得比較好的監測效果。還可根據功能實現的方法分類,主要是對軟體和硬體兩大類實現方法進行一些定性的分析。採用硬體來實現監測功能,不占用CPU,擁有較快的處理速度,因而可以採用一些較為複雜的算法以獲得更為準確的監測結果,並且有很好的實時性。譬如有些攝像機內置VMD(Video Motion Detector視頻移動探測器)電路可以當報警探頭使用。檢測電路首先會將靜態圖像貯存起來,之後,如果發現畫面的變化量超過了預先設定的值,系統就會發出
報警信號,以提醒安防人員或啟動錄像機。然而硬體實現也意味著較高的成本,而且一旦系統對動態監測功能提出了更新更高的要求,那么原來的
硬體系統只能棄而不用,必須採購新的硬體,造成浪費。用軟體實現的監測功能,如果用主機的CPU來完成數值計算,算法不能太複雜,而且計算量不宜太大,否則會影響
監控系統其他功能(如顯示、錄像等)的實現。如果算法下載到DSP上運行,就可以解決這個問題,首先它的功能擴充非常容易,算法的最佳化不會造成不必要的浪費,可以生成新的微碼下載到DSP上,就可以提升性能,並且可以根據用戶不同的需求提供一些個性化的功能組合。我們認為,用DSP加軟體來實現系統的動態監測功能,是一種眼光更為長遠的選擇,而且也是運動檢測技術發展的必由之路。實際上我們在Philips 的Trimedia1300晶片上完成MPEG4/H264 CIF/2CIF編碼加運動檢測功能,在TI的DM642晶片上完成了MPEG4/H264的4CIF/2CIF/CIF編碼加運動檢測功能。