陳雙葉, 劉 智
(北京工業(yè)大學(xué)信息學(xué)部, 北京 100124)
圖像邊緣檢測(cè)是一種被普遍使用的道路邊界檢測(cè)方法.Canny、Sobel、Laplace等邊緣檢測(cè)方法可以有效提取道路邊緣,但是道路中的道路標(biāo)識(shí)線也具有邊緣特征,有時(shí)會(huì)影響對(duì)道路真實(shí)邊界的判斷.Annamalai等[1]、Duan等[2]借助Canny邊緣檢測(cè)方法檢測(cè)道路邊界的實(shí)驗(yàn)結(jié)果就受到了道路標(biāo)識(shí)線的影響.Yan等[3]、于海峰[4]的研究利用了此特性將邊緣檢測(cè)算法應(yīng)用于識(shí)別車道線.為了能更加準(zhǔn)確地識(shí)別道路邊界,本文提出一種利用邊緣檢測(cè)算法檢測(cè)到的邊緣的圖像處理方法.該方法可以有效地降低標(biāo)識(shí)線的邊緣特征,同時(shí)保留道路真實(shí)邊界的邊緣特征,從而得到道路的真實(shí)邊界.
本文使用的圖像坐標(biāo)系以圖片左上角的像素作為原點(diǎn),向右、向下分別為x軸、y軸正方向.直線模型計(jì)算簡(jiǎn)單且擬合精度滿足本文方法的要求,能夠較準(zhǔn)確地描述直線道路的邊界和道路標(biāo)識(shí)線.故本文采用直線邊緣作為輸入對(duì)本文方法進(jìn)行說(shuō)明,并且為了后文進(jìn)行幾何約束的方便選擇斜截式直線模型y=kx+b,其中:k為直線斜率;b為圖像截距[5].
下文將要提出的方法在對(duì)圖像中的部分點(diǎn)是否可能是標(biāo)識(shí)線的左右兩端進(jìn)行判斷時(shí),其中一個(gè)判斷依據(jù)為兩點(diǎn)的距離是否小于一個(gè)閾值,而通過(guò)車載相機(jī)采集到的道路圖像往往具有強(qiáng)烈的透視效果,具有近大遠(yuǎn)小的特點(diǎn)[6],因此,閾值的選擇需要根據(jù)圖像的位置具體調(diào)整,位于圖像下方距攝像機(jī)較近位置的閾值較大,位于圖像頂端距攝像機(jī)較遠(yuǎn)位置的閾值較小.本文選取的閾值d和圖像縱坐標(biāo)y成線性關(guān)系
式中:h中為圖像高度;dmax和dmin分別為選取的圖像底端、頂端閾值.
圖像中的邊緣可能會(huì)因不確定因素的影響,如進(jìn)行隨機(jī)霍夫變換時(shí)將一整條直線識(shí)別成2段,導(dǎo)致被邊緣檢測(cè)算法檢測(cè)成多條緊挨的冗余直線.這種緊挨的直線會(huì)影響進(jìn)一步的處理,故先要通過(guò)篩選將這種直線去除.具體算法為,對(duì)于檢測(cè)到的直線集中的直線l1,將其斜率kl1和截距bl1與其余所有直線一一比較.若|kl1-kl2| 一般情況下,標(biāo)識(shí)線的灰度值要比路面的灰度值高.圖1是一張經(jīng)過(guò)高斯模糊的道路圖像,其第280行的灰度變化如圖2所示. 圖1 示例道路圖像Fig.1 Road image example 圖2 圖1第280行的灰度變化Fig.2 Grayscale of line 280 in Fig.1 如圖2所示,4條標(biāo)識(shí)線在灰度圖上體現(xiàn)為4個(gè)波峰.邊緣檢測(cè)時(shí)由路面標(biāo)識(shí)線產(chǎn)生的邊緣一般會(huì)在該行波峰的上升或者下降過(guò)程中與該行相交[7].本文把檢測(cè)到的邊緣分成2類:灰度從左到右上升的和灰度從左到右下降的(分別簡(jiǎn)稱上升邊、下降邊)以供進(jìn)一步處理.考慮到道路圖像近大遠(yuǎn)小的透視效果且圖像中距離攝像機(jī)較遠(yuǎn)的部分分辨率較低,識(shí)別出的直線與實(shí)際圖像偏差可能較大的特點(diǎn),本文參考了針對(duì)道路圖像透視效果的非均勻處理方法[8],通過(guò)判斷邊緣兩側(cè)的灰度值的大小對(duì)邊緣的分類進(jìn)行加權(quán)投票.具體方法如下. 將邊緣進(jìn)行分類后的效果如圖 3所示,其中藍(lán)色直線為上升邊,綠色直線為下降邊.可見圖中的道路標(biāo)識(shí)線產(chǎn)生的2個(gè)邊緣分別被分類為上升邊和下降邊. 圖3 經(jīng)過(guò)分類的邊緣Fig.3 Classified edges 本文以逐行的方式對(duì)原始圖像的灰度圖像進(jìn)行處理,記原始圖像的灰度圖像中取得的一行為ly,y為該行縱坐標(biāo).在大多數(shù)情況下,進(jìn)行邊緣檢測(cè)時(shí)道路標(biāo)識(shí)線會(huì)以一個(gè)上升邊和一個(gè)下降邊構(gòu)成的組合的形式被識(shí)別出來(lái).本文方法首先要識(shí)別出這種成對(duì)的邊緣與ly的交點(diǎn),即將這種成對(duì)的交點(diǎn)與其余獨(dú)立交點(diǎn)區(qū)分開.步驟如下: 1) 首先通過(guò)直線方程計(jì)算出各個(gè)上升邊和下降邊與直線ly的交點(diǎn),記為集合A. 2) 把A中的點(diǎn)以橫坐標(biāo)升序的順序進(jìn)行排序. 3) 如果A中只有1個(gè)交點(diǎn),則認(rèn)為該交點(diǎn)為獨(dú)立交點(diǎn).如果A中有大于1個(gè)交點(diǎn),則取A中的第1個(gè)點(diǎn)P1(x1,y)和第2個(gè)點(diǎn)P2(x2,y).如果P1為下降邊的交點(diǎn),則認(rèn)為P1為獨(dú)立交點(diǎn).如果P1為上升邊的交點(diǎn)且P2也為上升邊的交點(diǎn),則也認(rèn)為P1為獨(dú)立交點(diǎn).如果P1為上升邊交點(diǎn)且P2為下降邊交點(diǎn),則對(duì)P1和P2兩點(diǎn)間的距離d=x2-x1進(jìn)行判斷.如果d 4) 將已經(jīng)識(shí)別的交點(diǎn)從集合A中移除,重復(fù)步驟3),直到所有的點(diǎn)分類完成. 1) 對(duì)上一步中得到的ly中每一對(duì)成對(duì)的交點(diǎn)P1(x1,y)和P2(x2,y),計(jì)算P1左側(cè)3個(gè)點(diǎn)P11(x-1,y)、P12(x-2,y)、P13(x-3,y)的灰度值平均值,取整記為a1.同理,計(jì)算P2右側(cè)3個(gè)點(diǎn)的灰度平均值,取整記為a2. 2) 如果x1≠x2,則將P1的灰度值設(shè)為a1,將P2的灰度值設(shè)為a2;如果x1=x2,則將P1的灰度值設(shè)為a2. 3) 將x1增加1,x2減少1,即P1右移1像素,P2左移1像素.重復(fù)步驟2),直到x1>x2. 如此處理后,成對(duì)的交點(diǎn)中間的像素灰度值會(huì)被兩邊的平均灰度值“涂抹”掉.如果成對(duì)交點(diǎn)中間是道路標(biāo)識(shí)線,其顏色就會(huì)被周圍路面顏色覆蓋,降低其邊緣特征.如果成對(duì)交點(diǎn)非道路標(biāo)識(shí)線,兩側(cè)的不同灰度值會(huì)在成對(duì)交點(diǎn)中央形成新的邊緣特征,從而維護(hù)真實(shí)道路邊界的邊緣特征. 實(shí)際操作過(guò)程中,有時(shí)邊緣識(shí)別算法只能識(shí)別出道路標(biāo)識(shí)線左右2條邊中的1條.按本文上述方法處理后體現(xiàn)為只有1個(gè)上升邊或者1個(gè)下降邊,從而在進(jìn)一步處理時(shí)只能被識(shí)別為獨(dú)立交點(diǎn).如在圖 4中,邊緣識(shí)別算法只識(shí)別出了圖中左側(cè)道路標(biāo)識(shí)線的下降邊和右側(cè)道路標(biāo)識(shí)線的上升邊.而且,出現(xiàn)這種結(jié)果往往是由于道路標(biāo)識(shí)線的質(zhì)量較差,經(jīng)常還存在識(shí)別的邊緣與標(biāo)識(shí)線實(shí)際邊緣之間存在誤差的情況.這種邊緣也會(huì)影響對(duì)道路真實(shí)邊界的判斷,卻在上述方法中無(wú)法得到有效處理.因此,有必要針對(duì)這種情況單獨(dú)進(jìn)行處理. 圖4 未能準(zhǔn)確識(shí)別邊緣的情況Fig.4 Example of failing to identify edges accurately 對(duì)每個(gè)獨(dú)立交點(diǎn),均通過(guò)K均值算法對(duì)其水平附近范圍內(nèi)點(diǎn)經(jīng)過(guò)高斯模糊的灰度值進(jìn)行聚類,并通過(guò)聚類的臨界點(diǎn)嘗試找出其中相當(dāng)于上升邊交點(diǎn)和下降邊交點(diǎn)的點(diǎn)[9].具體方法如下: 2) 對(duì)范圍內(nèi)的點(diǎn)通過(guò)K均值算法進(jìn)行聚類.聚類個(gè)數(shù)為2,初始聚類中心選取為-1和256.終止條件為聚類中心不再變化或者聚類輪數(shù)超過(guò)4輪. 3) 檢查2個(gè)聚類中心的灰度差值.若灰度差低于設(shè)定的閾值,則認(rèn)為該灰度差是道路中正常的灰度變化,不是由道路標(biāo)識(shí)線產(chǎn)生的;若灰度差不低于設(shè)定的閾值,則進(jìn)入下一步. 4) 選取聚類中心灰度值較低的聚類的最大值作為臨界點(diǎn).檢查范圍內(nèi)的點(diǎn)的灰度值是否從左到右先增加超過(guò)臨界點(diǎn),后降低低于臨界點(diǎn).如果符合此種特征,則認(rèn)為超過(guò)臨界點(diǎn)和低于臨界點(diǎn)的點(diǎn)是一對(duì)上升邊交點(diǎn)和下降邊交點(diǎn),并按照1.6中的方法進(jìn)行處理.圖5為圖4經(jīng)過(guò)本文方法處理后的灰度圖像. 圖5 經(jīng)過(guò)處理后的圖4Fig.5 Fig.4 after being processed 經(jīng)過(guò)上述幾步的處理后,圖像中的道路標(biāo)識(shí)線的邊緣特征顯著降低且道路真實(shí)邊界的邊緣特征基本不受影響,如圖5所示.但是,上述通過(guò)聚類進(jìn)行處理的方法有時(shí)會(huì)產(chǎn)生誤識(shí)別,可能導(dǎo)致處理后的道路圖像出現(xiàn)“毛刺”.這種“毛刺”可能會(huì)降低道路真實(shí)邊緣的邊緣特征,影響對(duì)道路邊界的識(shí)別.圖6為一種產(chǎn)生較為明顯的“毛刺”的情況. 圖6 道路邊緣的“毛刺”Fig.6 “Spikes” on the edge of the road 徑向模糊是指攝像機(jī)高速靠近或者遠(yuǎn)離目標(biāo)時(shí)得到的目標(biāo)圖像出現(xiàn)的從中心到邊緣的放射狀的模糊.本文通過(guò)模擬徑向模糊的方法對(duì)此種可能出現(xiàn)的“毛刺”進(jìn)行處理,從而保留道路真實(shí)邊界的邊緣特征[10-11]. 本文使用道路的消失點(diǎn)作為徑向模糊的“中心點(diǎn)”.該消失點(diǎn)由檢測(cè)到的直線的交點(diǎn)通過(guò)排除離群點(diǎn)后取坐標(biāo)平均值得到,獲得消失點(diǎn)的具體方法非本文重點(diǎn),不細(xì)述[12].通過(guò)在要處理的目標(biāo)點(diǎn)與消失點(diǎn)構(gòu)成的直線上的目標(biāo)點(diǎn)周圍取點(diǎn)的灰度值進(jìn)行加權(quán)運(yùn)算,對(duì)圖像中的點(diǎn)P0(x0,y0)按權(quán)重矩陣A、消失點(diǎn)P(x,y)進(jìn)行徑向模糊操作的方法為 式中:G(P)指點(diǎn)P的灰度值;A及其中的數(shù)值a-n~an是預(yù)先設(shè)定的權(quán)重參數(shù). 通過(guò)計(jì)算點(diǎn)P0和點(diǎn)P的距離d0,使用反三角函數(shù)計(jì)算了點(diǎn)P0和點(diǎn)P所組成的直線與水平線的夾角θ.隨后通過(guò)使用三角函數(shù),計(jì)算距離P在[d0-n,d0+n]、位于與水平線成夾角θ的直線上的(2n+1)個(gè)點(diǎn)(根據(jù)選取的權(quán)重矩陣調(diào)整)的橫縱坐標(biāo).最后按照矩陣A對(duì)P-n~Pn的灰度值進(jìn)行加權(quán)計(jì)算,得到處理后的點(diǎn)P0的灰度值.即假設(shè)目標(biāo)點(diǎn)在當(dāng)前點(diǎn)正左方,本文的徑向模糊操作相當(dāng)于對(duì)當(dāng)前點(diǎn)按矩陣A進(jìn)行卷積運(yùn)算.實(shí)際操作時(shí),使用四舍五入將點(diǎn)坐標(biāo)轉(zhuǎn)換為整數(shù),如果出現(xiàn)點(diǎn)坐標(biāo)位于圖像外的情況,則不計(jì)算該點(diǎn)并提高其他點(diǎn)的權(quán)重. 如果對(duì)整張圖片中所有點(diǎn)都進(jìn)行徑向模糊處理,則對(duì)沒受到前一步錯(cuò)誤識(shí)別的影響產(chǎn)生“毛刺”的圖像區(qū)域進(jìn)行處理時(shí)會(huì)浪費(fèi)很多時(shí)間,因此,本文方法只對(duì)前一步中選取的進(jìn)行聚類的點(diǎn)進(jìn)行處理.圖6經(jīng)過(guò)此方法處理后如圖7所示,可見,圖像中的“毛刺”變得平滑,由于這種模糊是以道路消失點(diǎn)為基準(zhǔn)的,圖像只會(huì)沿著道路邊界的方向模糊,所以處理后不會(huì)對(duì)道路邊界的邊緣特征產(chǎn)生影響. 圖7 圖6經(jīng)過(guò)本文徑向模糊方法處理后的圖像Fig.7 Image of Fig.6 processed by the radial blur method proposed in this paper 經(jīng)過(guò)上述幾步的處理后,圖像中的道路標(biāo)識(shí)線的邊緣特征顯著降低且道路真實(shí)邊界的邊緣特征基本不受影響.將此時(shí)的圖像再次進(jìn)行邊緣識(shí)別,即可有效排除道路標(biāo)識(shí)線對(duì)道路真實(shí)邊界識(shí)別的影響. 因?yàn)樯鲜龇椒ㄐ枰吘墮z測(cè)得到的圖像邊緣,無(wú)法單獨(dú)使用,所以為了確認(rèn)上述方法的效果,本文搭建了一套簡(jiǎn)單的基于邊緣識(shí)別的道路邊界檢測(cè)系統(tǒng).系統(tǒng)整體結(jié)構(gòu)如圖8所示. 圖8 系統(tǒng)整體結(jié)構(gòu)Fig.8 Overall structure of the system 圖像預(yù)處理的目的是通過(guò)減少圖像中的無(wú)關(guān)信息,增強(qiáng)有關(guān)信息的可檢測(cè)性來(lái)提高圖像識(shí)別的準(zhǔn)確度和可靠性.本系統(tǒng)通過(guò)圖像灰度化、圖像尺寸調(diào)整、高斯模糊、灰度拉伸以及感興趣區(qū)域截取來(lái)對(duì)圖像進(jìn)行預(yù)處理. 因?yàn)楸疚乃褂玫乃惴]有使用圖像中的顏色信息,所以系統(tǒng)將原始圖像進(jìn)行灰度化.圖像尺寸如果過(guò)大,會(huì)顯著降低本文中使用的各種算法的運(yùn)行速度,而且大尺寸圖片中提供的圖像細(xì)節(jié)信息也沒有用處.因此,預(yù)處理時(shí)選擇將輸入的圖片大小縮小.圖片中的細(xì)節(jié),如道路的紋理,會(huì)對(duì)邊緣檢測(cè)產(chǎn)生影響,可利用高斯模糊來(lái)忽略圖片中這種不必要的細(xì)節(jié)[13].隨后使用灰度拉伸來(lái)使圖像的直方圖充滿整個(gè)灰度范圍,提高圖像的動(dòng)態(tài)范圍[14].最后,根據(jù)道路邊界可能出現(xiàn)的位置擬定圖像的感興趣區(qū)域,可以縮小進(jìn)一步圖像處理的范圍,提高運(yùn)算速度.一般情況下,道路處于圖像的下方位置,因此,系統(tǒng)截取圖片的下半部分作為感興趣區(qū)域供進(jìn)一步處理.具體的截取位置根據(jù)相機(jī)的角度進(jìn)行調(diào)整[15]. 系統(tǒng)使用OpenCV中Canny邊緣檢測(cè)算法進(jìn)行邊緣識(shí)別,再通過(guò)隨機(jī)霍夫變換得到邊緣直線[16].最后,通過(guò)幾何約束篩選直線斜率和直線位置排除部分無(wú)效直線,如部分道路上的陰影產(chǎn)生的直線[17]. 其中,Canny邊緣檢測(cè)的閾值選擇會(huì)影響圖像邊緣檢測(cè)結(jié)果.閾值選取越高,檢測(cè)到的邊緣越少,去除的無(wú)效邊緣也越多.但是閾值選取過(guò)高,則可能會(huì)去除有效邊緣.此外,道路的左右邊界也可能會(huì)因結(jié)構(gòu)、光照、到攝像機(jī)的距離等因素的差異,導(dǎo)致得到最佳的邊緣檢測(cè)結(jié)果時(shí)的閾值不同[18].系統(tǒng)就上述問(wèn)題,設(shè)計(jì)了下述方法進(jìn)行邊緣識(shí)別. 首先,將上一步得到的圖像感興趣區(qū)域從正中分割為左右兩部分,認(rèn)為道路的左右邊界分別存在圖像的左右部分,然后選取初始的Canny邊緣檢測(cè)閾值對(duì)左右圖像分別進(jìn)行邊緣檢測(cè).輸出的邊緣二值圖像經(jīng)過(guò)隨機(jī)霍夫變換和幾何約束篩選后,如果單側(cè)的直線數(shù)量少于選取的最大值,則輸出這組直線;如果多于選取的最大值,則增加Canny邊緣檢測(cè)閾值重新進(jìn)行處理,直到直線數(shù)量小于選取的最大值.在處理連續(xù)的圖像(如視頻或者實(shí)時(shí)采集的圖像)時(shí),使用的左右圖像Canny邊緣檢測(cè)閾值可供下一幀圖像處理時(shí)使用,從而提升系統(tǒng)運(yùn)行效率. 使用最后得到的左右直線按照第1節(jié)中的算法對(duì)原始圖像的灰度圖像進(jìn)行處理.處理完成后重新使用上一步中選取的Canny邊緣檢測(cè)閾值進(jìn)行邊緣檢測(cè),再次得到左右2組邊緣直線. 上一步得到的2組邊緣直線一般在道路之外仍然存在多條直線.系統(tǒng)對(duì)每一條邊緣直線l,計(jì)算其與圖像感興趣區(qū)域下方1/4位置的一行的交點(diǎn)Pl(xl,y).選取xl最大的左側(cè)邊緣直線l作為最終選定的道路左側(cè)邊界,選取xl最小的右側(cè)邊緣直線作為最終選定的道路右側(cè)邊界. 為檢驗(yàn)本文所提方法的有效性、實(shí)時(shí)性,本文使用134張道路圖像進(jìn)行實(shí)驗(yàn),其中包括有道路標(biāo)識(shí)線的和無(wú)道路標(biāo)識(shí)線的.部分道路圖像采集于百度街景地圖以及谷歌街景地圖.實(shí)驗(yàn)旨在檢驗(yàn)本文方法是否能夠降低圖像中道路標(biāo)識(shí)線的邊緣特征以及能否保持道路邊界的邊緣特征.實(shí)驗(yàn)使用的平臺(tái)為PC機(jī)(CPU Intel(R) Core(TM) i5-6300HQ CPU @ 2.30 GHz,內(nèi)存8 GB,Windows 10 x64 18362,OpenCV 3.4,Python 3.6). 實(shí)驗(yàn)結(jié)果如下:實(shí)驗(yàn)使用的134張道路圖片中,應(yīng)用本文算法前共有235條道路真實(shí)邊界體現(xiàn)邊緣特征,共有135條道路標(biāo)識(shí)線體現(xiàn)邊緣特征;應(yīng)用本文算法后,體現(xiàn)邊緣特征的道路真實(shí)邊界減少為220條,體現(xiàn)邊緣特征的道路標(biāo)識(shí)線減少為15條.即本文算法能夠有效去除其中約88.9%的道路標(biāo)識(shí)線的邊緣特征,同時(shí)保留其中約93.6%的真實(shí)道路邊界的邊界特征.實(shí)驗(yàn)過(guò)程中用于處理圖像的成對(duì)交點(diǎn)中,有45 467對(duì)交點(diǎn)是圖像上升邊和下降邊與該行的交點(diǎn),有34 769對(duì)交點(diǎn)是由單獨(dú)的上升(下降)邊交點(diǎn)經(jīng)過(guò)本文所述聚類算法找到的. 部分實(shí)驗(yàn)結(jié)果如圖 9所示.從實(shí)驗(yàn)結(jié)果可以看出,本文方法在基于邊緣檢測(cè)的道路邊界檢測(cè)系統(tǒng)中,能夠有效地降低圖像中道路標(biāo)識(shí)線的邊緣特征,同時(shí)對(duì)道路真實(shí)邊界的邊緣特征影響較小,從而能夠有效排除道路標(biāo)識(shí)線的干擾,得到真實(shí)的道路邊界.實(shí)驗(yàn)處理的交點(diǎn)對(duì)中有很大一部分來(lái)自于聚類算法的查找,由此可以認(rèn)為本文算法能夠應(yīng)對(duì)圖像邊緣檢測(cè)時(shí)只識(shí)別出道路標(biāo)識(shí)線單側(cè)邊緣或者識(shí)別出的邊緣位置和標(biāo)識(shí)線實(shí)際邊緣位置有一定偏差的情況且對(duì)邊緣檢測(cè)的準(zhǔn)確性要求較低,只要邊緣檢測(cè)能夠識(shí)別出道路標(biāo)識(shí)線的大體位置,就能夠有效地對(duì)其進(jìn)行處理. 圖9 部分實(shí)驗(yàn)結(jié)果Fig.9 Partial results from the experiment 導(dǎo)致存在未能有效去除的道路標(biāo)識(shí)線邊緣特征的情況的主要原因如下: 1) 道路可能受到行車痕跡等因素的影響,圖像本身就存在與道路方向平行的強(qiáng)烈灰度變化,或者道路不同車道之間由于道路材質(zhì)不同等原因?qū)е禄叶戎得黠@不同.因此,即使本文算法成功去除了道路標(biāo)識(shí)線本身的邊緣特征,按照1.6中的處理方法,不同車道之間的灰度差會(huì)形成新的邊緣特征.事實(shí)上這種情況下即使道路上不存在道路標(biāo)識(shí)線,邊緣檢測(cè)算法也會(huì)在灰度明顯變化的位置檢測(cè)出邊緣.如圖9中最后一組實(shí)驗(yàn)結(jié)果,從中間圖片可以看出,本文算法已經(jīng)去除了道路標(biāo)識(shí)線的邊緣特征,但因左側(cè)標(biāo)識(shí)線外的道路材質(zhì)灰度值和右側(cè)道路有較大差距,對(duì)道路真實(shí)邊界的識(shí)別仍然受到了影響. 2) 對(duì)于標(biāo)識(shí)線寬度閾值內(nèi)出現(xiàn)的連續(xù)多個(gè)邊緣特征較差的道路標(biāo)識(shí)線(如雙黃線),本文所采用的算法未進(jìn)行考慮. 導(dǎo)致未能保留真實(shí)道路邊界特征的主要原因是道路標(biāo)識(shí)線距離道路真實(shí)邊緣較近且圖像道路和非道路區(qū)域灰度值差別較小,從而對(duì)道路標(biāo)識(shí)線進(jìn)行操作時(shí)“誤傷”到真實(shí)道路邊緣. 在用時(shí)方面,本文提出方法在本文實(shí)驗(yàn)環(huán)境下,平均運(yùn)行時(shí)間為200 ms.這個(gè)較長(zhǎng)的運(yùn)行時(shí)間主要是以下2個(gè)問(wèn)題導(dǎo)致的. 1) 本文方法需要進(jìn)行大量的數(shù)學(xué)運(yùn)算,而實(shí)驗(yàn)采用的Python這種解釋型語(yǔ)言的運(yùn)算速度顯著低于編譯型語(yǔ)言. 2) 本文方法需要大量頻繁地對(duì)圖像中像素的灰度值進(jìn)行存取.實(shí)驗(yàn)所采用的OpenCV Python庫(kù)使用NumPy存儲(chǔ)圖像,NumPy通過(guò)將向量操作用C進(jìn)行實(shí)現(xiàn)來(lái)避免Python循環(huán)的開銷.但是本實(shí)驗(yàn)逐像素對(duì)圖像進(jìn)行操作不是向量操作,無(wú)法享受NumPy帶來(lái)的性能便利,需要承受通過(guò)Python循環(huán)逐元素訪問(wèn)NumPy的巨大開銷.資料顯示,使用向量操作NumPy的速度是逐元素訪問(wèn)NumPy的速度的1 000倍以上[19-20]. 就上述2個(gè)問(wèn)題,可以通過(guò)使用運(yùn)行效率更高的方式(如采用C、C++等編譯型語(yǔ)言)重新實(shí)現(xiàn)本文方法來(lái)解決,預(yù)計(jì)可顯著提升本文方法的運(yùn)行速度,達(dá)到對(duì)圖像進(jìn)行實(shí)時(shí)處理的目的. 1) 本文提出了通過(guò)邊緣檢測(cè)識(shí)別道路邊界過(guò)程中一種消除道路標(biāo)識(shí)線干擾的圖像處理方法.該方法可以利用邊緣檢測(cè)算法檢測(cè)到的邊緣對(duì)圖像進(jìn)行處理,達(dá)成保持道路邊界邊緣特征的同時(shí)降低道路標(biāo)識(shí)線的邊緣特征的效果. 2) 本文搭建了一套基于該方法的道路邊界識(shí)別系統(tǒng),并使用道路圖像來(lái)對(duì)本文方法進(jìn)行檢驗(yàn),確認(rèn)了該方法能有效消除道路標(biāo)識(shí)線對(duì)基于邊緣檢測(cè)的道路邊界檢測(cè)方法的干擾.1.4 圖像邊緣的分類
1.5 基于上升邊和下降邊對(duì)邊緣經(jīng)過(guò)點(diǎn)的分類
1.6 基于成對(duì)交點(diǎn)對(duì)原始圖像的灰度圖像的處理
1.7 未能準(zhǔn)確識(shí)別邊緣情況的處理
1.8 基于徑向模糊減輕聚類誤識(shí)別影響的方法
2 基于本文方法的道路識(shí)別系統(tǒng)
2.1 圖像的預(yù)處理
2.2 邊緣識(shí)別
2.3 應(yīng)用本文算法后圖像的再次邊緣識(shí)別
2.4 道路邊界直線的選取
3 實(shí)驗(yàn)結(jié)果及分析
4 結(jié)論