文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.183096
中文引用格式: 蔣華強,,蔡勇,,張建生,等. 基于改進SFM的三維重建算法研究[J].電子技術應用,,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 引言
物體建模往往需要大量人力和物力,但隨著計算機算力提高,,計算機視覺研究的不斷深入和攝影設備的普及,,基于視覺的建模技術成為解決此問題的一種新方法,,并成功運用于文物保護、增強現(xiàn)實,、自動駕駛,、大規(guī)模場景三維重建以及醫(yī)學圖像處理等領域[1]。三維重建作為計算機視覺的一個重要研究內(nèi)容,,基于Marr理論框架,,形成了多種理論方法,運動恢復結構(Structure from Motion,,SFM)方法[2]是最廣泛采用的方法之一,。近年來,基于SFM研制出多種建模系統(tǒng),,如Visual SFM[3],、ETH-3D[4]、LS-ACTS[5]等,。
特征點匹配是基于SFM重建算法中最關鍵的一步,,直接影響重建效果[2]。目前主要匹配算法有KLT(Kanade Lucas Tomasi Tracking,,KLT)算法[6],、尺度不變特征轉換(Scale Invariant Feature Transform,SIFT)算法[7]和加速穩(wěn)健特征(Speeded Up Robust Features,,SURF)算法[8]等,,以及一些上述算法的改進算法,如基于仿射變換的SURF算法[9],。文獻[10]采用SIFT算法提取圖像特征點并匹配,,結合相機參數(shù)將一組匹配點映射為一組空間直線,由于各種誤差的存在,,直線間將異面,取異面直線公垂線的中點為三維空間點,。但SIFT算法實時性差,,不利于未來工程應用。文獻[11]使用SURF算法,,尋找圖像序列中的特征點,,利用隨機抽樣一致(Random Sample Consensus,RANSAC)算法優(yōu)化求解相機位置參數(shù),,得到圖像的投影矩陣,,并三角化生成空間點云,利用投影矩陣將三維點反投影回原圖像,,消除與原匹配點誤差太大的特征點,。但SIFT和SURF算法得到的匹配數(shù)據(jù)都比較稀疏,,導致模型不完整。
基礎矩陣描述了兩幅圖像間對極幾何的關系,,估計基礎矩陣是重建過程中重要的一步,。估計基礎矩陣常用的方法有七點法和八點法等方法,具有計算速度快的優(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,,結合攝像機內(nèi)參得到本質(zhì)矩陣后,計算圖像旋轉矩陣R和平移矩陣T,,并得到相機投影矩陣P,;然后使用KLT特征跟蹤算法更新匹配數(shù)據(jù),三角化得到匹配點三維信息,;最后將圖像匹配點的顏色賦予三維空間點,,得到具有顏色信息的點云模型。實驗表明,,本文算法能有效得到目標點云模型,。
1 相關研究工作
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和旋轉矩陣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é)中提到的方法估計基礎矩陣,結合內(nèi)參矩陣得到本質(zhì)矩陣,;
(3)計算投影矩陣P:通過對本質(zhì)矩陣E的分解得旋轉矩陣R和平移矩陣T,,結合相機內(nèi)參恢復出相機的投影矩陣;
(4)更新匹配數(shù)據(jù):采用1.2節(jié)中提到的KLT算法,,跟蹤特征點,,更新匹配數(shù)據(jù);
(5)三角化:利用2.3節(jié)方法,,計算三維點生成點云,;
(6)點著色:將圖像匹配點對的顏色賦予空間三維點,得到有色彩的點云,。
3 實驗結果與分析
本文算法在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圖像重建結果,,算法均采用為兩幅圖像重建生成點云,圖中只列舉了其中一幅,,表1和表2為重建點云的數(shù)量和時間的對比,。可以看到本文算法生成的點云在點的數(shù)量上優(yōu)勢明顯,。Herz-Jesu圖像分辨率為3 024×2 048,,建模效果比分辨率為720×480的Fountain圖像要好,因為高分辨率意味著更豐富的信息,。采用文獻[10]和文獻[11]中特征提取與匹配的方法,,在特征匹配階段,對于圖像低頻特征區(qū)域,,描述子之間相似度較高,,容易被認為是誤匹配而被剔除,,導致顯示為空洞,如Herz-Jesu圖像的“墻”部分,,而采用本文算法可以得到“墻”部分點云,。
基于SIFT和SURF提取特征并匹配的方法,能夠在圖像光照,、旋轉及尺度等多種條件的變化下取得很好的匹配效果,。而對于SFM來說,圖像都是在光照和尺度等條件變化比較小的情況下取得的,,以相機為參考系,,可以認為場景內(nèi)物體進行了小運動。此前提下,,采用KLT特征追蹤算法更新匹配數(shù)據(jù),,可以得到更好的效果。KLT算法基于特征的小運動假說,,通過計算特征點的位移實現(xiàn)匹配,,在圖像低頻區(qū)域,避免了特征點匹配時描述子相似度高而被剔除,。因此,,對于SFM重建方法,生成點云時,,使用基于KLT的跟蹤算法更合適,。
SFM三維重建方法中兩次使用匹配數(shù)據(jù),第一次用于計算基礎矩陣,,第二次用于三維重建,。在圖像匹配上CCH算法具有很高精度,同時匹配點數(shù)量較其他方法減少,,利于MSAC算法迭代計算基礎矩陣,,使計算結果收斂。
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)分別是使用本文算法建模的對應結果,,點云模型點數(shù)量分別為43 374和56 013,??梢钥闯觯捎帽疚乃惴▽崿F(xiàn)的物體的三維重建,,其得到的點云模型相對完整。
4 結束語
本文通過分析基于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ì)量的算法,結合本文算法開發(fā)基于序列圖像的三維重建APP,,實現(xiàn)使用手機完成圖像的拍攝和重建全過程,。
參考文獻
[1] 佟帥,,徐曉剛,易成濤,,等.基于視覺的三維重建技術綜述[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].電子技術應用,,2014,,40(6):130-132.
[10] 胡影峰.基于SIFT特征匹配算子的三維重建方法研究[J].自動化儀表,,2011,,32(1):30-32.
[11] 景子君.運動法三維重建的研究與實現(xiàn)[D].合肥:中國科學技術大學,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.制造過程測試技術省部共建教育部重點實驗室,,四川 綿陽621010)