李佩陽,陸華才
(安徽工程大學(xué) 電氣傳動(dòng)與控制安徽普通高校重點(diǎn)實(shí)驗(yàn)室,安徽 蕪湖 241000)
基于計(jì)算機(jī)視覺的運(yùn)動(dòng)目標(biāo)檢測已經(jīng)成為社會(huì)發(fā)展與技術(shù)進(jìn)步的一個(gè)重要發(fā)展方向,近年來人工智能領(lǐng)域的興起,更加促進(jìn)計(jì)算機(jī)視覺朝著工業(yè)化方向前進(jìn),并且在人們?nèi)粘I詈凸I(yè)化生產(chǎn)中得到了廣泛的應(yīng)用。對于運(yùn)動(dòng)目標(biāo)的檢測技術(shù)已然成為熱點(diǎn)研究方向之一,同時(shí)也是提升智能化交通和城市治理能力的重要環(huán)節(jié)?,F(xiàn)如今在復(fù)雜交通場景實(shí)現(xiàn)優(yōu)良性能的運(yùn)動(dòng)目標(biāo)檢測效果仍然存在一些問題,比如交通背景的復(fù)雜性、視頻序列檢測時(shí)間長、復(fù)雜交通場景下的人和車檢測在不同尺度變化與外姿變化、運(yùn)動(dòng)目標(biāo)檢測過程中的遮擋與重復(fù)等。
目前有很多研究學(xué)者針對運(yùn)動(dòng)目標(biāo)檢測進(jìn)行了相關(guān)技術(shù)研究。徐曉明等[1]針對算法的實(shí)時(shí)性較差與魯棒性差等問題提出一種Subsense檢測算法,能夠根據(jù)外界環(huán)境變化調(diào)整相應(yīng)的參數(shù)設(shè)置,從而提升復(fù)雜運(yùn)動(dòng)目標(biāo)的識(shí)別能力。湯旻安等[2]針對靜態(tài)背景下運(yùn)動(dòng)目標(biāo)“鬼影”問題,提出一種哈希與圖像二維信息熵的改進(jìn)思路,提升ViBe算法對靜態(tài)場景運(yùn)動(dòng)目標(biāo)的檢測與識(shí)別能力。但是現(xiàn)有研究中針對視頻幀之間聯(lián)系的解決思路較少,缺少對視頻幀之間前景與背景提取問題的深入研究。
本文提出的運(yùn)動(dòng)目標(biāo)檢測算法針對視頻幀進(jìn)行圖像預(yù)處理操作,在視頻幀進(jìn)行二值化過程中采用改進(jìn)的最大類間方差(OTSU)算法解決光照亮度不均所帶來的影響問題[3],再根據(jù)視頻幀中運(yùn)動(dòng)目標(biāo)區(qū)域像素點(diǎn)的變化進(jìn)一步將運(yùn)動(dòng)目標(biāo)提取出來,根據(jù)提取的運(yùn)動(dòng)目標(biāo)輪廓進(jìn)行標(biāo)記,從而實(shí)現(xiàn)視頻幀上運(yùn)動(dòng)目標(biāo)的檢測[4]。
從高清攝像機(jī)拍攝或保存的視頻中提取視頻幀圖像進(jìn)行處理。首先對視頻幀圖像進(jìn)行預(yù)處理操作[5],在對圖像進(jìn)行濾波操作完成二值化過程中,通過采用改進(jìn)的OTSU算法完成圖像前景與背景的閾值輸出,從而解決光照因素的干擾,完成后續(xù)二值化操作。其中運(yùn)動(dòng)目標(biāo)檢測算法基礎(chǔ)流程圖如圖1所示。
圖1 運(yùn)動(dòng)目標(biāo)檢測算法流程圖
在對視頻幀進(jìn)行處理的過程中,需要先進(jìn)行灰度化,而圖像的灰度化操作在一定程度上對噪聲有一定的抑制效果[6],同時(shí)為了去除圖像的椒鹽噪聲,本文采用中值濾波解決椒鹽噪聲的干擾問題。在對圖像進(jìn)行二值化的過程中,通過OTSU算法計(jì)算出一個(gè)合適的閾值T,對圖像中的每一個(gè)像素點(diǎn)進(jìn)行閾值操作,按照每個(gè)像素的灰度值f(x,y)大小來判斷是否大于或等于T,若是該像素點(diǎn)像素值則被置為255(白色),若不是則被置為0(黑色)。公式如下:
(1)
式中,x,y分別為像素點(diǎn)的橫縱坐標(biāo);P(x,y)為二值化處理后的像素值。
OTSU算法核心在于通過一個(gè)閾值T將圖像灰度值分成前景和背景部分,該算法主要計(jì)算思路及計(jì)算公式如下:
①對于圖像I(x,y),用閾值T將圖像分割為前景和背景兩個(gè)部分。
②設(shè)w0為前景圖像像素點(diǎn)與整個(gè)圖像像素點(diǎn)的比值,設(shè)u0為前景圖像的平均灰度。
③設(shè)w1為背景圖像像素點(diǎn)與整個(gè)圖像像素點(diǎn)的比值,設(shè)u1為背景圖像的平均灰度。
④設(shè)圖像總體平均灰度為u,且設(shè)g為類間方差,設(shè)圖像大小為M×N,其中對于灰度值小于閾值T的像素個(gè)數(shù)為N0,大于閾值T的像素個(gè)數(shù)為N1。
前景比例:
(2)
背景比例:
(3)
像素點(diǎn)總和:
N0+N1=M×N,
(4)
前景與背景的概率和:
w0+w1=1,
(5)
平均灰度值:
u=w0×u0+w1×u1,
(6)
類間方差:
g=w0(u0-u)2+w1(u1-u)2,
(7)
由式(4)~(6)可得:
g=w0×w1(u0-u1)2。
(8)
當(dāng)閾值T的值變化到類間方差g最大的時(shí)候,則該閾值T為OTSU算法計(jì)算所得出的最合適的閾值。選取的交通路口部分圖像如圖2所示。采用OTSU算法進(jìn)行閾值選取時(shí)會(huì)造成亮度較低的區(qū)域信息丟失,從而對實(shí)驗(yàn)結(jié)果產(chǎn)生很大的干擾,如圖3所示。由圖3可以看出,圖像本身存在光照亮度不均部分,經(jīng)過OTSU算法求得的閾值對于非陰影部分處理結(jié)果較好,圖像亮度較高的區(qū)域信息保留得更加完整,而該算法對亮度較低區(qū)域處理結(jié)果較差,未能提取亮度較低區(qū)域中有效的圖像信息。
圖2 交通路口原圖 圖3 OTSU算法處理結(jié)果圖
在處理光照亮度不均的圖像時(shí),可以將整個(gè)圖像進(jìn)行全局閾值,然后通過定義ROI區(qū)域重復(fù)選擇圖像陰影部分與OTSU算法結(jié)合計(jì)算,最終可以得到一個(gè)算術(shù)平均值,將其作為最終陰影區(qū)域的閾值輸出,其改進(jìn)的OTSU算法流程為:對于圖像陰影區(qū)域的處理過程主要是先對圖像進(jìn)行預(yù)處理和灰度化,再利用OTSU算法對整個(gè)圖像的閾值進(jìn)行初步的閾值處理,從而得到總體的全局閾值T1;然后利用感興趣區(qū)域ROI對圖像陰影部分進(jìn)行單獨(dú)提取處理,將重復(fù)提取的結(jié)果算數(shù)平均值作為該陰影部分的全局閾值T2;最后判斷圖像中像素點(diǎn)是否處于陰影部分來進(jìn)行相應(yīng)的閾值計(jì)算。
在進(jìn)行二值化操作之后需要對圖像進(jìn)行邊緣檢測,本實(shí)驗(yàn)選用的是Canny邊緣檢測技術(shù)對運(yùn)動(dòng)目標(biāo)進(jìn)行邊緣檢測。視頻幀的邊緣檢測過程既要保證檢測的準(zhǔn)確性,同時(shí)也要保證重要的邊緣信息不能丟失。而Canny算子的優(yōu)點(diǎn)在于:第一,既保持了原有重要的邊緣部分,同時(shí)也不會(huì)出現(xiàn)虛假的邊緣部分;第二,在圖像的邊緣檢測部分,其實(shí)際邊緣與檢測到的邊緣部分偏差最?。坏谌?將多處的邊緣響應(yīng)部分降低為單個(gè)邊緣響應(yīng)部分,這一點(diǎn)很好地解決了邊緣部分的噪聲影響問題。以下用size=5的高斯內(nèi)核來表明Canny檢測的噪聲消除:
(9)
通過計(jì)算梯度的幅值和方向,運(yùn)用一對卷積陣列:
(10)
(11)
式中,x、y分別為兩個(gè)垂直方向。
梯度幅值和方向計(jì)算:
(12)
(13)
式中,θ為角度,而梯度方向的角度一般在0°~135°。
Canny算子本身就自帶滯后閾值,滯后閾值包括高閾值和低閾值兩種。當(dāng)掃描圖像每一點(diǎn)的像素值的時(shí)候,大于高閾值的像素點(diǎn)會(huì)被保留下來,而低于低閾值的像素點(diǎn)會(huì)被去除。如果某一點(diǎn)的像素值介乎于高閾值和低閾值之間,則會(huì)進(jìn)一步判斷該點(diǎn)鄰域是否有大于高閾值的像素點(diǎn),若有則該點(diǎn)被保留,反之排除該點(diǎn)。其中,運(yùn)動(dòng)目標(biāo)檢測原圖以及Canny邊緣檢測結(jié)果圖如圖4、5所示。
圖4 運(yùn)動(dòng)目標(biāo)檢測原圖 圖5 Canny邊緣檢測結(jié)果圖
圖6 運(yùn)動(dòng)目標(biāo)輪廓提取流程圖
Canny邊緣檢測的結(jié)果可以作為輪廓提取的一個(gè)輸入,對于視頻幀而言檢測的目標(biāo)為運(yùn)動(dòng)目標(biāo),所以針對這一目的需要將幀與幀之間的關(guān)系進(jìn)行聯(lián)系。從整個(gè)邊緣檢測效果來看,對于視頻幀的邊緣檢測僅針對圖像中所有物體的邊緣進(jìn)行提取[7],而運(yùn)動(dòng)目標(biāo)的邊緣包含在里面。只有根據(jù)視頻幀之間的關(guān)系才能將運(yùn)動(dòng)目標(biāo)準(zhǔn)確提取出來,在視頻幀不斷變化的過程中,運(yùn)動(dòng)目標(biāo)所處位置也在不斷變化,這意味著運(yùn)動(dòng)目標(biāo)位置的像素點(diǎn)也在不斷改變[8],根據(jù)這一特性對運(yùn)動(dòng)目標(biāo)進(jìn)行輪廓提取,其具體流程圖如圖6所示。由圖6可知,視頻幀在經(jīng)過Canny邊緣檢測之后需要對運(yùn)動(dòng)目標(biāo)的輪廓進(jìn)行邊緣提取,從而進(jìn)一步在視頻幀中提取出運(yùn)動(dòng)目標(biāo)的位置[9]。通過定義考察幀的總數(shù)n,在n幀中對像素點(diǎn)進(jìn)行判斷是否為背景點(diǎn)。如果不同幀相同位置的像素差值小于設(shè)定閾值t,則判斷該位置像素點(diǎn)為背景,反之為運(yùn)動(dòng)目標(biāo)像素點(diǎn)用于后續(xù)輪廓提取[10]。最后結(jié)合輪廓大小排序,選擇輪廓較大的目標(biāo)進(jìn)行框選標(biāo)記,最終標(biāo)記出視頻中的運(yùn)動(dòng)目標(biāo)。
本文改進(jìn)的OTSU算法通過交通圖像來顯示改進(jìn)效果,以圖2的交通路口原圖進(jìn)行算法結(jié)果對比,其中OTSU算法結(jié)果圖如圖3所示,改進(jìn)OTSU算法結(jié)果圖如圖7所示。根據(jù)實(shí)驗(yàn)結(jié)果對比可知,傳統(tǒng)OTSU算法在處理圖像亮度較低的區(qū)域時(shí),會(huì)丟失圖像陰影部分信息,不能有效地提取圖像中有用的信息。而改進(jìn)的OTSU算法在處理圖像與亮度較低區(qū)域的過程中,能夠很好地解決信息丟失問題,使得亮度較低部分的圖像信息能夠得到有效地提取[11]。將改進(jìn)的OTSU算法應(yīng)用到視頻幀中運(yùn)動(dòng)目標(biāo)的檢測中,能夠有效地解決光照不均等造成的干擾問題。
為了驗(yàn)證本文算法,不僅僅局限于理論可行性,還兼顧實(shí)際操作性,所以要通過實(shí)驗(yàn)進(jìn)行驗(yàn)證分析。本次實(shí)驗(yàn)基于硬件設(shè)備Intel i5-10200H CPU,在Windows 10操作系統(tǒng)下微軟開發(fā)的Visual Studio 2019社區(qū)版本以及計(jì)算機(jī)開源視覺庫Opencv4.1.0版本,在這些實(shí)驗(yàn)基礎(chǔ)上對交通路段的視頻進(jìn)行相應(yīng)處理。其中截取了視頻中的圖像結(jié)果作為實(shí)驗(yàn)結(jié)果,交通路口原圖如圖2所示,圖8~10分別為二值化結(jié)果圖、未改進(jìn)算法結(jié)果圖和改進(jìn)算法結(jié)果圖。
圖7 改進(jìn)OTSU算法結(jié)果圖 圖8 二值化結(jié)果圖
圖9 未改進(jìn)算法結(jié)果圖 圖10 改進(jìn)算法結(jié)果圖
實(shí)驗(yàn)結(jié)果表明,本文提出的算法能夠有效針對運(yùn)動(dòng)目標(biāo)進(jìn)行檢測,根據(jù)運(yùn)動(dòng)物體運(yùn)動(dòng)速度的快慢可以通過調(diào)節(jié)合適的參數(shù)進(jìn)行選擇。如果運(yùn)動(dòng)目標(biāo)運(yùn)動(dòng)速度較慢,可以選擇更多的總幀數(shù)n進(jìn)行調(diào)節(jié),同樣可以更改連續(xù)k幀的值對實(shí)驗(yàn)效果進(jìn)行調(diào)節(jié)。根據(jù)實(shí)驗(yàn)場景和實(shí)驗(yàn)對象調(diào)節(jié)不同的參數(shù)達(dá)到檢測的最優(yōu)效果,經(jīng)過本文改進(jìn)后的OTSU算法處理的二值化圖像能夠?qū)\(yùn)動(dòng)目標(biāo)的圖像信息較為完整地提取,避免了由于光照等因素帶來的干擾,在算法運(yùn)行效率方面也有顯著提高。實(shí)驗(yàn)結(jié)果顯示,本文提出的運(yùn)動(dòng)目標(biāo)檢測算法運(yùn)動(dòng)目標(biāo)檢測效果較好,同時(shí)避免了檢測框交叉影響檢測結(jié)果,能夠?qū)⑦\(yùn)動(dòng)目標(biāo)信息有效地檢測出來。
本文通過運(yùn)用圖像處理技術(shù)對視頻幀進(jìn)行處理,由改進(jìn)的OTSU算法解決視頻幀在進(jìn)行二值化過程中受到光照亮度不均等因素影響的問題,并運(yùn)用背景消去思路以及視頻幀之間的聯(lián)系提取視頻中的運(yùn)動(dòng)目標(biāo)。根據(jù)運(yùn)動(dòng)目標(biāo)在視頻幀中位置的不同,從而位置區(qū)域像素點(diǎn)發(fā)生變化這一原理將運(yùn)動(dòng)目標(biāo)與背景進(jìn)行分離,再通過輪廓的排序選擇合適較大的輪廓軌跡并在視頻幀中進(jìn)行框選操作,從而達(dá)到運(yùn)動(dòng)目標(biāo)檢測這一目的。實(shí)驗(yàn)結(jié)果表明,本文提出的運(yùn)動(dòng)目標(biāo)檢測算法能夠有效提取出視頻中的運(yùn)動(dòng)目標(biāo),特別是在處理交通視頻過程中,能夠極大地解決光照亮度不均等因素所造成的干擾。在現(xiàn)階段圖像處理技術(shù)與算法研究基礎(chǔ)上,本文提出的運(yùn)動(dòng)目標(biāo)檢測算法實(shí)用性較強(qiáng),能夠很好地檢測出視頻中的運(yùn)動(dòng)目標(biāo),在處理速度上能夠滿足實(shí)時(shí)性要求,而且有益于后續(xù)識(shí)別過程,對于運(yùn)動(dòng)目標(biāo)的檢測和識(shí)別等相關(guān)工作都有著重要的價(jià)值。