一种增量式多视图三维重建方法与流程

文档序号:18624411发布日期:2019-09-06 22:50阅读:444来源:国知局
一种增量式多视图三维重建方法与流程

本发明涉及一种增量式多视图三维重建方法,属于计算机视觉技术领域。



背景技术:

随着电子技术和计算机技术的发展,消费级手持摄像设备可以方便的从各个角度获取物体的图像信息。基于运动恢复结构的多视图三维重建技术是通过拍摄不同角度的待重建物体图像,来计算生成该物体的三维模型,具有数据获取方式简便、自动化程度高、适应性强、应用范围广的特点。

在三维重建过程中该技术是通过一次性输入所有待重建物体的多视图图像,来获得待重建物体的三维模型。如果重建得到的三维模型效果不佳或希望补全细节信息,则需要重新拍摄或筛选待重建物体的多视图图像,再次运行重建流程,虽然进行的是关于同一物体的重建,但该多视图图像得到重建模型不能为之后新增图像的重建过程提供信息参考。



技术实现要素:

本发明为了解决基于运动恢复结构的多视图三维模型重建过程无法利用单幅新增图像对三维模型进行增量补全的问题,提供一种基于特征匹配和映射关系的增量式多视图三维重建方法,本发明所述方法简化人工筛选和三维模型配准等过程,快速准确地依靠多视图三维重建模型和新增图像实现模型细节信息补全。所采取的技术方案如下:

一种增量式多视图三维重建方法,所述方法包括:

步骤一、基于运动恢复结构方法进行多视图三维模型重建,获得三维重建模型,并将图像路径、图像相机矩阵和重建三维点信息分别存储到内存中;

步骤二、读取新增图像和步骤一所述三维重建模型,根据图像特征匹配关系和二维三维映射关系确立初始图像对,重建三维点云;

步骤三、每次新增一张待重建图像,并对所述待重建新增图像进行重建,直至所有图像重建完毕;

步骤四、对所述重建后的稀疏点云模型进行基于面片的多视图立体视觉稠密重建,进而完成多视图三维重建。

进一步地,步骤一的具体过程包括:

第一步、保存图像路径:图像路径为重建使用图像在计算机内存中的绝对路径,每个路径单独成行,保存到img.txt;

第二步、保存图像相机矩阵:每个图像相机矩阵单独存放pmats文件下的txt文档中,文档名为与重建图像路径中图像一一对应的索引数字,如0.txt,1.txt;

第三步、保存重建三维点信息:重建三维点信息包括重建后点总数和每个点参数两部分,保存到sfmout.txt。

进一步地,第一步所述图像相机矩阵为3×4的相机投影矩阵p,所述相机投影矩阵p为对于图像上的二维点x和其对应的三维空间点x,由x=px成立的矩阵。

进一步地,第三步所述保存重建三维点信息的具体保存形式为:所述重建后点总数保存在文档第一行;所述每个点参数分四行保存:第一行保存三维点的x、y、z坐标;第二行保存三维点的r、g、b颜色;第三行保存该点的可视化列表,即重建点在每张图片下的特征点索引,若某张图片不能观测到该点,则索引值置-1;第四行保存该点的重投影误差;

进一步地,步骤二所述重建三维点的具体过程包括:

第1步、读取新增图像和步骤一的三维重建模型;

第2步、提取图像特征并匹配:提取新增图像和多视图图像的sift特征,进行新增图像和多视图图像之间的特征匹配以及新增图像组之间的特征匹配;

第3步、生成初始图像对:计算保留每张多视图图像与不同新增图像特征匹配数量的最大值,并根据不同新增图像特征匹配数量的最大值进行降序排列,选择具有最多匹配数量的多视图图像作为起始图像,计算新增图像与所述多视图图像的二维特征匹配点在多视图三维重建模型中被重建成三维点的数量,选择具有最多已重建点数的新增图像与多视图三维重建模型形成初始图像对;

