沈念偉,于大泳
(200093 上海市 上海理工大學(xué) 機(jī)械工程學(xué)院)
進(jìn)入21 世紀(jì)以來(lái)我國(guó)汽車產(chǎn)量日益增加,但隨之而來(lái)的交通事故也同樣增多。中國(guó)交通網(wǎng)2018 年數(shù)據(jù)顯示,當(dāng)年全球道路交通事故造成的死亡人數(shù)多達(dá)125 萬(wàn),交通事故傷害已位列第8大致死原因,其中有較大比例是因?yàn)槎惚苷系K物不及時(shí)所造成的[1]。如果能在行駛過(guò)程中提前檢測(cè)和躲避道路中的障礙物,那么交通事故的發(fā)生概率就會(huì)大大降低,由此可見(jiàn)障礙物的檢測(cè)在汽車的行駛過(guò)程中極為重要。隨著時(shí)代的發(fā)展,城市道路中的交通工具成為了最主要的障礙物,其次是行人,所以本文主要研究的障礙物是各種交通工具和行人[2]。目前對(duì)于道路上的障礙物的檢測(cè)和識(shí)別主要依靠的設(shè)備大多是激光雷達(dá)、機(jī)器視覺(jué)以及超聲波。由于激光雷達(dá)過(guò)于昂貴,也易受電磁波干擾,超聲波雖然結(jié)構(gòu)簡(jiǎn)單,價(jià)格也便宜,但是其缺點(diǎn)也比較明顯,就是測(cè)量的距離太短,達(dá)不到車輛的要求,因此這些設(shè)備并不適合大批次生產(chǎn)。然而單目攝像頭成本較低,對(duì)于資源要求也不高,比較適合大批次生產(chǎn)[3]。
本文采用CMOS 攝像頭對(duì)道路上障礙物進(jìn)行采集,首先對(duì)采集到的圖像設(shè)定ROI 區(qū)域,再對(duì)ROI 區(qū)域進(jìn)行預(yù)處理,采用加權(quán)平均法進(jìn)行圖像灰度化,除噪階段選擇了效果較好的中值濾波,對(duì)除噪后圖像進(jìn)行了基于遺傳算法的二維最大熵法的閾值分割,較于傳統(tǒng)的閾值分割法,分割效果更優(yōu),其速度也很快。最后通過(guò)形態(tài)學(xué)、填充算法和差分法對(duì)道路上的障礙物進(jìn)行檢測(cè)和提取,具體的流程圖如圖1 所示。
圖1 障礙物檢測(cè)流程圖Fig.1 Obstacle detection flow chart
為了實(shí)驗(yàn)的嚴(yán)謹(jǐn)和真實(shí)性,本文所有視頻圖像都是通過(guò)汽車的行車記錄儀所獲取,體現(xiàn)了障礙物的隨機(jī)性。本實(shí)驗(yàn)所用的行車記錄儀的攝像頭的品牌型號(hào)是惠普F975X 黑色,分辨率為1 080×820,采用CMOS 傳感器。行車記錄儀如圖2 所示,將獲取到的視頻加載到電腦上進(jìn)行算法處理。
圖2 行車記錄儀Fig.2 Automobile data recorder
感興趣區(qū)域ROI(region of interest)是指從圖像中選取一個(gè)在整幅圖像最想要的區(qū)域,而這個(gè)區(qū)域?qū)⑹潜疚乃芯康闹匾獏^(qū)域,相比于處理原圖來(lái)說(shuō)這樣可以大大減少計(jì)算機(jī)的運(yùn)行時(shí)間。本文研究的是汽車正前方的區(qū)域,對(duì)車輛有威脅的障礙物會(huì)從圖像的正上方慢慢出現(xiàn),ROI的區(qū)域范圍應(yīng)該根據(jù)汽車的車型尺寸來(lái)確定,由于市面上不同的汽車其車型尺寸大小也各不相同,所以在圖像I 的范圍(r,c)區(qū)域內(nèi)以固定百分比k%和l%[4]。提取ROI 區(qū)域的公式如下:
式中:k,l——一般取值為0.3;ceil——向下取整函數(shù)。根據(jù)上述方法在圖像中提取的感興趣區(qū)域如圖3 所示。
圖3 原圖中提取ROI 區(qū)域Fig.3 Extract ROI area from original image
在獲取圖像的過(guò)程中,往往會(huì)有許多外在的因素,從而導(dǎo)致攝像頭采集到的圖像存在質(zhì)量問(wèn)題,例如惡劣的自然氣候甚至是路面上的強(qiáng)光照射,造成許多攝像頭都會(huì)存在曝光問(wèn)題。圖像的質(zhì)量問(wèn)題會(huì)直接影響到計(jì)算機(jī)檢測(cè)的結(jié)果,因此在對(duì)圖像進(jìn)行正式處理之前必須對(duì)其進(jìn)行預(yù)處理,這樣就能夠最大化程度過(guò)濾掉圖像上的一些無(wú)用的信息以及加快圖像的處理效率。所以圖像預(yù)處理的必要不言而喻。
如今大部分的攝像頭類型所拍攝的圖片都是彩色的,彩色圖像包含的數(shù)據(jù)特別大,這樣就會(huì)增加后期計(jì)算機(jī)處理的速度,大量的數(shù)據(jù)集會(huì)占據(jù)計(jì)算機(jī)的運(yùn)行內(nèi)存,因此必須把圖像進(jìn)行灰度化,這樣就可以在保留圖像的重要信息的情況下能夠避免這樣的事情發(fā)生,對(duì)圖像進(jìn)行灰度化后,才能保證后續(xù)算法運(yùn)行順利。
彩色圖像由紅、綠、藍(lán)(RGB)3 種顏色組成,其像素點(diǎn)的變化范圍由0 到255×255×255 之間。進(jìn)行圖像的灰度化目的就是為了改變其像素的變化范圍,將其像素的范圍變化成0 到255。本文采用的是一種加權(quán)平均值的方法進(jìn)行灰度化處理,根據(jù)彩色圖像的3 個(gè)通道各自的重要性賦予不同的權(quán)重,然后再進(jìn)行加權(quán)平均處理。大量實(shí)驗(yàn)表明,比較符合人類視覺(jué)的灰度值的最佳顏色的權(quán)重分別為紅色0.3、綠色0.59、藍(lán)色0.11。加權(quán)平均法公式如下所示:
式中:i,j——像素所在的位置的像素值。
灰度化效果如圖4 所示。
圖4 加權(quán)平均的灰度圖像Fig.4 Weighted average grayscale image
圖像的噪聲可以理解為“妨礙人們感覺(jué)器官對(duì)所接收的信源信息理解的因素”,在其理論上是不可預(yù)測(cè)的,只能用概率統(tǒng)計(jì)方法來(lái)認(rèn)識(shí)的隨機(jī)誤差[5]。圖像的大部分能量都集中在幅度譜的中頻段以及低頻段,因此在高頻段一些比較有用的信息往往帶有一些噪聲,所以在圖像預(yù)處理階段必須使用一種濾波方法,只有降低高頻段部分的成分幅度,才能夠最大程度地減弱噪聲。本文所用的濾波方法為中值濾波。中值濾波是一種鄰域運(yùn)算,把鄰域中的所有像素值按照大小進(jìn)行排序,然后從排序的列表中選取中間值作為其像素值,這樣就能夠讓每一個(gè)像素點(diǎn)的值都接近真實(shí)的數(shù)據(jù),進(jìn)而達(dá)到了去除圖像中孤立點(diǎn)噪聲的目的。中值濾波后的效果如圖5 所示,其優(yōu)點(diǎn)在于實(shí)際運(yùn)算過(guò)程中并不需要圖像的統(tǒng)計(jì)特性,也因此給計(jì)算機(jī)的運(yùn)算帶來(lái)了很大的便利。其中值濾波的公式如式(3):
式中:f(x,y)——處理前的圖像;g(x,y)——中值濾波后的圖像;W——鄰域內(nèi)的像素點(diǎn)。
圖像分割的目的就是把障礙物與背景分開(kāi),為后續(xù)的障礙物的提取提供基礎(chǔ)。圖像分割的方法有很多,有基于邊緣的分割方法,基于閾值的分割方法等等。在圖像處理中,閾值分割法是一種較為常用的圖像分割的方法,主要是因?yàn)橛?jì)算比較簡(jiǎn)單,性能比較穩(wěn)定,速度快,在圖像處理領(lǐng)域被廣泛運(yùn)用。
傳統(tǒng)的閾值分割方法在處理一些背景比較單一且?guī)缀醪蛔儠r(shí),這種方法能夠達(dá)到很好的分割效果,但是碰到背景比較復(fù)雜且信噪比較小的圖像時(shí),分割效果往往就會(huì)變得很差。本文摒棄傳統(tǒng)的閾值分割法,選用的是一種基于遺傳算法的二維最大熵的方法實(shí)現(xiàn)灰度圖像閾值的分割[6],熵在數(shù)字圖像處理和模式識(shí)別的領(lǐng)域中代表的是一種平均信息量的表征,應(yīng)用非常廣泛。使用此方法分割后的結(jié)果如圖6 所示。
圖6 閾值分割圖Fig.6 Threshold segmentation diagram
傳統(tǒng)的閾值分割法的分割時(shí)間太長(zhǎng),無(wú)法達(dá)到要求,使用遺傳算法之后能大大節(jié)省時(shí)間,增加了算法的實(shí)效性。表1 是實(shí)驗(yàn)過(guò)程中連續(xù)5 次獲取的算法運(yùn)行時(shí)間和閾值的分割結(jié)果,由此看出其運(yùn)行時(shí)間較短。
表1 算法的運(yùn)行時(shí)間和閾值Tab.1 Running time and threshold of the algorithm
在對(duì)感興趣區(qū)域(ROI)進(jìn)行圖像的閾值分割之后,發(fā)現(xiàn)其圖像中仍然存在一些毛刺以及斷斷續(xù)續(xù)的地方,為了進(jìn)一步優(yōu)化改善,可以在圖像的連通區(qū)域進(jìn)行形態(tài)學(xué)修復(fù)。形態(tài)學(xué)的閉運(yùn)算是一種先膨脹然后再腐蝕的幾何運(yùn)算的濾波器,使用閉運(yùn)算能夠最大程度改善圖像中的障礙物邊緣不連續(xù)以及毛刺的現(xiàn)象,而使其總的位置和形狀卻幾乎不會(huì)變化。處理后的效果如圖7(a)所示。使用填充算法對(duì)障礙物部分進(jìn)行填充,填充效果如圖7(b)所示。最后階段使用帶閾值的差分法,能夠得到障礙物的大致區(qū)域[4]。如果障礙物的區(qū)域的面積大于閾值T時(shí),那么則認(rèn)為被檢測(cè)到的區(qū)域就是障礙物,然后把這塊區(qū)域標(biāo)記出來(lái),否則就認(rèn)為這塊區(qū)域不是障礙物。使用帶閾值的差分法能夠有效防止在運(yùn)算過(guò)程中出現(xiàn)誤差情況的發(fā)生。其中,本實(shí)驗(yàn)中所用的閾值T為圖像面積的5%±0.5%。檢測(cè)的結(jié)果如圖7(c)所示。
圖7 障礙物的提取過(guò)程Fig.7 Process of obstacle extraction
通過(guò)上述3 個(gè)步驟對(duì)ROI 區(qū)域內(nèi)的障礙物進(jìn)行提取,在不考慮大霧、暴雨等干擾度較大的天氣影響下,基本可以完成對(duì)障礙物的檢測(cè)。在不同復(fù)雜環(huán)境下的障礙物檢測(cè)試驗(yàn)結(jié)果如圖8 所示。
圖8 障礙物檢測(cè)實(shí)驗(yàn)結(jié)果Fig.8 Test results of obstacle detection
針對(duì)汽車在行駛過(guò)程中所遇到的障礙物未能夠及時(shí)準(zhǔn)確檢測(cè)的問(wèn)題,本文對(duì)道路中的障礙物部分的快速檢測(cè)做了詳細(xì)的介紹。論文的實(shí)驗(yàn)結(jié)果是基于MATLAB 軟件仿真。通過(guò)大量的實(shí)驗(yàn)結(jié)果表明:在道路大體一致的情況下,利用本文的研究算法是切實(shí)可行的。