一种基于优化的三维重建的快速图像拼接方法与流程

文档序号:21878442发布日期:2020-08-18 16:22阅读:510来源:国知局
一种基于优化的三维重建的快速图像拼接方法与流程

本发明涉及图像三维重建技术领域,主要涉及一种基于优化的三维重建的快速图像拼接方法。



背景技术:

三维重建技术是进行全自动图像拼接的重要技术。因其无需人工干预,无需辅助参考影像的特性,学者提出了可以利用基于图像的三维重建技术进行全自动地重建拍摄区域。

目前,基于图像的三维重建技术主要有基于单幅图像利用几何投影和深度学习的方式进行重建,但是这种方式受图像中图形的几何条件和光照条件影响较大,不适合在大型户外场景中使用;有基于rgb-d深度相机,如微软的kinect等。

在这些理论和方法中,最重要的三类是同时定位和映射(slam)、运动结构(sfm)和多视场立体(mvs)算法。其中采用经典的slam算法来重建三维图像,目前已有比较成熟的成果,如orb-slam2,这种方法可以在短时间内较高精度地重建受光照条件影响不大的室内场景,但是由于深度相机本身对于环境光照条件非常敏感,这种方法并不适合应用在户外无人机航拍中。

从sfm和mvs技术构建拍摄区域的密集点云,再通过密集点云来实现影像的拼接这种方法可以在不借助其他辅助条件的情况下,较高精度地重建出拍摄地区的三维图像,但是存在计算量较大,实时性很差的缺点。

在实现图像拼接的过程中,需要对图像特征点进行提取,sift(尺度不变特征变换)是一种常用的特征描述子,其对旋转、尺度缩放、亮度变化等均保持良好的不变性,是一种非常稳定的局部特征,具有良好的鲁棒性。但是由于sift算子的特征向量具有高达128的维数,其计算的复杂程度相当高,需要付出很大的时间成本,降低了效率。

此外,用来消除错误匹配的方法是一个高维非线性优化问题,往往采用迭代的方法来求解,所以需要一个合适的初值。所以选择合适的初始化图像对十分重要,一旦被赋予了错误的初值,将会陷入局部最优中。在初始化的两帧图片进行了第一次光束平差法和重建三维点后,不断添加新的图像,最后得到相机的估计参数和场景的几何信息,即稀疏的三维点云。同时在初值选定后关于下一个视图选择的决策也十分重要,选择的差错会带来巨大的时间代价。



技术实现要素:

发明目的:为了解决上述背景技术中存在的问题,本发明提供了一种基于优化的三维重建的快速图像拼接方法,在消除误差积累时,提出如何在初始化完成后选择下一个最佳视图的优化策略,保证点云生成的准确性,减少光束平差法失败的可能性。

技术方案:为实现上述目的,本发明采用的技术方案为:

一种基于优化的三维重建的快速图像拼接方法,包括以下步骤:

步骤1、提取n幅输入图像的灰度图;

步骤2、采用快速鲁棒性特征算法对每幅图像特征点进行检测,生成图像描述子x,其中x=(x1,x2...,x64);所述图像描述子为64维向量,生成步骤如下:

步骤2.1、选取像素点l(x,y,σ)并构建海森矩阵如下:

其中σ为像素点尺度,lxx(x,σ)、lxy(x,σ)、lyy(x,σ)是x点处高斯函数二阶偏导数和图像的二维卷积;

步骤2.2、将经过海森矩阵处理过的每个像素点i(x,y,σ),即获得每个像素点海森矩阵的判别式的值,与图像内3*3*3的立体邻域内的其他26个像素点比较海森矩阵判别式的值大小;当像素点i对应的海森矩阵的判别式值为最大值时,保留该像素点作为初步特征点;当像素点i对应的海森矩阵的判别式值为最小值时,保留该像素点作为初步特征点;

步骤2.3、采用haar小波确定特征点的主方向;以步骤2.2中选取的特征点为中心,6s为半径为范围,用半径长为4s的haar小波计算在z,y方向的小波响应,其中s代表特征值的尺度值;对所述小波响应进行加权,用于保证靠近特征点的响应影响大,远离特征点的响应影响小;用扇形在圆内扫描,计算扇形内的响应总和,选择最长矢量方向为该特征点的主方向;

步骤2.4、构造特征描述子;以特征点为中心选取正方形框,所述正方形框边长为20s,正方形框方向为步骤2.3中选取的特征点主方向;将正方形框分为16个子区域,分别统计像素点相对于特征点主方向水平及垂直方向的haar小波特征∑dx、∑dy、∑|dx|、∑|dy|,将上述值作为每个子区域的特征向量,得到4*4*4=64维向量作为特征描述子,即为x=(x1,x2...,x64);

步骤3、采用最邻近搜索的方式,对一组图像i、j的所有特征点f(i),f(j),对于每一个特征点f∈f(i),找到最近邻点fnn∈f(j),其中,

