梁 瓊,蔡湧達,路梅梅,林詩穎,陳鵬光,熊建斌
(1. 廣東石油化工學院 理學院,廣東 茂名 525000;2. 廣東石油化工學院 計算機與電子信息學院,廣東 茂名 525000)
視頻監控在政府部門、金融、公安、交通、電力等特殊部門及行業中有廣泛的應用。如何將視頻監控的背景濾除實現運動目標的智能識別成為近年來的科研熱點之一[1-3]。能否對視頻中運動目標進行準確的檢測是后面能否實現對運動目標實時檢測和實時監控的關鍵所在?,F有的監控視頻目標識別方法主要有背景減除法、光流法和幀差法。背景減除算法是目前最常用的方法之一,該算法首先要確定視頻畫面的監控范圍來獲得相應的背景圖像,然后使用當前幀的圖像與背景圖像作差,從而檢測出相應的運動目標。這種方法思路簡單,容易實現,但是環境背景的變化對其目標識別的影響比較大,只能夠在背景圖像相對穩定的條件下實現運動目標的檢測[4],但實際的視頻監控場景中往往會存在明顯的變化(如樹葉搖動、光照變化),這會影響目標檢測的準確性,因此在應用過程中需要適當地對背景進行更新。當然也可以用平滑濾波法中的均值濾波除去所得圖像中的這些干擾因子。平滑濾波器濾去圖像中微小細節,有效抑制加性噪聲,減少局部灰度的起伏,但容易引起由圖像灰度尖銳變化所帶來的邊緣模糊的負影響[5]。光流法主要是通過檢測像素點的光流變化來檢測運動目標,該方法的優點是可以在未知背景的情況下對運動目標進行較準確的檢測,適用于運動背景的實時檢測,還可以應用于攝像機運動的情況,但這種方法的算法復雜程度很高,不能夠滿足視頻監控目標檢測中對實時性的要求[6-7]。這種方法存在的缺點也是不能被忽視的,在較大的干擾下魯棒性差,很難保證可靠性和準確性。幀差法是通過相鄰兩幀圖像或者多幀圖像之間作差,得到幀與幀之間像素點之間的值的變化,根據這些變化對像素點進行二值化實現運動目標識別。它作為一種快速算法可以實現良好運動目標區域檢測,但是這種方法需要根據具體的情況確定二值化的閾值,如果閾值設置得過小則會出現目標區域缺失,閾值設置得過大則會引入錯誤的目標[8]。同時,當運動目標的速度較快時會導致相鄰幀的背景遮擋變化較快,此時背景有可能被誤檢測為運動目標[9-10]。因此,在本文中對三幀差法進行改進并與基于網格的聚類算法進行結合實現運動目標的有效檢測。
近年來,由于計算機技術的快速發展以及社會上頻頻發生危及人身安全的各種事件,廣大學者認為通過視頻監控可以預防某些危險的發生。視頻監控這一領域在短時間內就得到了廣大學者的關注,許多有關目標識別的文獻增長速度飛快,一些發達、發展中國家也對其投入了大量的資源,同時視頻監控技術也得到了飛速發展。但在目標識別這個領域里,依然存在許多不足,需要更深入地研究和改進。本文針對傳統的基于幀差法的目標識別方法,提出基于三幀差法與聚類算法相結合的運動目標識別方法,在一定程度上滿足了視頻監控目標檢測準確性、穩定性和實時性的要求,具有一定的實用性價值。用三幀差法提取出視頻監控區的目標,三幀差法是運用相鄰幀的圖像作差,其優點是運算簡單、速度快,在背景靜止時提取運動目標的效果會更理想。但圖片背景中仍然極有可能存在很多冗余的亮點,為濾除這些干擾因素,僅保留所需要部分,本文運用基于網格的聚類算法來濾除這些亮點,這樣就大幅度提高了目標識別的準確率,減少了誤報的幾率。因此研發、提出了基于三幀差法與聚類算法相結合的監控目標識別方法。
視頻監控是由多幀圖像組成的,每一幀圖像都包含很多像素點。對于運動的目標來說,不同幀圖像的像素點會發生變化,背景的像素點值變化很小,理想狀態下變化為零。根據這個原理可以用后一幀圖像的像素點減前一幀圖像的像素點得出兩幀圖像變化的像素點值。用fk(x,y)代表第k幀圖像的像素點值,則二幀差法的計算公式為:
D(x,y)=fk(x,y)-fk-1(x,y)
(1)
通過式(1)可以得到兩幀圖像之間的像素差,根據這個像素差可以實現圖片像素的二值化,從而提取出視頻監控區域的目標。由于一部分背景像素點會因為外部干擾而發生細微的變化,因此在二值化過程中需要確定一個閾值。當像素差大于這個閾值的像素點值時,該點像素值增強為255,小于這個閾值的像素點值時,該點像素值設置為0。二值化公式如式(2)所示:

