文獻(xiàn)標(biāo)識(shí)碼: 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í)、自動(dòng)駕駛、大規(guī)模場景三維重建以及醫(yī)學(xué)圖像處理等領(lǐng)域[1]。三維重建作為計(jì)算機(jī)視覺的一個(gè)重要研究內(nèi)容,基于Marr理論框架,形成了多種理論方法,運(yùn)動(dòng)恢復(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ǔ)矩陣描述了兩幅圖像間對(duì)極幾何的關(guān)系,估計(jì)基礎(chǔ)矩陣是重建過程中重要的一步。估計(jì)基礎(chǔ)矩陣常用的方法有七點(diǎn)法和八點(diǎn)法等方法,具有計(jì)算速度快的優(yōu)點(diǎn),但對(duì)噪聲敏感[12]。HARLEY R I提出了歸一化八點(diǎn)算法,在估計(jì)基礎(chǔ)矩陣前對(duì)匹配點(diǎn)歸一化處理,提高了算法的抗噪能力[13]。
在基于SFM重建算法中,基礎(chǔ)矩陣的估計(jì)要求匹配數(shù)據(jù)精度高,三角化重建要求匹配數(shù)據(jù)數(shù)量大,二者對(duì)匹配數(shù)據(jù)的要求不同。本文提出一種采用不同匹配數(shù)據(jù)的重建算法,首先通過對(duì)比上下文直方圖(Contrast context histogram,CCH)算法[14-15]提取圖像匹配點(diǎn)對(duì),使用歸一化八點(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的對(duì)比度值:
遍歷待匹配圖像和匹配圖像之間的特征點(diǎn)以進(jìn)行匹配,CCH算法采用基于最近距離的匹配:
1.2 KLT算法
SFM建模算法為獲得高質(zhì)量的匹配數(shù)據(jù),使用的圖像大都是在尺度和光照等條件相差不大時(shí)取得的,而這正滿足KLT算法的假設(shè)。Kanade等提出的KLT算法假設(shè)在圖像的亮度恒定或相差不大、空間一致或有小運(yùn)動(dòng)情況下,通過計(jì)算特征點(diǎn)的位移,得到對(duì)應(yīng)的匹配點(diǎn)[6]。
KLT算法采用計(jì)算Hessian矩陣特征值的方法提取圖像上特征點(diǎn)。假定在t時(shí)刻圖像中的一點(diǎn)P1(x,y),對(duì)應(yīng)灰度為I(x,y,t),經(jīng)過時(shí)間dt后運(yùn)動(dòng)到新的位置P2(x+dx,y+dy),對(duì)應(yīng)的灰度為I(x+dx,y+dy,t+dt),d=[dx,dy]為位移量,dt為時(shí)間變化量。
式中,Ir為兩幀圖像局部窗口內(nèi)灰度之差,因而位移d=G-1e,從而得到該點(diǎn)對(duì)應(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)對(duì);
(2)估計(jì)基礎(chǔ)矩陣F:基礎(chǔ)矩陣的估計(jì)是為了得到本質(zhì)矩陣E。使用2.1節(jié)中提到的方法估計(jì)基礎(chǔ)矩陣,結(jié)合內(nèi)參矩陣得到本質(zhì)矩陣;
(3)計(jì)算投影矩陣P:通過對(duì)本質(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)對(duì)的顏色賦予空間三維點(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)行對(duì)比;(2)Desktop和Symbol圖像,采用IMX258攝像頭(Nubia手機(jī)內(nèi)置)拍攝,分別為電腦桌面和西南科技大學(xué)制造科學(xué)與工程學(xué)院標(biāo)志,以驗(yàn)證本文算法在真實(shí)場景下的可行性。
3.1 算法對(duì)比實(shí)驗(yàn)
圖2和圖3分別為Fountain圖像和Herz-Jesu圖像重建結(jié)果,算法均采用為兩幅圖像重建生成點(diǎn)云,圖中只列舉了其中一幅,表1和表2為重建點(diǎn)云的數(shù)量和時(shí)間的對(duì)比??梢钥吹奖疚乃惴ㄉ傻狞c(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]中特征提取與匹配的方法,在特征匹配階段,對(duì)于圖像低頻特征區(qū)域,描述子之間相似度較高,容易被認(rèn)為是誤匹配而被剔除,導(dǎo)致顯示為空洞,如Herz-Jesu圖像的“墻”部分,而采用本文算法可以得到“墻”部分點(diǎn)云。
基于SIFT和SURF提取特征并匹配的方法,能夠在圖像光照、旋轉(zhuǎn)及尺度等多種條件的變化下取得很好的匹配效果。而對(duì)于SFM來說,圖像都是在光照和尺度等條件變化比較小的情況下取得的,以相機(jī)為參考系,可以認(rèn)為場景內(nèi)物體進(jìn)行了小運(yùn)動(dòng)。此前提下,采用KLT特征追蹤算法更新匹配數(shù)據(jù),可以得到更好的效果。KLT算法基于特征的小運(yùn)動(dòng)假說,通過計(jì)算特征點(diǎn)的位移實(shí)現(xiàn)匹配,在圖像低頻區(qū)域,避免了特征點(diǎn)匹配時(shí)描述子相似度高而被剔除。因此,對(duì)于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)定得到對(duì)應(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)動(dòng)參數(shù)。圖4(a)和圖4(c)為拍攝得到的Desktop圖像與Symbol圖像,分辨率均為4 160×3 120;圖4(b)和圖4(d)分別是使用本文算法建模的對(duì)應(yīng)結(jié)果,點(diǎn)云模型點(diǎn)數(shù)量分別為43 374和56 013??梢钥闯?,采用本文算法實(shí)現(xiàn)的物體的三維重建,其得到的點(diǎn)云模型相對(duì)完整。
4 結(jié)束語
本文通過分析基于SFM的三維重建算法對(duì)匹配數(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].自動(dòng)化儀表,2011,32(1):30-32.
[11] 景子君.運(yùn)動(dòng)法三維重建的研究與實(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)