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