《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于改进SFM的三维重建算法研究
基于改进SFM的三维重建算法研究
2019年电子技术应用第2期
蒋华强1,2,蔡 勇1,2,张建生1,李自胜1,2
1.西南科技大学 制造科学与工程学院,四川 绵阳621010; 2.制造过程测试技术省部共建教育部重点实验室,四川 绵阳621010
摘要: 针对现有运动恢复结构算法重建模型存在点云稀疏等问题,提出一种利用不同匹配数据进行模型重建的算法。首先通过对比上下文直方图(CCH)生成匹配数据,利用M估计抽样一致(MSAC)估算图像基础矩阵,进而分解得到平移和旋转矩阵,并根据相机内参计算投影矩阵,然后利用KLT匹配算法更新匹配数据,最后三角化生成三维点云。该算法匹配精度高,图像基础矩阵易于收敛,通过位移实现特征点匹配,弥补了图像低频区域匹配数据不足的缺陷。实验结果表明,与现有算法相比,该算法生成的点云更致密;在真实环境下,该算法可用于物体三维重建。
中图分类号: TP391.7
文献标识码: 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.
Research on 3D reconstruction algorithm based on improved SFM
Jiang Huaqiang1,2,Cai Yong1,2,Zhang Jiansheng1,Li Zisheng1,2
1.School of Manufacturing Science and Engineering,Southwest University of Science and Technology,Mianyang 621010,China; 2.Key Laboratory of Testing Technology for Manufacturing Process,Mianyang 621010,China
Abstract: Aiming at the sparse problem of object point cloud based on structure from motion method, a 3D reconstruction method using different matching data is proposed. The matching points are calculated by contrast context histogram(CCH) algorithm. The M-estimation sampling consensus(MSAC) algorithm is used to calculate the fundamental matrix, the translation and rotation matrix are decomposed from fundamental matrix. The image projection matrix is obtained combining the camera internal parameters. KLT algorithm is used to update the matching data, and the point cloud is generated by triangulation principle. This method makes use of the advantage of high accuracy of CCH algorithm to make the calculation results of the basic matrix converge. Using KLT algorithm to realize the matching by displacement instead of description vector, it makes up for the deficiency of matching data in low frequency region. The experimental results show that the proposed algorithm is effective and feasible, and the reconstructed point cloud has advantages in comparison with existing algorithms, it can be used for building 3D model of objects in the real scene.
Key words : 3D reconstruction;improved SFM;CCH;MSAC;KLT algorithm

0 引言

    物体建模往往需要大量人力和物力,但随着计算机算力提高,计算机视觉研究的不断深入和摄影设备的普及,基于视觉的建模技术成为解决此问题的一种新方法,并成功运用于文物保护、增强现实、自动驾驶、大规模场景三维重建以及医学图像处理等领域[1]。三维重建作为计算机视觉的一个重要研究内容,基于Marr理论框架,形成了多种理论方法,运动恢复结构(Structure from Motion,SFM)方法[2]是最广泛采用的方法之一。近年来,基于SFM研制出多种建模系统,如Visual SFM[3]、ETH-3D[4]、LS-ACTS[5]等。

    特征点匹配是基于SFM重建算法中最关键的一步,直接影响重建效果[2]。目前主要匹配算法有KLT(Kanade Lucas Tomasi Tracking,KLT)算法[6]、尺度不变特征转换(Scale Invariant Feature Transform,SIFT)算法[7]和加速稳健特征(Speeded Up Robust Features,SURF)算法[8]等,以及一些上述算法的改进算法,如基于仿射变换的SURF算法[9]。文献[10]采用SIFT算法提取图像特征点并匹配,结合相机参数将一组匹配点映射为一组空间直线,由于各种误差的存在,直线间将异面,取异面直线公垂线的中点为三维空间点。但SIFT算法实时性差,不利于未来工程应用。文献[11]使用SURF算法,寻找图像序列中的特征点,利用随机抽样一致(Random Sample Consensus,RANSAC)算法优化求解相机位置参数,得到图像的投影矩阵,并三角化生成空间点云,利用投影矩阵将三维点反投影回原图像,消除与原匹配点误差太大的特征点。但SIFT和SURF算法得到的匹配数据都比较稀疏,导致模型不完整。

    基础矩阵描述了两幅图像间对极几何的关系,估计基础矩阵是重建过程中重要的一步。估计基础矩阵常用的方法有七点法和八点法等方法,具有计算速度快的优点,但对噪声敏感[12]。HARLEY R I提出了归一化八点算法,在估计基础矩阵前对匹配点归一化处理,提高了算法的抗噪能力[13]

    在基于SFM重建算法中,基础矩阵的估计要求匹配数据精度高,三角化重建要求匹配数据数量大,二者对匹配数据的要求不同。本文提出一种采用不同匹配数据的重建算法,首先通过对比上下文直方图(Contrast context histogram,CCH)算法[14-15]提取图像匹配点对,使用归一化八点算法和M估计抽样一致(M-estimator Sample and Consensus,MSAC)算法[11]计算基础矩阵F,结合摄像机内参得到本质矩阵后,计算图像旋转矩阵R和平移矩阵T,并得到相机投影矩阵P;然后使用KLT特征跟踪算法更新匹配数据,三角化得到匹配点三维信息;最后将图像匹配点的颜色赋予三维空间点,得到具有颜色信息的点云模型。实验表明,本文算法能有效得到目标点云模型。

