陳 磊,黃影平,胡 興,慈文彥
(上海理工大學 光電信息與計算機工程學院,上海 200093)
交通場景理解是智能汽車環境感知系統的基本任務.計算機視覺技術被廣泛運用于智能汽車.特別是立體視覺技術所具備的三維重建能力,十分有助于距離測量、物體檢測和場景分析等.雙目視覺技術中,深度圖的應用不僅能夠優化圖像分割[1],且在多目標檢測系統[2]中證明了其有效性.場景理解是識別所有移動和靜止的物體,從而確定車輛可能駛入的自由空間,即可通行區域.棒狀像素模型[3]是解釋交通場景的有效方法之一.通過使用雙目相機裝置,該方法能夠提取障礙物的逐列分段,稱之為“棒狀像素”.每個棒狀像素是一個矩形棒,根據其相對于相機的3D位置而定義,并且直立于地面上,具有一定的高度.自由空間是圖像中地平面的一個子集,而棒狀像素的存在能夠限定這個位置的自由空間邊界.棒狀像素模型可以實現對各種障礙物的通用檢測,大幅降低數據量,為后續處理提供有效的計算結果,是一種緊湊有效3D交通場景表達方法.
Badino等人[3]于2009年首次提出棒狀像素模型.其根據立體圖像計算隨機占據柵格圖,獲取地平面的自由空間和棒狀像素的基點.通過預定義的距離知識將視差圖中的前景和背景進行分割,并采用依賴于灰度信息的代價函數來確定前景和背景之間的邊界,得到棒狀像素的高度.自此,棒狀像素模型的計算方法被廣泛研究.Pfeiffer等人[4]使用6D-Vision卡爾曼濾波器來估計每個棒狀像素的橫向和縱向運動,將原始靜態棒狀像素模型擴展到動態棒狀像素模型,幫助檢測移動障礙物.基于顏色提示的像素級語義分割和場景的幾何特征,增強了棒狀像素的估計[5].而卷積神經網絡的利用[6]進一步擴展了該方法.Benenson等人[7]和Wieszok等人[8]提出的方法不需要計算深度圖,在不獲取視差值的條件下,構建尺寸為1個像素的窗口計算代價量,作為RGB顏色通道上的絕對差值之和,直接由立體圖像獲取棒狀像素模型.Benenson等人[7]通過代價量得出平滑約束和先驗知識,從而提取棒狀像素.Wieszok等人[8]擴展了這一思想,利用顏色模型和代價函數改進地平面和棒狀像素的估計.Saleem等人[9]使用共線的三目視覺系統構建棒狀像素模型.結合多圖融合技術,計算視差空間中的傳遞性誤差,從而提高三張配對的立體圖像的視差值一致性,獲得魯棒的棒狀像素結果.
棒狀像素模型在一些應用中使用并證明了其有效性.Enzweiler等人[10]將3D棒狀像素與目標分類的先驗知識進行匹配,實現基于棒狀像素的目標辨識.Schneider等人[11]通過深度學習的場景標記方法將深度棒狀像素擴展為語義級棒狀像素,從而為每個像素提供一個對象類標簽.Cordts等人[12]將棒狀像素與圖像語義分割相結合,進一步增強場景理解.Erbs等人[13]使用動態棒狀像素模型來檢測和跟蹤交通場景中的運動物體.通過在線顏色建模來分割道路和障礙物,可以進一步增強棒狀像素模型的場景表示[14,15].
本文擴展了Badino[3]的工作,利用U視差的性質提出了一種新穎簡單的棒狀像素估計方法.該方法可以規避某些區域的視差模糊及丟失帶來的誤差,準確標記出場景中的移動或靜止的前景障礙物平面,獲取多種地形環境下的自由空間,有效表達交通場景.
雙目立體視覺是從兩個不同的位置觀察物體,從而提取物體的三維信息.圖1顯示了立體相機的安裝方法和相機坐標系與世界坐標系之間的關系.兩個相同的相機校正后保持光軸平行安裝在車輛上,它們的光心是Ol和Or,水平軸平行于地平面.兩個相機坐標系分別是(Xl,Yl,Zl)和(Xr,Yr,Zr),坐標原點位于圖像的中心.在此模型中,世界坐標系(X,Y,Z)設置與左相機的坐標系重合.

