張秋敏,曹 治
(1. 江西應用科技學院建筑工程學院,江西 南昌 330100;2. 南昌航空大學,江西 南昌 330000)
城市景觀建筑物代表著一個城市的風采和內涵,是每個城市的文化體現(xiàn),具有很重要的藝術和科學研究價值。為了更好地保護、修繕城市景觀性建筑物,對其展開全景3D模型紋理映射研究具有重要的意義[1]。傳統(tǒng)的模型紋理映射方法存在信息量少、真實性差以及速度慢等問題,不能滿足建設規(guī)劃的要求,因此,研究一種高效、精準的城市景觀建筑物全景3D模型紋理映射方法成為了當下最熱門的研究課題。
有學者利用城市景觀建筑物多邊形角點和面積獲取最佳像片,通過攝影中心和多邊形角點連接光束及遮擋面相交的點判斷是否遮擋,最后采用間接法紋理糾正獲取模型的最佳紋理,完成模型紋理映射,該方法紋理映射效果不佳,精準度較低。除此之外,文獻[2]提出了一種基于幀緩存的紋理映射方法,首先將城市景觀建筑物精細模型與傾斜攝影測量解決方案產生的三角網(wǎng)模型配準,根據(jù)其空間特征提取紋理,通過幀緩存紋理繪制方法將紋理映射到城市建筑物模型表面,完成模型紋理映射,該方法構建的模型存在模糊現(xiàn)象,平面誤差高。文獻[3]提出了一種基于PTM模型的紋理映射方法,獲取表示色彩與建筑亮度依賴關系的雙二次多項式關系,然后獲得其紋理信息后直接映射到建筑物模型表面,完成模型紋理映射,該方法構建模型時存在失真現(xiàn)象。
為了解決上述方法中存在的問題,提出一種城市景觀建筑物全景3D模型紋理映射方法。
由于各種外界因素的影響,獲取的城市景觀性建筑物的點云數(shù)據(jù)集存在一些噪聲,首先對獲取的線掃描數(shù)據(jù)展開去噪處理[4-5]。對于線掃描數(shù)據(jù),通過掃描線逐行排查實施去噪操作。并通過最小二乘法將截面數(shù)據(jù)的起點與終點近似為曲線,在此過程中,擬合多項式次數(shù)越多,擬合曲線與實際建筑物越相似。
設A1,A2,A3代表平面中隨機一個圓上的三個點,圓心坐標是(x0,y0),則A2的曲率值l表達式如下:
(1)
用S表示掃描線點云數(shù)據(jù)集合,依照順序選擇掃描線上的數(shù)據(jù)點Ai,j、Ai,j+1、Ai,j+2,根據(jù)式(1)獲取所有數(shù)據(jù)點的曲率值。求解S中同等距離的兩個點之間的曲率差值,當差值超過閾值n個點時,將掃描線劃分為n+1段,擬合每個分段的點云數(shù)據(jù),去掉大于閾值的數(shù)據(jù)點。
考慮到城市景觀建筑物全景3D模型中離散點云數(shù)據(jù)[6-8]之間不存在明顯的集合關系,通過計算數(shù)據(jù)點和剩余點的方差,再通過對比,就可以去掉對應的噪聲點。
如果中心點A的局部坐標系為(o,b,k),將其設為目標,按照概率統(tǒng)計理論,得到正態(tài)分布N(τ,υ),其中,均值τ決定了形狀位置與坐標系原點的變化,復合方差υ決定了形狀的開口和噪聲程度,數(shù)值越大形狀開口越大,數(shù)值越小開口越小;將其和閾值實施對比操作,去掉υ大于閾值的全部數(shù)據(jù)點,完成去噪操作。υ的表達式如下:
(2)
在去噪時,如果閾值小于υ,則運用下列公式對(o,b,k)每個方向的△o、△b、△k分別展開求解,具體公式如下:
(3)
通過上式去除全部方向上的最大噪聲點,然后不斷迭代循環(huán),直至刪除全部噪聲點。
傳統(tǒng)方法對去噪后的點云數(shù)據(jù)實施拼接處理的結果不太理想[9],本文方法采用ICP算法對城市景觀建筑物的點云數(shù)據(jù)展開精準拼接。
ICP算法是通過設定目標距離度量函數(shù)以及對應點的選擇達到快速收斂和確保函數(shù)優(yōu)化至全局最小[10-11]。根據(jù)點到點距離模型特點與點到面距離模型的特征,將二者之間的總體度量函數(shù)相結合,利用分層次設置迭代循環(huán)的停止條件,使迭代次數(shù)大大降低,通過重采樣對應點云,將尋找對應點的時間降低至最小,精準選擇正確的對應點,完成點云數(shù)據(jù)的精準拼接。
1)第一個層次的迭代收斂。針對具有N個邊的局部點云數(shù)據(jù)A1、W1,將通過幾何曲率取樣手法得到的點集對A2、W2視作對應點集對,為了減少迭代次數(shù),縮短點云數(shù)據(jù)之間的距離,需要設立相對大一點的停止閾值0.1mm。
假設點云數(shù)據(jù)A1、W1上的點分別表示為ai、wi(1=1,2,…N),從概念上來看,拼接兩個曲面時相對應的點對(ai,wi)之間存在以下剛體變換:
|Y(ai)-wj|=0
(4)
式中,Y(ai)表示對ai實施Y變換。由于現(xiàn)實中存在各種影響因素,上式很難成立,為了使式(4)成立,需要設立一個精度可以承擔的無窮小值r,即:
(5)
對于不規(guī)則曲面來說,探索對應點對的位置艱難且時間消耗較大。所以將曲面A2固定,采用k-d tree搜索算法搜索W2中A2最小間隔的最近點wi,如下所示:
(6)
(7)
圖1 度量函數(shù)收斂模擬圖
點ai處的切平面為di,則距離度量函數(shù)表達式如下:
(8)
點到平面的距離可視為一個線性函數(shù):
(9)
通過上述步驟可以大大降低迭代次數(shù),提高收斂速度,但是誤差還未降低,所以要繼續(xù)提高精確度。
2)第二個層次的迭代收斂。探索對應點的位置,若已知對應關系參數(shù){v1,v2,…,vk},則可以快速獲取各個點相對應的最近的點。反之,若兩個點云數(shù)據(jù)之間位于拼接的最好形態(tài),此時存在的轉換關系即為探索的最佳拼接參數(shù)。所以通過獲取轉換參數(shù)Atr1,對A2實施重采樣計算,獲得參考局部最近點集W4,并在其中搜索最近點,此時檢索的時間低于運用k-dtree搜索算法展開全局搜索的時間。
1)假設點云數(shù)據(jù)目標為A3(ai∈A(i=1,2,…,Na)),點云數(shù)據(jù)參考為W3(wi∈W(i=1,2,…,Nw));
2)運用最初的點云數(shù)據(jù)拼接轉換參數(shù)Atr1,將A3中Na個點在W3間局部重取樣的對應點集W4A標識出來;
3)將點云數(shù)據(jù)初始化:X0=A3,Y0=[100000]Y,k=0;
4)運用k-dtree在W4的鄰近局部地點檢索A3最近的點,當?shù)_到第k次以后,得到的點集W4k=(A3,W4A);
5)計算點云數(shù)據(jù)的拼接參數(shù)g(A3,W4k);
6)對X0展開計算獲取新一個迭代點集Xk+1;
7)若不符合迭代收斂要求fk-fk+1<ε,則返回步驟4)(迭代的停止要求ε設置為0.02mm),否則停止迭代操作,獲取點云數(shù)據(jù)拼接的最優(yōu)轉換參數(shù)Atr2。
通過上述步驟實現(xiàn)點云數(shù)據(jù)拼接,提升城市景觀性建筑物全景3D模型紋理映射精準度。
為了避免紋理圖像局部扭曲變形、圖像失真和映射效果差等情況的發(fā)生,利用半球面等比約束球面映射算法對模型展開紋理映射操作[12]。此算法可以通過不斷調整倍數(shù)大小均勻控制球面紋理映射的覆蓋范圍。
假設紋理平面上隨機點T1的極坐標表示為(r,β),將其映射到半球面上,與之對應的點U的經緯坐標為T2(δ,σ),如下圖2所示。
圖2 紋理圖片在半球面的映射
(10)
(11)
通過上述算法構建紋理圖片和球面之間的關系,進而構建點云重建模型和球面之間的關系,通過獲取對應的紋理坐標完成城市景觀建筑物全景3D模型的紋理映射[14-15]。
第一步,選取一個半徑尺寸合適的半球面,將城市景觀建筑物的點云模型包圍起來,使這個半球的軸正好穿過建筑物底部的中心位置,選擇適當?shù)那蛐牡浇ㄖ撞恐g的距離,最后通過面積等比約束算法,將紋理圖案映射到球冠面上。設城市景觀建筑物點云模型中的隨機一個點為T(vx,vy,vz),為了方便計算,在z軸上設定一個固定點U(x1,y1,z1),則球表示為x2+y2+z2=r2,點云模型中的點與固定點U之間的一條直線表示為:
(12)
使這條直線相交于球,計算k值求得點云和球面的對應關系。k值的求解方法如下:
(13)
式中,mid的計算量較大,因此需要將其簡化,令U為(0,0,z),此時可求得點云模型中點和球面之間的關系,即x=k×(vx-x1)+x1,y=k×(vy-y1)+y1,z=k×(zy-z1)+z1。
(14)
在點云數(shù)據(jù)渲染中,通過上式將紋理坐標直接覆蓋到點云模型的各個點上,進而完成城市景觀建筑物全景3D模型的紋理映射。
為了驗證城市景觀建筑物全景3D模型紋理映射方法的整體有效性,需要對其展開如下測試。采用MATLAB仿真軟件對實驗圖像進行處理,實驗所用圖像來自Inria 航空影像數(shù)據(jù)集(http:∥m6z.cn/6nUs6s),在該數(shù)據(jù)集中選取城市景觀建筑物對象,如圖3所示。建立城市景觀建筑物的全景架構,架構的完整度直接決定紋理映射的效果,對圖3所示的城市景觀建筑物展開架構重建,結果如圖4所示。
圖3 城市景觀建筑物
圖4 城市景觀建筑物架構重建效果
對城市景觀建筑物的全景架構展開紋理映射,結果如圖5所示。
圖5 城市景觀建筑物全景架構紋理映射效果
分析圖4和圖5可知,所提方法的紋理映射效果最佳,其余兩種方法均存在不同程度的模型缺失、扭曲、變形、失真和粗糙等問題,而所提方法構建的城市景觀建筑物全景3D模型基本不存在上述問題,因為所提方法首先對點云數(shù)據(jù)展開去噪處理,其次采用ICP算法對點云數(shù)據(jù)實施精準拼接,最后運用半球面等比約束算法重建模型的紋理映射,消除了外在因素對建模過程產生的影響,可以很好地完成城市景觀建筑物全景3D模型的紋理映射。
將城市景觀建筑物全景3D模型的點位平面誤差作為指標,測試三種方法的應用效果,結果如表1所示。
表1 點位平面誤差對比結果
根據(jù)上表1可知,在測試過程中,三種方法均存在平面誤差,其中所提方法的平面誤差最低,最高值為0.089米,其余兩種方法的平面誤差遠高于所提方法,表明所提方法在城市景觀建筑物全景3D模型紋理映射中精準度高、性能好。
現(xiàn)階段城市景觀建筑物全景3D模型紋理映射存在失真、模糊、精準度低以及效率低的問題,提出城市景觀建筑物全景3D模型紋理映射方法,該方法首先制作城市景觀建筑物全景3D模型,對點云數(shù)據(jù)展開去噪處理,其次運用ICP算法對城市景觀建筑物的點云數(shù)據(jù)展開精準拼接,最后采用半球面等比約束算法重建模型的紋理映射,進而實現(xiàn)城市景觀建筑物全景3D模型紋理映射。通過實驗驗證了該方法實現(xiàn)了對現(xiàn)有方法的優(yōu)化,其應用價值更高。