1 相关研究工作

1.1 CCH匹配算法

    计算CCH描述子之前,通过多尺度拉普拉斯金字塔下提取Harris角点[15]。将每一个角点Pc的邻域分为4个同心圆,每个圆区域均匀分为8个不重叠子区域,因此,存在32个子区域(r1,r2,…,r32)。将Pc点的方向设置为CCH描述子的0°方向,并以最小半径同心圆0°的子区域为r1,如图1所示。定义角点Pc邻域内一点P的对比度值:

jsj4-gs1-3.gif

jsj4-t1.gif

    遍历待匹配图像和匹配图像之间的特征点以进行匹配,CCH算法采用基于最近距离的匹配:

jsj4-gs4.gif

1.2 KLT算法

    SFM建模算法为获得高质量的匹配数据,使用的图像大都是在尺度和光照等条件相差不大时取得的,而这正满足KLT算法的假设。Kanade等提出的KLT算法假设在图像的亮度恒定或相差不大、空间一致或有小运动情况下,通过计算特征点的位移,得到对应的匹配点[6]

    KLT算法采用计算Hessian矩阵特征值的方法提取图像上特征点。假定在t时刻图像中的一点P1(x,y),对应灰度为I(x,y,t),经过时间dt后运动到新的位置P2(x+dx,y+dy),对应的灰度为I(x+dx,y+dy,t+dt),d=[dx,dy]为位移量,dt为时间变化量。

jsj4-gs5-7.gif

式中,Ir为两帧图像局部窗口内灰度之差,因而位移d=G-1e,从而得到该点对应的匹配点。

2 改进的三维重建算法

2.1 基础矩阵估算

jsj4-gs8-9.gif

2.2 投影矩阵计算

    从二维图像得到三维空间信息,需要相机的参数,包括相机内参矩阵K、平移矩阵T和旋转矩阵R。

jsj4-gs10-12.gif

其中,[R  t]为3×4的外参矩阵,P=K×[R  t]为内外参组合后3×4的投影矩阵。

2.3 三角化

jsj4-gs13-15.gif

2.4 改进三维重建的流程

    序列图像的重建是在两幅图像重建基础上通过增加匹配数据,得到更密集的点云。所以两幅图像的重建是SFM重建的基础,若两幅图像间重建得到大量的数据,可以极大地减少工作量。本文均以两幅图像为重建数据,分为以下几步:

    (1)计算CCH描述子:导入图像,根据1.1节中方法得到CCH描述子,并得到匹配点对;

    (2)估计基础矩阵F:基础矩阵的估计是为了得到本质矩阵E。使用2.1节中提到的方法估计基础矩阵,结合内参矩阵得到本质矩阵;

    (3)计算投影矩阵P:通过对本质矩阵E的分解得旋转矩阵R和平移矩阵T,结合相机内参恢复出相机的投影矩阵;

    (4)更新匹配数据:采用1.2节中提到的KLT算法,跟踪特征点,更新匹配数据;

    (5)三角化:利用2.3节方法,计算三维点生成点云;

    (6)点着色:将图像匹配点对的颜色赋予空间三维点,得到有色彩的点云。

