程 昫,葛 亮,張 帆,黃先鋒
1. 武漢大學測繪遙感信息工程國家重點實驗室,湖北 武漢 430079; 2. 天津市測繪院有限公司,天津 300381
建筑物是城市三維模型的重要組成部分[1]。無人機傾斜攝影能快速采集場景三維信息及紋理信息[2-3],通過多視圖立體重建得到三角網(wǎng)格模型[4-6],是城市三維建模的重要手段。根據(jù)城市信息模型(CIM)基礎平臺建設要求,建筑物模型應具備精確的幾何表達、正確的拓撲關系和清晰的紋理貼圖[7-9]。目前,多數(shù)商業(yè)軟件通過半自動化的方式進行單體化模型生產(chǎn),由生產(chǎn)人員參考三角網(wǎng)格模型對城市建筑物結(jié)構進行提取。該過程涉及一些規(guī)則化與簡化操作,破壞了模型幾何的準確性,導致紋理映射過程中模型表面紋理與真實位置存在偏移,且不同視角的影像紋理偏移程度不一,進而形成明顯的紋理錯位和接縫現(xiàn)象。
現(xiàn)有紋理映射方法多針對來自于傾斜影像密集匹配點云或激光雷達點云表面重建的三角網(wǎng)格模型,其面片尺寸較小,模型幾何誤差較小,影像間的亮度、色調(diào)差異是形成可見紋理接縫的主要原因。文獻[10—13]通過圖割優(yōu)化紋理影像在各三角面上的分配,減少接縫數(shù)量,利用融合方法消除不同影像之間的色差,但對模型與影像之間的映射準確性要求較高。考慮到相機參數(shù)、模型坐標的解算誤差帶來的紋理偏移,文獻[14—16]通過調(diào)整三角網(wǎng)頂點綁定的紋理坐標,重新接合斷裂的紋理輪廓線,但通常需要人工指定調(diào)整點位,或?qū)ζヅ潼c的數(shù)量及分布有一定要求。文獻[17—19]將紋理坐標改正量加入全局優(yōu)化的目標函數(shù),在紋理映射的同時解算改正值,但計算成本高且不適用于視角變換過大的航空攝影。
不同于三角網(wǎng)格模型,建筑物單體化模型由分段平面構成。一方面由于平面尺寸較大,單個平面常常無法在單張影像上完整成像,或無法從單張影像獲取最優(yōu)視角下的紋理;另一方面由于幾何結(jié)構簡化,單體化模型表面紋理接縫處的錯位往往更嚴重,且與接縫位置有一定關聯(lián)。一些研究同樣注意到建筑物模型紋理映射過程中的錯位情況,文獻[20—21]試圖重新解算更精確的相機內(nèi)外參數(shù)和模型,但相機參數(shù)誤差并非紋理錯位的主要原因,而恢復復雜的局部幾何結(jié)構與模型矢量化的過程矛盾。文獻[22—24]通過圖像配準方法進行錯位對齊,但需要人工量測配準控制點。
針對上述問題,本文提出一種針對傾斜攝影建筑物模型的自動紋理重建方法:通過優(yōu)化紋理影像選擇過程、增加紋理塊配準步驟,解決單體化模型幾何結(jié)構不準確帶來的紋理錯位問題,從而保證接縫兩側(cè)的紋理在幾何、色彩兩方面自然過渡。
傾斜攝影建筑物模型自動紋理重建方法流程如圖1所示,包含顧及模型誤差的紋理影像選擇、線引導的紋理塊配準和勻光勻色3個關鍵步驟。流程所需輸入為影像及內(nèi)外參數(shù)、場景三角網(wǎng)格模型和手工編輯的建筑物單體化模型,其中單體化模型經(jīng)法向聚類成分段多邊形平面。紋理影像選擇的過程充分考慮了幾何建模誤差對紋理映射的影響,通過約束模型表面紋理分塊邊界的位置,減輕接縫兩側(cè)的錯位程度。隨后在紋理塊配準過程中,修正跨接縫的斷裂直線結(jié)構,最小化紋理錯位形成的可見接縫。算法的具體步驟如下所述。
圖1 基于多視傾斜影像的建筑物單體化模型自動紋理映射流程Fig.1 Flowchart of texture mapping
傾斜影像數(shù)據(jù)冗余度大,同一棟建筑往往出現(xiàn)在幾十至上百張影像中。由于像幅限制、遮擋等因素,單張影像往往無法覆蓋整個建筑物模型,需要選擇多張能完整覆蓋模型的合適影像進行紋理映射。為便于說明,定義符號S表示全部影像的集合,冗余度較高;V為用于紋理映射的影像集合,保證模型表面每處有且僅有一張紋理影像來源,其中V?S。定義紋理映射質(zhì)量函數(shù)Q,在建筑物模型M確定的情況下,應當選擇合適的影像集合V保證紋理映射質(zhì)量最優(yōu)。該過程抽象為以下數(shù)學問題
(1)
建筑物單體化模型往往由分段平面構成,模型紋理質(zhì)量可視作全部平面的紋理質(zhì)量之和。定義F為單個模型平面,建筑物模型M={F1,F2,…,Fn},則有
(2)
1.1.1 紋理質(zhì)量評價
對于單個平面F,用于紋理映射的影像集合V={v1,v2,…,vn},則平面的紋理映射質(zhì)量可近似為各影像紋理映射質(zhì)量之和
(3)
式中,v為單張影像;q(F,v)為單張影像的紋理質(zhì)量評價函數(shù)。
過曝欠曝、失焦模糊等因素會造成影像質(zhì)量下降,同時觀測視角、拍攝距離的變化也會對映射效果造成影響。紋理映射應當選擇曝光合適、定焦清晰、正視拍攝主體且距離合適的影像,以保證紋理清晰、變形小且色彩自然。將q(F,v)簡記為q,定義影像質(zhì)量因子qφ、視線夾角因子qα、分辨率因子qμ和完整性因子qκ
q=qφ·qα·qμ·qκ
(4)
(5)
(6)
(7)
(8)
式中,φ(v)為影像可視區(qū)域灰度值的加權熵。基本形式的熵值反映了影像的信息量,利用像素點灰度值與128(灰度范圍中值)的差構造權值,對過曝或欠曝的影像熵值進行懲罰,提高了影像評價因子qφ對曝光條件的敏感度;α(F,v)為光線與模型法向的夾角值,該值越小,視線越正;μ(F,v)為被觀測的平面區(qū)域與影像可視區(qū)域的面積之比,該值越小,影像拍攝距離越近,紋理分辨率越高;κ(F,v)為被觀測的平面區(qū)域與平面總面積之比,該值越大,影像觀測越完整;τ為比例常數(shù),限定了各因子數(shù)值范圍,同時具備加權作用。
由遮擋檢測[11]獲得模型平面在各影像上的可視范圍。
1.1.2 模型平面分割
一些商業(yè)軟件將模型平面的紋理來源限定為單張影像,將紋理影像選擇過程當作標簽(image labeling)問題,這種處理方式并不合理,因為模型平面可能不存在完整觀測的影像。即使觀測完整,由于傾斜影像近端到遠端分辨率差異過大,單張影像映射生成的紋理內(nèi)部變形程度不一,同樣影響視覺效果。基于上述考慮,本文預先對建筑物單體化模型各平面進行分割,采用粒度更小的單元進行紋理影像選擇,消除面片尺寸的影響,使得單個平面可以綜合多張影像的紋理信息。這種分割并不改變模型的幾何結(jié)構。
考慮到模型幾何建模的誤差能反映相應區(qū)域紋理映射的錯位程度,本文在平面分割的過程中引入單體化模型的幾何誤差,對紋理接縫可能產(chǎn)生的位置進行約束。如圖2所示,由建筑物單體化模型和Mesh模型的貼合程度來評估單體化模型的幾何誤差。將單個三角形投影至柵格化后的模型平面,頂點垂距為該點的幾何誤差。垂點坐標光柵化后,投影區(qū)域內(nèi)部的幾何誤差近似為頂點垂距的均值。當多個三角形投影至平面同一柵格點時,更新柵格值為當前最小垂距。該步驟事先并不判斷哪些三角形對應當前平面,每次投影全部三角形,最終得到模型平面的二維浮點數(shù)矩陣。借鑒現(xiàn)有的圖像分割算法[25]將平面劃分成若干個超像素區(qū)域。
圖2 單個平面的幾何誤差評估及分割過程Fig.2 Geometric error evaluation and segmentation for a single surface
1.1.3 紋理影像選擇
多片紋理映射在模型表面形成多處接縫。不準確的模型結(jié)構導致接縫處紋理幾何過渡的不連續(xù),影響單體化模型紋理映射效果。紋理影像選擇過程中,一方面要保證模型表面紋理分配的平滑性,減少接縫數(shù)量,另一方面還需考慮接縫位置對紋理映射效果的影響,尤其對于單體化模型而言,當接縫出現(xiàn)在誤差較大的區(qū)域時紋理錯位往往更嚴重。
若直接為各單元指定最佳影像,會導致紋理分塊細碎且無法約束接縫位置。若由圖割方式同時優(yōu)化接縫的數(shù)量和位置,運算成本較大。本文在貪心算法的基礎上進行改進,由初步分割結(jié)果進行聚類,聚類過程中分割單元的邊界逐步遠離紋理錯位嚴重的區(qū)域,然后優(yōu)先為大尺度的分割單元指定最佳影像,達到約束接縫數(shù)量和位置的目的。
聚類過程如圖3所示。首先統(tǒng)計超像素內(nèi)誤差值>τe的像素比例r,將r>τr的超像素標記為種子點。由種子點出發(fā)進行區(qū)域生長,逐次合并鄰接的非種子超像素,最后整個平面視作最大尺度的超像素。分割邊界隨尺度增大而逐步遠離誤差大的區(qū)域。
圖3 種子區(qū)域及聚類過程Fig.3 Hierarchical clustering
算法1展示了完整的紋理影像選擇過程。首先按式(4)函數(shù)值q(F,v)對觀測影像排序,然后對分割結(jié)果聚類,得到模型平面的樹狀結(jié)構表示。由根結(jié)點出發(fā)廣度遍歷,逐層使用貪心算法選擇紋理影像。為保證層與層之間的一致性,非根結(jié)點優(yōu)先遵循父結(jié)點的選擇結(jié)果。最后,將綁定相同影像的連通區(qū)域合并成紋理塊,相鄰紋理塊之間形成接縫線。使用道格拉斯-普克算法,將接縫線離散為少量點順序表示的折線段。
算法1:紋理影像選擇算法
輸入:模型平面F及影像集合S={v0,v1,…,vn-1},三角網(wǎng)格模型Mesh
輸出:紋理分塊texturepatches,接縫線seamlines
S←SortbyQualityScore(S); ∥影像排序
EM←ErrorAssessment(F,Mesh); ∥誤差評估圖
LM←Segmentation(EM); ∥二維分割圖
pyramid←HierarchicalClustering(LM); ∥層次聚類
for rank ∈ pyramid do ∥各尺度分割結(jié)果
for node ∈ rank do ∥當前尺度下的超像素區(qū)域
if node.OfView≠-1 then
continue;
forv∈Sdo ∥順序遍歷紋理影像
if (a(F,v)>τa‖μ(F,v)>τμ) then
∥ 增加角度、分辨率的判斷
continue;
if node.CompleteViewed(v) then
∥完整可視
node.OfView =v;
break;
for node ∈ pyramid.FloorRank do
texturepatches←合并綁定同一影像的超像素區(qū)域
seamlines←相鄰紋理塊邊界形成接縫
return texturepatches, seamlines;
紋理影像選擇過程并未直接處理錯位,因此還需進一步配準來完成對齊處理。由于多數(shù)接縫處于弱紋理的墻面區(qū)域,接縫兩側(cè)的點特征數(shù)量少且不穩(wěn)定,本文利用建筑表面相對豐富的直線特征構造剛性配準模型,對齊跨紋理塊的線條錯位。
1.2.1 影像線匹配
對于單條接縫,接縫兩側(cè)的紋理塊各自對應一張紋理影像,匹配階段即在兩張影像上尋找同名線特征。由幾何、灰度相似性建立匹配約束得到候選匹配,并通過交叉驗證(cross check)和比率測試(ratio test)剔除錯誤匹配。
將接縫線投影到影像上,利用LSD算法[26]完成初步提取,僅保留和接縫線相交的線特征。由于窗框等人工直線結(jié)構具有一定寬度,往往能提取到距離過近的兩條平行線特征,需要加入灰度信息進行區(qū)分。最終形成包含點位、方向和灰度特征的線特征描述子
line={P,Q,lbd}
(9)
式中,P、Q為線段端點;lbd為線段的灰度特征描述[27]。
如圖4所示,參數(shù)化的模型平面確定了影像之間的單應變換H,則左片線特征映射到右片的過程為P′=H(p)。記線段的方向矢量為PQ,單位法向為n,則兩線特征的夾角、距離及描述子距離為
圖4 平面單應變換Fig.4 Planar homography
θ=arccos(PQ,P′Q′)
(10)
d1=max(P′P·n,Q′P·n)
(11)
d2=euclidean(lbd′,lbd)
(12)
式中,P′、Q′分別為映射后端點;lbd′映射前后不變,線段距離視作點到直線距離的最大值。設置絕對閾值τθ、τd1、τd2,通過比較線段夾角、距離和描述子距離產(chǎn)生候選匹配,以描述子距離決定最佳匹配。
為剔除錯誤匹配,利用次佳匹配與最佳匹配的描述子距離之比反映匹配的穩(wěn)健程度,僅保留比值大于0.5的匹配。對右片進行同樣操作,保留共同匹配。為提高匹配召回率,對于未匹配的線段重復上述步驟,直至不再產(chǎn)生新的匹配。
1.2.2 紋理塊配準
利用影像間的同名線特征建立模型表面紋理塊的全局剛性配準模型,對齊接縫兩側(cè)的錯位。為簡化計算,配準基元退化為同名點對,配準變換為各紋理塊的整體平移。如圖5所示,線特征與接縫線的交點投影至模型平面形成匹配點對,從而將影像間的匹配關系轉(zhuǎn)移到模型平面。統(tǒng)計各接縫線上的匹配點對,將包含最多匹配點對的紋理塊當作基準,其余紋理塊相對基準塊平移。
圖5 同名點對構建配準模型Fig.5 Registration based on matched points
每對匹配點可列立如下誤差方程
εij=Δxi-Δxj-(xi-xj)
(13)
式中,x為匹配點坐標;Δx為點所在紋理塊的位移矢量;i、j為紋理塊的索引?;鶞蕢K包含的匹配點位移矢量為0。
合并全部匹配點對的誤差方程,列立全局最小二乘的矩陣表示形式
Ε=A·ΔX-b
(14)
(15)
式中,系數(shù)矩陣A的行數(shù)為匹配點對數(shù);線性方程的解ΔX*代表非基準紋理塊的位移矢量;Ε為匹配點對的殘差。
對于模型表面任意一點x的著色過程如下:判斷點x所在的紋理塊,修正點位至x′=x-Δx*,Δx*為式(15)中求解的未知向量ΔX*的數(shù)值元素,由新坐標重投影至對應的紋理影像,雙線性采樣RGB值。
不同時相、光照條件下的影像在亮度和色調(diào)上存在較大差異,同時遮擋帶來的陰影使得同一張影像內(nèi)部也有亮度不均勻的現(xiàn)象。為保證模型表面色彩的一致性,依次進行全局和局部勻光勻色處理:將顏色值由RGB空間轉(zhuǎn)入YCrCb空間,分離色調(diào)和亮度。利用接縫線上的色調(diào)與亮度差異構建最小二乘方程,進而計算各紋理塊的亮度和色調(diào)改正值,完成全局顏色調(diào)整。為各接縫生成一定寬度的緩沖區(qū),在緩沖區(qū)內(nèi)利用泊松融合[28]進行局部勻光勻色。最終重新轉(zhuǎn)換回RGB空間。
試驗使用某市CIM試驗區(qū)的傾斜航攝數(shù)據(jù)進行測試,其中包含住宅、辦公樓、體育館等多種典型城市建筑。采用本文方法對5種不同外觀、復雜程度的建筑物單體化模型進行紋理映射,從定性和定量兩個角度對中間步驟及最終結(jié)果進行分析,驗證本文算法的有效性。
傾斜影像采集設備為Sony A7R2組成的五拼傾斜相機,相機畫幅為7952×5304像素,空三入網(wǎng)照片數(shù)10 019張,入網(wǎng)率99.93%,單張照片連接點平均數(shù)47,平均地面分辨率約0.023 m,檢查點精度誤差≤6 cm。利用商業(yè)軟件進行空中三角測量和核心區(qū)域的重建,重建結(jié)果如圖6所示,黃色三角形標記了試驗使用的5處建筑物。
圖6 核心區(qū)域重建結(jié)果Fig.6 Reconstruction results of core area
根據(jù)城市信息模型(CIM)Ⅲ級模型標準,通過人工交互的方式完成測區(qū)內(nèi)建筑物單體化模型生產(chǎn),要求建筑物單體化模型的矢量包圍盒應同Mesh模型表面貼合,建筑立面的陽臺、飄窗,屋頂重要裝飾、女兒墻等附屬部件需進行細節(jié)建模,平面/高程精度≤0.3 m。圖7展示了5處建筑物的原始Mesh模型和人工編輯后的建筑物單體化模型。
圖7 建筑物Mesh模型和單體化模型Fig.7 Mesh and reality CSG building model
為了直觀評價不同影像的紋理映射效果,如圖8所示,將影像映射至模型A立面,紋理映射效果均不同程度地受到觀測角度、完整性、分辨率、圖像過曝和離焦模糊的影響,由此歸納相關影響因子。紋理質(zhì)量評價時,各因子的比例常數(shù)可由經(jīng)驗指定或從數(shù)據(jù)本身獲取,試驗中τφ取各影像均值,τμ取平均地面分辨率,τα=30°,τκ=1。
圖8 不同影像生成的模型A立面紋理Fig.8 Model A fa?ade texture from different images
如圖9所示,模型B立面內(nèi)部生成的接縫線被約束在模型幾何誤差小的區(qū)域。一方面,接縫處的幾何誤差直接影響紋理映射偏差,另一方面幾何誤差小的區(qū)域多為弱紋理的墻面,往往不容易察覺錯位。因此,引入單體化模型幾何誤差優(yōu)化接縫位置。試驗中,利用平均地面分辨率柵格化模型平面,由超像素分割算法SLIC[25]進行二維分割,分割尺寸參數(shù)為40,聚類種子點相關閾值τe=0.2 m,τr=0.8。
圖9 模型B立面的接縫線Fig.9 Seamline on model B fa?ade
以模型C為例進一步說明。如圖10所示,模型C的大尺寸立面存在a、b、c 3處遮擋,沒有一張完整觀測影像。圖11為該立面用于紋理映射的3張影像及對應紋理,影像部分已裁剪包含該立面的興趣區(qū)域,立面左右兩側(cè)和底部均受到不同程度遮擋。圖12為該立面生成的接縫線,本文方法在影像的重疊區(qū)域內(nèi)生成了幾何誤差小的接縫路徑,有效減輕了接縫處的錯位程度。
圖10 模型C立面Fig.10 Model C fa?ade
圖11 模型C立面的紋理影像Fig.11 Texture images of model C fa?ade
如圖13所示,具有一定寬度的人工直線結(jié)構往往能提取出兩條距離過近的平行線段。由于模型和相機參數(shù)誤差,僅僅利用夾角、距離等幾何約束會導致跨接縫的紋理線上下邊緣發(fā)生錯誤匹配,需要借助灰度梯度變化的方向進行區(qū)分,因此匹配過程中加入LBD灰度描述子。試驗中,夾角閾值τθ=3°,線段距離閾值τd1=10像素,描述子距離閾值τd2=100。
圖13 線特征匹配Fig.13 Line feature matching
試驗選取的5處建筑分別包含大尺寸立面結(jié)構、自遮擋結(jié)構、主附樓結(jié)構及曲面結(jié)構,模型復雜程度和受遮擋程度不一。圖14為采用本文方法進行紋理映射后的整體效果。為進一步說明錯位對齊的必要性,試驗對直接映射、僅勻色及配準后勻色3種情況下的紋理效果進行比較,圖15為含接縫且有錯位的代表性區(qū)域。
圖14 整體紋理Fig.14 Overall texture
如圖15所示,截取的局部區(qū)域進行直接映射時接縫處均存在一定程度的紋理錯位,其中圖(e)、(f)兩處錯位較為嚴重,這是由于該區(qū)域周圍存在鏤空結(jié)構,受遮擋較多,相鄰紋理塊對應的影像視角差異大,放大了模型幾何誤差造成的紋理映射偏差。依靠勻色操作僅隱藏輕微程度的錯位,多數(shù)情況下勻色后的錯位現(xiàn)象依然存在。圖15第3行為本文方法得到的紋理映射結(jié)果,通過對接縫處的幾何錯位和色差進行調(diào)整,隱藏了原本可見的接縫。
接縫兩側(cè)同名點對之間的距離可以反映該處的紋理錯位程度。為定量評價錯位對齊效果,以模型D為例,統(tǒng)計配準前后模型表面的同名點對距離。模型D結(jié)構復雜且遮擋嚴重(圖7),包含1368個頂點、916個三角面和192個分段平面。紋理映射過程中,影像上產(chǎn)生489組影像匹配線對,映射至模型表面產(chǎn)生匹配點對,可以量測絕對尺度下的距離。如圖16所示,綠色圓圈為配準前各點對的距離,通過式(15)解算平移量可得到配準后的點對距離(紅色三角形表示)。配準前x、y方向的距離均值為0.039 2 m和0.040 4 m,配準后為0.022 3 m和0.020 5 m。
圖16 配準前后匹配點對距離Fig.16 Distance between matching point pair
現(xiàn)有紋理映射方法多針對三角網(wǎng)格模型,對于建筑物單體化模型,模型幾何誤差導致的紋理錯位及大尺寸平面內(nèi)部的紋理分塊,對紋理映射提出新的挑戰(zhàn)。本文提出了一種基于多視傾斜影像的建筑物單體化模型自動紋理映射方法:通過引入模型幾何誤差對紋理影像選擇過程進行優(yōu)化,約束接縫生成位置;利用影像同名線特征解算剛性配準變換,修正模型與紋理影像間不準確的映射關系。試驗表明,該方法有效解決了建筑物單體化模型紋理映射過程中的錯位問題,顯著改善了紋理映射效果,對于提高建筑物單體化模型紋理重建步驟的自動化程度具有重要意義。