距离采用欧式距离(x1,x2,...x64),(x1’,x2’...x64’)为待匹配的两个特征点的快速鲁棒性特征向量;当最近邻与次近邻的欧式距离d之比小于固定阈值时,判定f和fnn为可接受的匹配对;获取特征点匹配点集合c;

步骤4、使用ransac算法,消除误差匹配,获得较为准确的图像匹配对,具体步骤如下:

步骤4.1、从步骤3中获取特征点匹配点集合c,随机挑选4组匹配点建立约束方程

m'fm=0

其中m和m’分别对应一组图像中的一对正确的匹配点,f为该组图像中二维特征点之间的单应矩阵;

步骤4.2、将特征点m通过矩阵f映射至本视图中,获取映射点m”,计算与原始匹配结果m’的欧式距离d;

步骤4.3、预设阈值α,将d与阈值α对比,当d<α时,则将该点归为内点集,当d≥α时,将该点归为外点集,其中内点集元素个数为n;

步骤4.4、计算并判断当前内点数n'是否大于最优内点数n,其中n初始值为0,当n'>n时,更新n=n+1,实现迭代,将当前变换矩阵转置为最佳矩阵估计,同时更新迭代次数k,如下:

其中p为置信度,取p=0.995;w为内点的比例,m为计算所需的最少样本数,取m=4;

步骤5、从图像序列匹配对中寻找两幅图像作为三维重建过程的初始输入,可以得到初始的三维点云结构;所述两幅图像满足如下条件:

(1)匹配内点个数不少于100个;

(2)作为初始输入的两幅图像是所有图像序列匹配对中匹配内点占比最低的;

步骤6、在计算完初始输入的两幅图像,并重建三维点之后,添加新的图像作为输入,通过新的图像与已计算图像中特征点的匹配,计算新的图像与已计算图像之间的旋转矩阵,获取两幅图像之间的关系,确定新图像中各特征点在三维结构中的空间坐标;通过光束平差法来消除误差的积累;当所有图像添加完毕后,可以得到各个相机的参数估计以及场景的稀疏三维点云;

步骤7、将步骤6中生成的点云结构和图像序列作为输入,通过多视图立体视觉算法,将点云滤除杂点,网格化,最终产生密集的点云重构,并生成多边形网格表面;

步骤8、将步骤7中获取的密集点云和步骤6中获取的影像姿态参数作为输入,通过影像微分纠正,得到每幅影像对应的正射影像的分辨率以及在x、y维度上对应的空间覆盖范围,从而实现影像的拼接;其中步骤6中获取的影像姿态参数包括,相机内参和影像的旋转矩阵以及影像坐标系和空间坐标系之间的偏移相量。

进一步地,所述步骤6中采用光束平差法初始化完成之后,选择拥有最多和已添加图像匹配点的视图作为下一个最优选择的方案。

进一步地,所述步骤3中阈值取0.6。

进一步地,所述步骤4.3中阈值α取0.8。

有益效果:

本发明公开的一种基于优化的三维重建的快速图像拼接方法,在图像特征点提取中采用优化的特征描述子,进行优化调整,在消除增量式sfm算法误差积累的过程中,有决策的进行了下一个最佳视图的选择保证了点云生成的准确性。具体来说:

(1)本发明通过在图像的特征点提取中采用surf代替sift,大大简化了sift算法中各种繁琐的运算,并且使得计算速度得到了大大的提高。

(2)本发明采用了选择一个未被添加且能观测到最多三维点,即拥有最多和已添加图像匹配点的视图作为下一个最优选择的方案,解决了无人机影像无序的情况下,点云生成的准确性的问题

附图说明

图1是本发明提供的基于优化的三维重建的快速图像拼接方法流程图;

图2是本发明提供的原始图像序列;

图3是本发明实施例选用8张图片演示的采取本文策略的光束平差法效果;

图4是本发明实施例中生成的稀疏点云。

具体实施方式

下面结合附图和具体实施例对本发明作更进一步的说明。

如图1所示的一种基于优化的三维重建的快速图像拼接方法,包括以下步骤:

步骤1、提取n幅输入图像的灰度图。本实例中提取了60张1280像素*1280像素的无人机航拍图像灰度图。

步骤2、采用快速鲁棒性特征算法(surf)对每幅图像特征点进行检测,生成图像描述子x,其中x=(x1,x2...,x64);所述图像描述子为64维向量,生成步骤如下:

步骤2.1、选取像素点l(x,y,σ)并构建海森矩阵如下:

其中σ为像素点尺度,lxx(x,σ)、lxy(x,σ)、lyy(x,σ)是x点处高斯函数二阶偏导数和图像的二维卷积;

步骤2.2、将经过海森矩阵处理过的每个像素点i(x,y,σ),即获得每个像素点海森矩阵的判别式的值,与其3*3*3的立体邻域内的其他26个像素点进行大小比较,,当像素点i对应的海森矩阵的判别式值为最大值时,保留该像素点作为初步特征点;当像素点i对应的海森矩阵的判别式值为最小值时,保留该像素点作为初步特征点;

