本文是一篇介紹魚眼相機(jī)做車位線檢測的文章,放眼當(dāng)下泊車功能在智能汽車領(lǐng)域研究的如火如荼,從L2級的APA自動泊車發(fā)展到L2+的RPA遠(yuǎn)程遙控泊車再到L3級的HPA自學(xué)習(xí)泊車最后研究AVP自主泊車,其中每個(gè)功能都少不了車位線的檢測。通過本文讓小編帶著大家一起學(xué)習(xí)車位線檢測的相關(guān)技術(shù)和方法。
1
引言
小編近期從周視相機(jī)感知轉(zhuǎn)戰(zhàn)到環(huán)視感知領(lǐng)域,個(gè)人覺得對于行人、車輛等目標(biāo)檢測和道路信息的語義分割從實(shí)現(xiàn)上差別不大,但是如何做車位線檢測任務(wù)讓我糾結(jié)許久,也算是把近幾年各種深度學(xué)習(xí)做車位線檢測的文章都看了一遍,下面對常規(guī)方法做些總結(jié)分享。
2
車位線有哪些特征?
理想的車位線由四個(gè)角點(diǎn)和四條線組成,如下圖所示:紅色的稱為入口線(the entrance line),左右兩條稱為分割線(the separate line),底部的紫線一般用處不大作為邊界即可。
針對此類形狀的目標(biāo),通常有三種檢測方法:
a. 基于直線的方法通過找到兩條分割線與入口線檢測停車位,在一些使用傳統(tǒng)圖像處理算法檢測車位線的系統(tǒng)中進(jìn)行出現(xiàn),使用Sobel,Canny等算子進(jìn)行邊緣檢測,結(jié)合Hough變換利用幾何特征獲得潛在的停車位邊界線。但是此類傳統(tǒng)算法容易受到光照條件,線條磨損,地面陰影等環(huán)境因素的影響,性能缺乏魯棒性。
b. 基于標(biāo)記點(diǎn)的方法是通過檢測入口線和兩條分割線的交叉口,然后結(jié)合角點(diǎn)坐標(biāo)檢測停車位。傳統(tǒng)圖像處理算法中提供了不少人工設(shè)計(jì)的角點(diǎn)檢測器,如Harris角點(diǎn)檢測,Shi-Tomasi角點(diǎn)檢測,F(xiàn)AST角點(diǎn)檢測等。如果采用此類方法仍然會出現(xiàn)上述Hough線檢測的魯棒性問題,所以部分學(xué)者將車位線的入口線和分割線的兩個(gè)相交區(qū)域作為檢測目標(biāo),如下圖所示:
c. 基于分割的方法是對車輛、空閑空間、停車位標(biāo)識和其他對象進(jìn)行逐像素的分類。這樣就把車位線檢測問題轉(zhuǎn)換成了語義分割問題,形如前視感知中的車道線檢測任務(wù),但是語義分割任務(wù)需要經(jīng)過一系列復(fù)雜的后處理才能得到相對準(zhǔn)確的停車位,時(shí)耗上無法滿足嵌入式端的實(shí)時(shí)要求。
3
車位線有哪些形式?
車位線的類型大方向主要有三種:垂直、水平、傾斜。但是在做車位線分類或者程序后處理時(shí)會遇到形形色色的結(jié)構(gòu),比如:
比如某些路邊的停車位常用路沿代替一條分割線;某些停車場的車位入口線和分割線會分離開;整個(gè)停車位顏色不同于周邊區(qū)域,但是就沒停車線~~~等等。
4
如何入門學(xué)習(xí)車位線檢測?
在無人駕駛的感知模塊,不過是前視,周視,環(huán)視的環(huán)境感知,用深度學(xué)習(xí)提取特征做分類是必不可少的一項(xiàng)技術(shù)。如果最便捷的做出一款車位線檢測的Demo,需要做好兩項(xiàng)準(zhǔn)備工作:
用什么樣的網(wǎng)絡(luò)做檢測任務(wù)?
用什么樣的數(shù)據(jù)做訓(xùn)練驗(yàn)證?
近幾年開源了很多用深度學(xué)習(xí)做車位線檢測的方法,下面小編給大家介紹幾篇(順序不分前后):
“Attentional Graph Neural Network for Parking-slot Detection”:該文分為三個(gè)階段,分別是圖特征編碼、圖特征聚合、入口線鑒別,在拼接的鳥瞰圖上通過圖神經(jīng)網(wǎng)絡(luò)對標(biāo)記點(diǎn)之間的鄰近信息進(jìn)行聚合來進(jìn)行車位線檢測,解決常規(guī)標(biāo)記點(diǎn)獨(dú)立檢測后的后處理步驟冗余問題。
“Context-Based Parking Slot Detection With a Realistic Dataset”:該文有點(diǎn)類似Faser RCNN的粗略定位+精細(xì)微調(diào)兩階段網(wǎng)絡(luò),先在PCR模塊中識別是否有停車位,在通過PSD模塊對旋轉(zhuǎn)BBox準(zhǔn)確定位。
“DMPR-PS A Novel Approach For Parking-slot Detection Using Directional Marking-point regression”該文通過檢測帶方向的標(biāo)記點(diǎn)得到一張拼接后的鳥瞰圖中所有入口線與分割線的相交區(qū)域,然后對其進(jìn)行過濾篩選并配對分類出車位類型。
“Vacant Parking Slot Detection in the Around View Image Based on Deep Learning”:該文分為兩個(gè)模塊,車位線的檢測和車位占用情況分類。車位線的檢測模塊采用YOLOv3的方式對整個(gè)車位槽的頭部區(qū)域進(jìn)行檢測分類得到車位類型,省去了只檢測兩個(gè)交叉點(diǎn)后通過后處理得到車位類型的環(huán)節(jié)。
“PSDet: EfficientandUniversalParkingSlotDetection”:該文也是對車位線的交叉點(diǎn)進(jìn)行檢測,不同之處在于它對比了幾種交叉點(diǎn)特征描述器的形式,采用圓形特征描述子提取交叉點(diǎn)范圍內(nèi)的特征能夠更好的識別車位線相交區(qū)域。
相關(guān)文章較多,小編就不一一舉例了,需要相關(guān)文章的小伙伴可以私聊找我。
說完了網(wǎng)絡(luò)結(jié)構(gòu),我們來看看有哪些開源的車位線數(shù)據(jù)集。目前找到的只有三個(gè):
ps2.0
PSV
WoodScape
ps2.0是一份四顆魚眼拼接后的數(shù)據(jù),數(shù)據(jù)均屬于停車場景,訓(xùn)練集約1W張,測試集不到5K張,標(biāo)簽是mat格式。數(shù)據(jù)如下圖所示:
PSV同ps2.0數(shù)據(jù)集差不多,由四顆魚眼相機(jī)拼接后的圖片制作而成。數(shù)據(jù)量較小,訓(xùn)練集2550張,驗(yàn)證集425張,測試集1274張,標(biāo)簽是語義分割圖。數(shù)據(jù)如下圖所示:
WoodScape數(shù)據(jù)集更偏向于每顆魚眼獨(dú)立的環(huán)境感知,標(biāo)簽包括約1W張外接框標(biāo)簽、約1W張語義標(biāo)簽、約1W張深度圖、4顆相機(jī)的標(biāo)定文件等信息,適用于分割、深度估計(jì)、三維包圍盒檢測、斑點(diǎn)檢測等9項(xiàng)任務(wù)。數(shù)據(jù)如下圖所示:
5
如何進(jìn)階提高車位線檢測?
基于開源數(shù)據(jù)集訓(xùn)練的結(jié)果往往不適用自己的場景,需要自采自標(biāo)小批量的對應(yīng)場景做網(wǎng)絡(luò)微調(diào)從而提高車位線的檢測效果。
在這個(gè)過程中我們會遇到很多問題,比如如何采集數(shù)據(jù)、采集多少數(shù)據(jù)、采集哪些場景?
其實(shí)最麻煩的就是一個(gè)維度劃分的問題,雖然車位線的類型只有垂直、水平、傾斜三種,但是外部環(huán)境因素多種多樣。比如:
車位線顏色的不同;
場地材質(zhì)的不同;
光照強(qiáng)弱的不同;
天氣狀況的不同;
地面陰影的不同;
車位磨損的不同;
制定采集標(biāo)準(zhǔn)時(shí),一定要考慮細(xì)致詳盡,并對每種數(shù)據(jù)的采集數(shù)量確保相對平衡,否則會造成部分情況效果較差。下圖是從一篇文章中找到的維度參考,做做Demo應(yīng)該可以了:
除了堆數(shù)據(jù)提高性能以外,可以考慮網(wǎng)絡(luò)的輸入和輸出形式,輸入是四顆魚眼的拼接圖還是單顆魚眼的原始數(shù)據(jù)?
輸出是以車位線四個(gè)關(guān)鍵點(diǎn)的形式還是入口處兩個(gè)相交區(qū)域外接框形式又或者語義圖形式?小編還在斟酌中,暫無很好的建議。
6
如何做的更像一款產(chǎn)品?
要想把Demo做到產(chǎn)品還有一大段路要走,不僅僅只關(guān)注把原型開發(fā)的模型移植到嵌入式端跑起來就結(jié)束了。從前期打通數(shù)據(jù)鏈路開始,關(guān)注RAW數(shù)據(jù)類型,ISP參數(shù)調(diào)節(jié),算法模塊設(shè)計(jì),硬件加速單元的分配等;再到數(shù)據(jù)采集方式,標(biāo)注形式數(shù)量,工具鏈如何提供高效迭代驗(yàn)證,以及代碼質(zhì)量審核,模型間性能評估等等一系列工作。路漫漫其修遠(yuǎn)兮,吾將上下而求索!
編輯:黃飛
?
評論
查看更多