樊 超,宋雨佩,焦亞杰
(河南工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,河南 鄭州 450001)
對于復(fù)雜路況的車道線提取,檢測算法的魯棒性和準確性是該領(lǐng)域的研究重點。目前車道線的檢測方法主要分為基于模型和基于特征兩種方法。
基于模型的算法主要采用拋物線模型、雙曲線模型以及樣條曲線模型等。但是對于復(fù)雜的車道線模型,由于模型的參數(shù)更多,使得算法的計算成本增加。因此,Jung和Kelber提出了一種線性拋物線車道線模型。在圖像近景處使用線性模型,在遠景處使用拋物線模型。相對于直線模型的魯棒性,線性拋物線模型提供了拋物線車道線模型的靈活性。但是大部分的道路場景以直線居多,因此本文主要采用直線模型?;谔卣鞯乃惴ɡ鏗ough變換、最小二乘擬合以及RANSAC的車道線檢測方法得到了廣泛應(yīng)用[1-4],在一些陰影、道路標記等干擾因素條件下,能較準確提取車道線。但對于周圍環(huán)境干擾以及由于光照不均、道路潮濕等因素的干擾,基于Hough變換的車道線檢測算法準確率較低。進而提出了DLD(dark-lightdark)模式[5],較好解決了由于天氣引起的路面光照不均使得車道線檢測困難的問題,但是對夜晚車道線的識別較為困難。相關(guān)學(xué)者提出了風(fēng)扇掃描和共軛高斯模型等車道線檢測算法解決了DLD模式的一些缺陷[6-9],但檢測結(jié)果容易受到道路上其它車輛的干擾。由上可知,對于復(fù)雜路況的車道線檢測,往往要同時面對多種檢測困難,主要包含以下兩大類因素:第一類是天氣因素。例如,晴朗的白天和雨天的路面積水都會由于路面光照不均而產(chǎn)生強烈的道路反光;雨天、大風(fēng)、沙塵和大霧等惡劣天氣條件下,由于道路能見度低極易影響車道線的提?。灰归g由于路燈和車燈光照不均等都會增加車道線檢測的難度。第二類是道路因素。例如,車道線破損以及顏色褪色、道路兩旁的植物和圍欄陰影干擾、以及路面車輛對車道線的遮擋等。所以,針對以上所提出的算法面對復(fù)雜路況車道線識別魯棒性較差的問題,本文提出一種基于核Fisher線性判別分析灰度變換以及混沌粒子群的車道線檢測算法以提高復(fù)雜路況下車道線識別的魯棒性。
該算法首先通過核Fisher線性判別分析(核F-LDA)算法對圖像進行有目的的灰度化處理;然后根據(jù)車道線的像素特征,采用直線模型利用混沌粒子群算法(CPSO)在車道線的斜率范圍之內(nèi)求解最優(yōu)解;最后根據(jù)得到的最優(yōu)直線模型擬合車道線。
在車輛行駛過程中,考慮到絕大多數(shù)車道線曲率的緩變性,近景部分可近似看作為直線,因此本文采用直線模型y=kx+b對車道線進行擬合,其中k、b為所要獲得的直線參數(shù)。而左右車道線的參數(shù)取值范圍不同,所以對左右車道線分別進行獨立檢測,以下算法描述以左車道線檢測過程為例。
傳統(tǒng)的灰度化方法將RGB這3個通道的取值加權(quán)求和,如式(1)所示
lmg(x,y)=α×R(x,y)+β×G(x,y)+γ×B(x,y)
(1)
式中:α、β、γ為R、B、G這3個通道固定的權(quán)值,但是由于實際道路圖像的多樣性和多干擾性,轉(zhuǎn)換后的灰度圖不能很好區(qū)分車道線與道路間的特征。
因此,為了使得灰度化后的兩種元素特征能夠更好區(qū)分開,本文提出一種基于核F-LDA的灰度化算法。與傳統(tǒng)的LDA[10,11]算法不同,核F-LDA將非線性數(shù)據(jù)投影到特征空間內(nèi),使得數(shù)據(jù)線性可分,然后在特征空間內(nèi)對數(shù)據(jù)進行LDA判別分析。算法實現(xiàn)流程如圖1所示。
圖1 核FDA算法流程
算法步驟可描述為:
步驟1 取20個車道線圖像訓(xùn)練樣本,從每個樣本中分別截取相同大小的只包含車道線像素特征和只包含道路特征的圖像。將樣本數(shù)據(jù)X={X1,X2,…,XN} 按照高斯徑向基函數(shù): ∑K(X,Xi)=exp[-(X-Xi)T(X-Xi)] 映射到特征空間Z(X1,X2,…,XN),即ψ:X→Z。
步驟2 在特征空間內(nèi)分別求類內(nèi)離散度矩陣和類間離散度矩陣。
在特征空間內(nèi),樣本均值為
(2)
Ni指的是第i類的樣本個數(shù),這里由于只有兩種特征,i取1表示車道線特征類,i取2表示道路特征類。
類間離散度矩陣和類內(nèi)離散度矩陣可由式(3)、式(4)計算
(3)
(4)
步驟3 求解基于特征空間的最佳鑒別向量。
根據(jù)Fisher-LDA的判別準則定義核F-LDA的判別準則
(5)
將式(3)、式(4)帶入式(5)求解使得J(w) 達到最大的最佳鑒別向量w*
(6)
步驟4 根據(jù)基于特征空間的最佳鑒別向量,推導(dǎo)基于樣本數(shù)據(jù)空間的最佳鑒別向量。
在特征空間內(nèi)對樣本進行投影
Y=w*Tψ(X)
(7)
所以最佳鑒別向量w*可由ψ(X) 線性表示,因此
(8)
N為樣本的數(shù)目,a為線性參數(shù)。將式(2)、式(8)代入式(7),可得
Yi=aTMi,i=1,2
(9)
(10)
式中:Mi為投影后樣本的均值,大小為N×1的矩陣。將式(3)和式(8)帶入式(5),可得
(11)
式中:ω為所求的數(shù)據(jù)集X空間的最佳鑒別向量,同理可得到
(12)
(13)
Ki為第i類核矩陣,E表示相同維度的單位陣,L矩陣所有元素的值為1/XN。 由式(11)、式(12)得到ω實際上是矩陣Q-1的最大特征值對應(yīng)的特征向量
ω=Q-1(M1-M2)
(14)
式中:M1,M2分別為兩類樣本的均值。
于是在特征空間內(nèi)樣本數(shù)據(jù)集X的最佳鑒別向量w*可以轉(zhuǎn)化為數(shù)據(jù)集空間內(nèi)的最佳鑒別向量ω。
步驟5 根據(jù)步驟1、步驟2獲得的道路特征與車道線特征分離的最佳鑒別向量ω,將輸入的RGB圖像進行核F-LDA處理。
步驟6 通過以下公式將投影后的數(shù)據(jù)集取值范圍映射到[0,255]
(15)
步驟7 確定閾值(根據(jù)光照因素取100-150之間),根據(jù)閾值將所有像素點進行分類,大于閾值c的點判別為車道線特征點,小于閾值的點為非道路特征點。
為比較本文算法在復(fù)雜路況下的車道線的灰度化效果,圖2(a)給出傳統(tǒng)灰度化后得到的灰度圖,由于3個通道的權(quán)值固定,灰度化的圖像對比度并沒有發(fā)生變化,特征點數(shù)目眾多且沒有一個很好的區(qū)分。圖2(b)為本文算法處理后的灰度圖。從圖像中可以很明顯看出,灰度化后的圖像很好地將道路特征與車道線特征區(qū)分開來。
圖2 傳統(tǒng)灰度化和F-LDA灰度化
從圖2(b)中可以看到,灰度化后的圖像中除了車道線特征外,仍然還有許多類似于車道線的線條干擾(如護欄等)。為了從混有干擾信息的圖像中正確提取出車道線,本文采用了混沌粒子群算法來提取車道線。
粒子群優(yōu)化算法由美國學(xué)者Eberhart和Kennedy提出[12],該算法源于對鳥群捕食行為的研究。傳統(tǒng)的PSO主要有以下兩個缺陷:一是過分依賴初始粒子的分布,若初始粒子分布不均,會導(dǎo)致算法迭代次數(shù)增加。二是PSO在求解問題時,容易陷入局部最優(yōu)解,導(dǎo)致迭代后期收斂速度較慢,影響算法的實時性。因此,為了提高初始粒子的隨機性,本文結(jié)合混沌變量便利性、隨機性和規(guī)律性的特點,提出混沌粒子群算法,將混沌的思想與原有的粒子群算法相結(jié)合,解決傳統(tǒng)粒子群算法的缺陷。算法通過混沌映射,將初始粒子均勻分布在粒子變量的取值范圍內(nèi)。根據(jù)左右車道線斜率取值范圍的不同分別限定粒子的運動范圍;當判別函數(shù)檢測到算法陷入局部最優(yōu)時增加一個混沌擾動,使得粒子跳出局部最優(yōu)。算法的具體實現(xiàn)流程如圖3所示,其步驟可描述為:
步驟1 確定初始條件。慣性權(quán)重按照w=0.9-0.5×(DT/MaxDT)計算(DT表示當前迭代次數(shù),MaxDT表示迭代的總次數(shù)),初始化迭代計數(shù)器DT并設(shè)置最大迭代值DTMax,初始化停滯代數(shù)計數(shù)器并設(shè)置計數(shù)器閾值T(T取10,T值越小算法要求越嚴格),確定數(shù)據(jù)維度N(N為2)以及粒子數(shù)目(視算法計算速度與結(jié)果準確率調(diào)整),根據(jù)直線斜率確定粒子取值范圍;
圖3 混沌粒子群算法實現(xiàn)框架
步驟2 初始化種群個體的速度與位置。根據(jù)生成的Tent混沌序列,將粒子參數(shù)與混沌序列相乘;
初始粒子的分布應(yīng)盡量遍布整個解空間,且粒子數(shù)越多、分布越均勻則搜索到全局最優(yōu)解的概率越高,但是隨著粒子數(shù)的增加,算法的計算速度越來越慢。同時,當解空間相對于粒子數(shù)較大時,粒子不能夠均勻的遍布整個解空間,導(dǎo)致算法陷入局部最優(yōu)。
本文選用Tent混沌映射[13],在粒子進行初始化時,將直線參數(shù)作為位置信息x,速度信息為v。根據(jù)直線的斜率范圍對粒子群的初始值進行賦值,在賦值的過程中加入Tent混沌映射,混沌映射的表達式為
(16)
Yn+1為當前Tent混沌映射的取值,Yn為上一次的迭代值。將每一次的取值作為下一次函數(shù)計算的自變量值。由式(16)可知,當自變量取值為0,0.25,0.5,0.75時,函數(shù)值將呈現(xiàn)出循環(huán)的規(guī)律性,從而失去混沌的特性,此時,通過以下計算
Yn+1=Yn+0.1×rand(1)
(17)
避免了混沌序列陷入局部不動點或者周期的循環(huán)。將混沌映射與位置區(qū)間進行相乘
Xmk=Xmin+(Xmax-Xmin)×Y
(18)
m=1,2;k=1,2,3,…,n。 這樣就把位置范圍內(nèi)的取值均勻分布在n個粒子空間內(nèi)。
如圖4所示為兩種粒子的初始值分布情況,圖4(a)為未加混沌映射,粒子分布不夠均勻,部分粒子較為集中形成粒子簇,使得解空間內(nèi)有很多的空白。而增加了混沌映射的粒子分布如圖4(b)所示,可見增加擾動后粒子在解空間內(nèi)的分布更加均勻。
圖4 初始粒子分布
步驟3 根據(jù)適應(yīng)度函數(shù),求解當前迭代各個粒子的適應(yīng)度值,比較每個粒子適應(yīng)度值的變化,得到粒子Pbest(個體極值)和Gbest(全局極值);
為判定Gbest是否為當前輸入的最優(yōu)解,引入適應(yīng)度函數(shù)值J,該值越大表明當前輸出越接近最優(yōu)解。Gbest包含直線的參數(shù)信息,根據(jù)參數(shù)在圖像上畫出該直線,以直線上的點為中心坐標點,在灰度化的圖像上對n×n的像素子塊進行適應(yīng)度函數(shù)的計算,這里車道線特征主要通過以下兩個參數(shù)來表征:道路灰度的均值與像素塊整體的灰度均值的差Ma以及道路灰度均值和車道線灰度均值的差Ta。以3×3的像素塊為例,車道線的像素特征主要有以下兩種情況:
對于左車道線來說,正常情況下圖5(a)特征比較明顯,對于右車道線來說圖5(b)特征比較明顯。根據(jù)以上特征,得出適應(yīng)度函數(shù)表達式
(19)
式中:k,b為直線參數(shù),α、β為像素塊兩個參數(shù)差值相應(yīng)的權(quán)系數(shù)。n為有效像素點的個數(shù),這里取閾值為20,當n小于20時,認為該線不是車道線,函數(shù)值J(k,b)取0。
圖5 車道線3×3像素特征
將每個粒子的適應(yīng)度值與上一次迭代的結(jié)果進行比較,如果此次的值優(yōu)于之前的取值,更新粒子個體適應(yīng)度值和Pbest。
將此次迭代后的最大適應(yīng)度值與上一次迭代后的最大適應(yīng)度值進行比較。若此次得到的適應(yīng)度函數(shù)值較大,則更新群體歷史最佳適應(yīng)度值Gbest;否則,停滯計數(shù)器次數(shù)加1,如果次數(shù)達到了T次,認為陷入了局部最優(yōu),將粒子個體最優(yōu)解Pbest與混沌序列相乘。
步驟4 根據(jù)公式,更新粒子位置和速度參數(shù)
(20)
(21)
其中,d=1,2,…,D,c1、c2為加速因子,rand為0到1的隨機數(shù),w為慣性權(quán)數(shù)。從式(20)可以得到,影響粒子速度的因素有3個:慣性權(quán)數(shù)w,個體極值Pbest,全體極值Gbest。
步驟5 判斷迭代次數(shù)是否達到DTMax, 若沒有則跳轉(zhuǎn)到步驟3。否則,輸出全局最優(yōu)解。在原圖像上根據(jù)最優(yōu)解得到的直線模型參數(shù),擬合車道線。
為驗證算法的有效性,本文選用了caltech、roma以及BDD100車道數(shù)據(jù)集,從中選取了1179張實際道路圖像數(shù)據(jù)對車道線的識別效果進行測試,由于篇幅有限只選取了幾幅具有代表性的圖像展示檢測結(jié)果。通過測試發(fā)現(xiàn)并分析了影響算法魯棒性的幾個主要因素,進而提出了有效的改善方法。
為比較像素塊尺寸對算法的影響,本文分別選用了3×3、5×5以及11×11的像素塊進行對比,圖6為不同像素塊尺寸下適應(yīng)度函數(shù)值與迭代次數(shù)間的關(guān)系。
圖6 不同像素塊適應(yīng)度值變化比較
其中橫坐標為迭代次數(shù),縱坐標為當前迭代下最佳適應(yīng)度函數(shù)的極值。從函數(shù)取值的曲線變化來看11×11的像素塊很快就達到了最大值,迭代次數(shù)不到20次,而5×5和3×3的像素塊迭代次數(shù)約50次和100次,并且適應(yīng)度值在相當多的迭代次數(shù)內(nèi)幾乎沒有發(fā)生變化。因此,在其它條件相同的情況下,選取的像素塊尺寸越大,則需要的迭代次數(shù)越少;從縱坐標的函數(shù)值來看,11×11的像素塊適應(yīng)度函數(shù)的最大值約為60,而5×5和3×3的像素塊適應(yīng)度函數(shù)的極值均超過了60,因此選取的像素塊越小得到的結(jié)果越接近最優(yōu)結(jié)果。但是,隨著像素尺寸的減小,圖像噪聲對適應(yīng)度函數(shù)的計算結(jié)果影響越大,進而降低計算精度。
根據(jù)以上結(jié)果分析,為了在提高計算準確性的同時縮短計算時間,本文提出變像素計算方法,即在迭代初期采用11×11像素塊,后期用3×3像素塊,實驗結(jié)果如圖7所示。
圖7 本文算法適應(yīng)度值變化情況
將圖7與圖6(a)比較,在達到相同適應(yīng)度情況下,本文算法所需要的迭代次數(shù)約20次,迭代次數(shù)明顯減少。與圖6(c)比較可以看出,適應(yīng)度函數(shù)的最大值同樣也接近70,因此本文算法在減少計算時間的同時,能夠保證較高的識別準確率。
傳統(tǒng)的PSO在迭代的后期粒子運動速度緩慢,極易陷入局部最優(yōu)。圖8所示為左車道線的檢測過程,每次迭代計算后在原圖上畫出此次迭代的最優(yōu)結(jié)果。圖8(a)表示算法認為左側(cè)的黃線為檢測結(jié)果的最優(yōu)解,使得算法陷入了局部最優(yōu)。針對這一問題,本文引入了一個判別函數(shù),若迭代后的粒子群體最優(yōu)解Gbest多次未發(fā)生變化,認為算法陷入了局部最優(yōu)。此時引入混沌擾動,將每個粒子的個體歷史最優(yōu)解Pbest與Tent映射相乘。由于Pbest是改變粒子速度和位置信息的3個因素之一,再次更新粒子的速度和位置時,可以使失活的粒子獲得速度值重新開始運動,進而使粒子群脫離局部最優(yōu)解。
圖8 局部最優(yōu)問題解決
圖8(b)為增加了混沌擾動后的處理結(jié)果,從圖中可以看出盡管在迭代的過程中有黃線信息(局部最優(yōu)箭頭所指向的直線),但加入混沌擾動后最終使右邊白色直線(全局最優(yōu)箭頭所指直線)成為全局最優(yōu)解,進而得到了正確的檢測結(jié)果。
為驗證本文所提車道線檢測算法的適應(yīng)性,使用了多種路況對算法的檢測效果進行了測試,由于文章篇幅受限,僅選取幾種具有代表性的測試圖片。如圖9所示,本文算法對不同光照條件下,如圖9(a)所示的強光、圖9(b)所示的夜晚道路以及圖9(c)所示的由于雨水引起的路面光照不均等條件下都具有較強的魯棒性。算法對道路上的干擾,如圖9(a)所示的車道線褪色,圖9(d)、圖9(e)所示的車輛阻擋、多車道干擾和車道標識符干擾,圖9(f)所示的路面陰影干擾以及圖9(g)所示的道路旁的欄桿干擾也具有較好的魯棒性。算法對于圖9(c)所示的單虛線以及圖9(h)所示的雙黃線(圖9(h)左車道線為雙黃線)識別依然有較好的魯棒性。
圖9 多種路況車道線擬合結(jié)果
圖10 算法準確率比較
為了驗證算法的實時性,本文選用了caltech、roma以及BDD100車道數(shù)據(jù)集,從中選取了1179張車道線圖像并分成了5個庫,庫中包含了車道線檢測中所面臨的各種困難。選取了基于Hough變換提取車道線的算法作為對比算法,兩種算法準確率的對比結(jié)果如圖10所示。橫坐標為不同的數(shù)據(jù)庫,縱坐標為算法的識別率。從縱坐標的分布來看,除了庫4本文的識別率要低于算法一以外,其它庫的識別率都要顯著高于算法一。
本文根據(jù)核Fisher線性判別的思想,提出了一種基于核F-LDA灰度化的新灰度化算法;在車道線特征提取過程中,在粒子群算法中引入混沌的思想,提出了一種車道線識別算法。大量實驗結(jié)果表明,本文提出的算法能夠識別不同光照、不同天氣以及道路不同干擾等情況下的車道線,充分體現(xiàn)了算法優(yōu)越的魯棒性。為復(fù)雜路況的車道線檢測提供了一種高效的算法。從識別結(jié)果來看,車道線圖像噪聲的存在會導(dǎo)致檢測失敗,因此下一個階段要著重研究圖像噪聲的去除方法。