第4步、恢复新增图像的相机矩阵:已知多视图图像的相机矩阵和初始图像对之间的特征匹配关系,然后通过透视n点法计算新增图像的相机矩阵;所述透视n点法在匹配点数大于等于6时,采用直接线性变换法进行求解,由于实际匹配点数量通常较多,然后使用ransac算法对所求解进行优化计算;

第5步、恢复三维点坐标:使用线性三角化法通过相机矩阵求解新增图像中尚未重建的二维特征点对应的三维点坐标;然后,将计算得到的三维点坐标重投影到二维图像上,计算每个点的重投影误差;若误差大于离群阈值则去除该点,若误差小于离群阈值,则保留该点;将经重投影误差筛选后的三维点添加到已重建结果中;

第6步、全局优化:使用集束调整这种非线性最小化方法,对相机内参矩阵k,相机矩阵p和三维点坐标进行最大似然估计,使所有空间三维点到二维图像点上的重投影误差最小。

进一步地,步骤三中对所述待重建新增图像进行重建的具体过程包括:

步骤1、选取待重建新增图像:选出与上幅已重建图像特征匹配数量最多的待重建图像,计算图像的单应性矩阵,通过单应性矩阵将两幅图像变换到同一平面上,计算两幅图像的相似度,若相似程度在0.8~0.95之间,则选择该图像重建,否则选择匹配数量次多的重复此步骤。

步骤2、恢复相机矩阵:计算三维点坐标,并进行全局优化;

步骤3、步骤1至步骤2的内容直到所有图像重建完毕或无法选出合适的待重建图像。

进一步地,步骤2中所述计算三维点坐标,并进行全局优化的具体过程为:

step1、生成初始图像对:计算保留每张多视图图像与不同新增图像特征匹配数量的最大值,并根据不同新增图像特征匹配数量的最大值进行降序排列,选择具有最多匹配数量的对试图图像作为起始图像,计算新增图像与所述多视图图像的二维特征匹配点在多视图三维重建模型中被重建成三维点的数量,选择具有最多已重建点数的新增图像与多视图三维重建模型形成初始图像对;

step2、恢复新增图像的相机矩阵:已知多视图图像的相机矩阵和初始图像对之间的特征匹配关系,然后通过透视n点法计算新增图像的相机矩阵;所述透视n点法在匹配点数大于等于6时,采用直接线性变换法进行求解,由于实际匹配点数量通常较多,然后使用ransac算法对所求解进行优化计算;

step3、恢复三维点坐标:使用线性三角化法通过相机矩阵求解新增图像中尚未重建的二维特征点对应的三维点坐标;然后,将计算得到的三维点坐标重投影到二维图像上,计算每个点的重投影误差;若误差大于离群阈值则去除该点,若误差小于离群阈值,则保留该点;将经重投影误差筛选后的三维点添加到已重建结果中;

step4、全局优化:使用集束调整这种非线性最小化方法,对相机内参矩阵k,相机矩阵p和三维点坐标进行最大似然估计,使所有空间三维点到二维图像点上的重投影误差最小。

本发明有益效果:

本发明定义了多视图三维重建过程中模型的保存内容和保存格式,便于以多视图三维重建模型为基础继续迭代重建;利用新增图像与多视图图像的特征匹配关系和二维特征点到三维空间点的映射关系确立初始图像对,以每次新增一幅待重建图像的方式增量式重建,不断完善模型的细节信息。

本发明基于多视图三维重建模型进行增量式重建,简化了人工过程和配准过程,同时对于重建过程中的各个中间重建模型都可以保存成节点继续通过本方法重建,适用范围广,使用方式简便。

附图说明

图1为本发明方法的流程图。

图2为多视图重建三维模型。

图3为基于多视图三维重建模型补充16张新增图像后的三维模型。

具体实施方式

下面结合具体实施例对本发明做进一步说明,但本发明不受实施例的限制。

