馬東嶺,王曉坤,曾行行,石 壯
(山東建筑大學 測繪地理信息學院,山東 濟南 250101)
隨著城市的快速發(fā)展和城市地物地貌的快速更新[1],傳統(tǒng)的二維平面測繪數據已經不能完全滿足城市經濟建設的需要。同時,由于無人機技術和計算機技術的快速發(fā)展[2],三維原始數據的獲取和運用已經不是限制三維立體測繪的阻礙。在這種情況下,基于無人機獲取的傾斜影像的三維重建技術將成為一種有廣泛應用前景的城市三維重建技術。相比于傳統(tǒng)的基于二維平面數據手工生成城市三維模型的方法[3-5]和基于激光點云的城市三維重建技術[6],該方法具有建模成本低、速度快、數據獲取方便、數據處理自動化程度高、受地形因素影響小等優(yōu)勢。然而,現階段基于無人機傾斜影像的三維重建技術仍存在相應的問題需要解決,例如:直接將無人機獲取的影像作為紋理貼到三維模型表面,會導致紋理間存在色差、三維模型在視覺上存在割裂,甚至會影響三維模型的判讀。為解決這個問題,需要在三維重建過程中進行紋理優(yōu)化[7]。紋理優(yōu)化是對依附在模型表面的彩色紋理進行處理,以使得三維模型與實際地形地物更加相似的過程。
針對紋理優(yōu)化問題,目前已有眾多學者進行研究。閆利、程君提出了基于視角法的傾斜影像數據三維重建自動紋理映射的方法[8];師建輝、康志忠、翟旭等人提出了一種基于紋理面積、傾斜角度、樹木遮擋方法和蟻群算法的建筑物立面紋理優(yōu)化方法,實現多條帶多張紋理貼片的自動拼接[9];張春森、張衛(wèi)龍、郭丙軒等在三維表面模型的基礎上,利用獲得的建筑物的三維信息與紋理信息,通過最優(yōu)算法選擇出地物面的理想紋理來實現城市建筑物紋理的自動提取[10];胡麗華、徐利梅、李輝等人提出利用紋理映射技術簡化模型的方法來完成三維模型紋理重建[11];孫春生、吳軍、陳丹清等提出了基于輪廓線配準的建筑墻面紋理重建策略的手段,實現了建筑墻面紋理快速重建的目標[12];范沖、王學提出了基于三維紋理映射原理的三維建筑模型紋理映射方法來實現三維建筑紋理重建[13];姜翰青、王博勝、章國鋒等人提出了一種基于馬爾可夫隨機場的多視圖紋理映射方法來給三維模型貼對應的紋理貼圖[14];郭玲、王建宇、黃炎焱提出了一種基于紋理的模型重構和紋理光照連續(xù)性重建算法來對三維模型映射對應的紋理[15]。以上算法雖然在一定程度上解決了紋理的優(yōu)化問題,但是大都處理簡單,紋理真實感不強,對于顏色、光照處理不理想,細節(jié)處理不細致。因此,尋找一種更為理想的全局紋理優(yōu)化方法迫在眉睫。本文依據紋理邊界間的顏色差異和紋理內部的顏色變化關系,提出了基于紋理貼片顏色差異的全局紋理優(yōu)化方法。該方法處理的城市三維模型紋理具有紋理真實、色彩一致、紋理處理一次性完成、細節(jié)明顯等優(yōu)勢。
紋理優(yōu)化是指利用影像和模型三角網之間的關系去處理貼到模型上的紋理貼片,通過這個過程使附上紋理的模型看起來更加真實。盡管影像紋理之間會存在較大的顏色強度差異,例如其亮度、明度、對比度等信息差異量大,但是這些顏色的變化趨勢和影像的輪廓特征是一致的,因此可以根據顏色信息將紋理之間的邊界消除,使紋理之間的顏色過渡平滑?;谝陨显?,本文提出了基于顏色變化差異的全局紋理優(yōu)化方案,利用邊界顏色差異部分的均值作為基準值來改變顏色,以消除紋理之間顏色的明顯邊界;同時依據紋理顏色變化趨勢和影像輪廓特征一致的特性,來確定紋理的顏色變化趨勢。
由于邊界上的紋理的顏色變化趨勢、圖像特征輪廓等是一致的,因此需要保證顏色改正函數g的顏色變化是極小的,可表示為:
(▽h)2dX.
(1)
式中:g為改正三維模型網格M生成的顏色改正函數;S為改正三維模型網格M上由于紋理拼接而形成的不連續(xù)的邊界線;h為縫隙兩側的顏色變化差異。
優(yōu)化后的紋理間顏色不應存在明顯的顏色變化,因此要求顏色改正函數g在每個不連續(xù)點處的正變換必須等于改正三維模型網格M上的顏色描述函數f的負變換,即:
s.t.[g]|X=-[f]|X,?X∈S.
(2)
其中,顏色描述函數f和顏色改正函數g均是連續(xù)分段函數,并且具有相同的不連續(xù)性。
將式(1)、式(2)疊加,保留初始函數的較高頻率,又保證沒有明顯的銜接縫隙,使紋理邊界得到優(yōu)化。根據上述全局紋理優(yōu)化原理,本文首先從不同的紋理上獲取多組色彩值,然后依據上述公式來建立紋理優(yōu)化公式,最后利用公式處理每一個像素點以完成紋理的全局優(yōu)化。全局紋理優(yōu)化過程如圖1所示。
圖1 紋理優(yōu)化原理
由于不同紋理貼片映射到三維模型中后,紋理貼片邊界的色彩值是不相同的,因此在一條邊界上會出現兩個色彩值。色斑就是因為這兩個色彩值的差異造成的,因此使兩邊界的色彩值一致是全局紋理優(yōu)化的第一部分。此外,由于同一紋理貼片上的點來自同一張影像,有相同的拍攝條件,所以同一張影像上的點具有相似的顏色調整值。因此,第二部分是使同一紋理上的顏色調整值一致。由于直接將所有像素點參與計算會使得運算十分繁瑣,數據量太大,使得數據處理難以完成,因此本文首先利用三角網頂點調整三角網的顏色值,并列算式為:
(3)
式中:V是頂點的集合;vright和vleft是頂點在左右紋理上的投影點;vi和vj是同一個紋理貼片上的相鄰頂點;fvright是頂點投影到右紋理貼片上的投影點獲取的顏色值;fvleft是頂點投影到左紋理貼片上的投影點獲取的顏色值;gvright是頂點投影到右紋理貼片上的投影點獲取的顏色值的改正值;gvleft是頂點投影到左紋理貼片上的投影點獲取的顏色值的改正值;gvi、gvj是在同一紋理貼片相鄰點上的顏色值的改正值;λ是顏色一致性調整量和邊界色彩值調整量的比例。
將式(3)寫成矩陣形式為:
(4)
式中:A為不同紋理貼片邊界色彩值調整量的矩陣,是同一紋理貼片上相鄰頂點顏色一致性調整量矩陣;g是三角網頂點的調整量矩陣;f為不同紋理貼片邊界色彩值矩陣。其中A和Γ的取值代表原方程的λ,是用來表示顏色一致性調整量和邊界色彩值調整量的比例。根據上述公式可以快速簡捷的獲取紋理優(yōu)化后的頂點顏色值。為處理全部紋理貼圖中每個像素點的顏色值,本文利用顏色插值的手段將頂點顏色值歸化到每一個像素點中去。
經過上述過程,三維網格對應的紋理貼片的頂點都有了相應的顏色調整值。然而,通過頂點的顏色調整并不能直接對紋理貼圖起作用。因此,需要利用頂點的顏色改正值來生成紋理貼圖上每一個像素的顏色改正值。為解決上述問題,需要利用三角形的3個頂點對紋理貼圖上的每一個像素進行顏色求解。由于像素值是均勻變化的,所以根據兩點間距離的大小可以計算兩點之間顏色的影響,因此本文提出利用像素點與3個頂點距離的函數作為權值來求取三角形每個像素點的顏色值改正值的方法,原理如圖2所示。
圖2 顏色插值原理
不僅3個頂點V1,V2,V3的顏色改正值是不同的,而且3個頂點顏色改正值對像素點P的影響也不一樣。在圖2中,像素點P與頂點V1,V2,V3構成了3個小三角形,分別是S1,S2,S3。由于S2面積越大,像素點P離頂點V2的距離越短。進而,S2的面積越大,像素點P受頂點V2點的影響也就越大。因此,P點受頂點V1,V2,V3的影響可以用S1,S2,S3的面積和大三角形的面積比表示。因此列方程為:
(5)
(6)
(7)
(8)
(9)
其中:Lvi,vj為邊V1,V2的長度;Lv1,v3為邊V1,V3的長度;Lv2,v3為邊V2,V3的長度;Lv1,p為邊P,V1的長度;Lp,v2為邊P,V2的長度;Lp,v3為邊P,V3的長度。C,CS1,CS2,CS3為三角形△V1V2V3、三角形△V1PV3、三角形△V1PV2、三角形△V2PV3的周長。S,SS1,SS2,SS3為三角形△V1V2V3、三角形△V1PV3、三角形△V1PV2、三角形△V2PV3的面積。Colorp,Colorv1,Colorv2,Colorv3為點P,V1,V2,V3的顏色值。
根據上述公式,將頂點顏色改正值通過三維模型網格傳遞到紋理貼圖的每一個像素中,并通過疊加像素改正值的方式完成紋理貼圖的全局優(yōu)化,消除紋理差異,較好地解決了現行紋理優(yōu)化方法中存在明顯縫隙的問題。
實驗數據采用城市地區(qū)的無人機傾斜影像數據。計算機環(huán)境為Inter Core i3 CPU 2.4 Hz,軟件環(huán)境為MVS和godWork軟件。實驗首先利用godWork軟件對實驗地區(qū)的無人機傾斜影像數據進行空中三角測量,以確定每張相片的位置和姿態(tài);然后,利用MVS對無人機傾斜影像和空三結果進行三維重建,建立目標區(qū)域的三維表面模型,并附上初始紋理;最后,利用本文提出的基于紋理貼片顏色差異的全局紋理優(yōu)化方法來優(yōu)化目標三維表面模型的初始紋理,獲取較真實的三維模型。利用本文提出的基于紋理貼片顏色差異的全局紋理優(yōu)化方法優(yōu)化目標三維表面模型的初始紋理的流程如圖3所示。
圖3 數據處理流程
對紋理邊界的顏色值,本文首先將三角網投影到影像中,獲取三角網中每個三角形對應的紋理三角形,然后將一張影像的相鄰紋理三角形影像合并成為紋理影像塊,最后標記紋理影像塊的邊界點作為三角網紋理邊界點在紋理影像塊上的投影點。對應同一三角網紋理邊界點的投影點具有不同的顏色值。
本文方法是通過消除三角網紋理邊界投影點的顏色值差異,使同一點上的顏色值一致,以達到消除邊界的目的,進而解決全三角網存在大范圍顏色差異的問題,并且根據自然形態(tài)下顏色是漸進的、平和的變化規(guī)律,將三角網頂點的顏色值處理成漸進的、傳遞的變化趨勢,以使三角網的顏色值看起來自然。
通過2.2節(jié)獲取的每一個頂點的顏色改變值并不能直接用于改變紋理貼片的顏色值。因此,需要對三角網投影到影像上的三角形柵格化,并確定出每個像素點的坐標。利用每個像素點的坐標和三角形頂點的距離作為權值來求取三角形每個像素點的顏色值改正值。其中,與頂點相對的邊和像素點構成的三角形越大,該頂點離像素點越近。根據像素點與頂點構成的三角形的大小比例就可以作為評價像素點到對應三角形頂點的距離函數。
通過上述紋理優(yōu)化方法優(yōu)化后的結果如圖4所示。
圖4 紋理優(yōu)化前后的結果對比
從圖4可以看出,在紋理優(yōu)化前的圖4(a)圖中,房屋頂棚紋理影像存在著明顯的色差,使得頂棚紋理看起來一塊一塊的,顏色分布不均勻。本來一體化的房屋屋頂看起來變的割裂,缺乏真實感。而通過本文紋理優(yōu)化后的圖4(b)圖可以看出,房屋頂棚的顏色更加一致,沒有明顯的顏色差,雖然房屋頂棚的顏色不是完全一致的,但是顏色接近,并且均勻變化,沒有一塊一塊的色斑的情況,顏色分布均勻,符合現實世界的樣子。對于在影像中有顏色變化的區(qū)域,該方法并沒有因為顏色平滑使得這些區(qū)域變的顏色模糊。通過本文提出的全局紋理優(yōu)化方法得到的整體重建效果如圖5所示。
圖5 整體重建效果圖
從圖5可以看出,本文提出的基于紋理貼片顏色差異的全局紋理優(yōu)化方法,其優(yōu)化模型紋理的效果理想,能夠有效解決三維表面模型存在色斑、紋理割裂的情況,進而使得建筑物紋理面的顏色一致,建筑看起來整體性更好,建筑界限更清晰,真實感更強。通過該方法優(yōu)化后的模型紋理沒有突兀的色差,使得模型光照渲染更加統(tǒng)一,能夠表達清楚細節(jié),并且保持了原始紋理絕大部分的顏色特征,沒有使得原始紋理出現顏色混亂的情況。利用該方法克服了城市三維表面模型重建中存在的顏色不一致、建模效果不真實等難題,證明該方法可行性高、紋理優(yōu)化效果較好,大大提高了無人機傾斜影像在城市三維模型重建中的可視性和真實性,使得模型可以更真實的模擬現實。
本文根據紋理貼片邊界間兩端的不同影像的顏色差異和紋理貼片內部頂點的顏色變化關系,提出了基于紋理貼片顏色差異的全局紋理優(yōu)化方法。該方法首先獲取頂點在不同紋理貼片上的顏色值,然后對頂點顏色值使用基于紋理貼片顏色差異的全局紋理優(yōu)化方程對城市三維模型進行紋理優(yōu)化。利用該方法對城市復雜區(qū)域的場景模型數據進行實驗,精確地校正了紋理顏色差異的問題。實驗結果表明,本文提出的方法具有紋理優(yōu)化效果好、光照一致性理想、模型紋理真實的優(yōu)勢。尤其在細節(jié)識別部分,通過紋理優(yōu)化獲得的紋理界限更加清晰。由于該方法校正紋理需要給三維模型頂點賦色值,而合理的選取紋理顏色值可以使紋理優(yōu)化更為理想,因此,如何更科學合理的給頂點賦色值將是下一步研究的內容。