古建筑一般構(gòu)造復(fù)雜,色彩豐富,歷史悠久,文化價(jià)值高且缺乏重建數(shù)字?jǐn)?shù)據(jù),一旦損毀,不可修復(fù)。隨著人們對(duì)古建筑研究與保護(hù)的發(fā)展,古建筑三維點(diǎn)云模型越來(lái)越重要,如何簡(jiǎn)單、快速、低成本地恢復(fù)古建三維坐標(biāo)、構(gòu)建點(diǎn)云模型是學(xué)術(shù)界的研究熱點(diǎn)和難點(diǎn)。前人在古建筑三維點(diǎn)云生成領(lǐng)域做了大量研究:文獻(xiàn)[1]直接使用鋼尺量測(cè)木構(gòu)件,結(jié)合高分辨率照片,使用計(jì)算機(jī)輔助設(shè)計(jì)(computer aided design, CAD)和 地理信息系統(tǒng)(geographic information system, GIS)軟件對(duì)仿唐古建筑景觀實(shí)現(xiàn)三維重建;文獻(xiàn)[2]利用地面激光雷達(dá)和無(wú)人機(jī)攝影測(cè)量多源數(shù)據(jù)完成了海會(huì)寺宋塔的三維精細(xì)化建模;文獻(xiàn)[3]利用近景攝影測(cè)量技術(shù)和比例尺測(cè)算,使用3DS MAX軟件完成了布達(dá)拉宮里十三世達(dá)賴靈塔殿金頂?shù)娜S重建。雖然以上方法獲取的古建筑三維點(diǎn)云精度高,但數(shù)據(jù)獲取過(guò)程復(fù)雜、工作量大、成本高,都不能滿足簡(jiǎn)單、快速、低成本地實(shí)現(xiàn)古建筑三維點(diǎn)云生成。
隨著近年計(jì)算機(jī)視覺(jué)技術(shù)的快速發(fā)展,運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)(structure from motion, SFM)以其簡(jiǎn)單、快速、低成本等優(yōu)勢(shì)備受追捧。SFM流行的多視幾何法[4]主要包括特征提取與匹配、多視圖幾何約束關(guān)系計(jì)算和三角測(cè)量。多視圖幾何約束關(guān)系計(jì)算是利用Longuet-Higgins提出的基礎(chǔ)矩陣(F-Matrix)或Luong提出的本質(zhì)矩陣(E-Matrix)[5]表示對(duì)極幾何原理。文獻(xiàn)[6]利用SFM技術(shù)建立了核桃樹桿的三維模型,文獻(xiàn)[7]將SFM應(yīng)用于化石表面量測(cè),文獻(xiàn)[8]地質(zhì)重建領(lǐng)域使用SFM技術(shù),文獻(xiàn)[9]利用SFM技術(shù)合成地面和航空點(diǎn)云實(shí)現(xiàn)三維重建,形成了地-空點(diǎn)云合并新方法。近年來(lái)SFM在各個(gè)領(lǐng)域被廣泛應(yīng)用,但古建筑點(diǎn)云生成領(lǐng)域應(yīng)用稀少,本文創(chuàng)新性地將SFM引入古建筑三維點(diǎn)云模型生成領(lǐng)域,形成了一種基于影像的古建筑三維點(diǎn)云生成方法,為古建筑保護(hù)點(diǎn)云生成提供新思路。SFM三維點(diǎn)云生成只需普通相機(jī)拍攝二維影像即可完成古建筑三維點(diǎn)云生成,魯棒性強(qiáng)、實(shí)用價(jià)值高。點(diǎn)云生成技術(shù)路線如圖1所示。首先利用普通相機(jī)采集古建筑影像集,圖像預(yù)處理和SFM三維重建,然后使用光束法平差進(jìn)行非線性模型優(yōu)化,最后進(jìn)行密集點(diǎn)云加密重建形成古建筑三維點(diǎn)云模型。
1影像的古建筑點(diǎn)云生成方法
影像預(yù)處理通常是平滑濾波,改善古建筑影像質(zhì)量。雙邊濾波法[10]是一種簡(jiǎn)單、局部、非迭代、能較好地保存邊緣的濾波方法,保留很多高頻信息,對(duì)低頻濾波效果最佳,適合于古建筑影像平滑處理.
光束法平差(bundle adjustment)是一種優(yōu)良的非線性誤差優(yōu)化算法[11],目前在攝影測(cè)量和計(jì)算機(jī)視覺(jué)等領(lǐng)域得到廣泛應(yīng)用,被譽(yù)稱為“萬(wàn)金油算法”。重投影誤差[12](reprojection error)是利用當(dāng)前估計(jì)的位姿信息將三維空間點(diǎn)投影到二維平面的坐標(biāo)與真實(shí)像點(diǎn)坐標(biāo)的距離誤差。對(duì)于序列圖像的三維點(diǎn)云生成,光束法平差就是最小化重投影誤差,也是一個(gè)最小二乘優(yōu)化問(wèn)題.
1.3一種基于影像的古建筑點(diǎn)云生成方法現(xiàn)存多種古建筑點(diǎn)云生成方法都不能簡(jiǎn)單、快速而低成本的實(shí)現(xiàn)古建筑點(diǎn)云生成,本文利用增量式SFM技術(shù)實(shí)現(xiàn)一種基于影像的古建筑三維點(diǎn)云生成方法.
影像集采集并預(yù)處理,基于SFM稀疏點(diǎn)云模型生成,密集點(diǎn)云生成和紋理映射。SFM稀疏點(diǎn)云模型生成又分為初始像對(duì)兩幅圖像點(diǎn)云模型生成和多幅序列圖像點(diǎn)云生成。“特征檢測(cè)”采用速度更快的ORB算子[13]進(jìn)行關(guān)鍵點(diǎn)提取和特征描述!疤卣髌ヅ洹笔窃陉P(guān)鍵點(diǎn)k-d tree基礎(chǔ)上ORB算子相鄰影像特征匹配,構(gòu)建匹配點(diǎn)對(duì)集。在匹配過(guò)程中使用k=2的KNN匹配算法,并選取Lowe的匹配規(guī)則Ratio Test(KNN找出最近明漢距離的最小的兩個(gè)關(guān)鍵點(diǎn),d1/d2小于某個(gè)閾值,則為正確匹配點(diǎn)對(duì))。該技術(shù)路線區(qū)別于傳統(tǒng)SFM技術(shù),使用了雙邊濾波預(yù)處理影像提高點(diǎn)云生成質(zhì)量。此外類似于攝影測(cè)量空三同時(shí)顧及外方位元素和地面點(diǎn),光束法平差誤差方程中整體考慮相機(jī)的位姿和模型空間點(diǎn)。光束法平差使誤差均勻地分布在整個(gè)點(diǎn)云生成過(guò)程中,能顯著提高古建筑點(diǎn)云生成模型的質(zhì)量。兩幅古建筑影像點(diǎn)云生成是選擇初始像對(duì)建立初始三維點(diǎn)云模型,多幅序列影像點(diǎn)云生成是在初始三維點(diǎn)云模型的基礎(chǔ)上依次匹配一副影像進(jìn)行點(diǎn)云生成并融入初始點(diǎn)云模型。所以初始點(diǎn)云模型是點(diǎn)云生成模型基準(zhǔn),兩幅古建筑影像點(diǎn)云生成是序列影像點(diǎn)云生成的前提和基礎(chǔ)。初始像對(duì)選擇不佳可能導(dǎo)致增量SFM中序列影像點(diǎn)云生成陷入局部最小值,初始像對(duì)選擇至關(guān)重要,選擇依據(jù)是:特征匹配點(diǎn)對(duì)數(shù)量和像對(duì)長(zhǎng)基線。特征匹配過(guò)程中RANSAC算法魯棒性估計(jì)單應(yīng)性矩陣并記錄內(nèi)點(diǎn)匹配率,低內(nèi)點(diǎn)匹配率對(duì)應(yīng)長(zhǎng)基線。所以初始像對(duì)是最低特征匹配點(diǎn)對(duì)的數(shù)量閾值約束下,內(nèi)點(diǎn)匹配率最低的像對(duì)。如圖2所示,初始像對(duì)兩幅古建筑影像點(diǎn)云生成包括初始像對(duì)選擇、求解基礎(chǔ)矩陣并優(yōu)化、剔除外點(diǎn)并組成跟蹤點(diǎn)集、求解本質(zhì)矩陣、計(jì)算相機(jī)位姿、求解投影矩陣、三角測(cè)量和光束法平差。其中,“計(jì)算基礎(chǔ)矩陣并優(yōu)化”使用8點(diǎn)法魯棒性(RANSAC算法[14])地計(jì)算初始像對(duì)的初始基礎(chǔ)矩陣F(基礎(chǔ)矩陣是一個(gè)3×3的矩陣,代數(shù)表示對(duì)極約束。F = e2^P1P2+),并使用L-M算法優(yōu)化!疤蕹恻c(diǎn)”是根據(jù)對(duì)極約束計(jì)算距離提出外點(diǎn)!坝(jì)算本質(zhì)矩陣”是使用5點(diǎn)算[15]法魯棒性估算(本質(zhì)矩陣是圖像歸一化后的基本矩陣,它是由對(duì)極約束定義產(chǎn)生的一個(gè)3×3矩陣,定義為:E = t^R )。“計(jì)算相機(jī)位姿”是SVD分解E得到初始旋轉(zhuǎn)矩陣和初始平移矩陣(考慮相機(jī)前方約束Cheirality Check)[16]!叭菧y(cè)量”是求匹配點(diǎn)集的初始三維模型坐標(biāo)點(diǎn)集X=[X Y Z]T并提取該點(diǎn)色彩集color=[R G B]T,color用于點(diǎn)云模型顯示!肮馐ㄆ讲睢笔钦w優(yōu)化初始兩幅圖像的位姿和初始點(diǎn)云模型坐標(biāo)。序列古建筑影像點(diǎn)云模型生成是在初始點(diǎn)云模型的基礎(chǔ)上,余下影像集中依次選擇一副影像與初始模型匹配生成點(diǎn)云并融入初始模型并更新。圖2中序列影像點(diǎn)云生成過(guò)程包括:加入一幅新影像、計(jì)算新影像投影矩陣、三角測(cè)量、點(diǎn)云生成完成判斷、局部光束法平差和全局光束法平差。“加入一幅新序列圖像”是從圖像集中選擇一幅與初始模型臨近的影像加入到初始稀疏三維點(diǎn)云模型中!坝(jì)算新影像投影矩陣”是利用空間點(diǎn)三維坐標(biāo)和新加入圖像對(duì)應(yīng)像點(diǎn)計(jì)算新加入圖像的投影矩陣。“三角測(cè)量”是使用新計(jì)算的投影矩陣和新加入圖像的關(guān)鍵點(diǎn)進(jìn)行三角測(cè)量生成關(guān)鍵點(diǎn)的稀疏點(diǎn)云模型并加入到初始模型中。“局部光束法平差”是整體優(yōu)化加入新圖像的位姿和新增點(diǎn)云模型坐標(biāo)!叭止馐ㄆ讲睢笔钦w優(yōu)化所有序列圖像位姿和所有圖像點(diǎn)云模型坐標(biāo)!叭止馐ㄆ讲睢焙蟮玫焦沤ㄖ∈椟c(diǎn)云模型,然后使用PMVS完成密集點(diǎn)云恢復(fù)。按照?qǐng)D2技術(shù)中的流程,普通相機(jī)拍攝古建筑序列影像,影像集雙邊濾波平滑預(yù)處理,增量SFM稀疏三維點(diǎn)云生成,光束法平差后進(jìn)行密集點(diǎn)云恢復(fù),可實(shí)現(xiàn)古建筑三維點(diǎn)云模型建立,促進(jìn)古建筑數(shù)字化保護(hù)與研究。
2 古建筑重建實(shí)驗(yàn)
2.1.1 實(shí)驗(yàn)數(shù)據(jù)環(huán)境圖3中,實(shí)驗(yàn)數(shù)據(jù)集為SONY ILCE-6000相機(jī)拍攝的位于北京建筑大學(xué)的29幅古建筑亭影像和24幅四合院影像,分辨率分別為4 080像素×2 720像素和5 472像素×3 648像素,焦距24 mm。古建筑紋理豐富、結(jié)構(gòu)復(fù)雜。
2.1.2 實(shí)驗(yàn)運(yùn)行環(huán)境實(shí)驗(yàn)運(yùn)行環(huán)境見(jiàn)表1。表1 點(diǎn)云生成實(shí)驗(yàn)運(yùn)行環(huán)境參數(shù)
| | | |
| | | |
| Intel(R) Core(TM) i5-5200U CPU @ 2.20 GHz | | Microsoft Visual Studio 2017 |
| | | |
| |
利用2.1中所展示的實(shí)驗(yàn)數(shù)據(jù)環(huán)境和實(shí)驗(yàn)運(yùn)行環(huán)境,在VS2017平臺(tái)上按照?qǐng)D2中三維點(diǎn)云生成技術(shù)路線編寫C++程序進(jìn)行點(diǎn)云模型建立實(shí)驗(yàn)。使用Ceres-solver1.10.0庫(kù)中光束法平差函數(shù)實(shí)現(xiàn)影像位姿和三維點(diǎn)云模型非線性優(yōu)化。實(shí)驗(yàn)部分參數(shù)見(jiàn)表2,實(shí)驗(yàn)效果見(jiàn)圖4。
殘差指加入圖像預(yù)處理和光束法平差后點(diǎn)云生成重投影平均殘差。從表2中可得,20 min內(nèi)可實(shí)現(xiàn)29幅2 000萬(wàn)像素影像古建筑點(diǎn)云生成,速度快;兩場(chǎng)實(shí)驗(yàn)場(chǎng)景PMVS時(shí)間占比總時(shí)間分別高達(dá)87%和80%;兩種實(shí)驗(yàn)場(chǎng)景點(diǎn)云生成平均殘差均小于一個(gè)像素,能實(shí)現(xiàn)亞像素級(jí)精度古建筑三維點(diǎn)云模型重建。生成的古建筑亭點(diǎn)云模型數(shù)據(jù)導(dǎo)入geomgic軟件測(cè)量圖4中A點(diǎn)到B點(diǎn)的模型距離為2.295 m,鋼尺實(shí)地量測(cè)真值為2.259 m,誤差距離為0.046 m。雙邊平滑濾波預(yù)處理改善古建筑影像質(zhì)量,光束法平差優(yōu)化點(diǎn)云生成精度、降低增量式誤差累積。圖4中古建筑三維點(diǎn)云生成模型飛點(diǎn)少,沒(méi)有明顯的點(diǎn)位漂移,點(diǎn)云生成效果良好,并保留了古建筑亭原始色彩。
表3 不同影像張數(shù)點(diǎn)云生成參數(shù)比較
單像耗時(shí)是古建筑點(diǎn)云模型生成過(guò)程中平均每張影像點(diǎn)云生成消耗的時(shí)間。從表3可以看出,相同場(chǎng)景下,影像張數(shù)越多點(diǎn)云模型生成時(shí)間消耗越大,并且時(shí)間非一維線性增長(zhǎng);同時(shí),影像張數(shù)越多,平均單張影像點(diǎn)云生成的時(shí)間消耗不斷增加,所以對(duì)于大場(chǎng)景古建筑三維點(diǎn)云模型生成時(shí)間消耗會(huì)大大增加。古建筑結(jié)構(gòu)復(fù)雜,點(diǎn)云模型生成的結(jié)構(gòu)點(diǎn)數(shù)量龐大。見(jiàn)表4,手工測(cè)量和全站儀方法進(jìn)行古建筑三維點(diǎn)云生成作業(yè)雖然精度高,但時(shí)間消耗巨大;基于激光雷達(dá)的點(diǎn)云生成方法精度高、速度快,但需要前期控制點(diǎn)布設(shè)、作業(yè)時(shí)容易形成掃描空洞并且成本高;而本文基于影像的古建筑點(diǎn)云生成方法雖然較激光雷達(dá)和全站儀測(cè)量方法精度低,但是時(shí)間花費(fèi)較少、成本低、作業(yè)簡(jiǎn)單容易實(shí)現(xiàn),后期維護(hù)方便。表4古建筑點(diǎn)云生成時(shí)間與精度不同方法對(duì)比
總體而言,相比于傳統(tǒng)全站儀測(cè)量、激光雷達(dá)掃描等技術(shù),這種基于影像的古建筑點(diǎn)云生成方法速度快、成本低、操作簡(jiǎn)單、容易實(shí)現(xiàn),能滿足大多數(shù)古建筑數(shù)字化三維點(diǎn)云模型建立,在未來(lái)古建筑數(shù)字化保護(hù)研究中必將嶄露頭角。
3 結(jié)束語(yǔ)
文中闡述了一種基于影像的古建筑三維點(diǎn)云生成方法,只需普通相機(jī)拍攝古建筑影像即可簡(jiǎn)單、快速而低成本地實(shí)現(xiàn)古建筑三維點(diǎn)云模型建立,該模型可用于古建筑數(shù)字化保護(hù)與研究等領(lǐng)域。該方法最大創(chuàng)新在于:將SFM技術(shù)開拓性應(yīng)用與古建筑三維點(diǎn)云生成領(lǐng)域,實(shí)驗(yàn)室驗(yàn)證了其可行性,為古建筑保護(hù)點(diǎn)云模型的建立提供了一種新思路。同時(shí),該方法也存在諸多不足:①點(diǎn)云生成算法中影像易受光照、鏡頭畸變等外在環(huán)境因素影響,魯棒性低;②由于增量式誤差累積等因素的影響,點(diǎn)云生成較激光雷達(dá)等方法精度低;③隨著影像張數(shù)的增加,時(shí)間消耗非線性增加,對(duì)于超大古建筑場(chǎng)景點(diǎn)云生成困難。所以下一步工作將著重解決以上不足:改進(jìn)特征提取與匹配算法,提高環(huán)境變化引起的算法魯棒性;選取測(cè)量相機(jī)并進(jìn)行相機(jī)檢校和影像矯正,嘗試非增量式SFM進(jìn)行古建三維點(diǎn)云生成,提高模型精度;設(shè)計(jì)算法剔除重復(fù)多余影像,嘗試同一場(chǎng)景多個(gè)稀疏模型,同時(shí)解算后配準(zhǔn)融合為單一稀疏點(diǎn)云模型,密集點(diǎn)云恢復(fù),降低整個(gè)古建筑點(diǎn)云模型生成的時(shí)間消耗。