圖1 理想的雙目立體視覺模型Fig.1 Model of an ideal binocular stereovision
對于場景中的點P(X,Y,Z),將其投影到左圖和右圖以分別獲得Pl(Xl,Yl)和Pr(Xr,Yr).根據幾何關系,可以得到式(1):
(1)
那么P點的世界坐標可以計算出來:
(2)
其中,f是相機焦距,b是基線距離.d是視差值,由以下等式表示:
d=xl-xr
(3)
因此,只要計算圖像中的每個點的視差值,便可以獲得場景的三維信息.通過立體匹配算法可以獲得濃密視差圖,存儲實際場景中每個點的視差值,便可將圖像中所有視差非零點的三維信息恢復到世界坐標系中.
Labayrade首次提出V視差[16]的概念,U視差的原理與之類似.濃密視差圖由立體圖像對獲得,將其表示為δ(u,v),其中1≤u≤Ncol,1≤v≤Nrow.設H是圖像變量δ的函數,使得δu=H(δ),將δu(u,d)稱為“U視差圖”.H在給定圖像的列上累計相同視差的點,對于圖像列u,δu(u,d)中點的值是該列上具有相同視差d的點的數量,即:
δu(u,d)=card{u:1≤u≤Ncol∩INT(δ(u,v))=d}
(4)
其中,0≤d≤dmax,表示視差圖δ(u,v)中量化后的視差范圍;INT是取整函數.δu(u,d)的橫坐標u與δ(u,v)的橫坐標是同一個變量,δu(u,d)的縱坐標是視差d.
在實際場景中,可以將相機前方的障礙物平面簡化為兩類:垂直正平面和垂直側平面.如圖2所示,左相機坐標系(Xl,Yl,Zl)和右相機坐標系(Xr,Yr,Zr)構成雙目立體視覺系統.為了簡化問題,將世界坐標系的原點設置在兩個相機坐標系原點的中心,其Z軸平行于水平面,θ是相機光軸與水平面的俯仰角.相機拍照成像時,圖像中點的位置由圖像坐標系(u,v)描述.相機光心投影在圖像平面的中心點,坐標是(u0,v0).
根據Hu[17]等人的工作,此模型下世界坐標系與圖像坐標系的轉換等式為:
(5)
根據式(3)可以推導出視差的計算等式:
(6)
在世界坐標系中,垂直正平面可以描述為:
Z=p
(7)
當θ很小近似于0°時,可認為該面上每個點到相機的距離均為p,結合U視差原理與式(6)可推導出該障礙物平面在U視差圖中的方程:
(8)
式(8)表明垂直正平面在U視差圖中呈現為一條水平直線.
世界坐標系中得垂直側平面可以描述為:
Z=ρX+τ
(9)
結合式(5)(6),可推導出對應于立體圖片中左圖的方程:
(10)
當俯仰角θ足夠小時,等式(10)可簡化成:
(11)
上式表明垂直側平面在U視差圖中近似表現為一條斜線.