3 实验结果与分析

    本文算法在Intel i3 CPU、4 GB RAM的Windows 7操作系统下,使用MATLAB R2016a实现。实验由两部分组成:(1)Fountain和Herz-Jesu图像[16],并将本文算法与文献[10]和文献[11]中的算法进行对比;(2)Desktop和Symbol图像,采用IMX258摄像头(Nubia手机内置)拍摄,分别为电脑桌面和西南科技大学制造科学与工程学院标志,以验证本文算法在真实场景下的可行性。

3.1 算法对比实验

    图2和图3分别为Fountain图像和Herz-Jesu图像重建结果,算法均采用为两幅图像重建生成点云,图中只列举了其中一幅,表1和表2为重建点云的数量和时间的对比。可以看到本文算法生成的点云在点的数量上优势明显。Herz-Jesu图像分辨率为3 024×2 048,建模效果比分辨率为720×480的Fountain图像要好,因为高分辨率意味着更丰富的信息。采用文献[10]和文献[11]中特征提取与匹配的方法,在特征匹配阶段,对于图像低频特征区域,描述子之间相似度较高,容易被认为是误匹配而被剔除,导致显示为空洞,如Herz-Jesu图像的“墙”部分,而采用本文算法可以得到“墙”部分点云。

jsj4-t2.gif

jsj4-t3.gif

jsj4-b1.gif

jsj4-b2.gif

    基于SIFT和SURF提取特征并匹配的方法,能够在图像光照、旋转及尺度等多种条件的变化下取得很好的匹配效果。而对于SFM来说,图像都是在光照和尺度等条件变化比较小的情况下取得的,以相机为参考系,可以认为场景内物体进行了小运动。此前提下,采用KLT特征追踪算法更新匹配数据,可以得到更好的效果。KLT算法基于特征的小运动假说,通过计算特征点的位移实现匹配,在图像低频区域,避免了特征点匹配时描述子相似度高而被剔除。因此,对于SFM重建方法,生成点云时,使用基于KLT的跟踪算法更合适。

    SFM三维重建方法中两次使用匹配数据,第一次用于计算基础矩阵,第二次用于三维重建。在图像匹配上CCH算法具有很高精度,同时匹配点数量较其他方法减少,利于MSAC算法迭代计算基础矩阵,使计算结果收敛。

3.2 真实场景重建实验

    采用张正友相机标定方法将IMX258摄像头进行相机标定,标定得到对应于式(10)中相机的参数:αx=3 115.833 678、γ=7.867 908、u0=1 527.096 651、αy=3 132.207 642、v0=2 073.525 058。表3为使用本文算法得到的图像运动参数。图4(a)和图4(c)为拍摄得到的Desktop图像与Symbol图像,分辨率均为4 160×3 120;图4(b)和图4(d)分别是使用本文算法建模的对应结果,点云模型点数量分别为43 374和56 013。可以看出,采用本文算法实现的物体的三维重建,其得到的点云模型相对完整。

jsj4-b3.gif

jsj4-t4.gif

4 结束语

    本文通过分析基于SFM的三维重建算法对匹配数据的要求不同,提出一种改进的三维重建算法。使用CCH算法得到匹配数据计算基础矩阵,使用KLT角点跟踪算法更新匹配数据,最后得到有色彩的点云模型。与现有的算法相比,本文算法在图像低频区域能得到更丰富的匹配数据,重建模型更完整。

    本文算法实现了基于图像的建模,并取得了较好效果。由于手机透镜采用塑胶透镜,光学性能较玻璃透镜低;同时手机CMOS传感器性能比专业单反低。因此Desktop和Symbol的图像质量比Fountain和Herz-Jesu差,下一步将研究提高手机拍摄图像质量的算法,结合本文算法开发基于序列图像的三维重建APP,实现使用手机完成图像的拍摄和重建全过程。

参考文献

[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] 景子君.运动法三维重建的研究与实现[D].合肥:中国科学技术大学,2018.

[12] 阚江明.基于计算机视觉的活立木三维重建方法[D].北京:北京林业大学,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)