实施例1:

一种增量式多视图三维重建方法,如图1所示,所述方法包括:

步骤一、基于运动恢复结构方法进行多视图三维模型重建,获得三维重建模型,并图像路径、图像相机矩阵和重建三维点信息分别存储到内存中;

步骤二、读取新增图像和步骤一所述三维重建模型,根据图像特征匹配关系和二维三维映射关系确立初始图像对,重建三维点云;

步骤三、每次新增一张待重建图像,并对所述待重建新增图像进行重建,直至所有图像重建完毕;

步骤四、对所述重建后的稀疏点云模型进行基于面片的多视图立体视觉稠密重建,进而完成多视图三维重建。

其中,步骤一的具体过程包括:

第一步、保存图像路径:图像路径为重建使用图像在计算机内存中的绝对路径,每个路径单独成行,保存到img.txt;所述图像相机矩阵为3×4的相机投影矩阵p,所述相机投影矩阵p为对于图像上的二维点x和其对应的三维空间点x,由x=px成立的矩阵。

第二步、保存图像相机矩阵:每个图像相机矩阵单独存放pmats文件下的txt文档中,文档名为与重建图像路径中图像一一对应的索引数字,如0.txt,1.txt;

第三步、保存重建三维点信息:重建三维点信息包括重建后点总数和每个点参数两部分,保存到sfmout.txt。第三步所述保存重建三维点信息的具体保存形式为:所述重建后点总数保存在文档第一行;所述每个点参数分四行保存:第一行保存三维点的x、y、z坐标;第二行保存三维点的r、g、b颜色;第三行保存该点的可视化列表,即重建点在每张图片下的特征点索引,若某张图片不能观测到该点,则索引值置-1;第四行保存该点的重投影误差;

步骤二所述重建三维点的具体过程包括:

第1步、读取新增图像和步骤一的三维重建模型;

第2步、提取图像特征并匹配:提取新增图像和多视图图像的sift特征,进行新增图像和多视图图像之间的特征匹配以及新增图像组之间的特征匹配;

第3步、生成初始图像对:计算保留每张多视图图像与不同新增图像特征匹配数量的最大值,并根据不同新增图像特征匹配数量的最大值进行降序排列,选择具有最多匹配数量的多视图图像作为起始图像,计算新增图像与所述多视图图像的二维特征匹配点在多视图三维重建模型中被重建成三维点的数量,选择具有最多已重建点数的新增图像与多视图三维重建模型形成初始图像对;

第4步、恢复新增图像的相机矩阵:已知多视图图像的相机矩阵和初始图像对之间的特征匹配关系,然后通过透视n点法计算新增图像的相机矩阵;所述透视n点法在匹配点数大于等于6时,采用直接线性变换法进行求解,由于实际匹配点数量通常较多,然后使用ransac算法对所求解进行优化计算;

第5步、恢复三维点坐标:使用线性三角化法通过相机矩阵求解新增图像中尚未重建的二维特征点对应的三维点坐标;然后,将计算得到的三维点坐标重投影到二维图像上,计算每个点的重投影误差;若误差大于离群阈值则去除该点,若误差小于离群阈值,则保留该点;将经重投影误差筛选后的三维点添加到已重建结果中;

第6步、全局优化:使用集束调整这种非线性最小化方法,对相机内参矩阵k,相机矩阵p和三维点坐标进行最大似然估计,使所有空间三维点到二维图像点上的重投影误差最小。

步骤三中对所述待重建新增图像进行重建的具体过程包括:

步骤1、选取待重建新增图像:选出与上幅已重建图像特征匹配数量最多的待重建图像,计算图像的单应性矩阵,通过单应性矩阵将两幅图像变换到同一平面上,计算两幅图像的相似度,若相似程度在0.8~0.95之间,则选择该图像重建,否则选择匹配数量次多的重复此步骤。

