(天津大學(xué) 精密儀器與光電子工程學(xué)院,光電信息技術(shù)教育部重點實驗室,天津 300072)
當(dāng)前自動駕駛技術(shù)飛速發(fā)展,已成為人工智能領(lǐng)域的研究熱點,而自動泊車系統(tǒng)(Automatic Parking System 簡稱:APS)作為智能駕駛的重要組成部分,已成為國內(nèi)外各大汽車廠商和高校的研究熱點方向[1]。研究表明,大城市的停車難問題嚴(yán)重,給人們的出行帶來非常的不便。國內(nèi)外對自動泊車系統(tǒng)都有一定的研究,同時停車位的智能識別又成為自動泊車系統(tǒng)中的重要研究方向,其主要通過傳感器檢測停車位:如基于激光雷達(dá)傳感器[2],基于超聲傳感器[3]和基于視覺傳感器[4]等。目前基于視覺的自動泊車系統(tǒng)的研究已經(jīng)成為主流,而且攝像頭具有成本低、體積小、可視化等優(yōu)點。雖然目前各大汽車廠商的泊車系統(tǒng)都使用4個魚眼相機(jī),但是環(huán)視圖的左右可視距離有限,文章[5]能顯示的左右可視距離僅為2.5m,這給車位檢測帶來了很大的難度。本研究同樣是基于4個魚眼相機(jī)獲取環(huán)視圖,但是最終生成的環(huán)視圖,左右相機(jī)可視距離為7.5m,提高了車位檢測的準(zhǔn)確率。
由于環(huán)視圖的左右可視距離有限,而標(biāo)準(zhǔn)停車位的長度為5m,寬度為2.5m,在垂直泊車[6]的情況下,車位最遠(yuǎn)端的一條邊距離車的距離至少為5m。如果在距離車3m~5m處存在障礙物,那么無法在上述環(huán)視圖上顯示出來。目前基于視覺的停車位檢測方法核心技術(shù)是找出環(huán)視圖中的直線,而最常用的方法是Hough變換。然而,實際泊車場景往往存在車位線損壞、有陰影、不平行的情況,如果依然使用Hough變換檢測環(huán)視圖中的直線,會出現(xiàn)漏檢以及準(zhǔn)確率差的情況。
本研究提出了一種新的基于環(huán)視系統(tǒng)的車位檢測方法。(1)超聲波傳感器檢測車位需要車位附近的車輛做輔助,而本研究算法是完全基于視覺的車位檢測,可以在不依賴相鄰車輛的情況下準(zhǔn)確識別車位;(2)目前大部分全景環(huán)視泊車輔助系統(tǒng)的圖像顯示范圍有限,這給車位檢測帶來了很大的難度,而本研究算法實現(xiàn)的環(huán)視系統(tǒng),左右相機(jī)顯示的距離最遠(yuǎn)能達(dá)到7.5m,提高了車位檢測和車位內(nèi)障礙物檢測的準(zhǔn)確率;(3)Hough變換在檢測車位時的漏檢率很高,本研究在環(huán)視圖像上使用基于邊緣信息的LSD(Line Segment Detector)[7]算法來檢測車位線,具有更高的準(zhǔn)確性和魯棒性,本研究算法目前處于研究測試階段。
全景環(huán)視系統(tǒng)[8]由4個魚眼相機(jī)組成,安裝位置如下圖1所示。
圖1 相機(jī)安裝位置
前視相機(jī)安裝在進(jìn)氣格柵的車標(biāo)之下;后視相機(jī)安裝在牌照之上;左右相機(jī)安裝在后視鏡下面。
環(huán)視圖像的生成主要分為以下三步:魚眼相機(jī)標(biāo)定、逆透視變換和圖像拼接。生成流程如圖2所示。
圖2 全景圖像生成流程
魚眼相機(jī)標(biāo)定[9]主要是為了確定世界坐標(biāo)系與相機(jī)圖像坐標(biāo)系之間的轉(zhuǎn)換關(guān)系。實驗使用棋盤格對相機(jī)進(jìn)行標(biāo)定,首先對每個相機(jī)進(jìn)行單獨標(biāo)定,求出每個相機(jī)的內(nèi)部參數(shù)和畸變系數(shù),之后在整個車輛的四周鋪上標(biāo)定板,實現(xiàn)4相機(jī)的聯(lián)合標(biāo)定,建立以車身為中心的環(huán)視圖的車輛坐標(biāo)系X1O1Y1,然后建立該坐標(biāo)系下其他4路圖像到環(huán)視圖的坐標(biāo)映射關(guān)系,使得4幅圖像能夠在同一個平面中處理與顯示。在車身四周鋪上標(biāo)定板,通過人工測量,提前獲取標(biāo)定板上角點的位置信息,最終標(biāo)定可以得到每個相機(jī)的圖像坐標(biāo)系與世界坐標(biāo)系之間的轉(zhuǎn)換關(guān)系,如圖3所示。
采用直接線性變換(DLT)[10]確定逆透視變換的投影矩陣,使用內(nèi)參和外參對魚眼圖像進(jìn)行畸變矯正和逆透視變換,將世界坐標(biāo)系的點變換到圖像坐標(biāo)系生成鳥瞰圖。公式如下:
(1)
式中,(X,Y,Z)為世界坐標(biāo)系上一點,(u,v)為世界坐標(biāo)點投影在圖像坐標(biāo)系上經(jīng)過矯正后的坐標(biāo),A為攝像機(jī)內(nèi)參矩陣,[R|t ]為攝像機(jī)外參矩陣,將世界坐標(biāo)系構(gòu)造在Z=0的平面上,那么(1)轉(zhuǎn)換為
(2)
其中,H稱為單應(yīng)性矩陣,利用非線性最小二乘法可以求解出H的最大似然估計,那么矯正圖像坐標(biāo)系和世界坐標(biāo)系之間的關(guān)系可以通過H進(jìn)行描述。將世界坐標(biāo)系選擇為地面,那么鳥瞰圖圖像坐標(biāo)系與世界坐標(biāo)系之間存在一個比例關(guān)系λ,已知矯正圖像坐標(biāo)系上一點(u,v),可以求出對應(yīng)的鳥瞰圖圖像坐標(biāo)系的坐標(biāo),公式如下:
(3)
傳統(tǒng)的圖像拼接算法比較復(fù)雜,在光線較弱的情況下找到的特征點數(shù)量有限,拼接效果不是很好,本研究采用了一種更加簡單有效的算法實現(xiàn)環(huán)視圖的無縫拼接。原理是在車周圍鋪上標(biāo)定板,如圖3所示,每個相機(jī)的視野中都對應(yīng)著4幅標(biāo)定板,這樣就構(gòu)建了4組相對位置固定的標(biāo)定板群,可以分別求出每個相機(jī)的變換矩陣H1,H2,H3,H4,這些矩陣就是每個相機(jī)圖像坐標(biāo)系到鳥瞰圖的映射關(guān)系,再將各圖像帶入式(3),則可以得到鳥瞰圖。根據(jù)這個關(guān)系,可以生成坐標(biāo)對應(yīng)的查找表,只需要標(biāo)定一次,之后的每次拼接只需要通過查找表填充就可以完成拼接,而不需要每次都進(jìn)行特征匹配,這大大提升了拼接速度[11]。
圖像拼接中最重要是圖像融合區(qū)域的選擇,大多數(shù)環(huán)視拼接區(qū)域都如圖4所示,其中A、B、C、D是4塊重疊區(qū)域:
圖4 傳統(tǒng)的環(huán)視拼接區(qū)域
由于相機(jī)分辨率有限,距離相機(jī)越遠(yuǎn)的地方,誤差越大,越容易出現(xiàn)重疊區(qū)域拼接不上的情況,本研究提出了一種新穎的融合策略,能夠在遠(yuǎn)處同樣實現(xiàn)無縫拼接。首先,改變后的融合區(qū)域如圖5所示,A、B、C、D 4個矩形區(qū)域為兩相機(jī)之間的重疊區(qū)域(比如A為前視相機(jī)和左相機(jī)的重疊區(qū)域),中間的黑色區(qū)域為未融合區(qū)域。
圖5 新的融合區(qū)域
對融合區(qū)域,采用加權(quán)平均融合算法[12],該算法原理如圖6所示。
圖6 拼接區(qū)域融合算法原理
圖中黑色矩形框為兩幅圖像的重疊區(qū)域。假設(shè)重疊區(qū)域中,圖一中的像素點為P1,圖二中的像素點為P2,那么重疊區(qū)域的像素點為
(4)
其中,L表示拼接區(qū)域?qū)挾龋琹表示重疊區(qū)域某一像素點距離右邊界的距離。最終得到的融合區(qū)域如圖7所示。圖7(a)為前后相機(jī)映射到俯視圖上的區(qū)域,圖7(b)為左右相機(jī)映射到俯視圖上的區(qū)域,圖中的模糊區(qū)域為拼接融合區(qū)域。
圖7 最終融合區(qū)域
使用該融合算法生成的最終環(huán)視效果圖如圖8所示。
圖8 環(huán)視效果圖
由圖8可以看出,生成的全景環(huán)視圖效果良好,可以將汽車四周的場景以鳥瞰圖的形式再現(xiàn)出來,并且在距離相機(jī)較遠(yuǎn)的地方,也沒有出現(xiàn)線段拼接不上的情況。
本研究的拼接方法與傳統(tǒng)的基于特征點匹配的拼接方法相比,具有以下優(yōu)勢:對環(huán)境光線的適應(yīng)能力更強(qiáng)、不需要大面積的重疊區(qū)域即可實現(xiàn)環(huán)視圖的生成;不需要進(jìn)行特征點匹配,所以拼接速度更快,易于嵌入式系統(tǒng)的實現(xiàn)。
為了檢測出環(huán)視圖中的有效車位,需要對環(huán)視圖進(jìn)行一系列的圖像處理,包括邊緣檢測、直線檢測、過濾干擾線、基于幾何原理的車位擬合等過程。整個車位檢測的算法流程如圖9所示。
圖9 車位檢測算法流程
為了提高車位線的檢測精度,首先需要對環(huán)視拼接圖進(jìn)行邊緣檢測,本研究使用Canny檢測算子。在獲得邊緣圖像的基礎(chǔ)上,使用LSD方法進(jìn)行直線檢測,LSD算法主要分為三步[13]:提取直線區(qū)域、矩形擬合、線段有效性的驗證。
1)提取直線區(qū)域。首先計算圖像中每個像素點Level-Line的角度,形成一個Level-Line區(qū)域,然后有相同Level-Line角度的像素點就構(gòu)成了line support區(qū)域,而這些區(qū)域正是線段的候選區(qū)域(圖10)。
圖10 圖像梯度和Level-Line
2)矩形擬合。在提取出直線區(qū)域之后,對區(qū)域進(jìn)行矩形擬合,求出矩形的中心點、方向角以及長和寬,用該矩形代表該線段。結(jié)果如圖11所示,其中(a)為待檢測的原圖,(b)為使用步驟1)提取出的直線段候選區(qū)域,(c)為最終矩形擬合的結(jié)果圖。
圖11 矩形擬合結(jié)果
3)線段有效性的驗證。該方法是基于亥姆霍茲原理,線段由矩形區(qū)域的寬度和端點決定。計算每個矩形框內(nèi)的像素點個數(shù),以及與該矩形框方向一致的像素點,并且設(shè)置能夠計算出NFA[14]的精度值,然后根據(jù)NFA進(jìn)行線段有效性的驗證(圖12)。
圖12 使用LSD與Hough變換檢測結(jié)果對比
圖12是使用LSD與Hough變換檢測直線的結(jié)果對比,可以明顯看出,使用LSD檢測的直線結(jié)果要比Hough變換檢測的直線結(jié)果更加準(zhǔn)確,干擾直線也少了很多。
通過LSD算法檢測到直線之后,需要對直線進(jìn)行過濾等處理,整個車位檢測[15,16]的算法流程見圖13。
圖13 車位檢測算法流程
實驗采用榮威RX5為樣車,4個魚眼相機(jī)的安裝位置如圖1所示,相機(jī)分辨率為1280*720,環(huán)視圖分辨率為875*775,通過相機(jī)獲取的實驗數(shù)據(jù)運(yùn)行在NVIDIA Jetson TX2平臺,調(diào)用Opencv3.2以及編寫CUDA代碼,處理速度為30幀/s,可以滿足實時的要求。
首先對4相機(jī)進(jìn)行聯(lián)合標(biāo)定,角點檢測結(jié)果如圖14所示,可以看出每個魚眼相機(jī)視野中的26個角點都被檢測到。
圖14 角點檢測
以前攝像機(jī)為例,標(biāo)定計算得到的俯視變換矩陣如下:
(5)
傳統(tǒng)的環(huán)視拼接與本研究提出的環(huán)視拼接對比效果如圖15所示。圖15(a)為傳統(tǒng)環(huán)視拼接方法效果圖,從圖中可以看出,矩形框內(nèi)出現(xiàn)線段拼接不上的情況,并且距離車越遠(yuǎn)的地方,拼接不上的情況越嚴(yán)重;圖15(b)為本研究提出的環(huán)視拼接效果圖,可以看出在對應(yīng)的矩形框區(qū)域,能夠?qū)崿F(xiàn)無縫拼接,還可以增大環(huán)視圖的左右可視距離,在實際的測試中,經(jīng)過測量,圖15(b)顯示的左右可視實際距離為7.5m。
圖15 環(huán)視拼接方法對比圖
在本研究提出的環(huán)視拼接算法的基礎(chǔ)上進(jìn)行車位檢測,為了驗證算法的有效性,首先對基于Hough變換的車位檢測與基于LSD的車位檢測進(jìn)行對比實驗,對比效果如下圖16所示。
圖16 基于Hough和LSD的車位檢測
圖16(a)為基于Hough變換的車位檢測,左上角矩形框內(nèi)的數(shù)字78(1)表示:該車位ID為78,第1次被檢測到;圖16(b)為基于LSD的車位檢測,對比可以看出,右圖中ID為27的車位,在左圖中并沒有被檢測到,說明基于Hough變換的車位檢測容易發(fā)生漏檢。
由于目前完全基于視覺的車位檢測方法比較少,于是本研究使用基于LSD的車位檢測算法分別對地上車位與地下車位檢測效果進(jìn)行對比,對比效果如圖17所示。
圖17 地上車位與地下車位檢測
圖17(a)為基于LSD的地上車位檢測效果,可以看出能夠完全檢測到所有車位,沒有漏檢;圖17(b)中紅色箭頭所指車位,由于燈光太暗、車位線已經(jīng)無法看清,所以沒有檢測出來,其他車位都能檢測到,說明本研究基于LSD的車位檢測對光照有一定的要求,并且能夠有效的減少漏檢。
為了評估本研究算法的準(zhǔn)確性,實驗一共采集3000張圖片,其中包含11371個車位,為了對提出的算法進(jìn)行有效性評估,定義公式(6)和公式(7),其中F表示誤檢率,M表示漏檢率,FD(false detections)表示誤檢車位的數(shù)量,CD(correct detection)表示正確檢測出車位的數(shù)量,MD(missing detections)表示漏檢車位的數(shù)量。
(6)
(7)
表1給出了車位檢測中使用Hough和LSD算法的F值和M值的結(jié)果對比,可以看出,使用LSD的方法能夠提高車位的檢測率,并且能夠有效減少誤檢和漏檢。
表1 Hough和LSD的F值和M值的結(jié)果對比
提出了一種新的基于環(huán)視系統(tǒng)的車位檢測方法,與傳統(tǒng)的環(huán)視拼接方法相比,不僅可以實現(xiàn)無縫拼接,還可以增大環(huán)視圖的左右可視距離。在環(huán)視圖像的基礎(chǔ)上進(jìn)行車位檢測,使用LSD進(jìn)行車位檢測,與傳統(tǒng)的直線檢測算法Hough變換相比,檢測結(jié)果更準(zhǔn)確,并且能有效減少誤檢和漏檢。但是依然存在不足之處,標(biāo)定過程中,本實驗需要將車開到標(biāo)定場地,進(jìn)行人工手動標(biāo)定,由于車每次停的位置不同,所以會存在人為因素的誤差,下一步的研究中,最好能固定車的位置,采用自標(biāo)定的方法解決這種人為誤差;雖然在遠(yuǎn)處可以實現(xiàn)無縫拼接,但是遠(yuǎn)處的馬賽克情況嚴(yán)重,下一步可以改變差值方式解決馬賽克問題。