(2)
上面介紹了二幀差法基本原理,三幀差法在此基礎上增加k+1幀圖像與第k幀圖像作差并且二值化,得出第二個二值化數據BD1(x,y)。將BD(x,y)與BD1(x,y)作“與”操作即為三幀差法,這種方法可以解決運動目標被拉長或者不完整的問題。用公式表示為:
BD2(x,y)=BD(x,y)&BD1(x,y)
(3)
對于一幅經過三幀差法處理的圖像,可以得到較為完整的目標。但是大多數情況下由于閾值設置得不夠合理,圖片背景中還會存在許多冗余的亮點,這些亮點顯然不是所需要的。為了解決這個問題,在本文提出了基于網格的聚類算法來去除這些亮點。網格聚類主要是將像素點數據分割成很多很小的m×n網格,根據網格數據的分布情況來評估整個小網格是否為視頻監控檢測的目標。在網格聚類過程中像素點可以表示為:
(4)
本文中使用求和法評估網格中的像素點是否在目標區域,對于m×n的二值化像素矩陣可以用以下公式進行聚類。
σ=∑∑BD2(x,y),BD2(x,y)∈[m×n]
(5)
(6)
通過式(5)、(6)可以將圖像背景中大多數的冗余的亮點清除并加強目標區域的亮度,從而得到一個清晰的運動目標。
實驗步驟如下:
(1)采集視頻圖像。
(2)取連續三幀視頻圖像,對三幀圖像進行差分運算,得到每相鄰幀圖像之間的像素差。
(3)根據步驟(2)中得到的像素差進行運算可以實現圖像像素的二值化,從而提取出視頻監控區域的目標,得到黑白圖像。
(4)對步驟(3)中得到的圖像用基于網格的聚類算法進行背景亮點濾除,排除這些冗余亮點的干擾,得到較為清晰的運動目標。
本文以MATLAB 2010 為軟件平臺,借助二值化公式將幀差得到的數據進行二值化,再用聚類算法進行降噪處理,排除光線變化、噪聲等造成差分圖像檢測精度不高的因素。在實驗過程中,采集不同的連續三幀圖像進行本文算法計算實驗,每次都可得到最終的清晰圖片,絕非偶然情況。
在表1中,分別對五種運動目標檢測方法進行了對比,可以發現聚類算法更易于實現,其目標識別效果更好。

表1 運動目標檢測技術匯總表
傳統的三幀差法是利用圖片的像素點進行減法運算,將得到的像素點值進行合理的二值化處理。本文算法是經過三幀差法的處理后,再經過網格聚類算法處理加強運動目標,更好地進行識別,消除多余的亮點。算法流程如圖1所示。首先收集實驗原圖,如圖2所示,經過如圖1所示的算法流程處理后,得到如圖3所示的實驗結果圖。通過多次實驗發現,當閾值設置在10和11時得到的效果最好,能比較完整地識別運動目標。但由于車的行駛使得右面的墻壁出現了光線變化,從而出現錯誤的識別。由于背景環境中有風的干擾,地面的積水被風吹動,因此也被錯判是運動目標。

圖1 本文算法流程圖

圖2 實驗原圖

圖3 運動目標識別結果對比
如表1所示,如果只用某種檢測方法對目標進行檢測識別,則會給檢測帶來不同程度的誤差,例如傳統的三幀差法在運動目標識別過程中容易出現多余的亮點或是產生空洞,不利于目標的確定。本文提出了網格聚類的解決方法。網格聚類算法主要功能是區分小網格內的像素點是否位于要顯示的目標區域。通過這種分類可以將目標區域外的冗余點去除并對目標區域進行加強。通過實驗可以發現本文算法具有很好的運動目標識別能力。但是,本文的算法依然存在不足之處,還可以在許多方面進行改進。例如在閾值設置極不合理的時候,由于冗余點太多太大會出現錯檢的現象。所以在以后的研究中可以從閾值自適應調整方向著手實現運動目標的精準識別。
[1] 黃凱奇, 陳曉棠, 康運鋒,等. 智能視頻監控技術綜述[J]. 計算機學報, 2015, 38(6):1093-1118.
[2] 伊國棟. 智能視頻監控技術及其在安防領域的應用[J]. 電子世界, 2014(24):125-126.
[3] 杜正聰, 寧龍飛. 基于Sobel算法圖像邊緣檢測的FPGA實現[J]. 電子技術應用, 2016, 42(10):89-91.
[4] 張小駿, 劉志鏡, 陳昆. 一種基于曝光補償與顏色信息融合的背景減除法[J]. 電子技術與軟件工程, 2014(21):115-118.
[5] 鄭丹,馬尚昌,趙靜.基于空域濾波的圖像增強法的探討[J].微型機與應用,2017,36(4):40-42,46.
[6] 裴巧娜. 基于光流法的運動目標檢測與跟蹤技術[D]. 北京:北方工業大學, 2009.
[7] 姚倩, 安世全, 姚路. 三幀差法和Mean-shift結合的行人檢測與跟蹤研究[J]. 計算機工程與設計, 2014, 35(1):223-227.
[8] 周曉, 方玖琳, 鄭定超. 基于三幀差分和滑動平均背景的運動目標檢測[J]. 計算機測量與控制, 2016, 24(5):32-34.
[9] 程愛靈, 黃昶, 李小雨. 運動目標檢測算法研究綜述. 信息通信, 2017(1):13.
[10] 張玲, 陳麗,何偉,等.基于視頻的改進幀差法在車流量檢測中的應用[J].重慶大學學報,2004,27(5): 31-33,73.
[11] 楊國亮,王志良,牟世堂,等.一種改進的光流算法[J].計算機工程,2006,32(15): 187-189.
[12] 孫玉芬. 基于網格方法的聚類算法研究[D]. 武漢:華中科技大學, 2006.