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