一种基于邻域块匹配提高三维重建点云稠密程度的方法技术领域
本发明属于计算机视觉技术领域,尤其涉及一种基于邻域块匹配提高三维重建点
云稠密程度的方法。
背景技术
基于图像序列的三维重建涉及很多学科,属于相机成像原理的逆向过程,研究范
围主要包括:物体目标识别,特征检测,特征匹配等领域。三维重建技术自诞生以来就成为
了计算机视觉领域的热点与难点之一。其输入仅需要一般的彩色图像,普适性高的特点在
对真实世界中的物体建模时,提供了无与伦比的便捷。然而,由于三维重建中有太多需要计
算测量的参量,因此如何得到高质量的重建模型也成为了其难以攻克的难点。通常,三维重
建的核心步骤在于如何得到高质量的足够表达物体模型信息的点云。通常三维重建分为以
下两种类别:(1)基于图像序列的三维重建方法?;谕枷裥蛄械娜亟ǚ椒ㄍü晕锾?br />进行环绕拍摄获取输入图像。根据图像中检测到的特征和图像之间的特征匹配,获取两帧
之间的相机变换方式。通过最小化所有图像相机位置的误差最终确定每一帧图像拍摄时,
相机相对于世界坐标系的旋转和平移,根据这些信息,能够确定每一个特征点在空间中的
真实位置,从而获取物体的稀疏点云。然后再通过一些点云增长算法增加获取得到的点云
的稠密度。(2)基于深度相机的三维重建方法?;谏疃认嗷娜亟ǚ椒ㄊ峭ü褂蒙?br />度相机实时捕获图像和深度图。即对每一帧图像来说,都能得到该帧每一个像素点在空间
中的位置。而随着相机的移动,将下一帧的点云不断与该帧的点云做匹配,检测两帧之间相
机位置的移动,把不同帧的点云融合在一起,得到物体的稠密点云。在以上的方法中,基于
图像序列的三维重建具有输入数据易获得,具有拍摄环境要求低,鲁棒性强的优点。但是由
于图像仅仅能提供二维空间的信息,因此在反向求解三维空间坐标时,计算中有很多的误
差和噪声存在,比如很难得到精确的匹配特征点对,使得得到的点云往往质量不够高,导致
最终得到的模型效果不尽人意。而基于深度相机的方法由于获取的图像中,每个像素点都
可以被当作一个特征点,因此能够得到足够稠密的特征点。但由于其需要高质量的深度相
机,并且难以应付距离较远的拍摄,同时目前民用深度相机最大范围约在10m左右,因此该
方法对拍摄环境和设备的要求过高。而基于图像序列的三维重建不受此限制,只要物体在
图像中呈现出足够的特征即可。
综上所述,基于图像序列的三维重建得到的点云质量不够高,存在较大的误差;基
于深度相机的方法对拍摄环境要求过高,需要高质量的深度相机,并且难以应付距离较远
的拍摄。
发明内容
本发明的目的在于提供一种基于邻域块匹配提高三维重建点云稠密程度的方法,
旨在解决基于图像序列的三维重建得到的点云质量不够高;基于深度相机的方法对拍摄环
境要求过高,需要高质量的深度相机,并且难以应付距离较远的拍摄的问题。
本发明是这样实现的,一种基于邻域块匹配提高三维重建点云稠密程度的方法,
所述基于邻域块匹配提高三维重建点云稠密程度的方法包括以下步骤:
步骤一,使用基于图像序列的三维重建算法得到粗糙且稀疏的物体点云,得到每
一帧图像拍摄时相机在三维空间中的变换矩阵;
步骤二,再次对原始图像进行处理,使用基于邻域的块匹配算法,对图像中进行稠
密特征匹配;
步骤三,接下来根据得到的相机在空间中的位置,对得到的稠密特征点对进行合
法性检验,并将符合要求的特征点映射到三维点云中对应的位置;
步骤四,使用基于物体轮廓的外点删除算法对得到的点云进行一次外点过滤,并
进行一次颜色重映射,得到最终质量远好于原始点云的稠密点云。
进一步,所述基于邻域块匹配提高三维重建点云稠密程度的方法具体包括以下步
骤:
第一步,使用绕拍图像序列进行传统的三维重建;
第二步,选取相邻的图像进行基于邻域的块匹配的稠密特征生成算法,确定邻域
步长n,即每幅图像会与其左右各两幅图像进行稠密特征的计算;
第三步,确定相邻图像匹配的步长n后,遍历整个图像序列,以每一幅图像为基准
图像,与其后方的n帧图像进行基于邻域的块匹配算法;在原始图像中,沿行和列方向每隔
多少个像素点取一个点作为需要进行匹配的特征点,用于基于块匹配的特征计算;
第四步,确定采样率r后,对于每一对需要进行匹配特征的图像(P1,P2)即得到了需
要计算的P1中的匹配点集Pt;遍历Pt中所有的特征点,以每一个特征点为中心,在其周围选
取X*Y大小的图像块,使用插值算法将其行列都扩充为原先的8倍,记为Isrc;在P2中,以同样
的坐标点为中心,选取M*N大小的图像块,同样使用插值算法将其行列都扩充为原先的8倍,
记为Idist;
第五步,当Idist图像块大小足够大时,能够找到图像块Isrc所对应的图像块Imatch;
此时图像块Imatch的中心在图P2中的位置也就是构造图像块Isrc时所用的特征点在图像P2上
对应的匹配点;
第六步,完成特征匹配后,得到了需要的图相对之间的稠密特征对;对于图像序列
中的每一帧,将和它进行过特征匹配计算的图像记作P2;将拍摄P1和P2时的相机光心位置分
别记作C1和C2;遍历P1的特征点集Pt中所有的特征点的位置,在三维空间中的相平面上找到
它所在的位置Pt1;同时找到Pt1在图像P2上的匹配点在三维空间中相平面上的位置Pt2’;并
在三维空间中做射线C1Pt1’以及C2Pt2’。得到射线L1和L2;
第七步,对于得到的射线L1与L2来说,如果匹配点对Pt1与Pt2是正确的匹配点,那
么L1与L2在空间中应该相交在物体模型的对应点上;设置一个阈值T,当这两条异面直线之
间的最近点之间的距离小于T时,这一对匹配点是合法的匹配点对;
第八步,对于得到的合法匹配点对,若所做射线L1与L2交于一点,则将交点作为新
的特征点补充进初始点云中;若L1与L2为最近点距离小于阈值T的异面直线;则取L1和L2的
最近点对的中点位置作为新的三维点加入初始点云中;
第九步,进行基于物体轮廓的杂点滤除,对于每一帧图像,提取物体轮廓,通过得
到的相机变换矩阵,将点云反投影至三维空间中相平面的位置,将轮廓区域内的点保留;而
反投影过后,在任意一帧中,出现在物体轮廓外部的点,都将其从点云删除。
第十步,把点云反投影到每一帧在空间中的相平面,记录相平面上每一像素点在
反投影时距离它最近的点云中的点,将图像上该像素点的像素值赋值给这个离他最近的点
云中的点,从而完成点云颜色的重映射。
进一步,所述相机变换矩阵包括了相机光心位置相对于世界坐标系原点的旋转和
平移即[R|T],其中R为旋转矩阵,T为平移向量。
进一步,所述步骤二中使用每两帧之间旋转5°的拍摄方式,使用的步长为2。
进一步,所述步骤三中使用每隔2行2列取一个像素点的采样率;选取的像素点数
目和算法的时间开销成正比。
进一步,所述步骤四中M和N的值分别需要大于X和Y;使用X,Y为40,M和N为80的参
数设置。
进一步,所述步骤五中,计算位置(x,y)相关系数R的公式如下:
其中:
其中,T(x,y)代表图像Isrc中坐标(x,y)位置的像素值,I(x,y)代表图像Idist中坐
标(x,y)位置的像素值。w与h分别代表图像的宽度和高度。
进一步,所述步骤六中,在每一帧的相平面上寻找特征点时,需要使用相机的变换
矩阵[R|T],拍照的焦距为f,某一帧F中,特征点的位置在图像上为(x,y),其旋转平移矩阵
为[R|T],则其在世界坐标系中的三维坐标(X,Y,Z)的计算公式如下:
进一步,所述步骤七中,设置的认为两射线L1与L2合法的阈值为1e-2;
所述步骤八中,参数k是5;
所述步骤九中,将点云反投影到第i帧的相平面的方法需要使用相机的变换矩阵
[R|T];点云中一点(X,Y,Z),其投影在第i帧中的坐标(u,v)的计算公式为:
其中,f为第i帧的焦距;
所述步骤十中,若多个相平面都将其中的某个点的像素映射到点云中的一个点
Pt,则Pt的RGB取这几个平面的对应点的像素均值。
本发明的另一目的在于提供一种应用所述基于邻域块匹配提高三维重建点云稠
密程度的方法的计算机视觉系统。
本发明提供的基于邻域块匹配提高三维重建点云稠密程度的方法,对于图像序列
没有特殊要求,对于参数的调整没有过分的依赖,可以极大程度改善点云的质量和稠密度。
本发明在基于图像序列的三维重建的基础上,对得到的点云进行进一步的扩充,增加其完
整度与稠密度。在现有的三维重建获取稀疏点云的算法基础上,大幅度增加点云特征,从而
提升最终点云结果的算法。
本发明相比与基于SIFT特征的三维重建算法,获得的点云稠密度,完整度,以及颜
色还原度都远好于普遍的算法。同时,SIFT对于特征比较平滑的区域很难提取出正确的特
征点,而本发明基于快匹配的方法,能够最大化利用每个像素点周边邻域的信息,尽可能的
增加正确的特征点。同时,基于已计算的到的相机变换矩,消除了传统快匹配算法不够精确
的缺点,能够大量,精确地将缺失或过于稀疏的点云补充成为质量较好的点云。
相比基于深度图像的方法,由于这种方法需要每一帧对应的深度图像,以及相邻
帧之间位移不能过大,所以在无法获得深度图的场景很难具有真实的使用价值。目前民用
的高分辨率深度相机往往仅能探测10米以内的深度范围。而激光探测虽然距离足够,却达
不到足够的精度。本发明只要能够获取简单的图像,即可实现高质量的模型重建,且两帧之
间的位移没有基于深度图像的方法所需要的精确,加大了普适性和易用性;使用绕拍图像
进行传统基于SIFT特征的三维重建;确定邻域匹配步长n;确定采样步长即需要进行匹配的
特征点;遍历图像序列,对需要计算的图像对进行基于邻域块匹配的特征提??;基于1中获
取的相机矩阵和4中得到的匹配特征,对4中的特征进行过滤;基于图像轮廓对空间中的点
云再次进行滤除以及颜色矫正。本发明能够得到质量和稠密都远高于传统算法的点云,能
够大幅度改善原始算法的效果,改进重建质量;是一种普适性高,鲁棒性强的改善三维重建
最终点云质量的方法。
附图说明
图1是本发明实施例提供的基于邻域块匹配提高三维重建点云稠密程度的方法流
程图。
图2是本发明实施例提供的实施例1的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明
进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于
限定本发明。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的基于邻域块匹配提高三维重建点云稠密程度的
方法包括以下步骤:
S101:使用传统的基于图像序列的三维重建算法得到粗糙且稀疏的物体点云,得
到每一帧图像拍摄时相机在三维空间中的变换矩阵;
S102:再次对原始图像进行处理,使用基于邻域的块匹配算法,对图像中进行稠密
特征匹配,该特征匹配的方法能够得到足够稠密,但精度较低的匹配特征对;
S103:接下来根据得到的相机在空间中的位置,对得到的稠密特征点对进行合法
性检验,并将符合要求的特征点映射到三维点云中对应的位置;
S104:使用基于物体轮廓的外点删除算法对得到的点云进行一次外点过滤,并进
行一次颜色重映射,得到最终质量远好于原始点云的稠密点云。
下面结合具体实施例对本发明的应用原理作进一步的描述。
实施例1:
本发明实施例提供的基于邻域块匹配提高三维重建点云稠密程度的方法包括以
下步骤:
步骤1:对目标物体进行环绕拍摄,获取各个角度的图像。
步骤2:使用传统的基于SIFT特征匹配算法的三维重建方法进行重建,获取每一帧
拍摄时的相机旋转矩阵。
步骤3:确定进行图像匹配的步长,并使用基于邻域块匹配的特征匹配算法,提取
稠密的匹配特征点。特征点提取公式在S5的说明中有详细描述。
步骤4:获取稠密的匹配特征点后,在三维空间中对其进行合法性的检验,将不满
足阈值条件的特征点从点集中删除,符合阈值条件的计算其在空间中的真实位置。
步骤5:将步骤4中所有的合法点云加入原有点云中,提升原有点云的稠密度和完
整度。
步骤6:进行基于轮廓的杂点滤除算法和颜色矫正算法,以滤去少量存在的错点,
并修正扩充的点云的颜色,从而完成整个算法流程。
依据以上步骤最终得到更加稠密完整的高质量点云。
本发明实施例提供的基于邻域块匹配提高三维重建点云稠密程度的方法具体包
括以下步骤:
S1使用绕拍图像序列进行传统的三维重建,由于传统的三维重建基于SIFT特征算
法,而SIFT准确度较高,能够进行亚像素级别的特征提取,故能够得到准确的三维空间中相
机位置的变换矩阵。
S2选取相邻的图像进行基于邻域的块匹配的稠密特征生成算法。首先,确定邻域
步长n,即每幅图像会与其左右各两幅图像进行稠密特征的计算。
S3确定相邻图像匹配的步长n后,遍历整个图像序列,以每一幅图像为基准图像,
与其后方的n帧图像进行基于邻域的块匹配算法。该算法首先需要确定采样率r,即在原始
图像中,沿行和列方向每隔多少个像素点取一个点作为需要进行匹配的特征点,用于基于
块匹配的特征计算。
S4确定采样率r后,对于每一对需要进行匹配特征的图像(P1,P2)即得到了需要计
算的P1中的匹配点集Pt。遍历Pt中所有的特征点,以每一个特征点为中心,在其周围选取X*
Y大小的图像块,使用插值算法将其行列都扩充为原先的8倍,记为Isrc。在P2中,以同样的坐
标点为中心,选取M*N大小的图像块,同样使用插值算法将其行列都扩充为原先的8倍,记为
Idist。
S5基于假设,认为当相机在对图像进行环绕拍摄时,相邻两帧之间的运动幅度很
小。故在S4中,当Idist图像块大小足够大时,能够在其中找到图像块Isrc所对应的图像块
Imatch。而此时图像块Imatch的中心在图P2中的位置也就是构造图像块Isrc时所用的特征点在
图像P2上对应的匹配点,由于之前的插值工作,最终进行的块匹配的精度是1/8像素。
S6完成S5中的特征匹配后,得到了需要的图相对之间的稠密特征对。但由于物体
在两幅图像之间由于拍照角度的变化,只能做到在Idist中寻找尽可能接近Isrc的图像块。因
此,这样提取出来的特征匹配对有较大的噪声,需要进一步处理。在S1中,得到了拍摄图像
每一帧时相机在三维空间中的位置。在S5中,得到了图像对之间的匹配特征点对。对于图像
序列中的每一帧,以P1为例,将和它进行过特征匹配计算的图像记作P2。将拍摄P1和P2时的
相机光心位置分别记作C1和C2。遍历P1的特征点集Pt中所有的特征点的位置,以点Pt1为例,
在三维空间中的相平面上找到它所在的位置Pt1’。同时找到Pt1在图像P2上的匹配点在三维
空间中相平面上的位置Pt2’。并在三维空间中做射线C1Pt1’以及C2Pt2’。得到射线L1和L2。
S7对于S6中得到的射线L1与L2来说,如果匹配点对Pt1与Pt2是正确的匹配点,那么
L1与L2在空间中应该相交在物体模型的对应点上。然而,由于计算中引入的各种误差和浮点
计算的固有误差,很难找到真正交于一点的情况。因此,在大多数情况中,L1与L2是两条异面
直线,而算法中会设置一个阈值T,当这两条异面直线之间的最近点之间的距离小于T时,就
认为这一对匹配点是合法的匹配点对。
S8对于S7中得到的合法匹配点对,若所做射线L1与L2交于一点,则将交点作为新的
特征点补充进初始点云中。若L1与L2为最近点距离小于阈值T的异面直线。则取L1和L2的最
近点对的中点位置作为新的三维点加入初始点云中。新补充进三维点云中的点,以其周围
距离最近的k个点色彩的均值作为新点的颜色。这样得到的点云颜色是有误差的,具体修正
方法见S10。
S9在S8中得到的结果虽然已经滤去了绝大多数的错误匹配点,但是仍然有小部分
匹配点存在着误差,因此对其进行基于物体轮廓的杂点滤除。对于每一帧图像,提取物体轮
廓。通过S1中得到的相机变换矩阵,可以将点云反投影至三维空间中相平面的位置。在此之
后,将轮廓区域内的点保留。而反投影过后,在任意一帧中,出现在物体轮廓外部的点,都将
其从点云删除。
S10目前新增加的点云的颜色还是有误差的,再次通过S9中的方法把点云反投影
到每一帧在空间中的相平面。记录相平面上每一像素点在反投影时距离它最近的点云中的
点。将图像上该像素点的像素值赋值给这个离他最近的点云中的点,从而完成点云颜色的
重映射。
所述步骤S1中得到的相机变换矩阵包括了相机光心位置相对于世界坐标系原点
的旋转和平移即[R|T],其中R为旋转矩阵,T为平移向量。
所述步骤S2中选取的匹配步长最大值视相机拍摄过程中运动的幅度大小而定。在
本算法中,使用了每两帧之间旋转5°的拍摄方式,使用的步长为2。每两帧之间的变化幅度
越大,则相应的步长应该越小,反之亦然。
所述步骤S3中的采样率会影响最终生成的匹配点的个数。在本方法中,使用了每
隔2行2列取一个像素点的采样率。选取的像素点数目和算法的时间开销成正比。
所述步骤S4中M和N的值分别需要大于X和Y。在算法实验中,使用了X,Y为40,M和N
为80的参数设置。
所述S5步骤中,在Idist中寻找图像块Isrc使用了基于相关系数的图像匹配算法。即
将图像块Isrc在图像块Idist上从左至右,从上至下移动,计算每一个位置Isrc与其覆盖的Idist
的区域的图像块的相关系数R,并选取相关系数最大的位置中Isrc所覆盖的区域,作为图像
块Imatch。在滑动Isrc的过程中,将Isrc左上角在Idist中的坐标(x,y)记为当前位置的坐标。计
算位置(x,y)相关系数R的公式如下:
重庆时时彩单双窍门 www.4mum.com.cn
其中:
其中,T(x,y)代表图像Isrc中坐标(x,y)位置的像素值,I(x,y)代表图像Idist中坐
标(x,y)位置的像素值。w与h分别代表图像的宽度和高度。
步骤S6中,在每一帧的相平面上寻找特征点时,需要使用相机的变换矩阵[R|T]。
具体公式如下,假设拍照的焦距为f,某一帧F中,特征点的位置在图像上为(x,y),其旋转平
移矩阵为[R|T],则其在世界坐标系中的三维坐标计算公式如下:
步骤S7中,在试验中设置的认为两射线L1与L2合法的阈值为1e-2。
步骤S8中,对于参数k的选取,在试验中使用的是5。
步骤S9中,将点云反投影到第i帧的相平面的方法需要使用相机的变换矩阵[R|
T]。假设点云中一点(X,Y,Z),其投影在第i帧中的坐标(u,v)的计算公式为:
其中,f为第i帧的焦距。
步骤S10中,若多个相平面都将其中的某个点的像素映射到点云中的一个点Pt,则
Pt的RGB取这几个平面的对应点的像素均值。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精
神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的?;し段е?。