步骤2、恢复相机矩阵:计算三维点坐标,并进行全局优化;

步骤3、步骤1至步骤2的内容直到所有图像重建完毕或无法选出合适的待重建图像。

其中,上述步骤2中所述计算三维点坐标,并进行全局优化的具体过程为:

step1、生成初始图像对:计算保留每张多视图图像与不同新增图像特征匹配数量的最大值,并根据不同新增图像特征匹配数量的最大值进行降序排列,选择具有最多匹配数量的多视图图像作为起始图像,计算新增图像与所述多视图图像的二维特征匹配点在多视图三维重建模型中被重建成三维点的数量,选择具有最多已重建点数的新增图像与多视图三维重建模型形成初始图像对;

step2、恢复新增图像的相机矩阵:已知多视图图像的相机矩阵和初始图像对之间的特征匹配关系,然后通过透视n点法计算新增图像的相机矩阵;所述透视n点法在匹配点数大于等于6时,采用直接线性变换法进行求解,由于实际匹配点数量通常较多,然后使用ransac算法对所求解进行优化计算;

step3、恢复三维点坐标:使用线性三角化法通过相机矩阵求解新增图像中尚未重建的二维特征点对应的三维点坐标;然后,将计算得到的三维点坐标重投影到二维图像上,计算每个点的重投影误差;若误差大于离群阈值则去除该点,若误差小于离群阈值,则保留该点;将经重投影误差筛选后的三维点添加到已重建结果中;

step4、全局优化:使用集束调整这种非线性最小化方法,对相机内参矩阵k,相机矩阵p和三维点坐标进行最大似然估计,使所有空间三维点到二维图像点上的重投影误差最小。

本发明的基本思想是保存已重建模型,寻找新旧图像之间的匹配关系,完成基于已重建模型的新图像组重建。发明提供的方法能够寻找新增图像与多视图图像之间的联系,在多视图重建模型的基础上继续添加新增图像来完善模型的细节信息,简化了筛选整理图像和三维模型配准过程。

同时,本发明提出了多视图重建的三维模型需要保存的信息和格式,通过新增图像与多视图图像之间的特征匹配关系和二维特征点到三维空间点的映射关系,寻找新增图像与多视图重建出的三维模型之间的关系,简化了对多视图三维重建模型进行细节信息补全的过程,提高了对多视图三维重建模型信息的利用率。

实施例2

本实施例展示了实施例1所述一种增量式多视图三维重建方法在12张多视图图像的具体重建过程,图2从左面、正面、右面三个角度展示了由12张多视图图像经稠密重建后的三维模型,可以发现未重建出木屋右面结构,具体过程为:

执行步骤一:将多视图重建结果中的图像路径、图像相机矩阵和重建三维点信息分别存储到内存中。

执行步骤二:读入多视图重建结果和新的16张图像。提取新增图像与多视图图像的sift特征,进行新增图像和多视图图像之间和新增图像组之间的特征匹配。根据匹配数量和二维三维映射关系,选择初始图像对并重建。计算得到的初始图像对为多视图图像索引0和新增图像索引19(图像索引基于新增图像和多视图图像的总数确定,本例中新增图像和多视图图像总数为28张,其中0~11号索引对应12张多视图图像,12~27号索引对应16张新增图像)。

执行步骤三:每次新增一张图像,增量式完成整个重建过程。

执行步骤四:对增量重建后的稀疏点云结果进行稠密重建。图3从左面、正面、右面展示了基于12张多视图重建结果的增量16张新增图像后的三维模型。

对比图2和图3可以发现,基于图2的重建结果补充重建16张新增图像后,完善了模型左面和正面的细节信息,同时重建出了模型的右面结构。

虽然本发明已以较佳的实施例公开如上,但其并非用以限定本发明,任何熟悉此技术的人,在不脱离本发明的精神和范围内,都可以做各种改动和修饰,因此本发明的保护范围应该以权利要求书所界定的为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1