圖2 世界坐標系下的兩種障礙物平面Fig.2 Two planes of obstacles in world coordinate system
當棒狀像素模型被用于描述立體場景時,各個方向上最靠近自車的障礙物被標記為感興趣的對象,即棒狀像素,其背后的物體被視為背景.自由空間是地面上不包含任何障礙物的區域,即自車可以駛入的區域.一旦某位置的棒狀像素被確定,它的存在即可排除該位置的自由空間,因此,自由空間與棒狀像素的計算是密切相關的.對于構建棒狀像素模型,其主要任務是將棒狀像素從地面和背景中區分出來,并確定它們的高度和距離.本文提出的棒狀像素估計方法利用U視差圖的屬性來完成這些任務.
在駕駛環境下,場景中的對象可以被分為兩類.第一類是路面,可以抽象為水平面;第二類是近似垂直于地面的障礙物,包括車輛、行人、樹木和路邊建筑,可以抽象為垂直平面.這些平面在U視差圖中具有不同的表現形式.
對于水平平面,由于水平面(道路平面)的覆蓋區域由近至遠且范圍較大,所以它的視差累積點被分散,即δu(u,d)很小.因此,水平面將離散分布在U視差圖中.
對于兩種垂直平面,已經在2.2節中作了具體推導.實際場景中,垂直正平面包括汽車正車身、行人和樹木等對象,路邊建筑、墻面、汽車側車身等則被認為是垂直側平面.由于垂直正平面上的點到我方車輛的距離近似相等,即U視差圖中該平面的對應點具有相同的視差,因此它在U視差圖中顯示為水平線段,并且線段的長度表示平面寬度.類似地,U視差圖中垂直側平面對應點的視差值是沿橫軸連續變化的,因此它在U視差圖中顯示為近似斜線段.障礙物的距離取決于其視差,視差越大,障礙物越近.通過在U視差圖中檢測這些線,障礙物的位置及尺寸能夠被確定.
此處以一個典型的交通場景作為示例,圖3(a)是這個場景的左圖.本文使用Geiger提出的立體匹配算法[18]來生成濃密視差圖,該算法可以實現高分辨率圖像的快速匹配,并且無需全局優化即可產生精確的濃密重建結果.結果如圖3(b)所示.最終生成的U視差圖如圖3(c)所示,其中3D障礙物呈現為水平或傾斜線段,路面則分散在圖中且不能被清楚地觀察到.
由于地面相關點具有小的灰度并且離散地分布在U視差圖中,因此可以通過設置合適的灰度閾值將它們去除,圖4(a)是去除了地面相關點并且二值化后的U視差圖.將圖4(a)與圖3(c)進行比較,可以觀察到只有障礙物信息被保存下來,呈現為水平線段和斜線段.另外,該步驟消除了一些具有偏差視差的離散點,從而使距離估計更準確.

圖3 U視差圖的構建Fig.3 Construction of U-disparity map
圖4(a)中點群的位置反映了它與相機的距離,位置越低則距離越近.為了去除背景障礙物,可以簡單地保留較低點并丟棄同一列上的較高點.然而,在實際交通場景中,某些障礙物可能含有缺乏紋理的區域,導致濃密視差圖中部分點的視差丟失.那么,圖4(a)中對應于該障礙物的線段則會不連續或中斷.因此,不在圖4(a)中進行背景剔除,而是通過以下轉換來生成壓縮的U視差圖,從而規避這一影響.

圖4 地面點與背景點的剔除Fig.4 Elimination of ground points and background points
圖4(a)被分成多個寬度為w的小矩形,將U視差圖橫向壓縮成圖4(b).壓縮的U視差圖可以寫成式(12)的形式:
(12)

然后,對圖4(b)中每列的點從下到上進行遍歷.當連續搜索到具有非零值的點時,將其視為前景對象并保留下來,同時將其上方的點作為背景點丟棄.結果如圖4(c)所示.
根據式(13)的轉換關系,將去除背景后的壓縮U視差圖重新轉換為U視差圖:
(13)
式中Q是重新生成的U 視差圖,s和t分別是Q的橫坐標和縱坐標.T是去除背景的壓縮U視差圖,即圖4(c).重新生成的U視差圖如圖4(d)所示.
圖4(d)所示的U視差圖僅包含前景障礙物的相關點,而其他點均被移除.因此,將圖4(d)投影回濃密視差圖能夠提取前景障礙物的基點和頂點.
U視差圖中的任意一個點都是從對應的視差圖中的一個或多個點計算得到的,我們將視差圖中的這些點稱為“貢獻點”.反過來,視差圖中的任意一個點均對應于U視差圖中的唯一點.該映射關系可以在圖5中描述為三維到三維的空間映射.在圖5中,I1是三維U視差圖,I2是與之對應的三維視差圖.I1和I2具有相同的橫坐標(U).I1中的垂直坐標(D)是視差值,而I2中的垂直坐標(V)是圖像行數.I1中的第三坐標(N)表示同一列中具有相同視差的點的數量,而I2中的第三坐標(D)與I1中的縱坐標相同.橫坐標和垂直坐標定義位置,而第三坐標表示圖像的灰度值.I1中的坐標系(U,D,N)可以描述為以下函數:
N=Φ(U,D)
(14)
I2中的坐標系(U,V,D)可以表示為:
D=Δ(U,V)
(15)

