肖漢彪,胡釗政,周 哲,伍錦祥
(1.武漢理工大學(xué)信息工程學(xué)院,武漢 430070;2.武漢理工大學(xué)智能交通系統(tǒng)研究中心,武漢 430063;3.武漢理工大學(xué)重慶研究院,重慶 401120)
近年來,隨著車輛智能化技術(shù)的飛速發(fā)展,輔助駕駛與自動駕駛技術(shù)得到廣泛研究,特別是針對智能車的泊車輔助系統(tǒng)。新一代自動泊車系統(tǒng)(Autonomous valet parking,AVP)可以進一步解放駕駛?cè)?,提升駕乘體驗。此外,智能泊停也是更高級別的無人駕駛系統(tǒng)不可或缺的組成部分。這些車輛泊停系統(tǒng)均需要快速準(zhǔn)確地檢測出停車位的信息[1]。
目前的停車位占位檢測方法可按照其工作原理分為兩類。一類為基于三維重建的方法。該類方法主要分為基于超聲波雷達(dá)、毫米波雷達(dá)、激光雷達(dá)等距離傳感器的方法和基于立體攝像機深度重建的方法。超聲波雷達(dá)和毫米波雷達(dá)通過對車輛周圍的場景進行重構(gòu),分析車位的占用情況,并計算停車所需的空間。一旦檢測到足夠大的空間來容納汽車,系統(tǒng)就會啟動自動泊車系統(tǒng)[2-3]。然而,這些傳感器的精度依賴于相鄰車輛的位置。激光掃描儀[4]可以高精度地測量距離,但是其高昂的成本阻礙了其作為汽車配件的商業(yè)化。深度相機[5]是指雙目立體視覺或移動立體視覺傳感器,這些傳感器不僅提供圖像信息,而且提供深度信息。但是,由于生成深度圖的計算量很大,很難滿足實時性需求[6]。因此實現(xiàn)高精度和低延遲的障礙物檢測,是輔助駕駛的關(guān)鍵因素。
第二類則為基于目標(biāo)檢測與識別的方法,通過對停車位上的目標(biāo)進行檢測進而分析車位的占用情況。文獻(xiàn)[7]中提出一種針對視頻幀的時間分析法,使用高斯混合算法對背景進行差分運算,以檢測車輛和車位占用情況。文獻(xiàn)[8]中通過K-Means聚類分析實現(xiàn)車位線精確定位,并根據(jù)車位上的角點數(shù)量,使用分層有限狀態(tài)機對車位進行分類。文獻(xiàn)[9]中通過鳥瞰圖分析停車空間的邊沿比例來確定汽車是否停在一個車位內(nèi)。紅色區(qū)域表示用于計算邊緣比率的感興趣區(qū)域。盡管以高邊緣比例為特征的停車位可以代表汽車所占用的車位,但基于單個特征的車位占用檢測準(zhǔn)確率較低,且極易受到環(huán)境因素的影響。隨后由于全視監(jiān)測(around view monitoring,AVM)系統(tǒng)的快速發(fā)展,基于車輛的成像系統(tǒng)從單目相機變?yōu)锳VM系統(tǒng)。與單目相機相比,AVM系統(tǒng)有更廣的視場角,可以更有效地幫助駕駛員識別周邊停車位標(biāo)識和障礙物。在AVM系統(tǒng)的基礎(chǔ)上,文獻(xiàn)[10]中使用基于方向密度的空間聚類,將帶有噪聲的區(qū)域聚類到具有不同方向的線段,使用相應(yīng)車位幾何特征來識別停車位的類型。但是,由于聚集的線段缺少停車位信息,該方法經(jīng)常會錯誤地檢測到道路標(biāo)記。文獻(xiàn)[11]中將車道邊界線分成一對具有相反梯度方向的平行線,并使用隨機抽樣一致性檢測車道邊界線。為了檢測停車位之間的分隔線,該文中使用距離變換結(jié)合模板匹配來識別,但是該方法只包含一個模板,因此,它只能應(yīng)用于矩形停車位。文獻(xiàn)[12]中提出用角點檢測識別車位,提取道路和障礙物特征進行車位占用情況檢測。由于AVM圖像不能覆蓋整個車位,故一些靠后停放的車輛不能被檢測到。同樣,除了AVM系統(tǒng),深度學(xué)習(xí)由于在目標(biāo)檢測方面的優(yōu)勢,也被廣泛應(yīng)用于停車位檢測。文獻(xiàn)[13]中提出了一種基于決策樹的車位檢測算法,該算法采用了增強決策樹來訓(xùn)練標(biāo)記點檢測器,以判斷停車位占用情況。文獻(xiàn)[14]中對已有網(wǎng)絡(luò)進行車輛識別模型再訓(xùn)練,通過模擬和真實數(shù)據(jù),實現(xiàn)了對車輛分布識別結(jié)果的有序編號和車位空缺狀況的準(zhǔn)確判斷。文獻(xiàn)[15]中提出了一種實時檢測系統(tǒng),利用深度卷積神經(jīng)網(wǎng)絡(luò),并組合前后幀的信息進行車位狀態(tài)更新。與基于純圖像的方法相比,該方法的準(zhǔn)確性得到較好的提升?;谏疃葘W(xué)習(xí)的車位檢測方法雖然在特定目標(biāo)的識別(車、人等)上有較好的優(yōu)越性,但對其他障礙物(路障、柱子等)的魯棒性較差,且只適用于單一場景。
針對以上問題,本文中提出一種基于雙目相機逆 投 影(binocular inverse perspective mapping,BIPM)的停車位快速檢測方法。其創(chuàng)新點在于:(1)以往的逆投影(inverse perspective mapping,IPM)算法主要用于道路上的車道線檢測[16-17],而本文中將IPM算法應(yīng)用于障礙物檢測,獲得更有效、更簡單的停車場車位占用檢測方法;(2)基于雙目逆投影差分圖,獲取車位占用信息和障礙物位置信息,避免了傳統(tǒng)算法中顯式目標(biāo)檢測和三維重建等復(fù)雜的計算過程。
本文中提出基于BIPM的車位占用檢測算法,其流程如圖1所示。主要包括以下步驟:(1)使用逆投影算法將左右目圖像投影在參考平面,由于不同相機逆投影坐標(biāo)不同,須通過雙目相機外參進行位置補償,完成坐標(biāo)系統(tǒng)一;(2)將左右目逆投影圖像進行差分運算,得到雙目逆投影差分圖,用于區(qū)分參考平面和平面之外的物體(障礙物);(3)將該差分圖進行二值化與形態(tài)學(xué)濾波處理,以凸顯目標(biāo)區(qū)域和消除噪點信息;(4)獲取車位線區(qū)域,并使用感興趣區(qū)域(region of interest,ROI)算法設(shè)置車位的不同區(qū)域,檢測各ROI中障礙物像素的占用比,得到車位占用信息,同時通過雙目逆投影差分圖獲取障礙物到相機的距離。
圖1 BIPM算法流程圖
逆投影變換是一種利用攝像機內(nèi)外參數(shù)對攝像機圖像進行逆映射,獲取世界坐標(biāo)系下某一平面圖像上的實際坐標(biāo)的方法。利用逆透視變換把3D空間點從圖像中恢復(fù)出來至少要知道該點的一個世界坐標(biāo)。因此,采用逆透視變換主要是恢復(fù)三維世界坐標(biāo)系某個固定軸的平面信息。具體到智能駕駛系統(tǒng)的道路環(huán)境中,通過建立適當(dāng)?shù)淖鴺?biāo)系,就可以使世界坐標(biāo)系下平面Z=0和真實的道路平面重合,進而通過逆透視變換從圖像恢復(fù)道路平面的俯視圖,消除透視形變,得到道路交通標(biāo)線等更多不變量信息,從而進行后續(xù)的檢測和識別任務(wù)。
圖2 為雙目相機逆投影模型,在圖2(a)中,相機高度為h,點O為左目相機光心C1到地面的垂直投影,定義點O為原點,O C1為Z軸建立圖中相機坐標(biāo)系。AB C D為攝像機拍攝到的路平面上的梯形區(qū)域,A、B、C、D各點在投影平面內(nèi)的對應(yīng)點如圖2(b)所示,分別為圖像平面矩形四個端點A1、B1、C1、D1。
圖2 BIPM算法流程圖
定義矩形中點為原點,以平行于X、Y軸方向的u和v方向建立圖像坐標(biāo)系,H和W分別為圖像平面的高和寬。
以左目相機為參考,定義點[xl,yl]T為道路平面上一點,圖像平面內(nèi)的對應(yīng)點坐標(biāo)為[ul,vl]T,可得相機逆投影公式:
式中:h為攝像機的安裝高度;2β0為攝像機鏡頭的水平視場角;2α0為攝像機鏡頭的垂直視場角;γ0為攝像機的俯仰角。具體推導(dǎo)過程見文獻(xiàn)[18]。
由于兩相機坐標(biāo)系之間可通過空間矩陣M相互轉(zhuǎn)換。其中R為旋轉(zhuǎn)矩陣,T為平移矩陣。
則左右目相機位置變換關(guān)系為
其中,R和T可以通過相機外參標(biāo)定獲得[19]。則右目相機逆投影坐標(biāo)為
由于本文中使用雙目相機進行試驗,左右相機光軸平行,當(dāng)相機水平放置于車上時,通過對參考平面進行尺度約束,左右相機旋轉(zhuǎn)矩陣R為單位矩陣,且只存在X軸方向上的位移,并與基線相同,t x=d,t y=t z=0,即T=[d0 0]T,可得
由式(1)和式(5)可得右目相機逆投影公式:
通過式(1)和式(6),可將雙目相機逆投影變換在同一坐標(biāo)系下,便于后續(xù)的圖像差分變換。BIPM算法充分利用了雙目相機的尺度信息(基線長度),通過高精度標(biāo)定實現(xiàn)了雙目圖像在參考平面(地面)上的精確映射。
圖像差分法常用于變化或運動的物體,將同一場景在不同時間拍攝的圖像相減,實際上就是圖像的差分運算。差分圖像提供了圖像間的像素差值信息,消除了兩圖像的背景和噪聲,該方法可運用于目標(biāo)的檢測、跟蹤和識別[20]。結(jié)合上節(jié)所述的逆投影變換,可將目標(biāo)上的點通過某一平面進行區(qū)分,即在不同視角下的逆投影平面,目標(biāo)上的點所在位置不同,故可將多視角下的逆投影圖像進行差分,將目標(biāo)的輪廓勾勒出來,實現(xiàn)目標(biāo)檢測。
基于雙目逆投影差分圖的障礙檢測方法原理如圖3所示。相機跟隨車以速度v向前移動,在某一時刻,左右目光心C1、C2運動到圖中所示的位置。對于地面上一點Q1,相機在C1與C2處的成像在地面上的投影均為Q1,灰度值相同;而對于高于地面上一點Q2,成像在地面的投影分別為Q3和Q4,灰度值存在差異。
圖3 基于雙目相機逆投影的障礙物檢測原理
定義Pl(xl,yl)和Pr(xr,yr)為進行坐標(biāo)補償后的兩個IPM圖像坐標(biāo),則它們的差分圖為
對差分圖進行二值化處理,并設(shè)置閾值,突出目標(biāo)區(qū)域:
式中:B(x,y)為左右目逆投影差分后的二值圖;τ為二值化的閾值。B(x,y)=0表示地面,B(x,y)=1表示非地面的障礙物。
然而,二值化處理后圖像通常會有很多噪聲點,需要對二值圖進行后處理,進一步區(qū)分出平面上和平面外的點。對此,提出使用開運算的形態(tài)學(xué)濾波方法消除噪點:
式中:?為腐蝕;⊕為膨脹;S為核函數(shù)。本文中核函數(shù)根據(jù)雙目相機基線長度d設(shè)置,即S≤d。
由式(9)可知,(x,y)在G(x,y)=0時為平面上一點,在G(x,y)=1時為非平面上一點。由此,可以通過車位區(qū)域非平面點的多少來判斷該車位是否被占用。為獲取車位的占用信息,首先需要確定停車位的位置,本文中采用文獻(xiàn)[17]中的方法對車位線進行識別,獲取車位的位置信息,同時設(shè)置為ROI。
通過式(10)可以快速計算ROI中二值圖像上的像素數(shù),并計算非平面像素的比例,其中(x,y)為ROI區(qū)域內(nèi)的坐標(biāo)。通過設(shè)置比率閾值,最終可以確定一個停車位是否被占用。另外,可以在一個停車場上設(shè)置多個ROI,以獲得更準(zhǔn)確的占用檢測結(jié)果。
在ROI區(qū)域遍歷G(x,y)=1的點,將與相機最近的點定義為障礙物位置計算的起點。通過平面兩點的距離公式得到地面上的實際距離L1。由于雙目相機視場角的影響,如圖2(a)所示,逆投影的起始位置并不能從原點O開始,所以逆投影起始點與相機還有一段距離L2,故最終計算障礙物到相機的距離L=L1+L2。
在BIPM算法獲取的二值差分圖中,可直接獲取參考平面(地面)的物理坐標(biāo)信息,完成障礙物的位置計算。在停車的場景下,檢測區(qū)域一般較?。?個車位左右,范圍約800 cm×600 cm)。在該檢測范圍內(nèi),基于逆投影方法(本質(zhì)上是單視圖方法)可以獲得較好的定位精度[19]。
試驗所用的雙目相機如圖4所示,相機的安裝高度為120 cm,基線長度為120 mm。通過棋盤格標(biāo)定獲取雙目系統(tǒng)內(nèi)外參數(shù)。其中雙目相機內(nèi)參數(shù)如表1所示,H、V、D分別表示相機水平、垂直和對角的視場角。相機的俯仰角為86°。通過標(biāo)定結(jié)果,可以完成雙目圖圖4像逆投影,生成BIPM差分圖。
圖4 車載雙目相機及標(biāo)定
表1 雙目相機參數(shù)
試驗過程分為兩個階段:障礙物檢測和車位占用分析與測距。在障礙物檢測階段,由于相機視場角的影響,試驗根據(jù)檢測車位的大小,指定800 cm×600 cm的目標(biāo)區(qū)域來進行占位檢測。逆投影的最近點設(shè)置在相機前方20 cm處。在差分圖二值化過程中,考慮到圖像處理過程中噪聲點的影響,采取[5,5]核對二值圖像進行形態(tài)學(xué)濾波。在測距與車位占用分析階段,將每個停車位根據(jù)距離設(shè)置3個ROI網(wǎng)格,并通過網(wǎng)格中障礙物像素點的占比來確定該停車位是否為空,同時獲取車位中各個障礙物到相機的距離。
本文中分別在地下停車場和室外停車場兩種場景進行實驗,且均在相同的計算機環(huán)境下進行測試,其配置為CPU:Intel Core i7-8700 3.2 GHz,內(nèi)存:16 GB,開發(fā)環(huán)境為Visual Studio 2017 C∕C++。
圖5 顯示了地下停車場兩個較為典型的場景。第一行為雙目相機左右目原始圖,第二行為對應(yīng)的IPM圖像,通過外參標(biāo)定估計兩個圖像之間的運動,得到第三行左圖所示的BIPM差分圖。通過二值化和形態(tài)學(xué)濾波做進一步處理,生成第三行右圖所示的二值差分圖。從圖中可以觀察到,障礙物的區(qū)域顯示為白色,而地面顯示為黑色。試驗中,在停車場中從遠(yuǎn)到近設(shè)置了3個相等大小的ROI,每個ROI的閾值為6%。
圖5 地下停車場占位檢測
試驗車沿著地下停車場的封閉路徑行駛,共獲取78個停車位信息,最終的檢測結(jié)果如表2所示。第2列中顯示,有18個車位為空位,56個車位停放有車,2個車位有路障,其余2個車位有車位鎖。表2的第3列顯示了錯誤檢測的次數(shù),在78個停車位中,本文提出的方法成功檢測到其中77個,檢測精度為98.7%。
表2 地下停車場占位檢測結(jié)果
試驗二選擇某大學(xué)的室外停車場作為試驗場景。由于室外場景環(huán)境變化較大,存在更多的變量,使得停車位檢測較于地下停車場更具挑戰(zhàn)性。在試驗中,測試車沿著室外停車場的任意路徑行駛,并使用本文算法進行車位占用檢測。共檢測有40個停車位,其中15個車位為空位,21個車位停放有車,4個車位有路障。部分檢測結(jié)果如圖6所示。
圖6 露天停車場占位檢測
在室外停車場試驗的統(tǒng)計結(jié)果如表3所示。在15個空車位和被車輛占用的21個車位中,均只有1個錯誤檢測,而有路障的停車位檢測精度為100%,平均檢測精度為95.0%。試驗結(jié)果進一步證明了本文中提出的BIPM方法對停車位占用檢測的有效性和準(zhǔn)確性。
表3 室外停車場占位檢測結(jié)果
為體現(xiàn)文本算法在時間、準(zhǔn)確率、定位精度上的優(yōu)越性,現(xiàn)與常用的3種算法進行對比,包括基于三維重建的停車位占用檢測[6]、基于環(huán)視圖的停車位占用檢測[12]和基于深度學(xué)習(xí)的停車位占用檢測[14],結(jié)果如圖7所示。
圖7 對比算法停車位占位檢測結(jié)果
文獻(xiàn)[6]中提出基于三維重建的方法,通過深度信息識別車位上的障礙物,該方法在近距離檢測時定位精度較好,但深度圖計算量過大,不滿足實時性的需求。文獻(xiàn)[12]中提出通過環(huán)視監(jiān)控系統(tǒng)和相關(guān)空位分析算法,使用四路相機拼接的AVM圖像,獲取停車位的占用信息。由于環(huán)視系統(tǒng)相鄰相機公共視野的影響,在圖像拼接時只保留了鳥瞰圖的一部分,無法識別整個車位,所以對于停車靠后的車位,會誤檢為空。文獻(xiàn)[14]中提出深度學(xué)習(xí)在目標(biāo)識別方面的優(yōu)越性,將其應(yīng)用于停車場的車位檢測。類比于文獻(xiàn)[14],本文中使用YOLO-v3網(wǎng)絡(luò)進行試驗。該方法在特定目標(biāo)的識別上有很高的準(zhǔn)確率,但在識別路障、車位鎖等障礙物時準(zhǔn)確率較低,并且該網(wǎng)絡(luò)生成的bounding box的位置對障礙物測距的精度有很大的影響。
本文算法與這3種方法使用相同的數(shù)據(jù)集,綜合檢測結(jié)果如表4所示。從給出的對比算法的檢測時間、準(zhǔn)確率、定位精度的結(jié)果可以看出,基于環(huán)視圖的方法(文獻(xiàn)[12])在檢測時間和定位精度方面表現(xiàn)較好,但由于環(huán)視系統(tǒng)的局限和場景的要求,導(dǎo)致其準(zhǔn)確率較差;而基于深度學(xué)習(xí)方法(文獻(xiàn)[14])耗時相對較長,并且由于bounding box的不確定性導(dǎo)致定位精度不足;基于三維重建的方法(文獻(xiàn)[6])在定位上有一定的優(yōu)勢,但檢測時間太長。由此可見,本文算法在檢測時間、準(zhǔn)確率和定位精度方面與對比方法相比有較大優(yōu)勢。
表4 各方法對比結(jié)果
本文中將雙目系統(tǒng)用于停車場車位檢測,提出了一種基于雙目相機逆投影變換的停車位檢測方法,通過對左右目相機外參標(biāo)定,將雙目相機逆投影變換在同一坐標(biāo)系,獲得差分圖像并進行車位占用檢測,并通過雙目相機逆投影差分圖,計算障礙物與相機的距離。試驗結(jié)果表明,車位檢測算法準(zhǔn)確率在95%以上,并且本文中提出的測距模型能有效測量縱向6 m、橫向8 m以內(nèi)的車輛距離,對不同停車場環(huán)境的障礙物測距誤差在2%以內(nèi),且算法的平均處理速度達(dá)到了18幀∕s,實時性能好,魯棒性高,滿足智能車系統(tǒng)對算法實時性和準(zhǔn)確性的要求。