文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.183096
中文引用格式: 蔣華強,蔡勇,張建生,等. 基于改進SFM的三維重建算法研究[J].電子技術(shù)應用,2019,45(2):88-92.
英文引用格式: Jiang Huaqiang,Cai Yong,Zhang Jiansheng,et al. Research on 3D reconstruction algorithm based on improved SFM[J]. Application of Electronic Technique,2019,45(2):88-92.
0 引言
物體建模往往需要大量人力和物力,但隨著計算機算力提高,計算機視覺研究的不斷深入和攝影設備的普及,基于視覺的建模技術(shù)成為解決此問題的一種新方法,并成功運用于文物保護、增強現(xiàn)實、自動駕駛、大規(guī)模場景三維重建以及醫(yī)學圖像處理等領域[1]。三維重建作為計算機視覺的一個重要研究內(nèi)容,基于Marr理論框架,形成了多種理論方法,運動恢復結(jié)構(gòu)(Structure from Motion,SFM)方法[2]是最廣泛采用的方法之一。近年來,基于SFM研制出多種建模系統(tǒng),如Visual SFM[3]、ETH-3D[4]、LS-ACTS[5]等。
特征點匹配是基于SFM重建算法中最關(guān)鍵的一步,直接影響重建效果[2]。目前主要匹配算法有KLT(Kanade Lucas Tomasi Tracking,KLT)算法[6]、尺度不變特征轉(zhuǎn)換(Scale Invariant Feature Transform,SIFT)算法[7]和加速穩(wěn)健特征(Speeded Up Robust Features,SURF)算法[8]等,以及一些上述算法的改進算法,如基于仿射變換的SURF算法[9]。文獻[10]采用SIFT算法提取圖像特征點并匹配,結(jié)合相機參數(shù)將一組匹配點映射為一組空間直線,由于各種誤差的存在,直線間將異面,取異面直線公垂線的中點為三維空間點。但SIFT算法實時性差,不利于未來工程應用。文獻[11]使用SURF算法,尋找圖像序列中的特征點,利用隨機抽樣一致(Random Sample Consensus,RANSAC)算法優(yōu)化求解相機位置參數(shù),得到圖像的投影矩陣,并三角化生成空間點云,利用投影矩陣將三維點反投影回原圖像,消除與原匹配點誤差太大的特征點。但SIFT和SURF算法得到的匹配數(shù)據(jù)都比較稀疏,導致模型不完整。
基礎矩陣描述了兩幅圖像間對極幾何的關(guān)系,估計基礎矩陣是重建過程中重要的一步。估計基礎矩陣常用的方法有七點法和八點法等方法,具有計算速度快的優(yōu)點,但對噪聲敏感[12]。HARLEY R I提出了歸一化八點算法,在估計基礎矩陣前對匹配點歸一化處理,提高了算法的抗噪能力[13]。
在基于SFM重建算法中,基礎矩陣的估計要求匹配數(shù)據(jù)精度高,三角化重建要求匹配數(shù)據(jù)數(shù)量大,二者對匹配數(shù)據(jù)的要求不同。本文提出一種采用不同匹配數(shù)據(jù)的重建算法,首先通過對比上下文直方圖(Contrast context histogram,CCH)算法[14-15]提取圖像匹配點對,使用歸一化八點算法和M估計抽樣一致(M-estimator Sample and Consensus,MSAC)算法[11]計算基礎矩陣F,結(jié)合攝像機內(nèi)參得到本質(zhì)矩陣后,計算圖像旋轉(zhuǎn)矩陣R和平移矩陣T,并得到相機投影矩陣P;然后使用KLT特征跟蹤算法更新匹配數(shù)據(jù),三角化得到匹配點三維信息;最后將圖像匹配點的顏色賦予三維空間點,得到具有顏色信息的點云模型。實驗表明,本文算法能有效得到目標點云模型。
1 相關(guān)研究工作
1.1 CCH匹配算法
計算CCH描述子之前,通過多尺度拉普拉斯金字塔下提取Harris角點[15]。將每一個角點Pc的鄰域分為4個同心圓,每個圓區(qū)域均勻分為8個不重疊子區(qū)域,因此,存在32個子區(qū)域(r1,r2,…,r32)。將Pc點的方向設置為CCH描述子的0°方向,并以最小半徑同心圓0°的子區(qū)域為r1,如圖1所示。定義角點Pc鄰域內(nèi)一點P的對比度值:
遍歷待匹配圖像和匹配圖像之間的特征點以進行匹配,CCH算法采用基于最近距離的匹配:
1.2 KLT算法
SFM建模算法為獲得高質(zhì)量的匹配數(shù)據(jù),使用的圖像大都是在尺度和光照等條件相差不大時取得的,而這正滿足KLT算法的假設。Kanade等提出的KLT算法假設在圖像的亮度恒定或相差不大、空間一致或有小運動情況下,通過計算特征點的位移,得到對應的匹配點[6]。
KLT算法采用計算Hessian矩陣特征值的方法提取圖像上特征點。假定在t時刻圖像中的一點P1(x,y),對應灰度為I(x,y,t),經(jīng)過時間dt后運動到新的位置P2(x+dx,y+dy),對應的灰度為I(x+dx,y+dy,t+dt),d=[dx,dy]為位移量,dt為時間變化量。
式中,Ir為兩幀圖像局部窗口內(nèi)灰度之差,因而位移d=G-1e,從而得到該點對應的匹配點。
2 改進的三維重建算法
2.1 基礎矩陣估算
2.2 投影矩陣計算
從二維圖像得到三維空間信息,需要相機的參數(shù),包括相機內(nèi)參矩陣K、平移矩陣T和旋轉(zhuǎn)矩陣R。
其中,[R t]為3×4的外參矩陣,P=K×[R t]為內(nèi)外參組合后3×4的投影矩陣。
2.3 三角化
2.4 改進三維重建的流程
序列圖像的重建是在兩幅圖像重建基礎上通過增加匹配數(shù)據(jù),得到更密集的點云。所以兩幅圖像的重建是SFM重建的基礎,若兩幅圖像間重建得到大量的數(shù)據(jù),可以極大地減少工作量。本文均以兩幅圖像為重建數(shù)據(jù),分為以下幾步:
(1)計算CCH描述子:導入圖像,根據(jù)1.1節(jié)中方法得到CCH描述子,并得到匹配點對;
(2)估計基礎矩陣F:基礎矩陣的估計是為了得到本質(zhì)矩陣E。使用2.1節(jié)中提到的方法估計基礎矩陣,結(jié)合內(nèi)參矩陣得到本質(zhì)矩陣;
(3)計算投影矩陣P:通過對本質(zhì)矩陣E的分解得旋轉(zhuǎn)矩陣R和平移矩陣T,結(jié)合相機內(nèi)參恢復出相機的投影矩陣;
(4)更新匹配數(shù)據(jù):采用1.2節(jié)中提到的KLT算法,跟蹤特征點,更新匹配數(shù)據(jù);
(5)三角化:利用2.3節(jié)方法,計算三維點生成點云;
(6)點著色:將圖像匹配點對的顏色賦予空間三維點,得到有色彩的點云。
3 實驗結(jié)果與分析
本文算法在Intel i3 CPU、4 GB RAM的Windows 7操作系統(tǒng)下,使用MATLAB R2016a實現(xiàn)。實驗由兩部分組成:(1)Fountain和Herz-Jesu圖像[16],并將本文算法與文獻[10]和文獻[11]中的算法進行對比;(2)Desktop和Symbol圖像,采用IMX258攝像頭(Nubia手機內(nèi)置)拍攝,分別為電腦桌面和西南科技大學制造科學與工程學院標志,以驗證本文算法在真實場景下的可行性。
3.1 算法對比實驗
圖2和圖3分別為Fountain圖像和Herz-Jesu圖像重建結(jié)果,算法均采用為兩幅圖像重建生成點云,圖中只列舉了其中一幅,表1和表2為重建點云的數(shù)量和時間的對比。可以看到本文算法生成的點云在點的數(shù)量上優(yōu)勢明顯。Herz-Jesu圖像分辨率為3 024×2 048,建模效果比分辨率為720×480的Fountain圖像要好,因為高分辨率意味著更豐富的信息。采用文獻[10]和文獻[11]中特征提取與匹配的方法,在特征匹配階段,對于圖像低頻特征區(qū)域,描述子之間相似度較高,容易被認為是誤匹配而被剔除,導致顯示為空洞,如Herz-Jesu圖像的“墻”部分,而采用本文算法可以得到“墻”部分點云。
基于SIFT和SURF提取特征并匹配的方法,能夠在圖像光照、旋轉(zhuǎn)及尺度等多種條件的變化下取得很好的匹配效果。而對于SFM來說,圖像都是在光照和尺度等條件變化比較小的情況下取得的,以相機為參考系,可以認為場景內(nèi)物體進行了小運動。此前提下,采用KLT特征追蹤算法更新匹配數(shù)據(jù),可以得到更好的效果。KLT算法基于特征的小運動假說,通過計算特征點的位移實現(xiàn)匹配,在圖像低頻區(qū)域,避免了特征點匹配時描述子相似度高而被剔除。因此,對于SFM重建方法,生成點云時,使用基于KLT的跟蹤算法更合適。
SFM三維重建方法中兩次使用匹配數(shù)據(jù),第一次用于計算基礎矩陣,第二次用于三維重建。在圖像匹配上CCH算法具有很高精度,同時匹配點數(shù)量較其他方法減少,利于MSAC算法迭代計算基礎矩陣,使計算結(jié)果收斂。
3.2 真實場景重建實驗
采用張正友相機標定方法將IMX258攝像頭進行相機標定,標定得到對應于式(10)中相機的參數(shù):αx=3 115.833 678、γ=7.867 908、u0=1 527.096 651、αy=3 132.207 642、v0=2 073.525 058。表3為使用本文算法得到的圖像運動參數(shù)。圖4(a)和圖4(c)為拍攝得到的Desktop圖像與Symbol圖像,分辨率均為4 160×3 120;圖4(b)和圖4(d)分別是使用本文算法建模的對應結(jié)果,點云模型點數(shù)量分別為43 374和56 013。可以看出,采用本文算法實現(xiàn)的物體的三維重建,其得到的點云模型相對完整。
4 結(jié)束語
本文通過分析基于SFM的三維重建算法對匹配數(shù)據(jù)的要求不同,提出一種改進的三維重建算法。使用CCH算法得到匹配數(shù)據(jù)計算基礎矩陣,使用KLT角點跟蹤算法更新匹配數(shù)據(jù),最后得到有色彩的點云模型。與現(xiàn)有的算法相比,本文算法在圖像低頻區(qū)域能得到更豐富的匹配數(shù)據(jù),重建模型更完整。
本文算法實現(xiàn)了基于圖像的建模,并取得了較好效果。由于手機透鏡采用塑膠透鏡,光學性能較玻璃透鏡低;同時手機CMOS傳感器性能比專業(yè)單反低。因此Desktop和Symbol的圖像質(zhì)量比Fountain和Herz-Jesu差,下一步將研究提高手機拍攝圖像質(zhì)量的算法,結(jié)合本文算法開發(fā)基于序列圖像的三維重建APP,實現(xiàn)使用手機完成圖像的拍攝和重建全過程。
參考文獻
[1] 佟帥,徐曉剛,易成濤,等.基于視覺的三維重建技術(shù)綜述[J].計算機應用研究,2011,28(7):2411-2417.
[2] CAO M,CAO L,JIA W,et al.Evaluation of local features for structure from motion[J].Multimedia Tools & Applications,2018,77(9):1-15.
[3] WU C.Towards linear-time incremental structure from motion[C].International Conference on 3D Vision,IEEE Computer Society,2013:127-134.
[4] ZACH C.Robust bundle adjustment revisited[C].European Conference on Computer Vision.Springer,2014:772-787.
[5] ZHANG G,LIU H,DONG Z,et al.Efficient non-consecutive feature tracking for robust structure from motion[J].IEEE Trans Image Process,2015,25(12):5957-5970.
[6] SHI J,TOMASI C.Good features to track[C].Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.IEEE,2002:593-600.
[7] LOWE D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[8] BAY H,ESS A,TUYTELAARS T,et al.Speeded-up robust features[J].Computer Vision & Image Understanding,2008,110(3):404-417.
[9] 劉欣,李校林,謝燦,等.一種基于仿射變換的SURF圖像配準算法[J].電子技術(shù)應用,2014,40(6):130-132.
[10] 胡影峰.基于SIFT特征匹配算子的三維重建方法研究[J].自動化儀表,2011,32(1):30-32.
[11] 景子君.運動法三維重建的研究與實現(xiàn)[D].合肥:中國科學技術(shù)大學,2018.
[12] 闞江明.基于計算機視覺的活立木三維重建方法[D].北京:北京林業(yè)大學,2008.
[13] HARTLEY R I.In defence of the 8-point algorithm[C].International Conference on Computer Vision,IEEE Computer Society,1995:1064-1070.
[14] HUANG C R,CHEN C S,CHUNG P C.Contrast context histogram a discriminating local descriptor for image matching[C].International Conference on Pattern Recognition.IEEE,2006:53-56.
[15] HUANG C R,CHEN C S,CHUNG P C.Contrast context histogram—An efficient discriminating local descriptor for object recognition and image matching[J].Pattern Recognition,2008,41(10):3071-3077.
[16] STRECHA C,HANSEN W V,GOOL L V,et al.On benchmarking camera calibration and multi-view stereo for high resolution imagery[C].2018 IEEE Conference on Computer Vision and Pattern Recognition.IEEE,2008:1-8.
作者信息:
蔣華強1,2,蔡 勇1,2,張建生1,李自勝1,2
(1.西南科技大學 制造科學與工程學院,四川 綿陽621010;
2.制造過程測試技術(shù)省部共建教育部重點實驗室,四川 綿陽621010)