(16)
在I2的第a列中搜索視差為b的點,便可以確定未知數{j1,j2,…,js}.因此,可以獲得貢獻點P*1(a,j1,b),P*2(a,j2,b),…,P*s(a,jc,b).對應地,視差圖中的點P1(a,j1),P2(a,j2),…,Pc(a,jc)可以被確定.
將圖4(d)映射到濃密視差圖后得到圖6,可以注意到部分障礙物點群內部含有少量空洞.這是由于將點群從U視差空間映射到視差圖時,視差的匹配搜索使得一些視差錯誤點無法被匹配到,從而被剔除,保證了視差的準確性,有利于后續步驟的距離估計.

圖5 U視差圖到視差圖的映射Fig.5 Mapping from U-disparity map to disparity map
圖6中地面相關點和背景相關點全部被消除,僅保留前景障礙物,可以直接在圖中提取基點和背景邊界.如圖7所示是原始場景圖中標記出的前景障礙物基點和頂點.

圖6 視差圖中被投影的貢獻點Fig.6 Projected contribution points in the disparity map
當圖像中每列的基點和頂點被計算出來,就可以直接提取棒狀像素.如果棒狀像素的預定義寬度大于一列,則將前一步驟中獲得的多列高度值融合起來,得到棒狀像素的高度.


圖7 基點與頂點Fig.7 Base and top-points
棒狀像素的距離根據其中所有貢獻點的主要距離來進行估計.由于在構建棒狀像素模型時,偏差點已經被去除,因此每個貢獻點均具有準確的視差值.圖8示出了棒狀像素以及對應的自由空間,棒狀像素的灰度代表距離信息.

圖8 棒狀像素模型Fig.8 Stixel World
算法在配置1.6GHz的四核英特爾i5處理器和8GB內存的計算機中運行.從KITTI公共數據集[19]中選擇City、Road、Residential和Campus等場景類別的圖像序列作為實驗數據,圖像分辨率為1240×375像素.取棒狀像素寬度為10個像素,得到棒狀像素和自由空間的結果如圖9所示,棒狀像素的灰度值呈現了距離信息.

圖9 不同場景下實驗結果Fig.9 Experimental results in different scenarios
本文的重點是棒狀像素邊界的準確提取而不是距離測量,距離估計的準確性取決于立體匹配算法[18].將檢測到的基點、頂點與手動標記的真實值進行比較,通過棒狀像素的位置誤差來評估算法.每幀圖像的基點均方根誤差以及頂點均方根誤差分別通過式(17)(18)進行計算:
(17)
(18)
其中,Nstx表示圖像中棒狀像素的數量,Bi和Ti分別是檢測得到的基點位置和頂點位置,bi和ti分別表示基點位置和頂點位置的真實值,基點和頂點的位置值以像素為單位.從不同類別的場景中各選擇100幀圖像,對本文算法和傳統算法[3]分別進行實驗.根據式(17)、(18)計算每幀圖像的基點誤差和頂點誤差,從而得出不同場景下的平均誤差,以此來比較兩種算法準確性.
在表1和表2中,分別展示了各個圖片序列的平均基點誤差和平均頂點誤差.比較兩種算法可見,本文的算法較傳統算法的在基點與頂點的提取精度上有提高.
表1 與傳統方法的基點誤差比較
Table 1 Comparison of base-point error

圖片序列基點誤差(像素)本文算法傳統算法City2.84.2Road6.37.7Residential2.93.1Campus4.87.4
在實際應用中,算法的計算效率也是衡量其性能的重要因素之一.基于立體視覺的棒狀像素提取方法中,立體匹配是其中的一個關鍵環節.不同的立體匹配算法,其準確度和計算耗時有較大差異.由于本文方法與傳統方法采用的的立體匹配算法不同,而本文與傳統方法的主要不同在于棒狀像素的提取方法不同,所以實驗僅對棒狀像素的計算時間進行比較,來對比兩種方法的運行效率.
表2 與傳統方法的頂點誤差比較
Table 2 Comparison of top-point error