步骤2.3、采用haar小波确定特征点的主方向;以步骤2.2中选取的特征点为中心,6s为半径为范围,用半径长为4s的haar小波计算在z,y方向的小波响应,其中s代表特征值的尺度值;对所述小波响应进行加权,用于保证靠近特征点的响应影响大,远离特征点的响应影响小;用扇形在圆内扫描,计算扇形内的响应总和,选择最长矢量方向为该特征点的主方向;

步骤2.4、构造特征描述子;以特征点为中心选取正方形框,所述正方形框边长为20s,正方形框方向为步骤2.3中选取的特征点主方向;将正方形框分为16个子区域,分别统计像素点相对于特征点主方向水平及垂直方向的haar小波特征∑dx、∑dy、∑|dx|、∑|dy|,将上述值作为每个子区域的特征向量,得到4*4*4=64维向量作为特征描述子,即为x=(x1,x2...,x64)。本实施例中选取surf描述子对图像特征进行提取,在56.425s内提取了148318个特征点。

步骤3、采用最邻近搜索的方式,对一组图像i、j的所有特征点f(i),f(j),对于每一个特征点f∈f(i),找到最近邻点fnn∈f(j),其中,

距离采用欧式距离(x1,x2,...x64),(x1’,x2’...x64’)为待匹配的两个特征点的快速鲁棒性特征向量;当最近邻与次近邻的欧式距离d之比小于固定阈值时,判定f和fnn为可接受的匹配对。阈值取经验值0.6。获取特征点匹配点集合c。

步骤4、使用ransac算法,消除误差匹配,获得较为准确的图像匹配对,具体步骤如下:

步骤4.1、从步骤3中获取特征点匹配点集合c,随机挑选4组匹配点建立约束方程

m'fm=0

其中m和m’分别对应一组图像中的一对正确的匹配点,f为该组图像中二维特征点之间的单应矩阵;

步骤4.2、将特征点m通过矩阵f映射至本视图中,获取映射点m”,计算与其原始匹配结果m’的欧式距离d;

步骤4.3、预设阈值α,将d与阈值α对比,当d<α时,则将该点归为内点集,当d≥α时,将该点归为外点集,其中内点集元素个数为n;

步骤4.4、计算并判断当前内点数n'是否大于最优内点数n,其中n初始值为0,当n'>n时,更新n=n+1,实现迭代,将当前变换矩阵转置为最佳矩阵估计,同时更新迭代次数k,如下:

其中p为置信度,取p=0.995;w为内点的比例,m为计算所需的最少样本数,取m=4。

步骤5、步骤5、从图像序列匹配对中寻找两幅图像作为三维重建过程的初始输入,可以得到初始的三维点云结构;所述两幅图像满足如下条件:

(1)匹配内点个数不少于100个;

(2)作为初始输入的两幅图像是所有图像序列匹配对中匹配内点占比最低的。

步骤6、在计算完初始输入的两幅图像,并重建三维点之后,不断地添加新的图像作为输入,通过新的图像与已计算图像中特征点的匹配,可以计算其旋转矩阵,来得到两幅图像之间的关系,从而确定新图像中各特征点在三维结构中的空间坐标,再通过光束平差法来消除误差的积累。当所有图像添加完毕后,可以得到各个相机的参数估计以及场景的稀疏三维点云。具体为光束平差法初始化完成之后,采用了选择一个未被添加且能检测到最多的三维点,即拥有最多和已添加图像匹配点的视图作为下一个最优选择的方案,即可有效地改善无人机影像无序地情况下,点云生成地准确性,减少光束平差法失败的可能性。

步骤7、上述步骤6中通过sfm算法生成了场景的稀疏三维点云,将点云结构和图像序列作为输入,通过多视图立体视觉(mvs)算法,可以将点云滤除杂点,网格化,最终产生密集的点云重构,并生成多边形网格表面。

步骤8、将mvs算法生成的密集点云和sfm流程中计算得到的影像姿态参数,即相机内参和影像的旋转矩阵以及影像坐标系和空间坐标系之间的偏移相量作为输入。通过影像微分纠正,即得到每幅影像对应的正射影像的分辨率以及在x、y维度上对应的空间覆盖范围,从而实现影像的拼接。

如图2所示,本实施例给出了用于图像拼接原始序列图。提取每幅图像的surf特征,并借助flann库进行最近邻搜索进行特征匹配。表3给出了用sift特征进行最近邻搜索和surf进行最近邻搜索的时间对比,从结果可以发现用surf和flann的方法大大的减少了时间代价。

表3用sift特征进行最近邻搜索和surf进行最近邻搜索的时间对比

图3选用00-07八张图片给出了基于使用上文提出的光束平差法下一图像选择策略的结果,这个策略使得重建过程收敛,减少光束平差法失败的可能性。

图4是本实施例中稀疏点云三维重建结果,结果显示特征的抓取良好。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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