楊慶江, 馮新宇, 李釗樞, 孫向瑞, 林憲峰, 王金旭
(1.黑龍江科技大學(xué) 電子與信息工程學(xué)院, 哈爾濱 150022; 2.國網(wǎng)黑龍江省電力有限公司黑河供電公司,黑龍江 黑河 164300; 3.黑龍江帕瓦節(jié)能環(huán)??萍加邢薰荆?哈爾濱 150001)
隨著智能監(jiān)視系統(tǒng)的飛速發(fā)展,視覺處理技術(shù)已經(jīng)日益深入到人們的日常生活。目前,動態(tài)目標(biāo)檢測已成為視覺處理的重點(diǎn)研究方向,廣泛應(yīng)用于安防、體育和交通等領(lǐng)域。動態(tài)目標(biāo)檢測是指在各種目標(biāo)運(yùn)動場景中,通過檢測算法選定當(dāng)前區(qū)域的動態(tài)目標(biāo),利用該目標(biāo)的坐標(biāo)、輪廓等信息,分析當(dāng)前場景中動態(tài)目標(biāo)的相關(guān)數(shù)據(jù),將檢測信息以視覺圖像的方式展現(xiàn)。檢測的重點(diǎn)在不丟失目標(biāo)情況下持續(xù)對目標(biāo)進(jìn)行檢測和追蹤[1]。在實(shí)際的視頻監(jiān)視系統(tǒng)中,需要其能夠?qū)崟r地檢測目標(biāo),因此,如何提高檢測目標(biāo)的實(shí)時性、準(zhǔn)確性是學(xué)者們一直關(guān)注的重點(diǎn)。
在提取運(yùn)動信息時,常會出現(xiàn)動態(tài)目標(biāo)內(nèi)部像素點(diǎn)缺失,即“空洞”現(xiàn)象,以及目標(biāo)邊緣斷裂等問題,直接影響目標(biāo)檢測的準(zhǔn)確性。郭治成等[2]提出了一種基于自適應(yīng)復(fù)雜背景的建模方法,降低了復(fù)雜場景下提取前景目標(biāo)的難度。劉宏飛等[3]利用卡爾曼濾波和匈牙利匹配算法的融合,實(shí)現(xiàn)運(yùn)動目標(biāo)連續(xù)跟蹤。都雪靜等[4]提出一種結(jié)合光流法和背景建模的車道識別算法,對圖像進(jìn)行自適應(yīng)的ROI分割,有效提高了車道線識別的效果和效率。陳媛等[5]給出一種基于最大模糊熵閾值選取的檢測算法,彌補(bǔ)了傳統(tǒng)三幀差分法檢測運(yùn)動目標(biāo)出現(xiàn)內(nèi)部“空洞”,輪廓不連續(xù)等不足,提高了算法的檢測性能。溫杰[6]利用中值濾波代替高斯濾波,采用Sobel算子實(shí)現(xiàn)梯度值的計(jì)算,將動態(tài)目標(biāo)的邊緣信息近乎完整提取,提高了算法的精確度。綜上,對于動態(tài)目標(biāo)檢測算法性能的提升,有學(xué)者采用傳統(tǒng)的光流法、背景差分法、幀間差分法,筆者采用融合Sobel的四幀差分法,同時解決“空洞”和邊緣斷裂等問題,提高動態(tài)目標(biāo)檢測的準(zhǔn)確率。
傳統(tǒng)的目標(biāo)檢測算法常用幀間幀差法作為運(yùn)動信息提取的算法,其計(jì)算和實(shí)現(xiàn)流程簡單,適應(yīng)光線變化和動態(tài)背景的能力強(qiáng),但其對動態(tài)目標(biāo)信息的提取有限,無法避免提取過程中出現(xiàn)的“空洞”、輪廓不完整,很難將完整的目標(biāo)信息提供給后續(xù)的圖像處理[7]。為避免該情況的發(fā)生,同時又保證算法的優(yōu)點(diǎn),提出了四幀差分算法提取動態(tài)目標(biāo)。
圖像采集設(shè)備采集的視頻流數(shù)據(jù)具有連續(xù)的特點(diǎn),若連續(xù)的幀數(shù)之間,采集圖像像素點(diǎn)未有明顯變化,說明當(dāng)前環(huán)境內(nèi)沒有運(yùn)動目標(biāo)。如果連續(xù)的圖像像素點(diǎn)有明顯的數(shù)據(jù)變化,則變化像素點(diǎn)即為運(yùn)動目標(biāo),幀間差分法就是應(yīng)用了上述思想。該算法僅僅使用兩幀數(shù)據(jù)進(jìn)行幀差,得到差分?jǐn)?shù)據(jù)后,從而提取運(yùn)動目標(biāo),二幀差分算法提取運(yùn)動目標(biāo)流程見圖1。
圖1 二幀差分算法流程Fig. 1 Inter-frame difference algorithm flow
由圖1可見,其流程主要分為幀差和二值提取,二值化需要預(yù)先設(shè)置二值化所需閾值T,而環(huán)境的變換會影響T的取值,文中采用了自適應(yīng)閾值的二值提取,來適應(yīng)不同的環(huán)境。假設(shè)視頻圖像序列中任意連續(xù)的兩幀圖像,兩幀間差分為
Dk(x,y)=|fk(x,y)-fk+1(x,y)|。
(1)
由式(1)中fk(x,y)可知,視頻流中相同像素點(diǎn)的部分為靜止背景,在差分運(yùn)算中已經(jīng)消除,余留像素點(diǎn)即為動態(tài)目標(biāo)部分像素點(diǎn),即需要提取的像素?cái)?shù)據(jù)。經(jīng)式(1)差分圖像Dk(x,y)二值化處理,得到差分結(jié)果二值圖像為
(2)
式中,T——二值化自適應(yīng)閾值。
在此基礎(chǔ)上,通過不斷疊加差分運(yùn)算,檢測運(yùn)動目標(biāo),四幀差分運(yùn)算的流程如圖2所示。
圖2 四幀差分流程Fig. 2 Four-frame differential flow
四幀差分算法具有足夠多的幀圖像數(shù)據(jù),避免了差分得到的目標(biāo)輪廓不完整,其流程在上一算法的基礎(chǔ)上加入了多幀二值結(jié)果相與的步驟,設(shè)fk、fk+1、fk+2、fk+3為視頻流中連續(xù)四幀圖像數(shù)據(jù),通過兩兩差分運(yùn)算,提取Dk1、Dk2、Dk33組差分圖像數(shù)據(jù),選定閾值T二值化后,將所有結(jié)果與運(yùn)算,即可獲取更為清晰的動態(tài)目標(biāo)輪廓信息。關(guān)于四幀差分運(yùn)算的運(yùn)算邏輯,如式(3)~(6)所示,Rk1、Rk2、Rk3為二值化處理后的圖像數(shù)據(jù)。
(3)
(4)
(5)
(6)
該方式可以更為完整提取動態(tài)目標(biāo)的輪廓信息,提高目標(biāo)檢測的精度,降低誤檢率。
由于傳統(tǒng)目標(biāo)檢測算法在提取運(yùn)動目標(biāo)時,易出現(xiàn)目標(biāo)邊緣割裂的問題,降低檢測精度。引入Sobel邊緣檢測算法,使目標(biāo)輪廓信息更為清晰、完整,降低檢測運(yùn)動目標(biāo)的難度,提升檢測的精確度。Sobel、Roberts、Prewitt作為經(jīng)典邊緣檢測算子,其中,Roberts算子運(yùn)算速度非常快,定位精度高,在水平和垂直方向效果好,但是對噪聲敏感[8],抗干擾能力相對較弱,因此,適應(yīng)能力很低。Prewitt和Sobel算子均是由3×3矩陣卷積,其抗噪聲能力和濾波能力較Roberts算子有較大提升,由于Prewitt算子在權(quán)值計(jì)算時未有差異性,所以相對于Sobel算子,其邊緣效果不夠準(zhǔn)確,且輪廓較大,會影響后續(xù)實(shí)驗(yàn)效果。Sobel算子具有更高的靈活性,可以區(qū)分像素點(diǎn)距離進(jìn)行不同計(jì)算,因此,文中選用Sobel邊緣檢測算子來提取運(yùn)動目標(biāo)輪廓信息,以方便后續(xù)處理。
Sobel算子是通過卷積實(shí)現(xiàn),也就是對傳輸過來的圖像像素值進(jìn)行求梯度運(yùn)算,其實(shí)現(xiàn)原理見圖3。
圖3 卷積矩陣實(shí)現(xiàn)原理Fig. 3 Principle of convolution matrix implementation
由圖3可知,該算法需要對圖像數(shù)據(jù)的兩個方向進(jìn)行矩陣卷積,分別為水平Gx和豎直Gy。將兩矩陣與圖像像素點(diǎn)數(shù)據(jù)做卷積運(yùn)算,即可分別得出水平和豎直的圖像灰度值。Sobel卷積矩陣為
(7)
(8)
式中,M——圖像數(shù)據(jù)。
將卷積得到水平、豎直方向灰度值通過式(9)計(jì)算該點(diǎn)的邊緣灰度值為
(9)
為提高算法的運(yùn)算效率,減輕系統(tǒng)實(shí)現(xiàn)難度,可以將GR(x,y)計(jì)算公式簡化為
GR(x,y)=|Gx|+|Gy|。
(10)
根據(jù)室內(nèi)環(huán)境設(shè)定好邊緣檢測閾值后,將設(shè)定的閾值與式(10)像素點(diǎn)梯度值GR(x,y)進(jìn)行對比。若閾值小于該點(diǎn)的值,該像素點(diǎn)為圖像的邊緣,否則為圖像的內(nèi)部信息或者背景。
文中在四幀差分算法的基礎(chǔ)上,通過Sobel邊緣檢測算子與四幀差分運(yùn)算相結(jié)合的目標(biāo)檢測方式,減少該問題的發(fā)生概率,使動態(tài)目標(biāo)輪廓信息更為完整并以此作為后續(xù)動態(tài)目標(biāo)提取的準(zhǔn)備階段,提升動態(tài)目標(biāo)檢測的精確度。該方法分別對原視頻序列中的圖像進(jìn)行四幀差分運(yùn)算和Sobel邊緣檢測運(yùn)算,隨后采用形態(tài)學(xué)濾波等手段處理圖像數(shù)據(jù)檢測運(yùn)動目標(biāo),算法流程如圖4所示。
圖4 融合Sobel邊緣檢測的四幀差分法流程Fig. 4 Flow of four-frame difference method
由圖4可見,根據(jù)1.1節(jié)圖2四幀差分檢測流程,對原來序列的第k幀fk(x,y)、第k+1幀fk+1(x,y)、第k+2幀fk+2(x,y)、第k+3幀fk+3(x,y)進(jìn)行兩兩差分運(yùn)算,分別得到差分圖像Dk1、Dk2、Dk3。分別對差分結(jié)果Dk1、Dk2、Dk3二值化處理。二值結(jié)果相與,獲取最終目標(biāo)二值像素。使用Sobel算子對采集圖像的第k幀fk(x,y)進(jìn)行邊緣化處理。二值化圖像和邊緣圖像邏輯或運(yùn)算提取目標(biāo)完整輪廓。形態(tài)學(xué)處理無用像素點(diǎn),完成動態(tài)目標(biāo)的提取。
利用Matlab實(shí)現(xiàn)對圖像序列的處理,實(shí)驗(yàn)采用的PC機(jī)配置CPU為Intel Core i5-9300h,2.4 GHz,GPU為GTX1660ti,內(nèi)存為16 G。應(yīng)用的環(huán)境為室內(nèi)環(huán)境,主要采集人的運(yùn)動數(shù)據(jù),由于人正常步行速度約為1.1 m/s,所以檢測的目標(biāo)是在低速環(huán)境下,監(jiān)視視頻是由校園監(jiān)控所提供,選取視頻流中連續(xù)幀的圖像,在Matlab仿真環(huán)境中,設(shè)置合適的環(huán)境閾值T,對算法進(jìn)行仿真實(shí)驗(yàn),原視頻序列連續(xù)四幀圖像如圖5所示,差分結(jié)果如圖6所示。
圖5 原視頻序列Fig. 5 Original video sequence
由圖6可見,二幀差分算法提取輪廓信息的完整度約20%,目標(biāo)輪廓大面積缺失,背部圖像信息無法提取。若該方法作為目標(biāo)檢測算法提取動態(tài)目標(biāo),無法保證檢測的精確度,而且算法容易受到目標(biāo)速度影響,運(yùn)動速度過快,二幀運(yùn)動目標(biāo)不連續(xù),會導(dǎo)致“空洞”。三幀差分算法檢測同一運(yùn)動目標(biāo)的輪廓信息與二幀差分算法相比,上漲了一倍左右,檢測信息完整度達(dá)到40%,目標(biāo)背后輪廓仍有大面積缺失。雖然相較于二幀差分算法已經(jīng)有了明顯的提升,但大面積空洞和不完整的輪廓只能給后續(xù)目標(biāo)的檢測增加難度。四幀差分算法輪廓信息達(dá)到了65%,目標(biāo)輪廓更為明顯、清晰,有效降低了空洞現(xiàn)象,能夠檢測到目標(biāo)近乎完全的輪廓信息,但后背輪廓還是有一定的割裂,繼續(xù)疊加幀差運(yùn)算,如表1所示。其中,運(yùn)算速度為v;誤檢率為α;輪廓完整信息為β。
圖6 Matlab差分結(jié)果Fig. 6 Matlab differential result graph
表1 幀間差分法仿真結(jié)果對比
由表1可知,在相同室內(nèi)環(huán)境下,二幀到三幀的處理方式提升幅度幾乎一倍,三幀到四幀約提升60%;但四幀差分繼續(xù)向上疊加提升幅度大幅降低,僅為1%左右且運(yùn)算速度明顯減慢,誤檢率有一定下降,說明算法對無用二值像素點(diǎn)的濾除有一定作用,文中最終選擇對四幀差分算法進(jìn)一步優(yōu)化。
采用文中提出的融合Sobel邊緣檢測的四幀差分算法進(jìn)行仿真實(shí)驗(yàn),Matlab仿真結(jié)果如圖7所示。圖7a為四幀差分檢測的結(jié)果。四幀差分提取的運(yùn)動目標(biāo)存在模糊不完整邊緣,會產(chǎn)生“空洞”現(xiàn)象。圖7b為Sobel邊緣圖像。由圖7b可以看出,檢測邊緣信息較為完整,但邊緣像素點(diǎn)不連續(xù)。圖7c為融合了Sobel邊緣檢測的四幀差分算法。由圖7c仿真結(jié)果顯示,運(yùn)動目標(biāo)信息達(dá)到了80%以上,“空洞”和邊緣不完整問題得到極大的抑制,目標(biāo)邊緣連續(xù)完整,繼承了兩種算法對目標(biāo)提取的優(yōu)點(diǎn),使動態(tài)目標(biāo)像素信息更為完整。
圖7 Matlab仿真結(jié)果Fig. 7 Matlab simulation results
采用Matlab中的boundingbox函數(shù),使用最小包圍框框選上一節(jié)算法提取出的運(yùn)動像素點(diǎn),實(shí)現(xiàn)對運(yùn)動目標(biāo)的檢測,可以得到在相同環(huán)境,相同閾值下運(yùn)動目標(biāo)區(qū)域,圖8a、b為四幀差分檢測結(jié)果,圖8c為融合了Sobel的四幀差分法檢測結(jié)果。通過仿真對比,采用四幀差分算法的最小包圍框?qū)τ趧討B(tài)目標(biāo)的檢測存在大量的不準(zhǔn)確幀,融合了Sobel的四幀差分算法可以更準(zhǔn)確的檢測運(yùn)動目標(biāo)。
圖8 目標(biāo)檢測與檢測仿真實(shí)驗(yàn)Fig. 8 Target detection and detection and tracking simulation experiment
為了進(jìn)一步驗(yàn)證改進(jìn)算法的有效性,從室內(nèi)監(jiān)控中獲取不同時段的監(jiān)控錄像,在Matlab環(huán)境下采用相同的方式實(shí)驗(yàn)150次,統(tǒng)計(jì)其檢測準(zhǔn)確率η、誤檢率ζ,綜合指標(biāo)H見表2。檢測準(zhǔn)確率η表征正確檢測動態(tài)目標(biāo)幀數(shù)占總動態(tài)目標(biāo)幀數(shù)的比例;誤檢率ζ表征錯誤檢測動態(tài)目標(biāo)幀數(shù)占總檢測幀數(shù)比例。
表2 算法檢測對比
式中:AP——正確檢測動態(tài)目標(biāo)的幀數(shù);
BP——檢測出非動態(tài)目標(biāo)的幀數(shù);
FN——未檢測出動態(tài)目標(biāo)的幀數(shù)。
文中引入一個綜合指標(biāo)H來評估檢測算法的整體性,如果檢測準(zhǔn)確率越高和誤檢率越低,則H值就越大,算法性能越高[9],H值定義為
由表2衡量標(biāo)準(zhǔn)對比顯示,改進(jìn)算法相對于普通四幀差分更準(zhǔn)確,誤檢率更低,H值提升約18.6%,算法性能更為優(yōu)秀。
(1)針對二幀差分算法提取動態(tài)目標(biāo)輪廓、邊緣信息不完整和“空洞”現(xiàn)象,提出了融合Sobel的四幀差分法,在二幀差分的基礎(chǔ)上,疊加幀差運(yùn)算,采用自適應(yīng)四幀差分使檢測的運(yùn)動目標(biāo)信息達(dá)到了65%,改善了“空洞”問題。
(2)由于目標(biāo)輪廓還存在大量邊緣不連續(xù),引入Sobel算子增強(qiáng)邊緣輪廓,將目標(biāo)信息完整度提升到80%,綜合評估H值提升18.6%,有效提高了動態(tài)目標(biāo)檢測的準(zhǔn)確性。文中研究內(nèi)容在監(jiān)視系統(tǒng)上有一定的應(yīng)用價(jià)值,可向多目標(biāo)檢測繼續(xù)提升。