張文影, 李禮夫
(華南理工大學(xué)機(jī)械與汽車工程學(xué)院,廣州 510641)
車輛與行人檢測(cè)是智能網(wǎng)聯(lián)汽車環(huán)境感知系統(tǒng)的關(guān)鍵功能之一,是后續(xù)進(jìn)行車輛與行人目標(biāo)跟蹤及其軌跡預(yù)測(cè)的基礎(chǔ)[1]。在基于圖像的車輛與行人檢測(cè)中,車載攝像機(jī)采集的行車圖像不僅包含所需的車輛與行人目標(biāo)信息,還混雜著前方的天空、兩旁的樹(shù)木及建筑物背景區(qū)域等無(wú)關(guān)信息,這些無(wú)關(guān)信息不僅耗費(fèi)了計(jì)算資源,還可能干擾檢測(cè)目標(biāo)特征的提取。而感興趣區(qū)域(region of interest,ROI)即為整幅圖像中盡量剔除這些無(wú)關(guān)信息、保留所需目標(biāo)信息的圖像區(qū)域,作為后續(xù)檢測(cè)算法的圖像輸入。因此為了提高車輛及行人檢測(cè)的實(shí)時(shí)性和準(zhǔn)確性,快速精確的ROI分割十分必要。
目前在車輛及行人檢測(cè)領(lǐng)域的ROI圖像分割方法主要是固定比例/區(qū)域法,該方法根據(jù)對(duì)行車圖像中車輛及行人分布區(qū)域的觀察和經(jīng)驗(yàn)總結(jié),采用某一固定比例/區(qū)域?qū)π熊噲D像進(jìn)行分割,從而獲得車輛及行人目標(biāo)的ROI。如文獻(xiàn)[2]中某前方車輛檢測(cè)與測(cè)距系統(tǒng)將圖像底部2/3區(qū)域內(nèi)的固定區(qū)域作為車輛與行人目標(biāo)ROI。文獻(xiàn)[3]中類似地將目標(biāo)ROI設(shè)置為圖像下部的1/3區(qū)域。但當(dāng)路面坡度或者車身俯仰姿態(tài)發(fā)生變化時(shí),車載攝像機(jī)與路面之間的俯仰角也隨之變化,造成包含車輛及行人目標(biāo)信息的道路區(qū)域在圖像上的上下偏移,此時(shí)采用固定比例/區(qū)域分割方法得到的ROI(圖1中藍(lán)框區(qū)域)會(huì)出現(xiàn)分割區(qū)域浪費(fèi)(過(guò)多分割區(qū)域不含目標(biāo)信息)或者某些重要車輛及行人目標(biāo)被割去的不良后果,如圖1紅色虛線所示,前者增加了檢測(cè)算法的任務(wù)量,不利于檢測(cè)的實(shí)時(shí)性,后者減少了檢測(cè)算法能夠獲得的目標(biāo)信息,嚴(yán)重影響檢測(cè)的準(zhǔn)確性。
圖2 基于消失點(diǎn)和車輛高度的ROI自適應(yīng)分割算法Fig.2 ROI adaptive segmentation method based on vanishing point and vehicle height
為此,提出一種基于消失點(diǎn)和車輛高度的ROI自適應(yīng)分割算法。首先,該算法利用道路消失點(diǎn)準(zhǔn)確找到道路位置,避免分割區(qū)域浪費(fèi),保證檢測(cè)的實(shí)時(shí)性;其次,綜合車輛實(shí)際高度及檢測(cè)算法有效檢測(cè)距離對(duì)圖像上車輛高度進(jìn)行補(bǔ)充,減少目標(biāo)不完整分割,增加檢測(cè)的準(zhǔn)確性;最后,循環(huán)利用前一幀行車圖像的車道消失點(diǎn)及其推導(dǎo)的實(shí)時(shí)俯仰角更新下一幀ROI,以做到依據(jù)路面坡度情況及車身俯仰姿態(tài)的ROI實(shí)時(shí)自適應(yīng)分割。
圖2所示為典型的車載攝像機(jī)采集的行車圖像,其中車輛及行人目標(biāo)大都分布在道路區(qū)域及其周圍,所以準(zhǔn)確找到道路區(qū)域是避免ROI分割區(qū)域浪費(fèi)的關(guān)鍵。而根據(jù)透視變換的原理,行車圖像上的道路區(qū)域無(wú)限向前延伸,最終會(huì)與天空區(qū)域相交于一點(diǎn)并消失,此消失點(diǎn)所在的水平直線即為消失線(圖2中綠色虛線),消失線上方大多為天空等無(wú)關(guān)區(qū)域,下方為道路區(qū)域,因此可利用車道消失點(diǎn)準(zhǔn)確找到行車圖像中道路區(qū)域的上邊界,定位道路區(qū)域;同時(shí)由于透視變換“近大遠(yuǎn)小”的特點(diǎn),不同距離時(shí)車輛在圖像上的高度不同,所以可綜合車輛實(shí)際高度和檢測(cè)算法有效檢測(cè)距離的先驗(yàn)知識(shí),計(jì)算出圖像上的車輛高度來(lái)精確定位ROI邊界,防止目標(biāo)不完整分割。其中車輛實(shí)際高度有一個(gè)固定且集中的范圍,可根據(jù)常見(jiàn)車輛的實(shí)際高度取一個(gè)合適值,檢測(cè)算法有效檢測(cè)距離包括最大、最小有效檢測(cè)距離,是指在該車載攝像機(jī)模型下檢測(cè)算法能有效檢測(cè)出目標(biāo)的最大、最小距離,主要受檢測(cè)算法及行車圖像質(zhì)量(分辨率、色彩深度和圖像失真)等影響,可由目標(biāo)檢測(cè)算法性能標(biāo)定得到。
基于消失點(diǎn)和車輛高度的ROI自適應(yīng)分割算法步驟如下。
(1)建立車載攝像機(jī)成像模型。根據(jù)攝影成像原理及攝像機(jī)安裝信息等推導(dǎo)出車載攝像機(jī)成像模型,用于計(jì)算行車時(shí)世界坐標(biāo)系下的任意物體在車載攝像機(jī)行車圖像上的像素位置,是后續(xù)進(jìn)行ROI初始劃分及其實(shí)時(shí)更新的基礎(chǔ)。
(2)劃分初始ROI。首先,利用車載攝像機(jī)成像模型及其相機(jī)標(biāo)定信息得到行車圖像的初始道路消失線中點(diǎn)M1(圖2中綠色虛線中點(diǎn)),找到準(zhǔn)確的道路位置,避免分割區(qū)域浪費(fèi),保證了后續(xù)檢測(cè)的實(shí)時(shí)性;其次,綜合車輛實(shí)際高度和檢測(cè)算法有效檢測(cè)距離的先驗(yàn)知識(shí),根據(jù)車載攝像機(jī)成像模型計(jì)算出最小有效檢測(cè)距離時(shí)前方車輛頂部的圖像縱坐標(biāo),得到圖像左右邊界高度點(diǎn)K3和K2,確定ROI左右邊界。同樣也可計(jì)算出最大有效檢測(cè)距離時(shí)前方車輛在圖像上的高度h1,得到消失點(diǎn)車輛高度補(bǔ)充點(diǎn)K1,補(bǔ)充圖像上消失點(diǎn)處的車輛高度,減少目標(biāo)不完整分割,有利于后續(xù)檢測(cè)的準(zhǔn)確性;最后,根據(jù)K1、K2、K3三點(diǎn)分割出初始ROI(圖2中藍(lán)色實(shí)線框),輸入給檢測(cè)算法進(jìn)行車道線檢測(cè)和車輛及行人檢測(cè)。
(3)實(shí)時(shí)更新ROI。利用當(dāng)前幀行車圖像檢測(cè)到的車道消失點(diǎn)M′1(圖2中綠色實(shí)線交點(diǎn))及其推導(dǎo)的實(shí)時(shí)俯仰角β′實(shí)時(shí)更新下一幀ROI(圖2中K′1K′2K′3藍(lán)色實(shí)線框),做到依據(jù)路面坡度情況及車身俯仰姿態(tài)的ROI實(shí)時(shí)自適應(yīng)分割。
攝影成像坐標(biāo)轉(zhuǎn)換描述了從三維空間世界坐標(biāo)變換到二維圖像像素坐標(biāo)的轉(zhuǎn)換關(guān)系,依此關(guān)系建立相應(yīng)的車載攝像機(jī)成像模型,則根據(jù)該模型可計(jì)算出世界坐標(biāo)系下的任意物體在車載攝像機(jī)行車圖像上的像素位置。因此,車載攝像機(jī)成像模型是后續(xù)進(jìn)行ROI初始化及其更新的基礎(chǔ)。
攝像機(jī)構(gòu)像坐標(biāo)轉(zhuǎn)換如圖3所示。
圖3 攝像機(jī)成像坐標(biāo)轉(zhuǎn)換Fig.3 Schematic diagram of photographic imaging
三維空間一點(diǎn)P(XW,YW,ZW)通過(guò)攝像機(jī)成像變換到二維像素平面下的P′(u,v),其過(guò)程涉及了世界坐標(biāo)系OW-XWYWZW、相機(jī)坐標(biāo)系OC-XCYCZC、成像坐標(biāo)系O-XY以及像素坐標(biāo)系OO-UV之間的轉(zhuǎn)換關(guān)系,其中用攝像機(jī)外參矩陣M2來(lái)描述從世界坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換,用攝像機(jī)內(nèi)參矩陣M1來(lái)描述從相機(jī)坐標(biāo)系到像素坐標(biāo)系的轉(zhuǎn)換[4],即
(1)
攝像機(jī)的外參矩陣M2描述了攝像機(jī)坐標(biāo)系與世界坐標(biāo)系之間的旋轉(zhuǎn)、變換關(guān)系,由一個(gè)3×3的旋轉(zhuǎn)矩陣R3×3和一個(gè)3×1的平移矩陣T3×1表示,與攝像機(jī)安裝信息直接相關(guān)。
其中若攝像機(jī)的俯仰角為β、偏轉(zhuǎn)角為α、繞光軸的滾轉(zhuǎn)角為γ,則
(3)
攝像機(jī)的內(nèi)參矩陣M1描述了相機(jī)坐標(biāo)系到像素坐標(biāo)系的轉(zhuǎn)換關(guān)系,包括針孔成像過(guò)程、主點(diǎn)偏移及坐標(biāo)單位轉(zhuǎn)換等,只與攝像機(jī)本身的內(nèi)部參數(shù)有關(guān)。
(4)
式(1)中:fx=f×sx,fy=f×sy,f為攝像機(jī)焦距,sx和sy的單位為像素/mm,表示每物理單位長(zhǎng)度(mm)所具有的像素值;(u0,v0)為成像坐標(biāo)系的原點(diǎn)在像素坐標(biāo)系的坐標(biāo),也就是光心與像素坐標(biāo)系的交點(diǎn)。
建立車載攝像機(jī)成像模型如圖4所示,車載攝像機(jī)的焦點(diǎn)為攝像機(jī)坐標(biāo)系OC-XCYCZC的原點(diǎn)OC,ZC軸與攝像機(jī)光軸重合。同時(shí)為方便說(shuō)明,令世界坐標(biāo)系OW-XWYWZW固定在車輛上,與攝像機(jī)坐標(biāo)系有共同的原點(diǎn)OW(OC),ZW指向車輛正前方,并與路面保持平行,YW垂直地面向下,面向正前方右側(cè)為XW;成像坐標(biāo)系O-XY的原點(diǎn)(即光心O點(diǎn))在像素坐標(biāo)系OO-UV中的坐標(biāo)為(u0,v0);采集的行車圖像分辨率為M×N像素分辨率。
圖4 車載攝像機(jī)成像模型Fig.4 Vehicle-mounted camera imaging model
考慮到車載攝像機(jī)的安裝特性,偏轉(zhuǎn)角α和滾轉(zhuǎn)角γ都為0,攝像機(jī)只擁有一定的路面俯仰角β,代入式(3)求得旋轉(zhuǎn)矩陣R3×3;同時(shí)攝像機(jī)坐標(biāo)系和相機(jī)坐標(biāo)系原點(diǎn)相同,所以平移矩陣T3×1=(0, 0, 0)T,代入式(2)求得外參矩陣M2,聯(lián)立內(nèi)參矩陣M1式(4),代入式(1)并整理得到:
(5)
(6)
式(5)、式(6)為在該車載攝像機(jī)成像模型下,世界坐標(biāo)系下一點(diǎn)(XW,YW,ZW)到其圖像上像素坐標(biāo) (u,v)的轉(zhuǎn)換關(guān)系,其中β為車載攝像機(jī)路面俯仰角,可通過(guò)安裝測(cè)量或者攝像機(jī)外參標(biāo)定得到;fx、fy、u0、v0是車載攝像機(jī)內(nèi)部參數(shù),可通過(guò)攝像機(jī)內(nèi)參標(biāo)定得到。
如圖5所示,在上述車載攝像機(jī)成像模型的基礎(chǔ)上,利用攝像機(jī)內(nèi)外參數(shù)和分辨率得到初始消失線中點(diǎn)坐標(biāo)M1;綜合車輛實(shí)際高度和有效檢測(cè)距離的先驗(yàn)知識(shí),得到圖像左右邊界高度點(diǎn)K3、K2和消失點(diǎn)的車輛高度補(bǔ)充點(diǎn)K1;根據(jù)K1、K2和K3這3點(diǎn)分割出初始感興趣區(qū)(藍(lán)線框內(nèi)),輸入給檢測(cè)算法進(jìn)行車道線檢測(cè)和車輛及行人檢測(cè)。
圖5 初始ROI(藍(lán)線框內(nèi))劃分示意圖Fig.5 Schematic diagram of initial ROI (inside the blue line)
圖2所示的M×N像素分辨率車載攝像機(jī)行車圖像,假設(shè)其為平坦路面,則路面上所有無(wú)窮遠(yuǎn)處的點(diǎn)(ZW取無(wú)窮大,YW=h,XW取任意值)通過(guò)式(6)會(huì)形成像素圖像上的一條直線(圖2中綠色虛線),即消失線:
vmiss=fytanβ+v0
(7)
因此可得到像素圖像上的消失線中點(diǎn)坐標(biāo)M1((M-1)/2,fytanβ+v0),即當(dāng)攝像機(jī)路面俯仰角β及其參數(shù)fy、v0和分辨率M×N確定時(shí)便可以確定初始消失線中點(diǎn)在圖像中的位置。
3.2 左右邊界高度點(diǎn)及消失點(diǎn)車輛高度補(bǔ)充點(diǎn)
如圖5所示,攝像頭安裝高度為h,車輛實(shí)際高度為H,最小、最大有效檢測(cè)距離分別為S1和S2,可得到世界坐標(biāo)系下最小有效檢測(cè)距離時(shí)車輛頂部點(diǎn)坐標(biāo)T1(XW1,h-H,S1)、最大有效檢測(cè)距離時(shí)車輛頂部T2(XW2,h-H,S2)和底部坐標(biāo)T3(XW2,h,S2)。
將T1代入式(6)得到T1在圖像坐標(biāo)系的縱坐標(biāo),即圖像左右邊界高度點(diǎn)K3、K2的縱坐標(biāo);將T2和T3坐標(biāo)代入式(6)并作差,得到最大有效檢測(cè)距離時(shí)前方車輛在圖像上的像素高度h1,再由消失線中點(diǎn)坐標(biāo)M1可得消失點(diǎn)車輛高度補(bǔ)充點(diǎn)K1坐標(biāo),即
(8)
式(8)中:M由圖像像素分辨率M×N得到;β、h可通過(guò)攝像機(jī)的外參標(biāo)定和安裝測(cè)量得到;fy、v0是車載攝像機(jī)內(nèi)部參數(shù),可通過(guò)攝像機(jī)的內(nèi)參標(biāo)定得到;S1和S2為最小、最大有效檢測(cè)距離,由檢測(cè)算法提供;H為車輛實(shí)際高度,有一個(gè)已知的變化范圍,可取一個(gè)合適值。因此可根據(jù)這些信息及式(8)分割出初始ROI(圖5中藍(lán)線框內(nèi)),輸入給檢測(cè)算法進(jìn)行車道線檢測(cè)和車輛及行人檢測(cè)。攝像機(jī)標(biāo)定及實(shí)驗(yàn)參數(shù)如表1所示。
上述算法劃分的初始ROI輸入給檢測(cè)算法進(jìn)行車道線檢測(cè)和車輛及行人檢測(cè),利用當(dāng)前幀檢測(cè)到的車道線,計(jì)算出實(shí)時(shí)車道線消失點(diǎn)M1′,用于替換更新初始消失線中點(diǎn)M1;再結(jié)合俯仰角模型,由實(shí)時(shí)車道線消失點(diǎn)M1′坐標(biāo)推出車載攝像機(jī)與行駛路面間的實(shí)時(shí)路面俯仰角β′,用于替換初始路面俯仰角β,并更新下一幀ROI,做到依據(jù)路面坡度情況及車身俯仰姿態(tài)的實(shí)時(shí)自適應(yīng)ROI分割。
表1 攝像機(jī)標(biāo)定及實(shí)驗(yàn)參數(shù)
4.1 車道線消失點(diǎn)更新
車道消失點(diǎn)的更新依賴于車道線的檢測(cè),常見(jiàn)的車道線檢測(cè)原理分為4步:灰度化、去噪、Canny邊緣檢測(cè)[5]和霍夫變換直線檢測(cè)[6-7]。得到車道線后,求其交點(diǎn),便可得到車道線消失點(diǎn),假設(shè)其為M′1(uM2,vM2),替換更新掉初始消失線中點(diǎn)M1,用于消失點(diǎn)車輛高度補(bǔ)充點(diǎn)的更新。如6圖所示,綠色實(shí)線為檢測(cè)到的車道線,紅色方框中心表示車道線消失點(diǎn),此時(shí)坐標(biāo)為M′1(379, 204),已取整。
圖6 車道線檢測(cè)及車道線消失點(diǎn)Fig.6 Lane detection and vanishing point of lane line
消失點(diǎn)是透視變換的一個(gè)顯著特征,在視覺(jué)導(dǎo)航、三維重建、相機(jī)標(biāo)定等方面有廣泛應(yīng)用。文獻(xiàn)[8]提出基于車道線消失點(diǎn)的逆透視變換法,通過(guò)消失點(diǎn)自動(dòng)計(jì)算車載攝像機(jī)的標(biāo)定參數(shù),完成逆透視變換以用于道路標(biāo)記的檢測(cè)與識(shí)別。文獻(xiàn)[9]利用人工神經(jīng)網(wǎng)絡(luò)精確定位車道線消失點(diǎn),并從消失點(diǎn)的圖像坐標(biāo)推斷出車輛移動(dòng)時(shí)不斷變化的俯仰角和偏航角。因此可以利用上述得到的實(shí)時(shí)車道線消失點(diǎn)M′1(uM2,vM2),結(jié)合俯仰角模型,實(shí)時(shí)更新車載攝像機(jī)與行駛路面間的俯仰角β′。
如圖7所示,βc為攝像機(jī)與水平路面間的安裝俯仰角,βv為此時(shí)刻車身俯仰角,βr為前方路面坡度,由平行線同位角定理得βc+v=βc+βv,三角形外接角定理得βc+v+r=βr+βc+v=βr+βc+βv,而由于路面無(wú)限往前延伸,車載攝像機(jī)與路面實(shí)時(shí)俯仰角β′≈βc+v+r=βr+βc+βv,其中βc為初始安裝時(shí)定值,因此當(dāng)路面坡度βr或者車身姿態(tài)βv發(fā)生變化時(shí),會(huì)改變車載攝像機(jī)與路面實(shí)時(shí)俯仰角β′,從而根據(jù)式(7)改變消失線和車道消失點(diǎn)的縱坐標(biāo)。
圖7 俯仰角模型示意圖Fig.7 Schematic diagram of vehicle-mounted camera pitch angle model
因此將上述得到的實(shí)時(shí)車道線消失點(diǎn)M′1(uM2,vM2)的縱坐標(biāo)vM2代入式(7)反求得實(shí)時(shí)路面俯仰角
(9)
將以上車道線檢測(cè)獲得的實(shí)時(shí)車道消失點(diǎn)M′1(uM2,vM2)用于更新式(8)中的消失線中點(diǎn)M1,實(shí)時(shí)俯仰角β′由式(9)得到,用于更新式(8)中的俯仰角β,得:
(10)
式(10)中:uM2、vM2由車道線檢測(cè)算法獲得的車道線消失點(diǎn)M′1(uM2,vM2)提供,β′可由式(9)求得,其余參數(shù)變量與式(8)相同。
實(shí)驗(yàn)攝像機(jī)標(biāo)定與實(shí)驗(yàn)參數(shù)等信息如表1所示。主點(diǎn)坐標(biāo)(u0,v0)和焦距信息(fx,fy)由攝像機(jī)標(biāo)定[10]得到;分辨率M×N由攝像機(jī)參數(shù)得到;攝像機(jī)初始路面俯仰角β和安裝高度h由安裝測(cè)量得到;車輛高度H根據(jù)行人身高[11]及常見(jiàn)車輛高度[12-13],選取合適值1 800 mm,高于中國(guó)95%成年人身高和約87%的常見(jiàn)車輛高度;根據(jù)某車輛檢測(cè)算法,最大檢測(cè)距離取70 000 mm,考慮本車車頭長(zhǎng)度及安全車距,最小檢測(cè)距離取4 000 mm。
將這些參數(shù)代入式(8)得到初始ROI(其中坐標(biāo)值已取整):K1(320,199)、K2(639,115)和K3(0,115)。再利用當(dāng)前幀檢測(cè)到的車道線消失點(diǎn)M′1(uM2,vM2)及其由式(9)推導(dǎo)的實(shí)時(shí)俯仰角β′根據(jù)式(10)更新下一幀ROI。
實(shí)驗(yàn)結(jié)果如圖8所示,紅色虛線框內(nèi)為固定比例/區(qū)域分割,藍(lán)色虛線框內(nèi)為初始ROI,綠色實(shí)線及紅色實(shí)線框中心為上一幀檢測(cè)到的車道線及其消失點(diǎn),藍(lán)色實(shí)線框內(nèi)為更新后的ROI。與固定比例/區(qū)域分割相比,本算法在上坡路面和下坡路面時(shí)能顯著減少目標(biāo)的不完整分割,保留更多的目標(biāo)信息,有利于提高檢測(cè)的準(zhǔn)確性;而在水平路面上,能在充分保留目標(biāo)信息的同時(shí)避免不必要的分割區(qū)域浪費(fèi),減少了約16%的處理像素,有利于提高檢測(cè)的實(shí)時(shí)性。但由于ROI更新依賴于車道線檢測(cè),當(dāng)車道線檢測(cè)精度不高時(shí),ROI更新分割的準(zhǔn)確度也會(huì)受到影響。
圖8 實(shí)驗(yàn)結(jié)果及對(duì)比Fig.8 Experimental results and comparison
(1) 針對(duì)固定比例/區(qū)域的車輛及行人檢測(cè)ROI圖像分割適應(yīng)性低的問(wèn)題,提出一種基于消失點(diǎn)和車輛高度的ROI自適應(yīng)分割算法。
(2) 利用消失點(diǎn)避免分割區(qū)域浪費(fèi),綜合車輛高度及檢測(cè)距離減少目標(biāo)不完整分割,并根據(jù)當(dāng)前幀的車道消失點(diǎn)及其推導(dǎo)的實(shí)時(shí)俯仰角實(shí)時(shí)更新下一幀ROI。
(3) 實(shí)驗(yàn)結(jié)果表明,該算法速度快,魯棒性好,在不同情況下都能做到ROI的快速精確分割,有利于后續(xù)檢測(cè)的實(shí)時(shí)性和準(zhǔn)確性。