謝迎娟,許海燕,李麗媛,張學(xué)武
1(河海大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 常州 213022)2(江蘇省輸配電裝備技術(shù)重點(diǎn)實(shí)驗(yàn)室,江蘇 常州 213000)
相比于傳統(tǒng)的環(huán)視圖像,立體環(huán)視圖像可以使人在視點(diǎn)處從立體和360°范圍內(nèi)觀看場景,包含方向、距離、位置等空間結(jié)構(gòu)信息,對空間定向、尋路、形成地圖具有重要意[1].立體環(huán)視圖像具備的高交互及良好的場景渲染效果等優(yōu)點(diǎn),在不降低圖像分辨率的基礎(chǔ)上,可以增大視場角,改善視覺體驗(yàn),實(shí)現(xiàn)虛擬現(xiàn)實(shí)功能,便于后續(xù)圖像的分析及處理,因此在路徑引導(dǎo)[2]、輔助駕駛[3]、虛擬現(xiàn)實(shí)領(lǐng)域[4,5]等場合都有著重要的研究意義及實(shí)際應(yīng)用價(jià)值.
目前國內(nèi)外基于實(shí)景拍攝完成立體環(huán)視圖像主要是運(yùn)用三維實(shí)景技術(shù)實(shí)現(xiàn),利用攝像頭對實(shí)景的多角度拍攝,形成環(huán)視全景.形成的環(huán)視全景主要分為立方體全景圖像、球面全景圖像和圓柱面全景圖像[6]等三類.其中立方體全景圖由6幅廣角為90°的畫面組成,重采樣區(qū)域邊界為多邊形.球面全景圖的視點(diǎn)處于中心,在360°場景描述上有優(yōu)勢,但在兩極會有較明顯的畸變.柱面全景圖便于生成任意視線方向的場景,但在垂直方向的視野較小,對垂直方向的視域有一定的限制.
為了增加環(huán)視圖像的垂直視角以及減小圖像的變形,學(xué)者提出諸多立體環(huán)視圖像生成算法及改進(jìn)方法,大致可以分為以下幾類:1) 將多路攝像機(jī)獲取的圖像進(jìn)行處理,形成二維平面全景圖像,然后將二維圖像映射到建立好的三維模型中進(jìn)行顯示:Zhang C.等[7]人用多個(gè)相機(jī)獲得多組圖像,基于相似三角形和結(jié)構(gòu)相似性,生成具有適當(dāng)景深的柱面立體全景圖像,可以不間斷地在瞬間捕捉全景立體圖像用于導(dǎo)航、視頻監(jiān)控、虛擬現(xiàn)實(shí)等領(lǐng)域.傅子秋等[8]對多個(gè)相機(jī)獲取的重疊圖像,利用棋盤格標(biāo)定板進(jìn)行快速相機(jī)標(biāo)定,再由標(biāo)定參數(shù)進(jìn)行配準(zhǔn)完成圖像拼接,獲得高質(zhì)量柱面圖像.何林飛等[9]將雙目魚眼圖像映射到空間單位球面上,利用配對特征點(diǎn)和旋轉(zhuǎn),獲得球面全景圖像.2) 以球面為模型,對采集的圖像進(jìn)行定位及調(diào)整產(chǎn)生全景效果:Lin H.S.等[10]根據(jù)折反射光學(xué)全景成像,通過反等矩形圖像,全景投影模型,獲取半球視場空間的真實(shí)三維信息,實(shí)現(xiàn)全景立體成像,減少對象邊界上的偽影,用于虛擬現(xiàn)實(shí)中.Zhang J.D.[11]基于掃描線思想和雙線性內(nèi)插技術(shù),改進(jìn)了球面透視投影算法,以校正魚眼圖像.然后利用逆透視投影映射來獲得良好視覺體驗(yàn)的立體圖像,實(shí)現(xiàn)車輛全景圖像生成.3) 借助其他設(shè)備,實(shí)現(xiàn)立體視覺全景:郭偉青等[12]對單目雙曲鏡面成像圖像獲取切面掃描圖像,對被測物體表面的采樣點(diǎn)數(shù)據(jù)進(jìn)行曲面柔性擬合,重構(gòu)立體幾何模型,應(yīng)用于管道隧道地下交通設(shè)施的檢測中.Liu Z.等[13]同時(shí)使用線掃描相機(jī)和幀相機(jī),捕捉由直線激光照射的物體圖像,使用立體視覺測量實(shí)現(xiàn)3D重建模型,用于產(chǎn)品表面缺陷檢測系統(tǒng)中.
現(xiàn)有方法在二維圖像到三維空間映射模型的建模、立體環(huán)視圖像拼接準(zhǔn)確度以及算法復(fù)雜度上并沒有一個(gè)統(tǒng)一的最優(yōu)方案,每種方法在三維曲面映射、圖像拼接、圖像校正[14,15]等方面的適應(yīng)性不同,應(yīng)用場景也不盡相同.本文綜合考慮立體環(huán)視圖像生成算法的適用性與時(shí)間復(fù)雜度,提出了一種基于物體坐標(biāo)系曲面投影的球面立體環(huán)視圖像生成算法,對圖像進(jìn)行基于物體坐標(biāo)系的紋理映射;提出基于角度信息的加權(quán)平均融合算法,消除疊影及邊圖像跳變;對拼接后的圖像進(jìn)行亮度和色度校正,消除光照不均、顏色差異的現(xiàn)象.并將本算法應(yīng)用于車載立體環(huán)視圖像的生成以驗(yàn)證算法的有效性.結(jié)果表明,通過本文方法可解決三維空間模型建立;立體環(huán)視圖像非自然過渡,圖像邊緣模糊及物體變形;以及亮度跳躍等問題.
一種基于物體坐標(biāo)系曲面投影的立體環(huán)視圖像生成算法,其算法流程如圖1所示:根據(jù)實(shí)際應(yīng)用場合建立合適的三維模型,利用魚眼圖像畸變矯正算法及單目相機(jī)位姿測量算法對圖像進(jìn)行基于物體坐標(biāo)系的紋理映射,將三維模型劃分為融合、非融合區(qū)域,將原始圖像映射到非融合區(qū)域,對于拼接融合區(qū)域,結(jié)合模型特點(diǎn),采用基于角度信息的加權(quán)平均融合算法,對拼接后的圖像進(jìn)行顏色校正.
圖1 基于物體坐標(biāo)系曲面投影的立體環(huán)視圖像生成算法流程Fig.1 Flow chart of stereoscopic panoramic image algorithm
為了顯示物體周圍的環(huán)境,生成立體環(huán)視圖像,需要以三維模型為載體.本文以物體底面中心為原點(diǎn)建立物體坐標(biāo)系,將相機(jī)位姿特征點(diǎn)位于Z=0的平面上,減少Z方向上的誤差,從而提高圖像映射的準(zhǔn)確性.
二維紋理坐標(biāo)系的定義如圖2所示,定義圖像左下角為(0,0),沿坐標(biāo)歸一化后的圖像水平方向和垂直方向定義二維紋理坐標(biāo)系的s軸和t軸,其中,紋理坐標(biāo)限定在區(qū)間[0,1]內(nèi).以包圍物體的三維曲面模型為中間映射媒介,根據(jù)計(jì)算機(jī)視覺中物體的成像關(guān)系,得到三維模型空間點(diǎn)所代表的世界坐標(biāo)與魚眼攝像機(jī)采集圖像所代表的紋理坐標(biāo)的一一映射關(guān)系.
紋理映射過程表示為:
(1)
圖2 紋理坐標(biāo)系Fig.2 Texture coordinate system
其中,(XW,YW,ZW)是三維模型任一點(diǎn)所代表的世界坐標(biāo),(s,t)是該點(diǎn)所對應(yīng)的二維紋理坐標(biāo).以物體坐標(biāo)系為基準(zhǔn),在物體周圍放置特征點(diǎn),用于計(jì)算物體上各個(gè)攝像頭的位姿,則角點(diǎn)的世界坐標(biāo)表示為(Xi,Yi,0),其中i=0,…,n,n表示特征點(diǎn)的個(gè)數(shù).根據(jù)相機(jī)成像模型及特征點(diǎn)在各個(gè)攝像頭中的圖像坐標(biāo)得到相機(jī)位姿參數(shù),包括旋轉(zhuǎn)矩陣R及平移向量T.
根據(jù)計(jì)算得到的旋轉(zhuǎn)矩陣R及平移向量T得到三維空間點(diǎn)在各個(gè)攝像機(jī)坐標(biāo)系中的坐標(biāo)(XC,YC,ZC)及感光面坐標(biāo)(Xp,Yp)分別為:
(2)
(3)
采用逆向映射法,由魚眼圖像的畸變矯正算法獲得空間點(diǎn)對應(yīng)的原始魚眼圖像坐標(biāo)(u,v)為:
(4)
根據(jù)式(5)將魚眼圖像坐標(biāo)歸一化,得到空間點(diǎn)對應(yīng)的二維紋理坐標(biāo)(s,t):
(5)
式中width、height分別是魚眼圖像的寬、高.
在獲得各個(gè)頂點(diǎn)代表的紋理坐標(biāo)后,如圖2所示,根據(jù)式(6)可以插值計(jì)算得到空間內(nèi)任一點(diǎn)的紋理坐標(biāo)p為:
p=a(s0+t0)+b(s1+t1)+c(s2+t2)
(6)
其中,(s0,t0)、(s1,t1)、(s2,t2)別是空間中三角形P0、P1、P2對應(yīng)的紋理坐標(biāo),a、b、c都為正數(shù),且滿足a+b+c=1,P=aP0+bP1+cP2.
使用OpenGL進(jìn)行紋理對象管理,將三維模型各個(gè)頂點(diǎn)對應(yīng)的紋理坐標(biāo)進(jìn)行存儲.基于OpenGL進(jìn)行繪制操作,對實(shí)時(shí)獲取的圖像進(jìn)行紋理映射,根據(jù)顯示命令,配置統(tǒng)一變量,繪制圖元,完成映射過程.
在兩個(gè)攝像頭視域范圍的交叉區(qū)域中,同一個(gè)點(diǎn)P可投影到兩個(gè)攝像頭圖像中的點(diǎn)p1和p2,一般情況下,p1和p2點(diǎn)的值并不相同.直接融合p1和p2點(diǎn)的值,會導(dǎo)致較嚴(yán)重的模糊或疊影,導(dǎo)致拼接位置處不同的相機(jī)拍攝的圖像會發(fā)生明顯的跳變.將兩個(gè)攝像頭視域范圍的交叉區(qū)域定義為融合區(qū)域,非交叉區(qū)域定義為非融合區(qū)域.
對于立體環(huán)視圖像的圖像融合,結(jié)合融合區(qū)域形狀特征,本文提出基于角度信息的加權(quán)平均融合算法,用于消除拼接產(chǎn)生的疊影或者模糊現(xiàn)象.各個(gè)頂點(diǎn)的紋理坐標(biāo)確定方法如圖3所示.在融合區(qū)域,三維模型中的頂點(diǎn)代表實(shí)際空間坐標(biāo),經(jīng)過紋理映射后,在兩個(gè)相鄰攝像機(jī)采集的圖像中對應(yīng)兩個(gè)紋理坐標(biāo),進(jìn)行圖像融合時(shí),確定融合后模型各個(gè)頂點(diǎn)的紋理坐標(biāo),用來表明從紋理圖像的哪個(gè)部分采樣,其余片段進(jìn)行片段插值.
圖3 結(jié)合角度信息的圖像融合算法Fig.3 Image fusion algorithm based on angle information
其中,v1(x1,y1,z1)、v2(x2,y2,z2)分別是三維模型位于融合區(qū)域邊界的兩個(gè)頂點(diǎn),對應(yīng)的紋理坐標(biāo)分別是vt1、vt2,θ1、θ2分別是融合區(qū)域邊界1和融合區(qū)域邊界2與基準(zhǔn)線的角度,則:
(7)
(8)
因此,在拼接區(qū)域,采用基于融合區(qū)域角度的加權(quán)平均法進(jìn)行像素級的融合,可以達(dá)到消除拼接縫的目的.
各攝像頭原始圖像通常存在亮度差異和色度差異,需要對圖像進(jìn)行顏色校正.對于融合后構(gòu)建的立體環(huán)境圖像存在的亮度差異,進(jìn)行光照均一化處理,減弱不同攝像頭拍攝的圖像融合后在拼接區(qū)域的亮度跳躍現(xiàn)象.本文采用基于圖像亮度平衡增益的顏色校正方法.算法的具體過程為,首先將采集到單幅圖像轉(zhuǎn)換為YUV顏色編碼方式,將圖像的亮度信息(Y)與色度信息(UV)分離.假設(shè)圖像的寬為w,高為h,對采集到的圖像按照設(shè)置的步長s進(jìn)行采樣,采樣點(diǎn)個(gè)數(shù)為:
(9)
每幅采樣圖像的亮度均值為:
(10)
若對n幅圖像進(jìn)行拼接,圖像整體的亮度均值為:
(11)
利用卡爾曼濾波器進(jìn)行遞推計(jì)算,將預(yù)測值設(shè)為0,使用當(dāng)前測量值BImean更新卡爾曼濾波器的狀態(tài)值,獲得濾波后的亮度Br,則第j幅圖像的亮度增益為:
(12)
式中,j=1,…,n.最后將獲得的亮度平衡增益設(shè)置為紋理增益,對圖像進(jìn)行亮度校正,以達(dá)到光照均一化目的.
同樣的,對融合后的環(huán)視圖像存在的色度差異進(jìn)行校正.計(jì)算每幅采樣圖像的在U、V通道的均值和標(biāo)準(zhǔn)差:
(13)
若對n幅圖像進(jìn)行拼接,圖像整體的色度均值為:
(14)
從融合圖像中移去均值:
(15)
對每幅圖像色度進(jìn)行校正,按照標(biāo)準(zhǔn)差的比值縮放,再加入均值獲得合成圖像的輸出色度:
(16)
為實(shí)現(xiàn)立體環(huán)視,需要以三維模型為載體顯示物體周圍的環(huán)境.根據(jù)不同的應(yīng)用場景,本文構(gòu)建了4種不同的三維模型如圖4所示.其中模型1以圓形為底面,以弧面為連接面及環(huán)形面,成碗狀形態(tài);模型2以圓角矩形為底面,弧面為連接面,柱面為環(huán)形面;模型3的組成與模型一相同,但是構(gòu)成模型的頂點(diǎn)數(shù)量不同,底面的寬度也不同;模型4以平面為底面,弧面為連接面及環(huán)形面,連接面與環(huán)形面的弧度都較大.
圖4 4種不同的三維模型Fig.4 Four types 3D models
以視點(diǎn)中心為原點(diǎn)建立世界坐標(biāo)系,獲取視點(diǎn)中心周圍標(biāo)定布上角點(diǎn)的世界坐標(biāo),基于物體坐標(biāo)系進(jìn)行紋理映射.對廣角魚眼攝像頭獲取的圖像進(jìn)行處理,得到角點(diǎn)的圖像坐標(biāo),根據(jù)鏡頭的角度進(jìn)行垂直性約束,基于經(jīng)緯映射的非線性等距投影矯正法和逆向映射法將目標(biāo)圖像投影到球面模型上,對魚眼圖像進(jìn)行矯正,計(jì)算出各個(gè)攝像頭相對于建立的世界坐標(biāo)系的旋轉(zhuǎn)平移關(guān)系,然后根據(jù)基于物體坐標(biāo)系的紋理映射算法,將4個(gè)廣角魚眼攝像頭拍攝的圖像映射到三維模型中,實(shí)現(xiàn)初步立體圖像.
為了驗(yàn)證本文立體環(huán)視圖像生成算法的效果,將算法應(yīng)用于真實(shí)車輛立體環(huán)視圖像的生成,實(shí)現(xiàn)車輛周圍環(huán)境的全景圖,并以立體形式展現(xiàn),以驗(yàn)證算法的可行性、實(shí)用性及大尺寸視域下算法的可靠性.
實(shí)驗(yàn)硬件平臺為新科IMX,CPU型號為Freescale i.MX6 Quad,主頻為396MHz-792MHz,GPU為Vivante GC2000,軟件平臺基于Windows操作系統(tǒng),使用計(jì)算機(jī)視覺庫OpenCV及開放式圖形庫OpenGL,采用C++編程語言在visual studio 2012平臺完成開發(fā).
在真實(shí)車輛實(shí)驗(yàn)中,汽車的車長為4.45m,車寬為1.78m.通過安裝在汽車前保險(xiǎn)杠上、左右后視鏡下方、后備箱上的4個(gè)魚眼攝像頭分別實(shí)時(shí)獲取車身前、左、右、后方位的景象.攝像頭采集的4個(gè)方位的原始圖像如圖5所示.兩兩相鄰的攝像頭拍攝的圖像具有重合區(qū)域.
建立以汽車底面所在平面中心為原點(diǎn)的物體坐標(biāo)系,在以該坐標(biāo)系為基準(zhǔn)的三維空間中,根據(jù)標(biāo)定布上特征點(diǎn)的圖像坐標(biāo)與世界坐標(biāo),計(jì)算4個(gè)攝像頭的外參,如表1所示,攝像頭外參包括了旋轉(zhuǎn)矩陣及平移矩陣,其中,旋轉(zhuǎn)矩陣分解為攝像頭坐標(biāo)軸繞世界坐標(biāo)系的X軸、Y軸、Z軸方向上的旋轉(zhuǎn)角度,平移矩陣表示攝像頭在世界坐標(biāo)系中的位置,從表1中可以看出,計(jì)算值與測量值偏差不大,但是數(shù)值更加精確.
表1 真車攝像頭外參Table 1 Real car camera external parameter
經(jīng)過基于車身坐標(biāo)系的紋理映射后,采集的四路圖像初步形成車身周圍的立體環(huán)境,但在圖像融合區(qū)域具有明顯的斷層現(xiàn)象,由于不同模型的融合區(qū)域不同,因此,拼接后的圖像出現(xiàn)斷層的區(qū)域也不同.對拼接后的圖像在圖像融合區(qū)域進(jìn)行基于角度的加權(quán)平均法后,可保持圖像內(nèi)容的連續(xù)性,過渡自然.算法復(fù)雜度不高且只針對融合區(qū)域進(jìn)行運(yùn)算,能夠滿足圖像拼接速度的要求.車身近處的標(biāo)定布拼接準(zhǔn)確.由于攝像頭安裝位置及角度的不同,受到自然光的照射強(qiáng)度不同,融合后的圖像具有明顯的分界線,對融合后的圖像進(jìn)行亮度和色度的顏色校正.顏色校正后,圖像整體亮度差異減小,不同圖像間的分界線減弱,更加符合人眼視覺習(xí)慣.經(jīng)過紋理映射、圖像融合和顏色校正后得到的真實(shí)車輛立體環(huán)視圖像如 圖6所示.在真實(shí)車輛實(shí)驗(yàn)中,圖像拼接的效果較好,沒有明顯的拼接縫及亮度不均現(xiàn)象,能夠以立體形式顯示車身周圍環(huán)境,在汽車行駛過程中,能夠給駕駛員展現(xiàn)車身周圍的實(shí)際情況,提高行車安全性.
圖6 真車立體環(huán)視圖像Fig.6 Real car stereoscopic panoramic image
針對立體環(huán)視圖像拼接準(zhǔn)確度的難點(diǎn),提出了一種基于物體坐標(biāo)系曲面投影的立體環(huán)視圖像生成算法,并以車載立體環(huán)視圖像的實(shí)現(xiàn)驗(yàn)證算法的有效性.實(shí)驗(yàn)結(jié)果表明根據(jù)對于不同尺寸視域下,本文算法建立的立體環(huán)視圖像拼接效果良好,拼接縫不明顯.但是由于從圖像紋理平面到三維模型表面是一種非線性過程,在曲率較大處紋理易產(chǎn)生變形現(xiàn)象,后續(xù)擬對該問題進(jìn)行研究.