详解停车位检测算法 Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark
本文介紹一篇基于深度學(xué)習(xí)的停車(chē)位檢測(cè)論文:DeepPS,作者同時(shí)公開(kāi)了數(shù)據(jù)集ps2.0,工作很扎實(shí),對(duì)于入門(mén)停車(chē)位檢測(cè)很有幫助,論文發(fā)表在 IEEE T-IP 2018。
項(xiàng)目鏈接為:https://cslinzhang.github.io/deepps/
0. Abstract
在自動(dòng)泊車(chē)系統(tǒng)中,如何能準(zhǔn)確而高效地檢測(cè)和定位停車(chē)位是一個(gè)關(guān)鍵但尚未解決的問(wèn)題。由于路面材質(zhì)的多樣性、光照條件的變化以及樹(shù)木產(chǎn)生的陰影等因素,使得基于視覺(jué)的停車(chē)位檢測(cè)變得比看上去困難得多。
本文提出了一種新的基于卷積神經(jīng)網(wǎng)絡(luò)的停車(chē)位檢測(cè)方法,即 DeepPS。DeepPS的關(guān)鍵步驟有兩個(gè):識(shí)別輸入圖像上的所有標(biāo)記點(diǎn)和對(duì)標(biāo)記點(diǎn)對(duì)形成的局部圖像進(jìn)行分類(lèi)。
其次,為了便于基于視覺(jué)的停車(chē)位檢測(cè)研究,建立了大規(guī)模的數(shù)據(jù)集。包括從典型的室內(nèi)和室外停車(chē)場(chǎng)采集的12165張環(huán)視圖。
1. Introduction & Related Work
下圖是一個(gè)典型的基于視覺(jué)的停車(chē)位檢測(cè)系統(tǒng),該系統(tǒng)包括兩個(gè)模塊,即環(huán)視圖合成和對(duì)環(huán)視圖的停車(chē)位檢測(cè)。(本文重點(diǎn)介紹停車(chē)位檢測(cè),環(huán)視圖合成可以查看相關(guān)文獻(xiàn)。)
下圖為本文中收集到的停車(chē)位數(shù)據(jù):(a)、(b)、( c )、(d)中的停車(chē)位是垂直的,(e)、(f)、(g)中的停車(chē)位是平行的,(h)中的停車(chē)位是傾斜的。(a)和(b)是從室內(nèi)停車(chē)場(chǎng)采集的,其它的是從室外停車(chē)場(chǎng)采集的。(b)中的車(chē)位線(xiàn)是黃色的,而其它圖像中的車(chē)位線(xiàn)是白色的。(e)是在雨天采集的,(f)是晚上在路燈下采集的,在(g)中樹(shù)木造成的陰影覆蓋了停車(chē)線(xiàn),(d)和(e)中車(chē)位線(xiàn)有所損壞。
對(duì)于采集的數(shù)據(jù)集,作者進(jìn)行了標(biāo)注,下圖中黃色圓圈為標(biāo)記點(diǎn)。
2. DeepPS: A DCNN-Based Approach
下圖分別為理想的垂直、平行和傾斜停車(chē)位。在圖中,所有標(biāo)記點(diǎn)都用黃圓圈標(biāo)記。此外,還標(biāo)記了車(chē)位進(jìn)入線(xiàn)(有效停車(chē)位的兩個(gè)標(biāo)記點(diǎn)的連接虛線(xiàn))和車(chē)位分隔線(xiàn)(白色實(shí)線(xiàn))。
對(duì)于停車(chē)位檢測(cè),DeepPS主要分為三步:標(biāo)記點(diǎn)檢測(cè)、局部圖像模式分類(lèi)和停車(chē)位推理。
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)不變性,作者通過(guò)旋轉(zhuǎn)每張?jiān)紭?biāo)記圖片來(lái)增強(qiáng)訓(xùn)練集。具體地說(shuō),每張訓(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)過(guò)旋轉(zhuǎn) 360J×j\frac{360}{\mathbf{J}}\times jJ360?×j 角度得到。同時(shí)標(biāo)記點(diǎn)的坐標(biāo)也以同樣的方式旋轉(zhuǎn)。
下圖中(a)是原始訓(xùn)練圖片,(b)是通過(guò)將圖(a)旋轉(zhuǎn)30度來(lái)生成的。標(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)證其是否能夠形成有效的車(chē)位進(jìn)入線(xiàn)?
- 首先如果 p1,p2\mathbf{p}_1,\mathbf{p}_2p1?,p2? 能夠形成一個(gè)有效的車(chē)位進(jìn)入線(xiàn),兩個(gè)標(biāo)記點(diǎn)之間的距離應(yīng)該滿(mǎn)足一些距離約束條件。如果是平行停車(chē)位的車(chē)位進(jìn)入線(xiàn),應(yīng)該滿(mǎn)足 t1<∣∣p1p2∣∣<t2t_1<||\mathbf{p}_1\mathbf{p}_2||<t_2t1?<∣∣p1?p2?∣∣<t2?,如果是垂直或傾斜停車(chē)位的車(chē)位進(jìn)入線(xiàn),應(yīng)該滿(mǎn)足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ù)各種停車(chē)位進(jìn)入線(xiàn)長(zhǎng)度的先驗(yàn)知識(shí)確定的。
- 然后,還需要進(jìn)一步處理滿(mǎn)足距離約束的標(biāo)記點(diǎn)對(duì)。首先,對(duì)于一對(duì)標(biāo)記點(diǎn),雖然它可以滿(mǎn)足距離約束,但它們?nèi)匀缓芸赡軣o(wú)法形成有效的車(chē)位進(jìn)入線(xiàn)。例如,在下面的左圖中兩個(gè)標(biāo)記點(diǎn)之間的距離滿(mǎn)足作為平行停車(chē)位的車(chē)位進(jìn)入線(xiàn)的距離約束;然而,這兩個(gè)標(biāo)記點(diǎn)仍然無(wú)線(xiàn)形成有效的車(chē)位進(jìn)入線(xiàn),因?yàn)樗鼈冎g還存在一個(gè)標(biāo)記點(diǎn)未檢測(cè)出來(lái)。另外,假設(shè)可以形成有效的車(chē)位進(jìn)入線(xiàn)。還需要確定相關(guān)的停車(chē)位是在順時(shí)針?lè)较蜻€是在逆時(shí)針?lè)较?#xff0c;以及這個(gè)停車(chē)位是直角還是傾斜。所有這些問(wèn)題都可以通過(guò)將兩個(gè)標(biāo)記點(diǎn)形成的局部圖像模式分類(lèi)到預(yù)定義的類(lèi)中來(lái)解決。
如中間的圖所示:首先建立以 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ù)停車(chē)位的特征,將集合 C\mathbb{C}C 中的樣本分為7類(lèi),如右圖所示:逆時(shí)針直角,逆時(shí)針傾斜(銳角),逆時(shí)針傾斜(鈍角),順時(shí)針直角,順時(shí)針傾斜(鈍角),順時(shí)針傾斜(銳角),無(wú)效。
在構(gòu)造集合 C\mathbb{C}C時(shí),還有一個(gè)實(shí)際問(wèn)題,類(lèi)不平衡,這意味著一個(gè)特定的類(lèi)相對(duì)于其它類(lèi)只有很少的實(shí)例。為了解決這個(gè)問(wèn)題,作者采用了SMOTE對(duì)少數(shù)類(lèi)別進(jìn)行了過(guò)度采樣。
作者設(shè)計(jì)的分類(lèi)模型如下圖所示,右邊是模型參數(shù)。
C. Parking-Slot Inference
在自動(dòng)泊車(chē)系統(tǒng)中,停車(chē)位通常被認(rèn)為是一個(gè)平行四邊形,由其四個(gè)頂點(diǎn)的坐標(biāo)表示。在大多數(shù)情況下,兩個(gè)非標(biāo)記點(diǎn)是不可見(jiàn)的,其坐標(biāo)只能通過(guò)推理得到。為此,需要假設(shè)停車(chē)位的深度是已知的先驗(yàn)知識(shí)。如下圖(a)、(b)、( c )所示,垂直、平行和傾斜的停車(chē)位的深度分別為 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í)針直角并且此停車(chē)位應(yīng)為垂直停車(chē)位,其深度為 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)形成的局部圖像模式被分類(lèi)為傾斜時(shí),如上圖( c )所示。在圖( c )中,標(biāo)記點(diǎn)形成的局部圖像模式被分類(lèi)為逆時(shí)針傾斜(銳角);為了估計(jì)兩個(gè)非標(biāo)記點(diǎn)的位置,需要估計(jì)角度 α\alphaα。為了解決這個(gè)問(wèn)題,采用基于模板匹配的策略。圖(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)度。通過(guò)離線(xiàn)標(biāo)定,可以得到從環(huán)視圖坐標(biāo)系到以車(chē)輛為中心的世界坐標(biāo)系的變換矩陣。因此,當(dāng)在環(huán)視圖上檢測(cè)到停車(chē)位時(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? 滿(mǎn)足 ∥gi?di∥<δ2\left\|\mathbf{g}_{i}-\mathbfozvdkddzhkzd_{i}\right\|<\delta_{2}∥gi??di?∥<δ2?,則認(rèn)為 gi\mathbf{g}_igi? 是正確檢測(cè)的。為了比較不同的檢測(cè)器,我們通過(guò)改變檢測(cè)置信度的閾值,畫(huà)出log-log圖繪制漏檢率與每張圖片的誤報(bào)率。
然后是定位誤差,用 gi\mathbf{g}_igi? 表示真值,gi′\mathbf{g}_i^{'}gi′? 表示檢測(cè)到的標(biāo)記點(diǎn)(真陽(yáng)性)。用 ei=∥gi′?gi∥e_{i}=\left\|\mathbf{g}_{i}^{\prime}-\mathbf{g}_{i}\right\|ei?=∥gi′??gi?∥ 表示定位誤差,這里使用平均定位誤差作為定位誤差。漏檢率與誤報(bào)率、定位誤差、檢測(cè)時(shí)間比較、局部圖案分類(lèi)結(jié)果如下表:
C.Parking-Slot Detection
作者與其它幾種停車(chē)位檢測(cè)算法進(jìn)行了比較,結(jié)果如下:
總結(jié)
以上是生活随笔為你收集整理的详解停车位检测算法 Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mcmnhdlr.exe是什么进程 能删
- 下一篇: Leetcode刷题实战(1):Two