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