陳天婷 李慶
(1.中國(guó)科學(xué)院大學(xué),北京 100049;2.中國(guó)科學(xué)院微電子研究所,北京 100029)
主題詞:自主泊車 環(huán)視系統(tǒng) 停車位檢測(cè) 直線段檢測(cè)算法 線段匹配
在自動(dòng)泊車系統(tǒng)中,停車位的檢測(cè)與跟蹤是泊車路徑規(guī)劃的基礎(chǔ)。停車位檢測(cè)技術(shù)大致分為2類:一類采用超聲波傳感器[1]、激光掃描儀[2]、立體相機(jī)[3]、短程雷達(dá)[4]、結(jié)構(gòu)光[5]等,這類方法要求目標(biāo)停車位前、后均停有障礙物車輛,局限性較大;另一類通過(guò)識(shí)別車位圖像特征確定停車位,此方法應(yīng)用于泊車的低速場(chǎng)景,可以通過(guò)多幀檢測(cè)細(xì)化識(shí)別結(jié)果,是目前停車位檢測(cè)技術(shù)的發(fā)展趨勢(shì)。
在識(shí)別車位線圖像特征的方法中:王旭東等人[6]基于Radon變換[7]提取車位線,但是該方法對(duì)車位線的寬度很敏感;朱旺旺等人[8]結(jié)合泊車工況的先驗(yàn)知識(shí),壓縮了Radon 變換參數(shù)范圍并降低了Radon 矩陣的維度,從而提高了計(jì)算效率;K.Hamada[9]使用Hough 變換[10]提取線段,并利用一些幾何約束推斷出停車位,但是在樹(shù)影等干擾環(huán)境下算法容易失效;周培義[11]引入金字塔分層思想,提取金字塔高層圖像中車位線骨架,再?gòu)闹刑崛〕鲕囄痪€及車位角點(diǎn)。在識(shí)別車位角圖像特征的方法中:余卓
本文算法基于汽車環(huán)視系統(tǒng),由4個(gè)車載魚眼攝像頭獲取實(shí)時(shí)圖像,經(jīng)去畸變、逆透視變換和圖像拼接等操作得到環(huán)視鳥(niǎo)瞰圖,如圖1a所示,圖像預(yù)處理主要包括選取感興趣區(qū)域(Region of Interest,ROI)圖像、灰度化、形態(tài)學(xué)梯度、高斯濾波,結(jié)果如圖1b~圖1e所示。
圖1 圖像預(yù)處理
汽車在停車場(chǎng)行駛過(guò)程中,停車位通常位于車身平等人[12]設(shè)計(jì)了一種融合車輛底盤數(shù)據(jù)和環(huán)視相機(jī)數(shù)據(jù)的庫(kù)位跟蹤算法,可以在泊車過(guò)程中實(shí)時(shí)跟蹤車位角點(diǎn);Zong[13]從直線段檢測(cè)(Line Segment Detector,LSD)算法檢測(cè)到的線段中篩選出構(gòu)成“L”型車位角的線段集合,然后根據(jù)相鄰車位角構(gòu)成停車位,但在篩選由線段集合構(gòu)成的車位角時(shí)容易出現(xiàn)漏檢;Li等人[14]結(jié)合停車位的幾何特征提取出停車位的平行線段組,然后使用基于Haar特征和局部二值模式(Local Binary Pattern,LBP)特征的AdaBoost分類器進(jìn)行車位角檢測(cè),獲得車位導(dǎo)軌線,從而確定停車位;張林等人提出基于學(xué)習(xí)的停車位檢測(cè)(Parking-Slot Detection based on Learning,PSDL)算法[15],應(yīng)用4個(gè)分類器檢測(cè)車位角,然后根據(jù)幾何規(guī)則組合相同模式的車位角,利用6種高斯線模板推斷出停車位的平行標(biāo)線,從而確定有效的停車位,但是該方法在有障礙物或陰影環(huán)境下高斯線模板易失效,且每個(gè)車位角分類器需要檢測(cè)的角度范圍為90°,使檢測(cè)精度有所損失。
針對(duì)以上問(wèn)題,本文提出一種融合車位線特征和車位角特征的停車位檢測(cè)方法,利用相鄰幀之間的直線段匹配實(shí)現(xiàn)車位導(dǎo)軌線的跟蹤,利用“T”或“L”型車位角特征輔助確定庫(kù)位角點(diǎn),最后對(duì)不同停車場(chǎng)景及天氣條件下的檢測(cè)效果進(jìn)行分析。左、右兩側(cè),因此從輸入的環(huán)視圖像中選取ROI 代替整個(gè)圖像進(jìn)行檢測(cè),不僅能夠加快檢測(cè)速度,還能減少干擾,提高算法精度。在停車位場(chǎng)景中,車位線的灰度值相對(duì)偏高,使用形態(tài)學(xué)梯度算子加強(qiáng)并保留車位線的邊緣,從而去除圖像中灰度變化不明顯或偏暗的區(qū)域。最后,為了去除噪點(diǎn),利用高斯濾波進(jìn)行平滑處理。
本文使用LSD 算法[16]作為直線段提取方法。LSD算法能在線性時(shí)間內(nèi)得到亞像素級(jí)準(zhǔn)確度的直線段,運(yùn)行速度比霍夫線變換快,而且可以控制誤檢數(shù)量。其檢測(cè)流程主要分為3 個(gè)部分,即根據(jù)梯度產(chǎn)生線段支持域、構(gòu)造近似矩形和控制誤檢數(shù)過(guò)濾錯(cuò)誤線段。
將LSD算法作用于經(jīng)過(guò)預(yù)處理操作的停車位圖像,并從直線段檢測(cè)結(jié)果中回歸出如圖2 所示的車位導(dǎo)軌線,導(dǎo)軌線和與之垂直的平行標(biāo)線在相交處構(gòu)成了“L”型或“T”型的車位角。本文算法通過(guò)導(dǎo)軌線確定車位角檢測(cè)的感興趣區(qū)域,避免對(duì)整幅圖像進(jìn)行遍歷檢測(cè)。
圖2 停車位導(dǎo)軌線和車位角示意
車位導(dǎo)軌線提取結(jié)果如圖3所示,其具體流程為:
a.使用LSD算法檢測(cè)直線段,剔除長(zhǎng)度小于設(shè)定閾值的短線段,結(jié)果如圖3a所示。
b.將角度區(qū)間(-90°,90°)均勻設(shè)置為18 個(gè)小區(qū)間,可認(rèn)為10°范圍內(nèi)線段方向基本一致。每條線段按角度分類到各小區(qū)間,合并相互垂直的角度區(qū)間,保留線段數(shù)量最多的合并區(qū)間W內(nèi)的線段,如圖3b所示。
c.根據(jù)汽車行駛中與停車位的相對(duì)方位,選擇保留W中角度絕對(duì)值較大的區(qū)間內(nèi)的線段,如圖3c所示。
d.利用線段近似平行的特點(diǎn),本文設(shè)計(jì)了動(dòng)態(tài)K-Means 算法,篩選出用于回歸車位導(dǎo)軌線的線段集合,如圖3d所示。其中,類別數(shù)k初始值設(shè)為1,并在線段聚類過(guò)程中動(dòng)態(tài)增加。動(dòng)態(tài)K-Means算法偽代碼為:
在計(jì)算dij時(shí),設(shè)fi的兩端點(diǎn)坐標(biāo)分別為(xi1,yi1)和(xi2,yi2),cj的某一端點(diǎn)坐標(biāo)為(xj,yj),利用向量叉乘的公式a×b=|a||b|sinθ,并且定義向量ai=(xi2-xi1,yi2-yi1)、bj=(xj-xi1,yj-yi1),則dij為:
式中,θ、θd分別為向量a與b的夾角和向量ai與bj的夾角。
e.以線段長(zhǎng)度作為權(quán)重,計(jì)算導(dǎo)軌線的斜率和截距的回歸結(jié)果,如圖3e所示。
圖3 提取車位導(dǎo)軌線
本文使用線段條帶描述子(Line Band Discriptor,LBD)[17]作為直線段的描述符,基于該描述符可以對(duì)2幅圖中的線段特征進(jìn)行匹配,計(jì)算出單應(yīng)變換矩陣,完成導(dǎo)軌線的跟蹤,具體算法流程如圖4所示。LBD算法利用線段構(gòu)成線段支持區(qū)域(Line Support Region,LSR),并引入全局和局部的高斯權(quán)重系數(shù)統(tǒng)計(jì)區(qū)域中每行的梯度直方圖,將其串聯(lián)成LBD 條帶描述符。相比于均值-標(biāo)準(zhǔn)差線段描述符(Mean-Standard deviation Line Descriptor,MSLD),LBD 描述符除了具有旋轉(zhuǎn)、光照不變性等優(yōu)點(diǎn),還具有更優(yōu)的匹配效果。
圖4 線匹配算法流程
在匹配過(guò)程中,依據(jù)最近鄰距離比準(zhǔn)則衡量LBD描述子特征向量間的相似性,篩選出初始匹配結(jié)果,并對(duì)其中出現(xiàn)“一配多”和“多配一”的情況進(jìn)行檢查,得到更加可靠的匹配結(jié)果。
給定參考圖像和目標(biāo)圖像的M對(duì)線段匹配結(jié)果,其中分別表示相匹配線段的中點(diǎn)的齊次坐標(biāo),滿足關(guān)系:
式中,H為3×3的單應(yīng)變換矩陣,有8個(gè)自由度。
通過(guò)直接線性變換(Direct Linear Transform,DLT),將式(2)轉(zhuǎn)換成Ajh=0的形式,其中系數(shù)矩陣Aj為:
式中,h為H按列排列的向量形式。
采用最小二乘法估計(jì)單應(yīng)變換矩陣H:
式(4)的約束條件為‖h‖2=1。通過(guò)參考圖像中導(dǎo)軌線和計(jì)算得到的單應(yīng)變換矩陣H,可獲得目標(biāo)圖像中導(dǎo)軌線位置,實(shí)現(xiàn)導(dǎo)軌線跟蹤,縮短算法處理時(shí)間。
提取車位導(dǎo)軌線后,可通過(guò)導(dǎo)軌線上的車位角進(jìn)一步確定停車位位置。本文訓(xùn)練了1 個(gè)正方向車位角分類器,對(duì)導(dǎo)軌線上的車位角進(jìn)行檢測(cè)。選取導(dǎo)軌線鄰近區(qū)域作為待檢測(cè)ROI,以減少滑窗檢測(cè)時(shí)間和誤檢率。離線訓(xùn)練分類器和在線檢測(cè)車位角的算法流程如圖5所示。本文選取6 103張正樣本與40 049張負(fù)樣本進(jìn)行訓(xùn)練,樣本分辨率均為64×64。其中,正樣本截取自正停車位的“T”型或“L”型車位角,負(fù)樣本來(lái)自停車位背景。
圖5 訓(xùn)練分類器和檢測(cè)車位角的算法流程
基于對(duì)正、負(fù)樣本的分析和方向梯度直方圖(Histogram of Oriented Gradient,HOG)在提取邊緣和梯度特征時(shí)能很好地描述局部形狀的特點(diǎn),以及其對(duì)幾何和光學(xué)變化也具有很好的不變性,本文選擇提取HOG特征作為描述子。同時(shí),為保證速度和簡(jiǎn)潔性,使用線性支持向量機(jī)(Support Vector Machine,SVM)作為分類器。
在車位角檢測(cè)階段,首先依據(jù)導(dǎo)軌線斜率對(duì)環(huán)視圖進(jìn)行仿射變換,設(shè)環(huán)視圖的中心(cx,cy)為旋轉(zhuǎn)中心點(diǎn),待旋轉(zhuǎn)的角度記作θr(以逆時(shí)針為正),定義α=cosθr,β=sinθr,計(jì)算映射矩陣R為:
然后,在導(dǎo)軌線區(qū)域使用正方向車位角檢測(cè)分類器,以及采用多尺度滑動(dòng)窗口策略,進(jìn)行“T”型或“L”型車位角檢測(cè),降低漏檢率的同時(shí),也導(dǎo)致了一個(gè)目標(biāo)被多個(gè)窗口標(biāo)定。為消除冗余候選框,結(jié)合停車位幾何特征對(duì)非極大值抑制算法(Non-Maximum Suppression,NMS)進(jìn)行了改進(jìn),以對(duì)大量候選框進(jìn)行矩形融合,保留置信度最大的窗口,如圖6 所示。最后,利用R的逆矩陣將檢測(cè)的車位角逆變換到環(huán)視圖上對(duì)應(yīng)位置,由導(dǎo)軌線和相鄰車位角共同確定停車位的位置。
通過(guò)線特征匹配得到的單應(yīng)矩陣除用于對(duì)車位導(dǎo)軌線進(jìn)行跟蹤外,還可以獲得參考幀車位角在目標(biāo)幀圖像中的位置,從而減小目標(biāo)幀車位角的漏檢率。
圖6 車位角檢測(cè)結(jié)果
實(shí)車試驗(yàn)采用榮威汽車,如圖7所示。系統(tǒng)硬件包括4個(gè)魚眼攝像頭、1個(gè)視頻采集卡和1臺(tái)計(jì)算機(jī)(英特爾酷睿i7-7700K@3.0 GHz),在Visual Studio 2015 編程環(huán)境下,使用OpenCV 3.3.0函數(shù)庫(kù)進(jìn)行算法開(kāi)發(fā)。
圖7 實(shí)車試驗(yàn)平臺(tái)
為評(píng)估算法性能,采用精確率(Precision)和召回率(Recall)作為試驗(yàn)結(jié)果精度的評(píng)估指標(biāo),相關(guān)定義如下:
式中,P為精確率;R為召回率;TP為分類器檢測(cè)出的停車位數(shù)量;FP為被分類器誤檢為停車位的數(shù)量;FN為未被分類器檢測(cè)出的停車位數(shù)量。
在試驗(yàn)中,每個(gè)停車位由車位導(dǎo)軌線上的2個(gè)相鄰車位角p1,p2表示;停車位的標(biāo)簽值表示為;停車位的檢測(cè)值表示為。
精確率和召回率中相關(guān)變量的定義如下:
b.如果Pd沒(méi)有對(duì)應(yīng)的停車位標(biāo)簽值,則Pd為假正類(False Positive);
c.如果Pl沒(méi)有匹配的檢測(cè)結(jié)果,則Pl為假負(fù)類(False Negative)。
本文算法模型結(jié)合了車位線和車位角特征,為驗(yàn)證本文算法的有效性和先進(jìn)性,與其他停車位檢測(cè)方法進(jìn)行對(duì)比試驗(yàn),其中王旭東[6]提出的檢測(cè)方法基于車位線特征,張林提出的PSDL[15]算法主要基于車位角特征,從采集的視頻圖像中選取500張環(huán)視圖進(jìn)行算法測(cè)試,每種算法的精確率和召回率如表1所示。
表1 停車位檢測(cè)方法的性能對(duì)比
由表1可以看出,文獻(xiàn)[6]方法在評(píng)價(jià)指標(biāo)上平均檢測(cè)時(shí)間較短,但召回率較低,即存在著比較嚴(yán)重的漏檢問(wèn)題。在泊車實(shí)際場(chǎng)景中,樹(shù)影、鄰車車身及其他障礙物等都有可能使停車位標(biāo)志線被部分遮擋,而且經(jīng)過(guò)逆透視變換和拼接得到的環(huán)視圖本身的圖像質(zhì)量也存在一定程度下降,檢測(cè)到完整的停車框具有難度,因此僅基于車位線特征的方法難以適應(yīng)現(xiàn)實(shí)中復(fù)雜的停車場(chǎng)環(huán)境。文獻(xiàn)[15]方法在精確率和召回率指標(biāo)上均高于前者,原因在于車位角在現(xiàn)實(shí)中不易被覆蓋,采用機(jī)器學(xué)習(xí)算法提取的車位角特征比線特征更穩(wěn)定。本文方法結(jié)合了車位線和車位角特征,召回率進(jìn)一步提升。對(duì)比文獻(xiàn)[15],本文利用提取或跟蹤到的車位導(dǎo)軌線劃分出車位角的待檢測(cè)感興趣區(qū)域,無(wú)需對(duì)整幅圖像進(jìn)行遍歷檢測(cè),因此縮短了平均檢測(cè)時(shí)間,且訓(xùn)練的正方向車位角分類器在檢測(cè)過(guò)程中需要處理的角度范圍較小,在一定程度上提高了算法精度。
為測(cè)試本文算法在不同天氣、光照等條件下的性能,使用文獻(xiàn)[18]提供的部分測(cè)試集,與文獻(xiàn)[15]的PSDL算法進(jìn)行進(jìn)一步對(duì)比分析。室內(nèi)、晴天、雨天、夜晚、陰影5種場(chǎng)景下停車位識(shí)別結(jié)果對(duì)比如圖8所示,不同環(huán)境下算法性能對(duì)比如表2所示。
圖8 5種場(chǎng)景下停車位識(shí)別結(jié)果對(duì)比
表2 不同環(huán)境下算法性能對(duì)比 %
結(jié)合圖8和表2可知,本文算法在5種場(chǎng)景下的召回率均高于PSDL算法,雨天、夜晚和陰影環(huán)境下的精確度略高于PSDL算法,跟蹤算法的加入使車位角在被短暫遮擋和光照影響的情況下仍能被檢測(cè)出。此外,本文算法在實(shí)現(xiàn)過(guò)程中,注重去除背景干擾,如進(jìn)行高斯濾波預(yù)處理、過(guò)濾LSD算法提取到的短線段、限定車位角的檢測(cè)區(qū)域等操作,均有效提高了算法在環(huán)境變化中的適應(yīng)性。
當(dāng)目標(biāo)與背景顏色過(guò)于相近或被遮擋時(shí),會(huì)出現(xiàn)誤檢情況。圖9展示了2種誤識(shí)別結(jié)果。其中,圖9a漏檢了靠近柱子的車位角,圖9b對(duì)導(dǎo)軌線提取失敗,導(dǎo)致車位角檢測(cè)錯(cuò)誤。
圖9 停車位錯(cuò)誤檢測(cè)結(jié)果
通過(guò)總結(jié)分析,出現(xiàn)誤識(shí)別的主要原因有:一是受室內(nèi)停車場(chǎng)中柱子的干擾,靠近柱子的車位角置信度較低,易漏檢,造成停車位識(shí)別失??;二是當(dāng)車位線嚴(yán)重磨損或與背景顏色相近時(shí),未能準(zhǔn)確提取出導(dǎo)軌線,導(dǎo)致車位角檢測(cè)失??;三是在環(huán)視圖拼接時(shí)未進(jìn)行光度補(bǔ)償,當(dāng)車位角出現(xiàn)在拼接縫處時(shí),置信度低,較難檢測(cè)。在后續(xù)工作中將有針對(duì)性地增加此類訓(xùn)練集樣本,以解決上述問(wèn)題。
本文提出了一種基于環(huán)視的停車位檢測(cè)與跟蹤方法,利用車位線和車位角特征確定停車位。該方法結(jié)合SVM算法和HOG特征對(duì)正、負(fù)樣本進(jìn)行訓(xùn)練,得到車位角檢測(cè)分類器,并通過(guò)提取導(dǎo)軌線確定車位角待檢測(cè)感興趣區(qū)域,縮短了檢測(cè)時(shí)間,提高了檢測(cè)準(zhǔn)確率。通過(guò)相鄰幀線段匹配跟蹤導(dǎo)軌線和車位角,能抵抗遮擋和光照變化的干擾,增強(qiáng)算法適應(yīng)性。試驗(yàn)結(jié)果表明,該算法可準(zhǔn)確提取車位導(dǎo)軌線并識(shí)別停車位,與其他停車位檢測(cè)算法相比,該算法漏檢率更低,在多種天氣條件下具有更好的魯棒性,且能準(zhǔn)確識(shí)別大部分停車位,可為自動(dòng)泊車后續(xù)過(guò)程提供準(zhǔn)確的環(huán)境信息。