(武漢理工大學 汽車工程學院,湖北 武漢 430070)
近年來,城市車輛數(shù)量的急速增長給人們工作與生活提供便利的同時也引發(fā)了許多交通問題。由于道路硬件條件限制,傳統(tǒng)提高道路通行能力的方法在城市中變得困難,同時也要耗費巨額的資金[1]。因此,對道路通行狀況實施實時監(jiān)控以采取更好的通行策略成為了現(xiàn)階段緩解交通問題的主要途徑之一[2]。作為提取道路信息的一種重要手段,基于機器視覺的道路信息采集具有較大的發(fā)展空間[3]。道路信息采集離不開準確檢測視頻中的運動車輛,通過對運動車輛的檢測與識別[4],得到目前道路的通行狀況,從而供相關(guān)人員分析并最終作出合理決策。目前國內(nèi)外研究學者對視頻圖像中運動目標檢測的常用方法主要有以下幾種:光流法、背景差分法、幀間差分法、邊緣檢測法等[5-9]。
在基于光流法的運動目標檢測過程中,吳振杰通過將光流法與幀間差分法結(jié)合對運動目標檢測得到了魯棒性較好的結(jié)果,但是這種方法的時間復雜度過高,不利于實際的運用[10];肖軍將光流法與圖像金字塔結(jié)合,通過迭代計算光流提出了一種基于光流誤差的跟蹤算法,對目標有較好的檢測效果[11],但整個算法的計算較為繁瑣,無法實現(xiàn)檢測的實時性。與光流法相比,背景差分法是基于靜態(tài)背景,通過計算得到不存在運動目標的背景圖像,并最終確定圖像中的運動目標[12];陳艷等利用高斯背景模型與Ada Boost分類器對夜間車輛進行檢測,該方法有效降低了地面陰影、光照變化對檢測精度的影響,但需要依賴Ada Boost分類器對車燈的檢測,故只適用于夜間環(huán)境[13]。Gupte S采用背景加權(quán)的方法將前幀的背景圖像與當前幀加權(quán)融合來得到背景圖像,這種方法的前提條件是背景變化緩慢,因此當車輛運動速度較快時效果不理想[14]。Velastin通過選取一段視頻像素點的中值作為當前的背景圖像,但當目標行駛緩慢時,目標點的像素信息就會混入背景中,檢測精度同樣會受到影響[15];黃東軍提出一種改進的混合高斯模型的方法,在混合高斯背景建模的基礎(chǔ)上增加了定時清零的策略,能夠消除目標內(nèi)部的部分空洞[16],但整個算法對光照的敏感性較強,不能滿足多場景的應(yīng)用需求;Xia L通過研究幀間差分法和三幀差分法,提出改進的三幀差分法,改進后的三幀差分法對運動目標有比較好的檢測效果且實時性好[17];張應(yīng)輝為了提高運動目標檢測的準確性和高效性,將三幀差分法和背景差分法結(jié)合起來有效減少了目標圖像中的噪聲[18];Ding L通過對相鄰像素點之間的灰度值研究,采用Canny算子檢測運動目標輪廓,該方法得到了比較完整的運動目標輪廓[19];袁益琴等通過將背景差分與幀間差分結(jié)合的方式對衛(wèi)星圖像中的運動車輛進行檢測,得到較為準確的結(jié)果,并提升了檢測的實時性[20];賀強通過將Log算子和Canny算子結(jié)合,通過對椒鹽噪聲濾除的結(jié)果表明這種方法在最大程度抑制噪聲的同時檢測到盡可能多的邊緣[21],但整個方法因為只檢測了圖像的邊緣信息,故對背景中的冗余信息濾除較為繁瑣[22]。劉操等利用圖像的顏色模型與HOG特征進行運動車輛的檢測,并結(jié)合支持向量機等機器學習方法對車輛進行分類,該方法在一定程度上提升了整體檢測的魯棒性,但復雜度較高,不適用于真實場景中的實時車輛檢測[23]。
結(jié)合以上研究情況,本文提出一種融合多種方法優(yōu)點的運動車輛檢測方法,提升整體檢測的準確性以及對場景的適應(yīng)能力。文章第一部分針對當前運動車輛檢測的研究現(xiàn)狀、問題和意義進行概述;第二部分對整個檢測方法進行概述,介紹其中的各個處理過程;第三部分對所提出的具體檢測算法進行詳細描述;第四部分對所提出的檢測方法進行驗證,確定其檢測性能;第五部分對整個研究及所提出的方法進行總結(jié)[24-25]。
本文針對當前運動車輛檢測的研究現(xiàn)狀,提出一種改進的幀間差分與背景差分融合的運動車輛檢測方法。其整體檢測流程如圖1所示。
圖1 整體方法流程
對于采集的原始圖像而言,其包含大量對于運動車輛檢測無用的信息,且存在較多圖像噪聲,影響整體檢測精度與效率。因此在對圖像進行檢測前,采取有效的預處理方法可以提升檢測方法的可靠性與實時性。
(1)灰度化處理。在能夠描述一幅圖像整體和局部特征的情況下,選擇灰度圖像進行處理可以極大地提高運算效率。本文采用加權(quán)平均值法對圖像灰度化,見式(1)。
其中,ω1、ω2和ω3分別是三個通道顏色分量的權(quán)值,本文取ω1=0.30,ω2=0.59,ω3=0.11。加權(quán)平均值法將視頻圖像灰度化后的結(jié)果如圖2所示。
圖2 視頻圖像的灰度化
(2)濾波去噪處理。對圖像進行濾波,可以減小噪聲點干擾,提升檢測準確性。為了盡可能保留圖像的邊緣信息,本文采用能夠有效保護圖像邊緣信息,并對椒鹽噪聲有良好抑制效果的中值濾波來對圖像進行濾波處理,其計算公式見式(2)。
其中,ω是選取的模板,模板大小為3×3。g(x,y)表示濾波后的結(jié)果。如圖3是中值濾波對圖像中椒鹽噪聲和高斯噪聲的處理結(jié)果。
圖3 中值濾波處理
利用幀間差分法得到連續(xù)幀的差分圖像,而后采取自適應(yīng)閾值的二值化處理并結(jié)合Canny邊緣檢測算子結(jié)果得到改進的幀間差分法;最后利用混合高斯模型對圖像進行背景差分處理,并將結(jié)果與改進的幀間差分法融合得到車輛檢測結(jié)果。
通過以上公式可知,當N的原點移動到點(x,y)時,假設(shè)N完全包括在連接區(qū)域M中,則將點(x,y)的值置為1,反之就將該點的值置為0。
(2)膨脹。同腐蝕運算的定義一樣,定義膨脹運算符號為∨。當N的原點移至點(x,y)時,將其記為Nxy,則連接區(qū)域M被結(jié)構(gòu)元素N膨脹的運算見式(4)。
通過車輛檢測得到初步的檢測結(jié)果二值圖,隨后進行形態(tài)學濾波,使檢測到的運動車輛更易被統(tǒng)計與標識。同時可以去除二值圖像中的點噪聲。
(1)腐蝕。腐蝕操作可以有效消除二值圖像中的孤立噪聲點。假設(shè)二值化之后圖像的連接區(qū)域為M,結(jié)構(gòu)元素為N,當該結(jié)構(gòu)元素的原點移至點(x,y)時,將其記為Nxy,定義腐蝕運算的符號為∧,則連接區(qū)域M被結(jié)構(gòu)元素N腐蝕的運算見式(3)。
通過以上公式,當N的原點移至點(x,y)時,如果N至少包括了一個白色的點,就將點(x,y)的值置為1,否則就將該點值置為0。圖4是二值圖像的形態(tài)學濾波結(jié)果。
圖4 二值圖像的形態(tài)學濾波
通過數(shù)學形態(tài)學濾波后的二值圖像可以清晰的獲取運動車輛的信息,并在實際的圖像坐標中找出運動車輛的坐標位置,為后續(xù)的研究與策略規(guī)劃打下基礎(chǔ)。
本文提出結(jié)合Canny邊緣檢測算子的改進幀間差分法,來解決幀間差分法對運動目標輪廓檢測效果不佳的問題。接著將改進幀間差分法的車輛檢測結(jié)果融合背景差分法的檢測結(jié)果,用來解決幀間差分法內(nèi)部出現(xiàn)的“空洞”現(xiàn)象和背景差分法對外部光照變化敏感的問題。
利用多幅連續(xù)幀的幀間差分圖像結(jié)合自適應(yīng)閾值二值化處理得到幀間差分結(jié)果,隨后融合邊緣檢測算法得到改進的幀間差分結(jié)果,其具體流程如圖5。
圖5 改進幀間差分法流程圖
3.1.1 幀間差分。在視頻序列連續(xù)三幀圖像中,用
fk-1(x,y)表示第k-1幀圖像,fk(x,y)表示第k幀圖像,
fk+1(x,y)表示第k+1幀圖像,gk-1(x,y)和gk(x,y)分別表示幀間差分法的兩次計算結(jié)果,見式(5)、式(6)。
3.1.2 自適應(yīng)閾值二值化。對于圖像f(x,y),假設(shè)運動目標區(qū)域占圖像的比例為ω0,運動目標像素點的均值為μ0,背景區(qū)域占圖像的比例為ω1,背景像素點的均值為μ1,圖像像素均值為μ。M為圖像的高,N為圖像的寬,單位為像素,類間方差為g,像素值小于T的個數(shù)為N0,大于T的個數(shù)為N1,計算公式如下:
其中,有ω0+ω1=1,采用遍歷方法求取最大的g值作為圖像的分割閾值T。隨后將圖像f(x,y)上每一個像素點(x,y)和給出的閾值T進行比較,見式(11),得到差分的二值圖像。
采用自適應(yīng)的動態(tài)閾值分割的好處在于避免了對所有場景使用單一閾值帶來二值化分割的不確定性,能夠適應(yīng)環(huán)境變化較大的場景,克服單一閾值人為選擇的問題,對環(huán)境有更好的適應(yīng)性[26-27],其檢測結(jié)果如圖6所示。
圖6 幀間差分二值化圖像
3.1.3 差分圖像融合。通過上述運算得到兩幅連續(xù)的幀間差分二值圖像,隨后對兩幅二值圖像進行邏輯與計算,計算公式見式(12):
hk(x,y)即為連續(xù)幀間差分圖像的融合結(jié)果。取視頻圖像的連續(xù)3幀圖像,其檢測結(jié)果如圖7所示。
圖7 三幀差分法檢測圖像
從圖7中可以看出,采用的三幀差分法檢測到的車輛目標有些邊緣信息不完整,檢測到的車輛內(nèi)部也會存在“空洞”現(xiàn)象。而邊緣檢測法是根據(jù)運動目標內(nèi)外部灰度值的差異來提取目標的輪廓,因此可以很好地彌補三幀差分法檢測結(jié)果存在邊緣信息不完整的缺點。本文采用邊緣檢測算法中的Canny算子對三幀差分法予以改進。Canny檢測算法對目標的顏色不敏感,不因目標顏色的不同而影響檢測結(jié)果,在分離出目標的同時也能夠得到比較完整的邊緣信息。
3.1.4 邊緣檢測。采用Canny邊緣檢測算子對圖像檢測,首先通過高斯濾波對圖像降噪,而后計算濾波后圖像中每個像素梯度的大小和方向。最后利用兩個3×3的卷積核分別去檢測垂直和水平方向的邊緣信息,Canny算子檢測結(jié)果圖如圖8所示。
圖8 Canny算子的檢測結(jié)果圖
3.1.5 改進幀間差分法的結(jié)果與分析。將連續(xù)幀的幀間差分圖像與Canny邊緣檢測所得到的圖像進行融合計算,得到改進幀間差分法的檢測結(jié)果,其計算公式如下:
其中,Ik(x,y)為改進的幀間差分法得到的檢測圖像,F(xiàn)k(x,y)為三幀差分法得到的檢測圖像,Gk(x,y)為通過Canny邊緣檢測算法得到邊緣圖像。
根據(jù)以上改進三幀差分法的計算流程,選取了視頻圖像中的連續(xù)多幀圖像,檢測結(jié)果如圖9所示。從圖8與圖9中可以看出,對幀間差分圖作Canny邊緣檢測之后,能夠得到比較完整的運動車輛輪廓,特別是能夠?qū)⒁恍┸囕v的邊緣連接起來。同時融合三幀差分法之后,又能保留車輛一部分內(nèi)部信息,在一定程度上兼具了這兩種車輛檢測方法的優(yōu)點。
圖9 改進幀間差分法的檢測結(jié)果
對預處理圖像采用背景差分的方法得到圖像中的背景信息,進而得到運動車輛信息,其具體流程如圖10所示。
圖10 混合高斯建模流程圖
混合高斯背景差分模型由多個單高斯模型組合而成,通過對多個單高斯模型相應(yīng)的加權(quán)求和處理來解決單高斯模型所存在的問題。
3.2.1 背景建模。采用K個高斯分布對圖像中的某個像素點建模。在t時刻內(nèi),坐標(x,y)的灰度值取值集合見式(14)。
其中Ii(x,y)表示第i幀圖像坐標點(x,y)的灰度值。那么在該時刻點(x,y)的概率密度函數(shù)就可以采用K個高斯分布描述,見式(15)。
其中,K表示高斯模型個數(shù),It表示當前幀像素灰度值,表示在t時刻第i個模型的權(quán)值。為混合高斯模型在t時刻第i個模型的均值為混合高斯模型在t時刻第i個模型的方差,為混合高斯模型在t時刻第i個模型的概率密度函數(shù),表達式見式(16)。
3.2.2 參數(shù)初始化。初始化參數(shù)時需要給出某個像素點It(x,y)在t時刻的均值μ0以及方差σ20。假設(shè)在t時間內(nèi)的視頻序列的幀數(shù)為N,那么N的計算公式見式(17)、式(18)。
3.2.3 模型匹配。在參數(shù)初始化完成之后,需要對模型進行匹配,將t時刻的幀圖像與K個高斯分布按照式(19)依次匹配。
其中,λ為常數(shù),根據(jù)上文的分析,λ的取值一般在2.5到3之間。對于混合高斯背景建模,本文采用了3個單高斯模型來描述運動目標和背景圖像。同時在建模過程中,對不同的高斯模型采用不同的權(quán)值來進行融合。根據(jù)對視頻中的運動目標分析得出,運動目標所占用的時間比背景所占用的時間要短,此時就給描述運動目標的高斯分布一個相對高的權(quán)值,反之給描述背景的高斯分布相對低的權(quán)值。在作對比前,對這3個高斯分布首先按照e的大小分別給予它們不同的權(quán)值,其中e越大,所給予的權(quán)值越大,排列越靠前,其中e的公式見式(20)。
其中,當e值越大,說明高斯模型的權(quán)重越大,用來描述的場景更可能是與運動無關(guān)的背景點。在作對比時,將這3個高斯分布按照排列的順序根據(jù)式(21)進行判斷,符合判斷條件的點就是背景點;反之不符合判斷條件的點就是運動目標點。
對于判斷閾值T,不需要將全部的高斯模型一一作對比,先對前K1個(K1≤3)模型對比,對于所有滿足求和結(jié)果的T來說,取最少的高斯模型個數(shù)作為K1的值,K1的公式見式(21)。
3.2.4 模型更新。對當前幀圖像中的每個點進行匹配。對于匹配成功的點,直接將這些點作為建模的背景點,然后對參數(shù)更新,公式如下:
其中,α為模型的更新速率,α取值介于0到1。由上述公式可知,α的取值決定了背景的更新速率,α取值越小,更新速率會越小,同樣β就會越小,最后結(jié)果的魯棒性會越差;反之,α越大,則背景的更新速率就會越快,β同樣也會越大,最后結(jié)果的魯棒性會越好,但是會帶來更多的噪聲。假如匹配不成功,即不會參與匹配,那么均值與方差就保持不變,只需要改變它的權(quán)值和e值大小。計算公式見式(26)和式(27)。
3.2.5 產(chǎn)生新分布。如果在t時刻,圖像中的每一個點都匹配成功,那么將按照e值排列的3個高斯分布中的最后一個,即權(quán)值最低的高斯分布舍去。然后重新建立一個新的高斯分布,以這個新高斯分布的均值為當前幀圖像像素灰度值,最后選擇一個較小的權(quán)值與一個較大的方差來進行參數(shù)初始化。當t時刻的圖像完成匹配之后,下一幀圖像來臨時,繼續(xù)按照上面的步驟進行匹配。
本文的車輛檢測算法可以分為三個階段:首先是改進幀間差分法得到二值化運動車輛圖像的結(jié)果,其次是采用混合高斯模型得到另一個二值化運動車輛圖像的結(jié)果,最后將這兩個結(jié)果進行算法融合。式(28)表示融合改進幀間差分法和混合高斯背景建模算法。
其中,Ik(x,y)為改進幀間差分法得到的二值化運動車輛,Nk(x,y)為混合高斯背景差分得到的二值化運動車輛,Mk(x,y)為兩種算法融合后的結(jié)果。
根據(jù)將改進幀間差分法和混合高斯背景模型結(jié)合的車輛檢測算法流程,本文選取了視頻圖像中具有代表性的多幀連續(xù)圖像,在這一段時間內(nèi),光照發(fā)生了一定的變化。通過實驗結(jié)果對比說明本文的改進算法對光照不敏感,具有較好的環(huán)境適應(yīng)能力。實驗結(jié)果如圖11-圖15所示。
圖11是改進前后的三幀差分法的車輛檢測結(jié)果圖,圖12是混合高斯背景建模的車輛檢測結(jié)果和本文算法的車輛檢測結(jié)果,圖13是混合高斯背景建模的膨脹結(jié)果和本文算法檢測的膨脹結(jié)果,圖14是兩種方法求得的車輛外接矩形框。根據(jù)前面分析,改進三幀差分法能夠檢測出比較完整的目標輪廓,對光照發(fā)生變化的場景不敏感,但是對目標內(nèi)部信息的保留不完整。根據(jù)圖12(a)可以看出,混合高斯背景建模得到結(jié)果的內(nèi)部信息較為完整,但同時混合高斯背景建模對光照變化比較敏感,如圖12(a)中右下方車輛的頂部出現(xiàn)了“空洞”現(xiàn)象,直接造成的結(jié)果就是車身丟失嚴重,造成這一現(xiàn)象的原因是模型對光照變化的敏感性。本文融合算法的結(jié)果如圖12(b)和圖13(b),可以看到檢測到的結(jié)果具有三幀差分法能夠?qū)④囕v輪廓連起來的優(yōu)點,同時解決了右下方車輛頂部的“空洞”現(xiàn)象。說明融合后的算法具有三幀差分法對光照的不敏感性,又具有混合高斯模型檢測運動車輛內(nèi)部信息完整的優(yōu)點。
圖11 改進的幀間差分法檢測結(jié)果對比
圖12 背景差分與本文檢測結(jié)果對比
圖13 兩種膨脹結(jié)果對比圖
圖14 兩種求取外接矩形結(jié)果對比圖
圖15 檢測結(jié)果圖
針對待檢測的視頻,選取不同的圖像采用本文所提出的車輛檢測算法進行檢測,并將結(jié)果與傳統(tǒng)方法的檢測精度進行對比。車輛檢測精度的判定利用檢測結(jié)果中的特征點與實際位置的偏差來度量,具體檢測精度計算公式如下:
其中P為檢測準確率,R為檢測召回率,F(xiàn)1為綜合精度指標。
Δpixelu-i、Δpixelv-i分別為選取的第i個特征點的真實坐標與檢測坐標的橫向、縱向像素偏差值。
Zu-i、Zv-i分別為橫向、縱向的像素點總數(shù)。
tn為所檢測到的正確的特征點數(shù)目。
N為所選取的的車輛特征點總數(shù)。
表1為不同方法的檢測精度統(tǒng)計表。
表1 檢測精度對比
通過對具體視頻圖像的檢測結(jié)果可以發(fā)現(xiàn),本文所提出方法的檢測精度明顯優(yōu)于三幀差分法與混合高斯背景差分法的檢測精度,彌補了傳統(tǒng)算法的不足,有較好的實際應(yīng)用價值。
本文提出了一種融合幀間差分法和Canny邊緣檢測法的改進幀間差分法,在二值化的過程中結(jié)合最大類間方差法來求二值化的最佳閾值T,最后將改進幀間差分與混合高斯背景差分進行融合來對車輛進行檢測,以改進單一使用其中一種算法的不足,提高了檢測結(jié)果的準確性和算法對外部光照變化的適應(yīng)能力。
在后續(xù)研究中,對背景更新需要不斷改進,只有建立一個高度準確的背景模型才能完整檢測出車輛,這個背景會根據(jù)攝像頭的抖動,外界環(huán)境變化而實時地更新。本文在這一方面做了部分研究,但考慮的情況并不全面。在后續(xù)的研究中還需要在算法中加入自適應(yīng)學習的過程,以更好的適應(yīng)外界環(huán)境的突變,從而滿足實際應(yīng)用的需求。