圖片序列頂點誤差(像素)本文算法傳統算法City5.08.7Road5.43.2Residential6.67.1Campus6.75.5

圖10 棒狀像素計算時間比較Fig.10 Comparison of stixel computation time
在實驗中,對棒狀像素取不同的寬度,統計平均的計算時間,結果如圖10所示.取棒狀像素寬度為12個像素時,兩種算法運行時間比較接近;隨著棒狀像素寬度的減小,傳統算法的計算時間呈遞增趨勢,而本文算法的計算時間則保持穩定.考慮到實際應用中的精度要求,棒狀像素的寬度一般不超過10個像素.由此可看出,本文提出的算法相較傳統算法減少了計算時間,提高了運行效率.
構建棒狀像素的傳統算法與本文算法均基于深度信息,Benenson等人[7]提出的算法直接對立體圖片進行計算,不需要獲取視差圖.將本方法的結果與該算法的結果進行比較.采用文獻[7]的評估方法:對于一個給定的像素偏離誤差,統計圖像中低于該誤差的棒狀像素的數量占比,作為得分來評估算法,高分值說明性能好.圖11給出了棒狀像素的基點及頂點的比較結果.如圖11(a)所示,本文算法提取基點的精度較Benenson算法有一定的提升;由圖11(b)可見,當給定的誤差小于20像素時,本文算法提取頂點具有優勢;大于該值時,Benenson算法提取頂點稍微好一些.

圖11 與Benenson方法的棒狀像素精度比較Fig.11 Comparison of stixel accuracy with benenson method
1)對于1240×375分辨率的圖像,單幀圖像的棒狀像素均方根誤差在10個像素以內,較傳統算法和Benenson算法都有一定的提高.
同時,算法在計算速度方面有所提升.由于本算法對基點和頂點進行整體投影和提取,棒狀像素個數的變化并不影響計算效率.當棒狀像素寬度為5、7、10個像素時,相比傳統算法,棒狀像素的計算時間分別減少了59%、40%、22%.
2)本算法的適用場合并不局限于平坦道路.圖9(b)中展示了輕度上坡路面的棒狀像素提取結果,圖9(c)顯示了坑洼路面的計算結果.從實驗可以看出,本算法能夠識別前景障礙物并為場景生成準確的棒狀像素模型.
3)場景圖像的像素點達到105數量級.計算并定義每個像素點,對系統的計算能力是一個巨大的挑戰.在本方法中,只需要少量的包含距離和位置信息的棒狀像素便能夠表達交通場景,大幅減少了計算開銷,簡化了場景的分析過程.
本文利用U視差的性質,提出了一種新穎簡單的棒狀像素估計方法.U視差圖中障礙物相關點呈現為水平或傾斜線段,而地面相關點分散地分布在U視差圖中.通過灰度閾值化處理消除地面相關點,根據距離信息去除背景障礙物.得到的U視差圖僅包含前景障礙物相關點,將其投影回視差圖進行匹配,從而確定前景障礙物的基點和頂點,提取棒狀像素.實驗結果表明,該方法可以有效地構建多種場景的棒狀像素模型.
與現有的棒狀像素估計算法相比,這項工作的貢獻可以總結如下:
1)現有算法[3]采用基于灰度的代價函數并結合預定義的距離閾值來分割前景和背景.本文提出的方法直接在U視差圖中去除背景和地面相關點,將所得的U視差圖重新投影回視差圖來提取圖像每列的基點和頂點.
2)提出的方法不需要對地平面進行建模,因此,它不受地形的約束.無論是在傾斜路面或是在坑洼路面上,算法都能正常工作.
3)立體匹配算法的局限性可能會導致視差圖存在視差錯誤或丟失的情況.本文的方法中,地面相關點的去除以及壓縮U視差圖中對數據的模塊化處理,有利于規避這一誤差.
4)算法在保證低誤差的同時,提升了運行速度.
本算法準確性受到視差圖精度的局限,且大部分計算時間消耗于視差圖的生成.在今后工作中,開發出高精度、高實時性的立體匹配算法,是進一步提升性能的關鍵.