详解停车位检测算法 Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark
本文介紹一篇基于深度學(xué)習(xí)的停車位檢測(cè)論文:DeepPS,作者同時(shí)公開了數(shù)據(jù)集ps2.0,工作很扎實(shí),對(duì)于入門停車位檢測(cè)很有幫助,論文發(fā)表在 IEEE T-IP 2018。
項(xiàng)目鏈接為:https://cslinzhang.github.io/deepps/
0. Abstract
在自動(dòng)泊車系統(tǒng)中,如何能準(zhǔn)確而高效地檢測(cè)和定位停車位是一個(gè)關(guān)鍵但尚未解決的問題。由于路面材質(zhì)的多樣性、光照條件的變化以及樹木產(chǎn)生的陰影等因素,使得基于視覺的停車位檢測(cè)變得比看上去困難得多。
本文提出了一種新的基于卷積神經(jīng)網(wǎng)絡(luò)的停車位檢測(cè)方法,即 DeepPS。DeepPS的關(guān)鍵步驟有兩個(gè):識(shí)別輸入圖像上的所有標(biāo)記點(diǎn)和對(duì)標(biāo)記點(diǎn)對(duì)形成的局部圖像進(jìn)行分類。
其次,為了便于基于視覺的停車位檢測(cè)研究,建立了大規(guī)模的數(shù)據(jù)集。包括從典型的室內(nèi)和室外停車場(chǎng)采集的12165張環(huán)視圖。
1. Introduction & Related Work
下圖是一個(gè)典型的基于視覺的停車位檢測(cè)系統(tǒng),該系統(tǒng)包括兩個(gè)模塊,即環(huán)視圖合成和對(duì)環(huán)視圖的停車位檢測(cè)。(本文重點(diǎn)介紹停車位檢測(cè),環(huán)視圖合成可以查看相關(guān)文獻(xiàn)。)
下圖為本文中收集到的停車位數(shù)據(jù):(a)、(b)、( c )、(d)中的停車位是垂直的,(e)、(f)、(g)中的停車位是平行的,(h)中的停車位是傾斜的。(a)和(b)是從室內(nèi)停車場(chǎng)采集的,其它的是從室外停車場(chǎng)采集的。(b)中的車位線是黃色的,而其它圖像中的車位線是白色的。(e)是在雨天采集的,(f)是晚上在路燈下采集的,在(g)中樹木造成的陰影覆蓋了停車線,(d)和(e)中車位線有所損壞。
對(duì)于采集的數(shù)據(jù)集,作者進(jìn)行了標(biāo)注,下圖中黃色圓圈為標(biāo)記點(diǎn)。
2. DeepPS: A DCNN-Based Approach
下圖分別為理想的垂直、平行和傾斜停車位。在圖中,所有標(biāo)記點(diǎn)都用黃圓圈標(biāo)記。此外,還標(biāo)記了車位進(jìn)入線(有效停車位的兩個(gè)標(biāo)記點(diǎn)的連接虛線)和車位分隔線(白色實(shí)線)。
對(duì)于停車位檢測(cè),DeepPS主要分為三步:標(biāo)記點(diǎn)檢測(cè)、局部圖像模式分類和停車位推理。
A. Marking-Point Detection
本文選擇YoloV2模型作為標(biāo)記點(diǎn)檢測(cè)器。在訓(xùn)練階段,對(duì)于每張環(huán)視圖,首先人工標(biāo)注所有的標(biāo)記點(diǎn)。對(duì)于每個(gè)標(biāo)記點(diǎn) pi\mathbf{p}_ipi?,都有一個(gè)以標(biāo)記點(diǎn)為中心固定尺寸為 p×pp\times pp×p 的包圍框作為標(biāo)記點(diǎn)的真值包圍框。
為了使檢測(cè)器具有旋轉(zhuǎn)不變性,作者通過旋轉(zhuǎn)每張?jiān)紭?biāo)記圖片來增強(qiáng)訓(xùn)練集。具體地說,每張訓(xùn)練圖片 I\mathbf{I}I,可以得到它的 J\mathbf{J}J 個(gè)旋轉(zhuǎn)版本圖片,{Ij}j=0J?1\{\mathbf{I}_j\}_{j=0}^{\mathbf{J}-1}{Ij?}j=0J?1?。其中 Ij\mathbf{I}_jIj? 經(jīng)過旋轉(zhuǎn) 360J×j\frac{360}{\mathbf{J}}\times jJ360?×j 角度得到。同時(shí)標(biāo)記點(diǎn)的坐標(biāo)也以同樣的方式旋轉(zhuǎn)。
下圖中(a)是原始訓(xùn)練圖片,(b)是通過將圖(a)旋轉(zhuǎn)30度來生成的。標(biāo)記點(diǎn)為紫色點(diǎn),邊界框?yàn)辄S色。
B. Local Image Pattern Classification
測(cè)試時(shí),置信度大于 δ1\delta_1δ1? 的點(diǎn)將被視為標(biāo)記點(diǎn)。假如有兩個(gè)標(biāo)記點(diǎn) p1,p2\mathbf{p}_1,\mathbf{p}_2p1?,p2?,還需要驗(yàn)證其是否能夠形成有效的車位進(jìn)入線?
- 首先如果 p1,p2\mathbf{p}_1,\mathbf{p}_2p1?,p2? 能夠形成一個(gè)有效的車位進(jìn)入線,兩個(gè)標(biāo)記點(diǎn)之間的距離應(yīng)該滿足一些距離約束條件。如果是平行停車位的車位進(jìn)入線,應(yīng)該滿足 t1<∣∣p1p2∣∣<t2t_1<||\mathbf{p}_1\mathbf{p}_2||<t_2t1?<∣∣p1?p2?∣∣<t2?,如果是垂直或傾斜停車位的車位進(jìn)入線,應(yīng)該滿足t3<∣∣p1p2∣∣<t3t_3<||\mathbf{p}_1\mathbf{p}_2||<t_3t3?<∣∣p1?p2?∣∣<t3?,參數(shù) t1、t2、t3、t4t_1、t_2、t_3、t_4t1?、t2?、t3?、t4? 是根據(jù)各種停車位進(jìn)入線長(zhǎng)度的先驗(yàn)知識(shí)確定的。
- 然后,還需要進(jìn)一步處理滿足距離約束的標(biāo)記點(diǎn)對(duì)。首先,對(duì)于一對(duì)標(biāo)記點(diǎn),雖然它可以滿足距離約束,但它們?nèi)匀缓芸赡軣o法形成有效的車位進(jìn)入線。例如,在下面的左圖中兩個(gè)標(biāo)記點(diǎn)之間的距離滿足作為平行停車位的車位進(jìn)入線的距離約束;然而,這兩個(gè)標(biāo)記點(diǎn)仍然無線形成有效的車位進(jìn)入線,因?yàn)樗鼈冎g還存在一個(gè)標(biāo)記點(diǎn)未檢測(cè)出來。另外,假設(shè)可以形成有效的車位進(jìn)入線。還需要確定相關(guān)的停車位是在順時(shí)針方向還是在逆時(shí)針方向,以及這個(gè)停車位是直角還是傾斜。所有這些問題都可以通過將兩個(gè)標(biāo)記點(diǎn)形成的局部圖像模式分類到預(yù)定義的類中來解決。
如中間的圖所示:首先建立以 p1\mathbf{p}_1p1? 和 p2\mathbf{p}_2p2? 的中點(diǎn)為原點(diǎn),以 p1p2→\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}p1?p2?? 為 X\mathbf{X}X 軸的局部坐標(biāo)系。因此可以確定它的 Y\mathbf{Y}Y 軸。在這個(gè)坐標(biāo)系中,定義了一個(gè)矩形區(qū)域 R\mathbf{R}R。對(duì)于 R\mathbf{R}R,其沿 X\mathbf{X}X 軸的長(zhǎng)度設(shè)為 ∥p1p2∥+Δx\left\|\mathbf{p}_{1} \mathbf{p}_{2}\right\|+\Delta x∥p1?p2?∥+Δx 及其沿 Y\mathbf{Y}Y 軸的長(zhǎng)度設(shè)為 Δy\Delta yΔy, 從環(huán)視圖中提取 R\mathbf{R}R 覆蓋的區(qū)域,將其歸一化為 w×hw\times hw×h 的大小區(qū)域,得到了局部圖像模式。
在訓(xùn)練階段,會(huì)得到一個(gè)由標(biāo)記點(diǎn)形成的所有局部圖像模式組成的集合 C\mathbb{C}C。根據(jù)停車位的特征,將集合 C\mathbb{C}C 中的樣本分為7類,如右圖所示:逆時(shí)針直角,逆時(shí)針傾斜(銳角),逆時(shí)針傾斜(鈍角),順時(shí)針直角,順時(shí)針傾斜(鈍角),順時(shí)針傾斜(銳角),無效。
在構(gòu)造集合 C\mathbb{C}C時(shí),還有一個(gè)實(shí)際問題,類不平衡,這意味著一個(gè)特定的類相對(duì)于其它類只有很少的實(shí)例。為了解決這個(gè)問題,作者采用了SMOTE對(duì)少數(shù)類別進(jìn)行了過度采樣。
作者設(shè)計(jì)的分類模型如下圖所示,右邊是模型參數(shù)。
C. Parking-Slot Inference
在自動(dòng)泊車系統(tǒng)中,停車位通常被認(rèn)為是一個(gè)平行四邊形,由其四個(gè)頂點(diǎn)的坐標(biāo)表示。在大多數(shù)情況下,兩個(gè)非標(biāo)記點(diǎn)是不可見的,其坐標(biāo)只能通過推理得到。為此,需要假設(shè)停車位的深度是已知的先驗(yàn)知識(shí)。如下圖(a)、(b)、( c )所示,垂直、平行和傾斜的停車位的深度分別為 d1、d2、d3d_1、d_2、d_3d1?、d2?、d3?。
- 假設(shè) p1\mathbf{p}_1p1? 和 p2\mathbf{p}_2p2? 是兩個(gè)檢測(cè)到的標(biāo)記點(diǎn),形成的局部圖像模式分為順時(shí)針直角或逆時(shí)針直角,則可以很容易地計(jì)算出兩個(gè)非標(biāo)記點(diǎn) p3\mathbf{p}_3p3? 和 p4\mathbf{p}_4p4? 的坐標(biāo)。例如,在上圖(a)中,標(biāo)記點(diǎn)形成的局部圖像模式是順時(shí)針直角并且此停車位應(yīng)為垂直停車位,其深度為 d1d_1d1?。因此,其另外兩個(gè)標(biāo)記點(diǎn) p3\mathbf{p}_3p3? 和 p4\mathbf{p}_4p4? 可表示為:
p3=[cos?π2sin?π2?sin?π2cos?π2]p1p2→∥p1p2→∥?d1+p2p4=[cos?π2sin?π2?sin?π2cos?π2]p1p2→∥p1p→2→∥?d1+p1\begin{array}{l} \mathbf{p}_{3}=\left[\begin{array}{cc} \cos \frac{\pi}{2} & \sin \frac{\pi}{2} \\ -\sin \frac{\pi}{2} & \cos \frac{\pi}{2} \end{array}\right] \frac{\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}}{\left\|\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}\right\|} \cdot d_{1}+\mathbf{p}_{2} \\ \mathbf{p}_{4}=\left[\begin{array}{cc} \cos \frac{\pi}{2} & \sin \frac{\pi}{2} \\ -\sin \frac{\pi}{2} & \cos \frac{\pi}{2} \end{array}\right] \frac{\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}}{\left\|\overrightarrow{\mathbf{p}_{1} \overrightarrow{\mathbf{p}}_{2}}\right\|} \cdot d_{1}+\mathbf{p}_{1} \end{array} p3?=[cos2π??sin2π??sin2π?cos2π??]∥p1?p2??∥p1?p2????d1?+p2?p4?=[cos2π??sin2π??sin2π?cos2π??]∥∥∥?p1?p?2??∥∥∥?p1?p2????d1?+p1?? - 當(dāng)由兩個(gè)標(biāo)記點(diǎn)形成的局部圖像模式被分類為傾斜時(shí),如上圖( c )所示。在圖( c )中,標(biāo)記點(diǎn)形成的局部圖像模式被分類為逆時(shí)針傾斜(銳角);為了估計(jì)兩個(gè)非標(biāo)記點(diǎn)的位置,需要估計(jì)角度 α\alphaα。為了解決這個(gè)問題,采用基于模板匹配的策略。圖(d)中所示的是一套理想的T形模板 {Tθj}j=1M\{\mathbf{T}_{\theta_j}\}_{j=1}^{M}{Tθj??}j=1M?,MMM 是模板數(shù)量。每個(gè)模板的大小為 s×ss\times ss×s。測(cè)試時(shí),提取兩個(gè)標(biāo)記點(diǎn)的圖像進(jìn)行匹配,則角度 α\alphaα 為:
α=arg?max?θj{I1?Tθj+I2?Tθj},j=1,…,M\alpha=\underset{\theta_{j}}{\arg \max }\left\{\mathbf{I}_{1} * \mathbf{T}_{\theta_{j}}+\mathbf{I}_{2} * \mathbf{T}_{\theta_{j}}\right\}, \quad j=1, \ldots, Mα=θj?argmax?{I1??Tθj??+I2??Tθj??},j=1,…,M
則其余兩個(gè)標(biāo)記點(diǎn)計(jì)算為:
p3=[cos?α?sin?αsin?αcos?α]p1p2→∥p1p2→∥?d3+p2p4=[cos?α?sin?αsin?αcos?α]p1p2→∥p1p2→∥?d3+p1\begin{array}{l} \mathbf{p}_{3}=\left[\begin{array}{cc} \cos \alpha & -\sin \alpha \\ \sin \alpha & \cos \alpha \end{array}\right] \frac{\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}}{\left\|\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}\right\|} \cdot d_{3}+\mathbf{p}_{2} \\ \mathbf{p}_{4}=\left[\begin{array}{cc} \cos \alpha & -\sin \alpha \\ \sin \alpha & \cos \alpha \end{array}\right] \frac{\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}}{\left\|\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}\right\|} \cdot d_{3}+\mathbf{p}_{1} \end{array}p3?=[cosαsinα??sinαcosα?]∥p1?p2??∥p1?p2????d3?+p2?p4?=[cosαsinα??sinαcosα?]∥p1?p2??∥p1?p2????d3?+p1??
最終,DeepPS的訓(xùn)練和測(cè)試工作流程如下:
3. Experimental Results
A. Benchmark Dataset & Settings
首先介紹數(shù)據(jù)集:每張環(huán)視圖的分辨率為600×600,對(duì)應(yīng)于一個(gè)10m×10m的區(qū)域,即環(huán)視圖上1個(gè)像素的長(zhǎng)度對(duì)應(yīng)于物理地面上1.67cm長(zhǎng)度。通過離線標(biāo)定,可以得到從環(huán)視圖坐標(biāo)系到以車輛為中心的世界坐標(biāo)系的變換矩陣。因此,當(dāng)在環(huán)視圖上檢測(cè)到停車位時(shí),可以反投影確定其在世界坐標(biāo)系中的坐標(biāo)。
表3和4是 ps1.0,ps2.0 數(shù)據(jù)集的比較與測(cè)試集數(shù)據(jù)采樣分布,表5是超參數(shù)設(shè)置。
B. Marking-Point Detection & Local Image Pattern Classification
下面介紹標(biāo)記點(diǎn)檢測(cè),對(duì)于標(biāo)記點(diǎn)真值 gi\mathbf{g}_igi?,如果一個(gè)檢測(cè)到的標(biāo)記點(diǎn) di\mathbfozvdkddzhkzd_idi? 滿足 ∥gi?di∥<δ2\left\|\mathbf{g}_{i}-\mathbfozvdkddzhkzd_{i}\right\|<\delta_{2}∥gi??di?∥<δ2?,則認(rèn)為 gi\mathbf{g}_igi? 是正確檢測(cè)的。為了比較不同的檢測(cè)器,我們通過改變檢測(cè)置信度的閾值,畫出log-log圖繪制漏檢率與每張圖片的誤報(bào)率。
然后是定位誤差,用 gi\mathbf{g}_igi? 表示真值,gi′\mathbf{g}_i^{'}gi′? 表示檢測(cè)到的標(biāo)記點(diǎn)(真陽性)。用 ei=∥gi′?gi∥e_{i}=\left\|\mathbf{g}_{i}^{\prime}-\mathbf{g}_{i}\right\|ei?=∥gi′??gi?∥ 表示定位誤差,這里使用平均定位誤差作為定位誤差。漏檢率與誤報(bào)率、定位誤差、檢測(cè)時(shí)間比較、局部圖案分類結(jié)果如下表:
C.Parking-Slot Detection
作者與其它幾種停車位檢測(cè)算法進(jìn)行了比較,結(jié)果如下:
總結(jié)
以上是生活随笔為你收集整理的详解停车位检测算法 Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mcmnhdlr.exe是什么进程 能删
- 下一篇: Leetcode刷题实战(1):Two