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