文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.183096
中文引用格式: 蔣華強,,蔡勇,,張建生,等. 基于改進(jìn)SFM的三維重建算法研究[J].電子技術(shù)應(yīng)用,,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è)備的普及,,基于視覺的建模技術(shù)成為解決此問題的一種新方法,并成功運用于文物保護(hù),、增強現(xiàn)實,、自動駕駛、大規(guī)模場景三維重建以及醫(yī)學(xué)圖像處理等領(lǐng)域[1],。三維重建作為計算機視覺的一個重要研究內(nèi)容,,基于Marr理論框架,形成了多種理論方法,,運動恢復(fù)結(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]等,,以及一些上述算法的改進(jìn)算法,如基于仿射變換的SURF算法[9],。文獻(xiàn)[10]采用SIFT算法提取圖像特征點并匹配,,結(jié)合相機參數(shù)將一組匹配點映射為一組空間直線,由于各種誤差的存在,,直線間將異面,,取異面直線公垂線的中點為三維空間點。但SIFT算法實時性差,,不利于未來工程應(yīng)用,。文獻(xiàn)[11]使用SURF算法,尋找圖像序列中的特征點,,利用隨機抽樣一致(Random Sample Consensus,,RANSAC)算法優(yōu)化求解相機位置參數(shù),得到圖像的投影矩陣,,并三角化生成空間點云,,利用投影矩陣將三維點反投影回原圖像,消除與原匹配點誤差太大的特征點,。但SIFT和SURF算法得到的匹配數(shù)據(jù)都比較稀疏,,導(dǎo)致模型不完整。
基礎(chǔ)矩陣描述了兩幅圖像間對極幾何的關(guān)系,,估計基礎(chǔ)矩陣是重建過程中重要的一步,。估計基礎(chǔ)矩陣常用的方法有七點法和八點法等方法,具有計算速度快的優(yōu)點,,但對噪聲敏感[12],。HARLEY R I提出了歸一化八點算法,在估計基礎(chǔ)矩陣前對匹配點歸一化處理,,提高了算法的抗噪能力[13],。
在基于SFM重建算法中,基礎(chǔ)矩陣的估計要求匹配數(shù)據(jù)精度高,,三角化重建要求匹配數(shù)據(jù)數(shù)量大,,二者對匹配數(shù)據(jù)的要求不同。本文提出一種采用不同匹配數(shù)據(jù)的重建算法,,首先通過對比上下文直方圖(Contrast context histogram,,CCH)算法[14-15]提取圖像匹配點對,,使用歸一化八點算法和M估計抽樣一致(M-estimator Sample and Consensus,MSAC)算法[11]計算基礎(chǔ)矩陣F,,結(jié)合攝像機內(nèi)參得到本質(zhì)矩陣后,,計算圖像旋轉(zhuǎn)矩陣R和平移矩陣T,并得到相機投影矩陣P,;然后使用KLT特征跟蹤算法更新匹配數(shù)據(jù),,三角化得到匹配點三維信息;最后將圖像匹配點的顏色賦予三維空間點,,得到具有顏色信息的點云模型,。實驗表明,本文算法能有效得到目標(biāo)點云模型,。
1 相關(guān)研究工作
1.1 CCH匹配算法
計算CCH描述子之前,,通過多尺度拉普拉斯金字塔下提取Harris角點[15]。將每一個角點Pc的鄰域分為4個同心圓,,每個圓區(qū)域均勻分為8個不重疊子區(qū)域,,因此,存在32個子區(qū)域(r1,,r2,,…,r32),。將Pc點的方向設(shè)置為CCH描述子的0°方向,,并以最小半徑同心圓0°的子區(qū)域為r1,如圖1所示,。定義角點Pc鄰域內(nèi)一點P的對比度值:
遍歷待匹配圖像和匹配圖像之間的特征點以進(jìn)行匹配,,CCH算法采用基于最近距離的匹配:
1.2 KLT算法
SFM建模算法為獲得高質(zhì)量的匹配數(shù)據(jù),使用的圖像大都是在尺度和光照等條件相差不大時取得的,,而這正滿足KLT算法的假設(shè),。Kanade等提出的KLT算法假設(shè)在圖像的亮度恒定或相差不大,、空間一致或有小運動情況下,,通過計算特征點的位移,得到對應(yīng)的匹配點[6],。
KLT算法采用計算Hessian矩陣特征值的方法提取圖像上特征點,。假定在t時刻圖像中的一點P1(x,y),,對應(yīng)灰度為I(x,,y,t),,經(jīng)過時間dt后運動到新的位置P2(x+dx,,y+dy),,對應(yīng)的灰度為I(x+dx,y+dy,,t+dt),,d=[dx,dy]為位移量,,dt為時間變化量,。
式中,Ir為兩幀圖像局部窗口內(nèi)灰度之差,,因而位移d=G-1e,,從而得到該點對應(yīng)的匹配點。
2 改進(jìn)的三維重建算法
2.1 基礎(chǔ)矩陣估算
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 改進(jìn)三維重建的流程
序列圖像的重建是在兩幅圖像重建基礎(chǔ)上通過增加匹配數(shù)據(jù),,得到更密集的點云。所以兩幅圖像的重建是SFM重建的基礎(chǔ),,若兩幅圖像間重建得到大量的數(shù)據(jù),,可以極大地減少工作量。本文均以兩幅圖像為重建數(shù)據(jù),,分為以下幾步:
(1)計算CCH描述子:導(dǎo)入圖像,,根據(jù)1.1節(jié)中方法得到CCH描述子,并得到匹配點對,;
(2)估計基礎(chǔ)矩陣F:基礎(chǔ)矩陣的估計是為了得到本質(zhì)矩陣E,。使用2.1節(jié)中提到的方法估計基礎(chǔ)矩陣,結(jié)合內(nèi)參矩陣得到本質(zhì)矩陣,;
(3)計算投影矩陣P:通過對本質(zhì)矩陣E的分解得旋轉(zhuǎn)矩陣R和平移矩陣T,,結(jié)合相機內(nèi)參恢復(fù)出相機的投影矩陣;
(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],,并將本文算法與文獻(xiàn)[10]和文獻(xiàn)[11]中的算法進(jìn)行對比,;(2)Desktop和Symbol圖像,采用IMX258攝像頭(Nubia手機內(nèi)置)拍攝,,分別為電腦桌面和西南科技大學(xué)制造科學(xué)與工程學(xué)院標(biāo)志,,以驗證本文算法在真實場景下的可行性。
3.1 算法對比實驗
圖2和圖3分別為Fountain圖像和Herz-Jesu圖像重建結(jié)果,,算法均采用為兩幅圖像重建生成點云,,圖中只列舉了其中一幅,表1和表2為重建點云的數(shù)量和時間的對比,??梢钥吹奖疚乃惴ㄉ傻狞c云在點的數(shù)量上優(yōu)勢明顯。Herz-Jesu圖像分辨率為3 024×2 048,,建模效果比分辨率為720×480的Fountain圖像要好,,因為高分辨率意味著更豐富的信息。采用文獻(xiàn)[10]和文獻(xiàn)[11]中特征提取與匹配的方法,,在特征匹配階段,,對于圖像低頻特征區(qū)域,描述子之間相似度較高,,容易被認(rèn)為是誤匹配而被剔除,,導(dǎo)致顯示為空洞,如Herz-Jesu圖像的“墻”部分,,而采用本文算法可以得到“墻”部分點云,。
基于SIFT和SURF提取特征并匹配的方法,能夠在圖像光照,、旋轉(zhuǎn)及尺度等多種條件的變化下取得很好的匹配效果,。而對于SFM來說,圖像都是在光照和尺度等條件變化比較小的情況下取得的,,以相機為參考系,,可以認(rèn)為場景內(nèi)物體進(jìn)行了小運動。此前提下,,采用KLT特征追蹤算法更新匹配數(shù)據(jù),,可以得到更好的效果,。KLT算法基于特征的小運動假說,,通過計算特征點的位移實現(xiàn)匹配,在圖像低頻區(qū)域,,避免了特征點匹配時描述子相似度高而被剔除,。因此,,對于SFM重建方法,生成點云時,,使用基于KLT的跟蹤算法更合適,。
SFM三維重建方法中兩次使用匹配數(shù)據(jù),第一次用于計算基礎(chǔ)矩陣,,第二次用于三維重建,。在圖像匹配上CCH算法具有很高精度,同時匹配點數(shù)量較其他方法減少,,利于MSAC算法迭代計算基礎(chǔ)矩陣,,使計算結(jié)果收斂。
3.2 真實場景重建實驗
采用張正友相機標(biāo)定方法將IMX258攝像頭進(jìn)行相機標(biāo)定,,標(biāo)定得到對應(yīng)于式(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)分別是使用本文算法建模的對應(yīng)結(jié)果,,點云模型點數(shù)量分別為43 374和56 013,。可以看出,,采用本文算法實現(xiàn)的物體的三維重建,,其得到的點云模型相對完整。
4 結(jié)束語
本文通過分析基于SFM的三維重建算法對匹配數(shù)據(jù)的要求不同,,提出一種改進(jìn)的三維重建算法,。使用CCH算法得到匹配數(shù)據(jù)計算基礎(chǔ)矩陣,使用KLT角點跟蹤算法更新匹配數(shù)據(jù),,最后得到有色彩的點云模型,。與現(xiàn)有的算法相比,本文算法在圖像低頻區(qū)域能得到更豐富的匹配數(shù)據(jù),,重建模型更完整,。
本文算法實現(xiàn)了基于圖像的建模,并取得了較好效果,。由于手機透鏡采用塑膠透鏡,,光學(xué)性能較玻璃透鏡低;同時手機CMOS傳感器性能比專業(yè)單反低,。因此Desktop和Symbol的圖像質(zhì)量比Fountain和Herz-Jesu差,,下一步將研究提高手機拍攝圖像質(zhì)量的算法,,結(jié)合本文算法開發(fā)基于序列圖像的三維重建APP,實現(xiàn)使用手機完成圖像的拍攝和重建全過程,。
參考文獻(xiàn)
[1] 佟帥,,徐曉剛,易成濤,,等.基于視覺的三維重建技術(shù)綜述[J].計算機應(yīng)用研究,,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圖像配準(zhǔn)算法[J].電子技術(shù)應(yīng)用,,2014,40(6):130-132.
[10] 胡影峰.基于SIFT特征匹配算子的三維重建方法研究[J].自動化儀表,,2011,,32(1):30-32.
[11] 景子君.運動法三維重建的研究與實現(xiàn)[D].合肥:中國科學(xué)技術(shù)大學(xué),2018.
[12] 闞江明.基于計算機視覺的活立木三維重建方法[D].北京:北京林業(yè)大學(xué),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.西南科技大學(xué) 制造科學(xué)與工程學(xué)院,四川 綿陽621010,;
2.制造過程測試技術(shù)省部共建教育部重點實驗室,,四川 綿陽621010)