杜文漢, 李東興, 王倩楠, 武帥
(山東理工大學(xué)機(jī)械工程學(xué)院, 淄博 255000)
運(yùn)動(dòng)目標(biāo)檢測是圖像處理領(lǐng)域的基本任務(wù)之一,在視頻監(jiān)控、產(chǎn)品檢測、導(dǎo)航等領(lǐng)域有著極其重要的作用[1]。運(yùn)動(dòng)目標(biāo)檢測技術(shù)的核心在于從實(shí)時(shí)變化的背景中準(zhǔn)確而高效的提取運(yùn)動(dòng)目標(biāo)[2-3]。
針對運(yùn)動(dòng)目標(biāo)的檢測問題,背景減法通過當(dāng)前幀與背景圖像差分提取目標(biāo),適合的背景模型的構(gòu)建較復(fù)雜,實(shí)時(shí)性較差[4-5]。幀差法基于圖像差分檢測目標(biāo),計(jì)算簡單但檢測結(jié)果易出現(xiàn)重影和空洞[6-7]。對上述算法的研究和改進(jìn)中,文獻(xiàn)[8]通過改進(jìn)Canny算子提取目標(biāo)邊緣圖像來補(bǔ)充目標(biāo)邊界,雖然提高了檢測目標(biāo)邊緣像素點(diǎn)的精度,但忽略了檢測目標(biāo)的內(nèi)部空洞,因而檢測目標(biāo)的完整度較低。郝曉麗等[9]期望利用背景減法的結(jié)果填充邊緣圖像提高檢測目標(biāo)的完整度,雖能有效抑制目標(biāo)空洞和背景雜波,但運(yùn)動(dòng)目標(biāo)邊緣圖像和改進(jìn)幀差法結(jié)果的與運(yùn)算舍棄了大量目標(biāo)邊緣點(diǎn),仍存在邊緣模糊的問題。文獻(xiàn)[10]利用四幀差分法結(jié)果訓(xùn)練改進(jìn)混合高斯背景模型,提高了目標(biāo)檢測精度,但算法運(yùn)算速度較低。
針對上述算法出現(xiàn)的不足,現(xiàn)提出的運(yùn)動(dòng)目標(biāo)檢測算法主要在4個(gè)方面進(jìn)行改進(jìn)和拓展:一是借助幀差法并通過面積閾值剔除無運(yùn)動(dòng)目標(biāo)的幀的檢測,以提高算法的檢測效率;二是對Canny算子進(jìn)行優(yōu)化,以提高邊緣點(diǎn)的提取準(zhǔn)確率;三是提出一種基于改進(jìn)Canny算子的運(yùn)動(dòng)目標(biāo)邊緣提取算法,通過前后三幀邊緣圖像直接獲得當(dāng)前幀運(yùn)動(dòng)目標(biāo)邊緣;四是改進(jìn)三幀差分法來準(zhǔn)確提取更多的運(yùn)動(dòng)目標(biāo)內(nèi)部像素點(diǎn)填充目標(biāo)邊緣,以解決檢測目標(biāo)空洞的問題。
幀差法檢測目標(biāo)的靈敏度和效率較高[11]。因此,在幀間差分算法中引入面積閾值判斷是否進(jìn)行當(dāng)前幀的檢測來降低算法計(jì)算量。原理如下。
讀取視頻幀序列后,通過當(dāng)前幀與前一幀的灰度圖像Fk(i,j)、Fk-1(i,j)獲取差分圖像Dk(i,j),表達(dá)式為
Dk(i,j)=|Fk(i,j)-Fk-1(i,j)|
(1)
差分圖像Dk(i,j)中大部分運(yùn)動(dòng)目標(biāo)像素點(diǎn)灰度值較高,利用最大類間方差(OTSU)法得到的自適應(yīng)閾值T高效且準(zhǔn)確的分離前景與背景。而后統(tǒng)計(jì)二值圖像Rk(i,j)中灰度值為1的像素點(diǎn)的個(gè)數(shù)m:①若m小于預(yù)設(shè)閾值Ta時(shí),則判定該幀無運(yùn)動(dòng)目標(biāo),跳過當(dāng)前幀的檢測并執(zhí)行下一幀的檢測;②反之,則對該幀運(yùn)動(dòng)目標(biāo)進(jìn)行提取而后檢測下一幀圖像。
因?yàn)橄噜弾g的時(shí)間間隔較短,傳統(tǒng)的三幀差分法對運(yùn)動(dòng)目標(biāo)像素點(diǎn)召回率較低[12]。為了提高三幀差分算法檢測目標(biāo)的召回率,將三幀差分算法的當(dāng)前幀與后幀差分替換為前幀與后幀差分,使得改進(jìn)后的三幀差分法能提取更多的目標(biāo)像素點(diǎn)來解決檢測目標(biāo)的空洞問題。改進(jìn)的三幀差分算法如圖1所示。
圖1 改進(jìn)的三幀差分算法流程圖Fig.1 Improved three-frame difference algorithm flowchart
傳統(tǒng)的Canny算子檢測邊緣不夠精細(xì),且存在將陰影檢測為目標(biāo)邊緣的問題[13]。因而從去噪、梯度計(jì)算以及邊緣連接閾值3個(gè)部分對Canny算子進(jìn)行優(yōu)化,以提高邊緣像素點(diǎn)的檢測精確度。
自適應(yīng)σ值二維高斯濾波可有效去除噪聲和保留圖像的邊緣信息,所以使用自適應(yīng)高斯濾波代替?zhèn)鹘y(tǒng)的高斯濾波。自適應(yīng)高斯濾波選取3×3的窗口模板并求取窗口的灰度均值λ(i,j),且標(biāo)準(zhǔn)差σ的計(jì)算公式為
σ=abs[f(i,j)-λ(i,j)]
(2)
利用λ(i,j)得到的自適應(yīng)值σ二維高斯函數(shù)G(i,j)=(1/2πσ2)exp[-(i2+j2)/2σ2]與灰度圖像進(jìn)行卷積運(yùn)算實(shí)現(xiàn)低通濾波,實(shí)現(xiàn)對噪聲點(diǎn)的剔除和邊緣信息的保留。
為進(jìn)一步提高邊緣檢測的精確性,計(jì)算梯度值時(shí)使用Sobel算子的3×3窗口,并加入45°和135°方向求取像素點(diǎn)的梯度分量。4個(gè)方向的卷積內(nèi)核表示為
將4個(gè)卷積核與去噪后的圖像卷積得到4個(gè)梯度分量gi(i,j)、gj(i,j)、g45°(i,j)、g135°(i,j),則該點(diǎn)的方向角和梯度值可由式(3)及式(4)得到
θ(i,j)=arctan[gj(i,j)/gi(i,j)]
(3)
(4)
改進(jìn)的梯度計(jì)算方法能有效減少邊緣點(diǎn)的誤檢和漏檢,而后進(jìn)行非極大值抑制處理保留局部梯度最大的像素點(diǎn)獲得目標(biāo)的邊緣信息。
在邊緣連接中,高、低雙門限閾值Th和Tl由OTSU法的自適應(yīng)閾值TOSTU進(jìn)行自適應(yīng)更新,Th和Tl根據(jù)TOSTU由式(5)確定,公式為
(5)
將OTSU法引入Canny算子,可根據(jù)圖像信息自適應(yīng)的獲得高、低閾值,能有效提高邊緣檢測算子的自適應(yīng)能力以及邊緣點(diǎn)的檢測精度。
邊緣圖像包含大量背景邊緣噪聲,直接使用會(huì)將非運(yùn)動(dòng)目標(biāo)邊緣錯(cuò)判為運(yùn)動(dòng)目標(biāo)邊緣,對運(yùn)動(dòng)目標(biāo)的檢測帶來較大的干擾[14]。因而提出一種基于改進(jìn)Canny算子的運(yùn)動(dòng)目標(biāo)邊緣提取算法,該算法利用第2.2節(jié)的改進(jìn)Canny算子提取視頻序列當(dāng)前幀與其相鄰兩幀的邊緣圖像并結(jié)合提出的信息關(guān)聯(lián)法則可直接獲取當(dāng)前幀的運(yùn)動(dòng)目標(biāo)邊緣。提出的相鄰三幀圖像信息關(guān)聯(lián)法則表達(dá)式為
(6)
式(6)中:Ck-1(i,j)、Ck(i,j)、Ck+1(i,j)分別為當(dāng)前幀的相鄰三幀的邊緣圖像;Ek(i,j)為當(dāng)前幀目標(biāo)邊緣圖像。提出的運(yùn)動(dòng)目標(biāo)邊緣提取算法的可視化過程如圖2所示,通過該方法能高效提取當(dāng)前幀的運(yùn)動(dòng)目標(biāo)邊緣信息,解決了檢測運(yùn)動(dòng)目標(biāo)的邊緣模糊問題,并進(jìn)一步提高了檢測的完整度和精確度。
圖2 目標(biāo)邊緣提取的可視化過程Fig.2 Visualization process of target edge extraction
本文方法的運(yùn)動(dòng)目標(biāo)檢測算法流程圖如圖3所示。輸入視頻后,提取視頻序列的當(dāng)前幀與其前一幀圖像,然后利用幀差分法檢測結(jié)果通過面積閾值判斷當(dāng)前幀是否存在運(yùn)動(dòng)目標(biāo),若判斷目標(biāo)不存在,則進(jìn)行下一幀的檢測,以此來提高算法的檢測效率。若判斷目標(biāo)存在,針對目標(biāo)檢測的準(zhǔn)確度的要求:首先,利用改進(jìn)的Canny算子獲得相鄰三幀邊緣信息,通過信息關(guān)聯(lián)法則提取當(dāng)前幀運(yùn)動(dòng)目標(biāo)邊緣信息以保證檢測目標(biāo)邊緣的精準(zhǔn)性和完整度;其次,將改進(jìn)的三幀差分法提取運(yùn)動(dòng)目標(biāo)內(nèi)部像素點(diǎn)填充運(yùn)動(dòng)目標(biāo)邊緣圖像以有效解決檢測目標(biāo)的空洞問題;最后,通過形態(tài)學(xué)處理和連通域分析并設(shè)置面積閾值去除非運(yùn)動(dòng)目標(biāo)誤檢區(qū)域進(jìn)一步提高檢測精度并輸出當(dāng)前幀的檢測結(jié)果。
圖3 算法流程圖Fig.3 Algorithm flow chart of this paper
實(shí)驗(yàn)平臺(tái)為聯(lián)想臺(tái)式電腦,配置為Core i5-6600,4.00 GB內(nèi)存,使用MATLAB R2016a對MATLAB視頻數(shù)據(jù)、LISA datasets、i-LIDS datasets公開數(shù)據(jù)集的4個(gè)監(jiān)控視頻進(jìn)行本文算法的驗(yàn)證。
性能評價(jià)指標(biāo)準(zhǔn)確率(precision,P)代表檢測運(yùn)動(dòng)目標(biāo)的精確度,召回率(recall,R)代表檢測運(yùn)動(dòng)目標(biāo)的完整性[15],公式定義形式為
(7)
(8)
式中:FN為錯(cuò)檢為背景點(diǎn)的像素個(gè)數(shù);TP為檢測為前景的前景點(diǎn)個(gè)數(shù);FP為錯(cuò)檢為前景點(diǎn)的像素個(gè)數(shù)。
指標(biāo)F值(F-Measure,F(xiàn)M)綜合考慮召回率和準(zhǔn)確率的影響,其數(shù)值越大表示檢測效果越好,公式定義形式為
(9)
通過幀差法、三幀差分法和本文算法對視頻traffic進(jìn)行運(yùn)動(dòng)目標(biāo)內(nèi)部像素點(diǎn)提取實(shí)驗(yàn),來驗(yàn)證改進(jìn)的三幀差分法的檢測性能,性能評價(jià)指標(biāo)平均值如表1所示。
由表1可知,三幀差分法雖然克服了幀間差分檢測目標(biāo)容易出現(xiàn)重影的問題,但差分二值圖像的與運(yùn)算丟棄了大量的目標(biāo)像素點(diǎn),難以利用獲得的像素點(diǎn)檢測運(yùn)動(dòng)目標(biāo)。本文算法充分包含由于目標(biāo)運(yùn)動(dòng)所造成的圖像間的差異,相較于三幀差分法在準(zhǔn)確率近似的條件下召回率提高了10.09%;在召回率與兩幀差分法相近的條件下目標(biāo)檢測精確度上提高45.89%。本文算法在保證檢測精度的條件下提取了更多的目標(biāo)像素點(diǎn),能有效實(shí)現(xiàn)對目標(biāo)內(nèi)部像素點(diǎn)的補(bǔ)充。
表1 算法評價(jià)結(jié)果Table 1 Evaluation result of algorithm
如圖4所示,列(a)為視頻traffic原始圖像;列(b)、(c)、(d)為圖示邊緣檢測算子獲取的當(dāng)前幀邊緣圖像和當(dāng)前幀運(yùn)動(dòng)目標(biāo)邊緣圖像。圖5為通過本文算法提取的traffic其他幀的運(yùn)動(dòng)目標(biāo)邊緣提取結(jié)果。
由圖4可知,傳統(tǒng)的Canny算子運(yùn)算簡單,邊緣提取不夠精細(xì),存在將目標(biāo)陰影檢測為目標(biāo)邊緣的問題,造成了邊緣像素點(diǎn)的大量誤檢;Roberts算子雖然定位邊緣點(diǎn)的精度較高,邊緣提取精細(xì),但當(dāng)運(yùn)動(dòng)目標(biāo)與背景顏色相近時(shí)易造成邊緣的大量漏檢。通過圖4和圖5可知,本文算法可直接通過相鄰三幀邊緣圖像提取更為準(zhǔn)確的目標(biāo)邊緣,克服了將陰影檢測為目標(biāo)邊緣、運(yùn)動(dòng)目標(biāo)與背景顏色相近時(shí)邊緣漏檢的問題,能夠高效、準(zhǔn)確地提取運(yùn)動(dòng)目標(biāo)邊緣,提高目標(biāo)的檢測完整度。
圖4 邊緣提取結(jié)果Fig.4 The results of edge extraction
圖5 運(yùn)動(dòng)目標(biāo)邊緣提取結(jié)果Fig.5 The results of moving target edge extraction
圖6為定性分析實(shí)驗(yàn)結(jié)果,第1列為4個(gè)視頻幀圖像,第3~6列為圖示4種算法檢測結(jié)果。表2和表3分別為4種算法在不同視頻中單幀平均處理時(shí)間和準(zhǔn)確率、召回率、F值的均值比較。
由表2、表3和圖6可知,文獻(xiàn)[8]通過幀間差分檢測結(jié)果和運(yùn)動(dòng)目標(biāo)的邊緣圖像進(jìn)行與運(yùn)算獲取目標(biāo)邊緣像素點(diǎn)來檢測目標(biāo),邊緣漏檢比較嚴(yán)重,雖然準(zhǔn)確率較高但召回率較低,檢測運(yùn)動(dòng)目標(biāo)存在嚴(yán)重的空洞問題。文獻(xiàn)[16]將視覺背景提取算法與幀差法相結(jié)合,能加快鬼影的消除,對光線變化比較敏感,能自適應(yīng)的去除陰影,目標(biāo)檢測的召回率相對較低,仍存在較為嚴(yán)重的空洞和邊緣模糊的問題。文獻(xiàn)[17]將幀差法、圖像分割算法與多尺度區(qū)域技術(shù)相結(jié)合用于動(dòng)目標(biāo)可能區(qū)域的粗略估計(jì)來抑制動(dòng)態(tài)背景的變化,并通過改進(jìn)的Vibe算法獲得精確的運(yùn)動(dòng)目標(biāo),召回率與準(zhǔn)確率均比較高但其算法實(shí)時(shí)性較差。通過實(shí)驗(yàn)數(shù)據(jù)對比可以發(fā)現(xiàn),本文算法提出的邊緣信息提取方法能較為準(zhǔn)確地提取目標(biāo)邊緣信息,將改進(jìn)三幀差分算法提取結(jié)果對邊緣提取結(jié)果進(jìn)行補(bǔ)充有效解決了目標(biāo)空洞和邊緣模糊的問題,在準(zhǔn)確率與其余算法相近的條件下在召回率上優(yōu)于前兩種對比算法,且與文獻(xiàn)[17]所提出的算法在準(zhǔn)確率、召回率等相近的條件下極大提高了運(yùn)動(dòng)目標(biāo)的檢測速度。綜上所述,本文算法在提高了檢測效率的同時(shí)更為準(zhǔn)確地提取了運(yùn)動(dòng)目標(biāo),在總體上優(yōu)于3種對比算法,能夠?qū)崿F(xiàn)對運(yùn)動(dòng)目標(biāo)的實(shí)時(shí)、有效的檢測。
表2 平均處理時(shí)間Table 2 Average processing time
圖6 4種算法在不同場景的運(yùn)動(dòng)目標(biāo)檢測結(jié)果Fig.6 Moving target detection results of four algorithms in different scenes
表3 4種算法的性能比較Table 3 Performance comparison of four algorithms
為了進(jìn)一步提高運(yùn)動(dòng)目標(biāo)檢測算法的實(shí)時(shí)性和完整度,將改進(jìn)幀差和基于改進(jìn)Canny算子的運(yùn)動(dòng)目標(biāo)邊緣提取方法相結(jié)合來檢測運(yùn)動(dòng)目標(biāo)。針對目標(biāo)檢測過程中無運(yùn)動(dòng)目標(biāo)視頻幀的不必要檢測,通過幀間差分法面積閾值判決去除該幀的檢測有效提高了算法的實(shí)時(shí)性。針對目標(biāo)檢測的完整度問題,提出了一種運(yùn)動(dòng)目標(biāo)邊緣提取算法,通過該算法提取當(dāng)前幀運(yùn)動(dòng)目標(biāo)邊緣信息保證了檢測目標(biāo)的完整性和邊緣的準(zhǔn)確性。針對檢測運(yùn)動(dòng)目標(biāo)容易出現(xiàn)空洞的問題,通過改進(jìn)的三幀差分法提取目標(biāo)內(nèi)部像素點(diǎn)填充目標(biāo)邊緣圖像,有效抑制了檢測結(jié)果的空洞問題。實(shí)驗(yàn)驗(yàn)證表明,本文算法在保證檢測效率的前提下,進(jìn)一步提高了運(yùn)動(dòng)目標(biāo)的檢測完整度和精確性。