任新宇,范 勇,李郁峰,段晶晶,劉 旭
(西南科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,四川 綿陽(yáng)621010)
多視圖建筑場(chǎng)景建模作為基于圖像的三維建模研究熱點(diǎn)之一,僅依靠相機(jī)從多個(gè)視點(diǎn)拍攝室外建筑場(chǎng)景的多幅圖像,即可恢復(fù)該場(chǎng)景建筑逼真的三維模型。該方法所需設(shè)備簡(jiǎn)單、易于操作,其重建結(jié)果被廣泛應(yīng)用于數(shù)字化城市規(guī)劃、智能場(chǎng)景監(jiān)控、機(jī)器人導(dǎo)航、虛擬現(xiàn)實(shí)等領(lǐng)域,特別是對(duì)街道等場(chǎng)景建筑體的垂立外側(cè)面(立面)的建模[1-2]。
多視圖建筑場(chǎng)景建模的一般方法是,通過(guò)特征檢測(cè)搜索稀疏的圖像特征點(diǎn),再由視圖序列的特征點(diǎn)匹配完成攝像機(jī)標(biāo)定,最終恢復(fù)這些稀疏點(diǎn)的空間三維坐標(biāo)[3]。目前,該方法應(yīng)用于立面建模時(shí),以分割后的立面為重建目標(biāo)構(gòu)建模型,但均限于特征點(diǎn)的有效覆蓋規(guī)模,所恢復(fù)的三維點(diǎn)云并不能大面積地表示視圖立面,即只完成圖像的稀疏重建。有的通過(guò)三角面片來(lái)填補(bǔ)特征點(diǎn)間沒(méi)有重建的可見(jiàn)點(diǎn),但插值誤差較大,填補(bǔ)點(diǎn)在透視層次上的遠(yuǎn)近深度正確率低[4];有的通過(guò)人工規(guī)定特殊點(diǎn)計(jì)算矯正立面,不僅特殊點(diǎn)選擇苛刻,而且構(gòu)建立面局限于單方向立面的紋理形狀矯正,如僅恢復(fù)沿街方向的建筑立面等[5-6];有的在一般方法上引入面掃描來(lái)增加稠密點(diǎn),但掃描方向計(jì)算困難,需要慣性導(dǎo)航系統(tǒng)(Inertial Navigation System,INS)、全球定位系統(tǒng)(Global Positioning System,GPS)等輔助設(shè)備,稠密點(diǎn)重建精度不高[7]。這些立面建模的方法未能充分利用三維稀疏點(diǎn)的空間結(jié)構(gòu)信息,且對(duì)多方向紋理立面的重建誤差較大,設(shè)備成本高、要求嚴(yán)格,系統(tǒng)龐大。
針對(duì)此問(wèn)題,本文提出一種利用地基投影法進(jìn)行建筑場(chǎng)景立面建模的新方法。該方法計(jì)算稀疏點(diǎn)并以此同時(shí)完成地基線(xiàn)計(jì)算和立面矯正,充分利用地基線(xiàn)方位信息完成立面生長(zhǎng)與模型融合。
地基線(xiàn)在建筑學(xué)中被用于表示建筑體的俯視輪廓和外墻體方位。本文將其引入視覺(jué)重建,主要用以計(jì)算建筑立面的地理布局,同時(shí)提供場(chǎng)景空間擴(kuò)展的方位延伸關(guān)系。計(jì)算出場(chǎng)景地基線(xiàn)與矯正立面后,為矯正立面賦予其所在地基線(xiàn)的方位信息,可快速、高效地建立場(chǎng)景建筑的立面模型。以普通數(shù)碼相機(jī)圍繞建筑場(chǎng)景拍攝的圖像序列為輸入數(shù)據(jù),要求拍攝目標(biāo)清晰可見(jiàn)。利用地基投影法的建模算法流程如圖1 所示。
圖1 利用地基投影法的建模算法流程
原始圖像序列存在不利于特征識(shí)別的噪聲,需首先進(jìn)行圖像預(yù)處理,以獲得幾何、紋理特征清晰的圖像。本文采用平滑濾波與輪廓增強(qiáng)[8]的預(yù)處理方法,圖2 為原圖添加5%高斯噪聲后的建筑場(chǎng)景圖像及其預(yù)處理結(jié)果。
圖2 圖像預(yù)處理
然后結(jié)合數(shù)學(xué)形態(tài)學(xué)的分水嶺算法對(duì)圖像進(jìn)行場(chǎng)景分割[9-10],分割出建筑主體目標(biāo)的像素區(qū)域,使研究區(qū)域縮小到分割結(jié)果圖像,提高目標(biāo)立面拾取速度與精度;最后對(duì)建筑區(qū)域檢測(cè)水平線(xiàn),根據(jù)其消失點(diǎn)分類(lèi)將建筑再分割成若干有序立面。預(yù)處理后的立面如圖3 所示。
圖3 對(duì)圖2(b)的立面分割處理
預(yù)處理后的圖像序列,用尺度不變特征轉(zhuǎn)換(Scale Invariant Feature Transform,SIFT)方法[11]檢測(cè)出稀疏的2D特征點(diǎn),這些特征點(diǎn)落在顏色或輪廓變化劇烈的位置,如棱線(xiàn)、拐角等處。通過(guò)以下步驟恢復(fù)2D 特征點(diǎn)所對(duì)應(yīng)的空間三維坐標(biāo),即3D 稀疏點(diǎn):
Step1將序列I分成若干組連續(xù)視圖,保證每組第一幅和最后一幅視圖有一半以上的重疊場(chǎng)景,并對(duì)每組內(nèi)的視圖兩兩匹配2D 特征點(diǎn),得到表征同一空間點(diǎn)的匹配點(diǎn)對(duì)。
Step2對(duì)組內(nèi)每3 幅相鄰圖像Ii,Ii+1,Ii+2的匹配點(diǎn)建立對(duì)應(yīng),計(jì)算出這3 幅視圖間表征同一空間點(diǎn)的對(duì)應(yīng)點(diǎn)對(duì)。
Step3由基于絕對(duì)二次曲面的自標(biāo)定位算法[12],利用對(duì)應(yīng)點(diǎn)對(duì),計(jì)算出Ii,Ii+1,Ii+2的攝像機(jī)參數(shù)Pi,Pi+1,Pi+2,及對(duì)應(yīng)點(diǎn)對(duì)所表征的3D 稀疏點(diǎn)S(Ii,Ii+1,Ii+2)。
Step4添加視圖Ii+3,Ii+4,對(duì)Ii+2,Ii+3,Ii+4重復(fù)Step2、Step3,計(jì)算3D 稀疏點(diǎn)S(Ii+2,Ii+3,Ii+4)。
Step5重復(fù)Step4,直到序列結(jié)束,得到輸入序列的初始3D 稀疏點(diǎn)集S(I)。
為提高精度,本文使用隨機(jī)抽樣一致(Random Sample Consensus,RANSAC)方法對(duì)S(I)進(jìn)行坐標(biāo)預(yù)處理,去除S(I)中偏差較大的異常點(diǎn)和偏遠(yuǎn)點(diǎn),使坐標(biāo)更多地集中在建筑立面區(qū)域上。此時(shí),得到的3D 稀疏點(diǎn)只能表示圖像極少數(shù)像素點(diǎn)的空間位置,并不能覆蓋全部場(chǎng)景。利用這些僅有的3D 稀疏點(diǎn),分別計(jì)算場(chǎng)景地基線(xiàn)與矯正立面,從而恢復(fù)稠密點(diǎn)構(gòu)成的3D 面結(jié)構(gòu)。
得到稀疏點(diǎn)后,由以下步驟計(jì)算每幅視圖場(chǎng)景地基線(xiàn):
Step1計(jì)算每幅視圖的一個(gè)垂下特征向量,即一個(gè)與地面垂直且指向下的三維方向向量。首先通過(guò)Hough 直線(xiàn)檢測(cè)計(jì)算出立面上一條豎直方向的特征線(xiàn),如建筑體的側(cè)棱;然后搜索到若干位于或緊鄰該特征線(xiàn)的3D 稀疏點(diǎn)(本文緊鄰范圍閾值為5 像素);再由這些點(diǎn)擬合空間直線(xiàn)并計(jì)算其單位方向d;對(duì)若干特征線(xiàn)同理操作后,按式(1)計(jì)算該視圖最終的垂下特征向量n:
其中,M為特征線(xiàn)總數(shù);
Step2將3D 稀疏點(diǎn)S={(xi,yi,zi)|i=1,2,…,N}沿垂下特征向量n=(a,b,c)向地平面做二維投影累計(jì),N為稀疏點(diǎn)數(shù)。設(shè)S坐標(biāo)系為O-XYZ,Z=(0,0,1)。構(gòu)造式(2)旋轉(zhuǎn)矩陣R:
由式(3)求S投影累計(jì):
Step3對(duì)圖I上由2.1 節(jié)分割的每個(gè)立面Fi,分別計(jì)算其所含3D 稀疏點(diǎn)得到的投影累計(jì)Si’后,由最小二乘法將Si’分段擬合為線(xiàn)段Bi,并順序拼接所有的擬合線(xiàn)段,形成圖I連續(xù)唯一的場(chǎng)景地基線(xiàn)B,B可直觀(guān)地表示場(chǎng)景建筑外立面位置與地面布局。圖4 為對(duì)圖2 擬合的場(chǎng)景地基線(xiàn)B={B1,B2}。
圖4 圖2(b)的場(chǎng)景地基線(xiàn)
僅用3D 稀疏點(diǎn)的度量信息,可快速矯正視圖上投影失真的立面區(qū)域,得到具有真實(shí)紋理結(jié)構(gòu)的矯正立面;然后,根據(jù)地基線(xiàn)的方位參數(shù)快速完成3D 模型的立面生長(zhǎng),即賦予矯正立面所有像點(diǎn)準(zhǔn)確的空間3D 坐標(biāo),從而恢復(fù)該視圖的建筑場(chǎng)景三維結(jié)構(gòu)。
Step1設(shè)立面Fi上2D 特征點(diǎn)及其對(duì)應(yīng)3D 稀疏點(diǎn)的點(diǎn)對(duì)
Step2記
當(dāng)N取4 時(shí),記式(4)為:
即有:
對(duì)全體點(diǎn)對(duì)根據(jù)式(6),可求得RANSAC 條件下最佳的點(diǎn)變換M。
Step3由式(7)將點(diǎn)變換M作用于Fi圖像區(qū)域的所有像素點(diǎn)(xi,yi)(i=1,2,…,T;T為點(diǎn)總數(shù)),得到該立面的矯正點(diǎn)集Srected={(xi’,yi’)}。
對(duì)Srected進(jìn)行分段3 次Hermite 插值填充空隙,得到Fi更完整的矯正立面Fi’,如圖5 所示。
圖5 對(duì)圖3(b)的矯正
Step4在Fi’上搜索垂下特征向量n所對(duì)應(yīng)的2D 特征方向n’,并確定一個(gè)垂直于n’的掃描方向nscan;沿n’按nscan掃面Fi’的點(diǎn),在Fi’的地基線(xiàn)上逐行建立該立面的3D 坐標(biāo)(設(shè)坐標(biāo)系為O-XYZ,則以地基線(xiàn)平面建立X、Y坐標(biāo),以順序掃描的行值建立Z坐標(biāo)),及映射像素點(diǎn)的紋理色;依次掃描該視圖上所有立面,即能在同一地基線(xiàn)平面上建立該視圖場(chǎng)景建筑的3D 模型。
在立面生長(zhǎng)時(shí),為保證相鄰立面的準(zhǔn)確對(duì)接,本文通過(guò)稀疏點(diǎn)校驗(yàn),以稀疏點(diǎn)與地基線(xiàn)上其所對(duì)應(yīng)的投影點(diǎn)為位置約束,剔除鄰接立面的重復(fù)點(diǎn)。
視圖序列得到的若干立面模型,需要進(jìn)行尺度調(diào)整和模型融合。由于稀疏點(diǎn)重建中每組連續(xù)視圖得到的立面模型尺度相同,因此可先合并出每組視圖對(duì)應(yīng)的局部模型,再將局部模型融合成全部視圖序列的一個(gè)建筑場(chǎng)景整體模型。該層次融合過(guò)程如圖6 所示。
圖6 場(chǎng)景模型層次融合
在每組連續(xù)視圖中,選取位置居中的視圖為基準(zhǔn)圖,根據(jù)其他鄰接視圖地基線(xiàn)與基準(zhǔn)圖地基線(xiàn)的二維拼接,依次將其他視圖的模型歸納到基準(zhǔn)圖的場(chǎng)景模型之中,得到該組視圖的一個(gè)局部模型;然后,以包含視圖最多的局部模型為基準(zhǔn)模型,歸一化其他局部模型的尺度與基準(zhǔn)模型一致;再根據(jù)局部模型間存在匹配對(duì)應(yīng)的3D 點(diǎn),檢測(cè)各自地基線(xiàn)上的匹配對(duì)應(yīng)部分,調(diào)整各局部模型的坐標(biāo)系使其地基線(xiàn)拼合成唯一的場(chǎng)景地基線(xiàn),據(jù)此完成局部模型合攏;最后,按式(8)對(duì)合攏模型上的重復(fù)點(diǎn)完成場(chǎng)景模型的融合:
其中,pi是N個(gè)局部模型中需要融合成唯一點(diǎn)p的點(diǎn);disi是地基線(xiàn)平面上pi的投影點(diǎn)到基準(zhǔn)模型地基線(xiàn)的距離。
本文在VS2010 下使用VC++、OpenCV 與GSL 科學(xué)計(jì)算庫(kù)實(shí)現(xiàn)算法,為檢驗(yàn)算法有效性與準(zhǔn)確性,分別采用Merton College 的2 組室外建筑場(chǎng)景圖像序列,應(yīng)用本文算法進(jìn)行三維立面重建。測(cè)量模型結(jié)果的立面角度和線(xiàn)比例,以定量評(píng)價(jià)建模精度。立面模型如圖7、圖8 所示,其圖像尺寸分別為1 024×768 像素、900×768 像素,立面左起有序編號(hào)。
圖7 Merton CollegeⅡ圖像序列的立面模型
圖8 Merton CollegeⅢ圖像序列的立面模型
表1 所示模型中的立面夾角誤差通過(guò)立面對(duì)應(yīng)地基線(xiàn)(圖4、圖8(b))的夾角來(lái)測(cè)量,立面1、立面2、立面3 分別對(duì)應(yīng)地基線(xiàn)段B1、B2、B3。圖8 模型的平均角度誤差比圖7 模型大,主要由于圖8 每個(gè)立面的像素點(diǎn)和稀疏點(diǎn)均較少,導(dǎo)致度量信息較少,地基線(xiàn)方位擬合精度較圖7 低。
表1 模型立面的角度重建誤差 (o)
圖9 測(cè)量了圖7 模型中分別包含203 269 個(gè)和124 528 個(gè)成像點(diǎn)的左、右2 個(gè)立面的夾角誤差。橫坐標(biāo)表示使用數(shù)量/基準(zhǔn)點(diǎn)數(shù)所占的比例。左、右立面的稀疏點(diǎn)基準(zhǔn)點(diǎn)數(shù)分別取149 個(gè)和64 個(gè),記錄5 次實(shí)驗(yàn)的誤差,每次實(shí)驗(yàn)將使用的稀疏點(diǎn)減少20%,其中使用比例為100%時(shí)的誤差等于表1實(shí)驗(yàn)的0.3。
圖9 圖7 稀疏點(diǎn)使用比例與立面角度重建誤差的關(guān)系
圖9 表明,稀疏點(diǎn)的使用比例在20%(即左右立面各使用30 個(gè)和13 個(gè)稀疏點(diǎn),占總成像點(diǎn)的0.13%)以上時(shí),立面角度的重建誤差在5°以?xún)?nèi)。立面夾角的誤差隨稀疏點(diǎn)使用比例增大而減少,且比例接近0 時(shí)趨近無(wú)窮大,這主要是由于立面方位信息建立在地基線(xiàn)上,3D 稀疏點(diǎn)數(shù)量越多,估算垂下特征向量越準(zhǔn)確,計(jì)算擬合地基線(xiàn)的方位也越精確。
表2 測(cè)量了圖8(c)模型立面上4 條線(xiàn)段的長(zhǎng)度比例,取多次測(cè)量均值,其中,L1和L2、L3和L4分別位于同型的窗戶(hù)。測(cè)量結(jié)果表明,本文算法對(duì)立面上線(xiàn)段長(zhǎng)度比例的恢復(fù)誤差在1%以?xún)?nèi),該誤差主要源自受成像尺寸影響的線(xiàn)段端點(diǎn)選擇不準(zhǔn)確,以及垂下特征向量擬合誤差導(dǎo)致生長(zhǎng)立面的掃面方向不嚴(yán)格平行于地基線(xiàn)。
表2 圖8(c)模型的線(xiàn)段長(zhǎng)度比例重建誤差
實(shí)驗(yàn)結(jié)果表明,地基投影算法能快速、高效地重建有正確角度、線(xiàn)比例結(jié)構(gòu)的大尺度場(chǎng)景建筑立面模型,稀疏點(diǎn)占立面總像點(diǎn)0.13%以上時(shí),地基投影法的立面角度重建誤差小于5°,線(xiàn)比例誤差在1%以?xún)?nèi)。在室外大場(chǎng)景建模工程的應(yīng)用中,算法結(jié)果不僅能滿(mǎn)足以規(guī)整立面為重建目標(biāo)、對(duì)窗臺(tái)等細(xì)部結(jié)構(gòu)精度無(wú)嚴(yán)苛要求的實(shí)際需要,而且以該算法所得結(jié)果為基礎(chǔ)模型,針對(duì)缺失結(jié)構(gòu)擴(kuò)展更加完整、精細(xì)的系統(tǒng)。
本文將場(chǎng)景地基線(xiàn)引入建筑場(chǎng)景的多視圖立面建模,提出了地基投影算法,同時(shí)計(jì)算地基線(xiàn)與矯正立面,并利用地基線(xiàn)提供的立面空間方位信息,完成立面的三維生長(zhǎng)與局部模型融合,從而便捷、有效地重建立面模型,避免了通常建模系統(tǒng)局限于稀疏重建與復(fù)雜設(shè)備的問(wèn)題。實(shí)驗(yàn)結(jié)果證明,在一定的稀疏點(diǎn)使用比例范圍內(nèi),本文算法能準(zhǔn)確完成立面建模,所求的場(chǎng)景近似重建模型具有較高的立面角度和線(xiàn)比例重建精度,可滿(mǎn)足工程需要。在此基礎(chǔ)上,下一步工作將擴(kuò)展補(bǔ)充缺失的紋理結(jié)構(gòu),精化場(chǎng)景模型,使之更適于高精度的大尺度場(chǎng)景建模。
[1]Wan Guowei,Noah S,Daniel C O,et al.Sorting Unorganized Photo Sets for Urban Reconstruction[J].Graphical Models,2012,74(1):14-28.
[2]劉培珺.基于圖像序列的建筑物模型重建技術(shù)研究與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2003.
[3]Xiao Jianxiong,Fang Tian,Zhao Peng,et al.Image-based Facade Modeling[J].ACM Transactions on Graphics,2008,27(5):495-504.
[4]戴嘉境.基于多幅圖像的三維重建理論及算法研究[D].上海:上海交通大學(xué),2012.
[5]李 暢,劉亞文,胡 敏,等.面向街景立面三維重建的近景影像直線(xiàn)匹配方法研究[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2010,35(12):1461-1465.
[6]代 勤,王延杰,韓廣良.基于改進(jìn)Hough 變換和透視變換的透視圖像矯正[J].液晶與顯示,2012,27(4):552-556.
[7]Pollefeys M.Detailed Real-time Urban 3D Reconstruction from Video[J].International Journal of Computer Vision,2008,78(2):143-167.
[8]王啟帆,賈振紅,覃錫忠,等.基于像素領(lǐng)域信息的自適應(yīng)圖像增強(qiáng)算法[J].計(jì)算機(jī)工程,2012,38(24):205-207.
[9]張桂梅,周明明,馬 珂.基于彩色模型的重構(gòu)標(biāo)記分水嶺分割算法[J].中國(guó)圖象圖形學(xué)報(bào),2012,17(5):641-647.
[10]謝 闖,李磊民.基于彩色圖像分割的路標(biāo)檢測(cè)算法研究[J].西南科技大學(xué)學(xué)報(bào),2013,27(3):87-91.
[11]胡海青,譚建龍,朱亞濤,等.改進(jìn)SIFT算法在文字圖像匹配中的應(yīng)用[J].計(jì)算機(jī)工程,2013,39(1):239-243.
[12]Pollefeys M,Gool L,Vergauwen M,et al.Visual Modeling with a Hand-held Camera[J].International Journal of Computer Vision,2004,59(3):207-232.