來源 | CV研習社 導讀:本文是一篇介紹魚眼相機做車位線檢測的文章,放眼當下泊車功能在智能汽車領域研究的如火如荼,從L2級的APA自動泊車發展到L2+的RPA遠程遙控泊車再到L3級的HPA自學習泊車最后研究AVP自主泊車,其中每個功能都少不了車位線的檢測。通過本文讓小編帶著大家一起學習車位線檢測的相關技術和方法。 1 引言 小編近期從周視相機感知轉戰到環視感知領域,個人覺得對于行人、車輛等目標檢測和道路信息的語義分割從實現上差別不大,但是如何做車位線檢測任務讓我糾結許久,也算是把近幾年各種深度學習做車位線檢測的文章都看了一遍,下面對常規方法做些總結分享。 2 車位線有哪些特征? 理想的車位線由四個角點和四條線組成,如下圖所示:紅色的稱為入口線(the entrance line),左右兩條稱為分割線(the separate line),底部的紫線一般用處不大作為邊界即可。 針對此類形狀的目標,通常有三種檢測方法: a. 基于直線的方法通過找到兩條分割線與入口線檢測停車位,在一些使用傳統圖像處理算法檢測車位線的系統中進行出現,使用Sobel,Canny等算子進行邊緣檢測,結合Hough變換利用幾何特征獲得潛在的停車位邊界線。但是此類傳統算法容易受到光照條件,線條磨損,地面陰影等環境因素的影響,性能缺乏魯棒性。 b. 基于標記點的方法是通過檢測入口線和兩條分割線的交叉口,然后結合角點坐標檢測停車位。傳統圖像處理算法中提供了不少人工設計的角點檢測器,如Harris角點檢測,Shi-Tomasi角點檢測,FAST角點檢測等。如果采用此類方法仍然會出現上述Hough線檢測的魯棒性問題,所以部分學者將車位線的入口線和分割線的兩個相交區域作為檢測目標,如下圖所示: c. 基于分割的方法是對車輛、空閑空間、停車位標識和其他對象進行逐像素的分類。這樣就把車位線檢測問題轉換成了語義分割問題,形如前視感知中的車道線檢測任務,但是語義分割任務需要經過一系列復雜的后處理才能得到相對準確的停車位,時耗上無法滿足嵌入式端的實時要求。 3 車位線有哪些形式? 車位線的類型大方向主要有三種:垂直、水平、傾斜。但是在做車位線分類或者程序后處理時會遇到形形色 色的結構,比如: 比如某些路邊的停車位常用路沿代替一條分割線;某些停車場的車位入口線和分割線會分離開;整個停車位顏色不同于周邊區域,但是就沒停車線~~~等等。 4 如何入門學習車位線檢測? 在無人駕駛的感知模塊,不過是前視,周視,環視的環境感知,用深度學習提取特征做分類是必不可少的一項技術。如果最便捷的做出一款車位線檢測的Demo,需要做好兩項準備工作:
用什么樣的網絡做檢測任務?
用什么樣的數據做訓練驗證?
近幾年開源了很多用深度學習做車位線檢測的方法,下面小編給大家介紹幾篇(順序不分前后):“Attentional Graph Neural Network for Parking-slot Detection”:該文分為三個階段,分別是圖特征編碼、圖特征聚合、入口線鑒別,在拼接的鳥瞰圖上通過圖神經網絡對標記點之間的鄰近信息進行聚合來進行車位線檢測,解決常規標記點獨立檢測后的后處理步驟冗余問題。 “Context-Based Parking Slot Detection With a Realistic Dataset”:該文有點類似Faser RCNN的粗略定位+精細微調兩階段網絡,先在PCR模塊中識別是否有停車位,在通過PSD模塊對旋轉BBox準確定位。 “DMPR-PS A Novel Approach For Parking-slot Detection Using Directional Marking-point regression”該文通過檢測帶方向的標記點得到一張拼接后的鳥瞰圖中所有入口線與分割線的相交區域,然后對其進行過濾篩選并配對分類出車位類型。 “Vacant Parking Slot Detection in the Around View Image Based on Deep Learning”:該文分為兩個模塊,車位線的檢測和車位占用情況分類。車位線的檢測模塊采用YOLOv3的方式對整個車位槽的頭部區域進行檢測分類得到車位類型,省去了只檢測兩個交叉點后通過后處理得到車位類型的環節。 “PSDet: EfficientandUniversalParkingSlotDetection”:該文也是對車位線的交叉點進行檢測,不同之處在于它對比了幾種交叉點特征描述器的形式,采用圓形特征描述子提取交叉點范圍內的特征能夠更好的識別車位線相交區域。 相關文章較多,小編就不一一舉例了,需要相關文章的小伙伴可以私聊找我。 說完了網絡結構,我們來看看有哪些開源的車位線數據集。目前找到的只有三個: