郭文俊++常桂然
摘要:為了減少交通事故的發(fā)生及降低因其而帶來的危害,針對障礙物檢測過程中出現(xiàn)的各種問題。受原有的兩幀間差分法的啟發(fā),提出了一種基于三幀間快速匹配檢測障礙物的方法,該算法利用移動障礙物這一特性進行障礙物的檢測。其基本思想是利用相鄰三幀圖像兩兩差分,再將兩個差分結(jié)果再次進行差分操作從而最終確定運動目標在圖像中的位置,實現(xiàn)了對移動障礙物輪廓的檢測。
關(guān)鍵詞:移動障礙物檢測;計算機視覺;幀間差分;道路識別
中圖分類號:TP391
文獻標識碼:A
DOI:10.3969/j.issn.1003-6970.2016.02.015
引言
汽車產(chǎn)業(yè)的不斷發(fā)展以及機動車價格的大幅度下跌導(dǎo)致了我國最近幾年機動車的私人擁有量在不斷的上升。這雖然給人們的生活和出行帶來了很大的便利,但是交通事故的增加卻也時刻威脅著人們的生命財產(chǎn)安全,表1是我國近幾年交通事故的統(tǒng)計數(shù)據(jù)。
由此可見,道路交通事故已經(jīng)嚴重危害人們的生命財產(chǎn)安全,故此,怎樣最大程度的減少交通事故、降低交通事故所造成的損失成了我們關(guān)注的焦點。目前,在這方面所做的研究大都集中在機動車輛前后方運動目標的檢測,而且在運動目標的檢測與跟蹤上已經(jīng)取得了很多的成果,隨著研究的不斷深入,也伴隨著一些新技術(shù)、新算法的產(chǎn)生。但是由于實際環(huán)境的影響如光照、氣候的變化,往往會使得檢測的目標物不太準確跟蹤的效率也不是很高。因此,研究改進運動目標的檢測與跟蹤算法有很現(xiàn)實的意義和應(yīng)用價值。
本文以基于機器視覺的道路識別技術(shù)與障礙物檢測技術(shù)為研究對象,綜合分析并采用了各種圖像預(yù)處理技術(shù)有效的為行駛中的機動車提供各種環(huán)境下的狀態(tài)信息。在兩幀間差的基礎(chǔ)上提出了三幀間的差分方法,該方法利用從視頻序列中獲取的相鄰圖像幀兩兩做差分,然后將得到的兩個差分結(jié)果再次做差分并進行二值化處理,最終確定運動目標在圖像中的位置。最后選用Intel公司開發(fā)的開源項目OpenCV,同時使用該庫中的CvCapture()結(jié)構(gòu)以及調(diào)用函數(shù)cvQueryFrame()來捕獲視頻中的每一幀用于后續(xù)的處理,并在在Microsoft Visual C++集成開發(fā)環(huán)境下進行了實驗并得到比較理想的實驗結(jié)果。
1 三幀間差分法
運動目標的檢測即從視頻圖像中將變化的區(qū)域從背景中提取出來,根據(jù)目標與攝像機的關(guān)系分為靜態(tài)背景目標物提取和動態(tài)背景目標物提取。其中,靜態(tài)背景目標物提取中只有目標物在動攝像機則保持不動;而動態(tài)背景目標物中攝像機也發(fā)生了移動,該情況下產(chǎn)生了目標物與攝像機之間的相對運動,從而增加了目標物檢測與跟蹤的難度。
本文通過車載單目攝像機采集機動車輛周圍的環(huán)境信息,對獲得的圖像信息進行相應(yīng)的預(yù)處理,最后在預(yù)處理后的圖像中進行運動障礙物目標的檢測。該算法易于理解,程序設(shè)計復(fù)雜度也比較低,而且對光線等場景變化也不太敏感,能夠適應(yīng)各種動態(tài)環(huán)境。
1.1 算法介紹
三幀間差分算法是在兩幀間差分的基礎(chǔ)上的一種改進算法,該算法利用從攝像頭中捕獲的視頻序列里提取出的具有一定時間間隔的三幀圖像序列兩兩差分,然后再將得到的差分結(jié)果再次做差分,從而得到的目標物的輪廓如圖11所示。由圖可知利用三幀間差分檢測障礙物避免了檢測出的目標物出現(xiàn)重疊的現(xiàn)象,而且得到的目標物的輪廓也比較清晰,故三幀間差分對于慢速運動的目標物的檢測有著很強的魯棒性。
三幀間差分法的基本原理見圖1.2所示。
設(shè)Pk-1,Pk,pk+l分別是從攝像機中捕獲的視頻序列里提取出的具有一定時間間隔的三幀圖像,經(jīng)函數(shù)cvCvtColor()處理后得到相應(yīng)的單通道圖像模型及灰度圖像,利用cvAbsDiff()函數(shù)對灰度圖做相應(yīng)處理得到差分圖像Dk與Dk+l。然后對差分圖像Dk與Dk+l再一次進行差分,最終得到含有目標物的差分圖,然后在對含有目標物的差分圖做二值化處理最終分割出清晰的目標物。
1.2 圖像分割
圖像分割是圖像處理與分析中的一個經(jīng)典問題,研究者針對各種問題提出了許多方法。文獻對圖像分割進行了比較全面的概述,圖像分割的目地是把圖像空間分割成有意義的區(qū)域,常用的圖像分割方法是閾值處理即閾值分割,其進行分割的基本理念是假設(shè)處在一定灰度值范圍內(nèi)的鄰域像素可近似認為是屬于同一類的像數(shù)。閾值分割分為全局分割和局部分割,全局分割在障礙物檢測中的應(yīng)用比較多,它是在整幅圖像內(nèi)采用固定的閾值來進行圖像的分割;而局部分割是將原始圖像劃分為不同的塊,并對每一個圖像塊選取相應(yīng)的閾值。經(jīng)過閾值化處理后的圖像變成了黑白二值圖,閾值化是灰度圖轉(zhuǎn)化為二值圖的一種常用方法,進行閾值化只需給出閾值點即可。其常用的方法是把圖像變成二值圖像,設(shè)圖像f(x,y)的灰度級范圍是(R1,Rk),設(shè)T是(R1,Rk)之間的一個數(shù),那么f'(x,y)可由下式表示:
其中f(x,y),f(x,y)分別為處理前后的圖像在處像素的灰度值,T為閾值。文中用C++調(diào)用函數(shù)cvThreshold()對含有目標區(qū)域的灰度圖像進行二值化,當(dāng)差分圖像中某一像素的值大于設(shè)定的閾值(本文中選用的閾值為T=35)時,則認為該像素是前景像素,反之認為是背景像素。
1.3 算法流程圖
三幀間差分算法操作起來要比兩幀間差分法復(fù)雜,但是其檢測效果卻要明顯高于兩幀間差分算法,有效避免了利用兩幀間差分法檢測的目標物會出現(xiàn)重疊的現(xiàn)象,而且其用范圍也比兩幀間差分法更廣,對各種慢速運動的目標物的檢測有著很強的魯棒性。三幀間差分法的流程圖如圖1.3所示。
2 算法運行平臺
文章提出的算法是在Windows XP操作系統(tǒng)的平臺上,選用Intel公司開發(fā)的開源項目OpenCV庫,在Microsoft Visual C++集成開發(fā)環(huán)境下完成的。實現(xiàn)該算法的整個系統(tǒng)需要的硬件包括:實驗車輛、車載攝像機和計算機。
車載相機的屬性:有效像素PAL: 752(H)x582(W)、NTSC: 768(H) x494(W),頻率為:30f/s,可視角度為:57.8°(wide)t0 1.7°(tele),焦距35mm-115mm,水平范圍:360℃連續(xù)旋轉(zhuǎn),垂直范圍:-15℃-90℃自動翻轉(zhuǎn),距地面高度1.23m。
計算機的屬性:系統(tǒng)型號:HP dx2708 MT(RC740AV).BIOS:Phoenix-Award BIOS v6.00 PG.處理器:Intel(R)Core(TM)Duo CPU T2300 1.86GHz,內(nèi)存:2048MB RAM。
3 實驗結(jié)果
在該算法中幀間間隔的選取對障礙物的檢測有很大的影響,故此本次測試結(jié)果以兩組圖片作參考,第一組測試圖片見圖3.1a),選取的幀間差數(shù)為3幀;第二組測試圖片見圖3.2a),選取的幀間差數(shù)為7幀,其中第一組測試圖片的檢測效果見圖3.1d)所示,經(jīng)過二值化處理后的最終效果圖見圖3.1e)所示;第二組測試圖片的檢測效果見圖3.2d)所示,經(jīng)過二值化處理后的最終效果圖見圖3.2e)所示。
觀察Fig.3.1.e)和Fig.3.2.e)不難發(fā)現(xiàn)選取適合的幀差數(shù)會得到較為理想得目標區(qū)域。
4 復(fù)雜度分析
文章主要針對機動車前后方Sx6㎡范圍內(nèi),車速較低,視頻序列中相鄰三幀圖像(實驗中圖像的大小為640x393),光照變化以及旋轉(zhuǎn)變化小到可以忽略不計的情況下進行的研究。通過編程的比較,對圖像處理中的一些基本運算的耗時有了一定的了解,其中與障礙物檢測有關(guān)的主要有:圖像獲取、幀序列選取、灰度均勻化處理和二值化處理。由于實驗條件和設(shè)備的緣故,其將最終信息反饋給駕駛員需要較長的時間,故此在這種情況下算法的實用性不是很高,算法各步驟的耗時如表2所示。
5 結(jié)束語
本文的檢測算法主要是基于圖像的檢測,盡管也能應(yīng)用于視頻之中,但是圖片檢測的時間很難達到實時的目標,在今后的研究中可以考慮利用視頻之間的運動關(guān)系來提高實時性能。由于時間和條件的限制,本文并沒有提到基于視覺的車輛測距技術(shù),在今后的研究中將會考慮到車輛測距技術(shù)的工作。