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