发明内容
发明目的:提供一种基于2D-3D弱特征3D邻域概率匹配的RGB-D点云拼接方法,以解决现有技术存在的上述问题。
技术方案:基于2D-3D弱特征匹配的RGB-D点云拼接方法,包括如下步骤:
步骤1、计算弱特征点的2D-3D描述子
在待拼接点云的RGB图像中提取弱特征点,存储所述弱特征点的2D描述子;
在RGB-D点云中找出所述弱特征点对应的3D位置,计算对应弱特征点的3D局部描述子;
结合所述2D描述子和3D局部描述子,生成2D-3D描述子;
步骤2、基于2D-3D特征描述子预匹配
基于2D-3D描述子进行特征匹配,得到初始匹配点对;
步骤3、3D邻域概率法匹配点筛选
构建三维点云投票区域,计算预匹配点对的匹配概率,删除误匹配点,登记正确的匹配点并赋予匹配权重,直至未登记的正确特征点个数为零时,根据筛选出的匹配点的三维坐标,计算待拼接点云的位姿关系;
步骤4、点云拼接
当匹配误差值小于设定的匹配误差阈值时,根据上一步骤得到的位姿关系进行点云转换,实现点云拼接;
反之,将上述位姿更新至步骤2中,重复步骤2至4。
在进一步的实施例中,所述步骤1中,提取弱特征点的过程具体为:
计算待拼接点云对应的RGB图像各通道的纵横梯度,将数据记为2D描述子a;比较2D描述子a与设定的梯度阈值向量b的关系,若(a-b)i>0,i=1,2,……6,则该点为弱特征点。
在进一步的实施例中,所述步骤3中,根据深度信息删除误匹配点的具体过程为:
计算每个匹配点对的深度值d1、d2与深度阈值δ的关系,若|d1-d2|>δ,则该匹配点对为误匹配,删除误匹配点对。
在进一步的实施例中,所述步骤3中,基于3D邻域概率删除误匹配点的过程具体为:
将待拼接点云划分为网格,并构建投票区域,根据预匹配特征点在两幅点云中的位置,对投票图像相应位置加1;
对每个预匹配特征点,记录每个匹配特征点在两幅图像中的所属网格索引号,根据其一对网格索引号寻找投票图像的所对应的值,并将此值与阈值进行比较,如果大于阈值δ1,则为正确的匹配,否则为错误的匹配,并删除错误的匹配点对。
在进一步的实施例中,所述步骤3中,若未登记的特征点个数不为零时,寻找初始匹配点对并重新进行特征点匹配。
基于2D-3D弱特征匹配的RGB-D点云拼接方法,包括如下步骤:
记两幅待拼接的点云为C1和C2,拍摄点云时对应的2D图像为img1和img2;
步骤一:利用差值法在img1和img2中提取弱特征点,在三个通道中分别计算梯度,公式如下:
Δrrow=|r(u+1,v)-r(u-1,v)| Δrcolumn=|r(u,v+1)-r(u,v-1)|,
Δgrow=|r(u+1,v)-r(u-1,v)| Δgcolumn=|r(u,v+1)-r(u,v-1)|,
Δbrow=|r(u+1,v)-r(u-1,v)| Δbcolumn=|r(u,v+1)-r(u,v-1)|,
记每个点的描述子为a=[Δrrow,Δrcolumn,Δgrow,Δgcolumn,Δbrow,Δbcolumn]设定梯度阈值向量为b=[δ1,δ2,δ3,δ4,δ5,δ6],若(a-b)i>0,i=1,2,...6,则该点为弱特征点;
步骤二:对于每个弱特征点,在RGB-D点云中找出对应的3D位置,在点云中计算对应弱特征点的3D局部描述子,记作r=[r1,r2…rn]结合2D描述子和3D描述子生成此弱特征点的2D-3D描述子T=[a,r];
步骤三:以C2坐标为基准坐标系,将两个待拼接的点云重投影成RGB-D图像,记作Img3和Img4,基于2D-3D特征描述子进行特征匹配,得到初始匹配点对;
步骤四:记每个匹配点对的深度值d1和d2,设定深度阈值δ,若|d1-d2|>δ,则该匹配点对为误匹配,删除所有误匹配点对;
步骤五:基于三维空间中运动平滑一致性假设,对于一个匹配关系x=(y1,y2),y1和y2分别为匹配特征点的索引号,记匹配关系x中两个特征点的3D邻域分别为a1,a2,若x匹配正确,则a1和a2对应同一个3D区域,所以a1和a2内匹配的点对数较多;同理,若x匹配错误,则对应的3D邻域内匹配的点对数就较少,所以可以通过统计邻域的匹配点对个数来判断一个匹配的正确与否;
根据大数定律与上述的假设,当匹配特征点个数足够多时,x匹配正确或匹配错误时邻域对a1,a2内中正确匹配点个数S服从一个二项分布;
正确匹配点与错误匹配点:
pt表示x是正确匹配条件下a1,a2对应一个相同的3D位置的概率,
pf表示x是错误匹配条件下a1,a2对应一个相同的3D位置的概率,且pt>pf,S为邻域对a1,a2内中正确匹配点个数;
随机变量S的均值mt与方差st计算如下为:
mt,st分别为当x正确匹配时的随机变量S的均值与方差,mf,sf分别为当x错误匹配时的随机变量S的均值与方差;
步骤六:下述公式中Q值越大可以很好的区分一个匹配的正确与否,Q值计算如下:
Q为区分度量值,且Q正比于n,n越大,区分度越高,甄别是正确匹配还是错误匹配的能力越强,反之,区分度越低,甄别能力弱;
步骤七:根据步骤四中预匹配点的个数和步骤5中n值大小,把点云C1和C2图像划分为N=W×H×D网格,构建一个大小为N×N的投票图像vote,根据预匹配特征点在两幅点云中的位置对投票区域相应位置票数加1;
vote[d1*length*width+r1*W+c1][d2*length*width+r2*W+c2]=vote[d1*length*width+r1*W+c1][d2*length*width+r2*W+c2]+1
为一对匹配点,(x
1,y
1,z
1)在C1中的坐标,(x
2,y
2,z
2)在C2中的坐标,length,width,depth为点云包络盒的长,宽,高,r
1,c
1,d
1为点云C1的网格索引号,r
2,c
2,d
2为点云C2的网格索引号;
步骤八:遍历每个预匹配特征点,记两个特征点在两幅点云中的所属网格索引号分别为xc,yc,记录S=vote(xc,yc),S为正确匹配点个数,并将S与阈值δ1进行比较,如果大于阈值δ1,则为正确的匹配,否则为错误的匹配,并删除错误的匹配点对;
步骤九:设定匹配权值w1,登记该轮正确匹配的点对;
步骤十:重复以上步骤,直到没有新的匹配点对为止;
步骤十一:利用匹配点的3D信息解算位姿矩阵;
步骤十二:重复步骤三之后的步骤,直到匹配误差小于阈值δ2。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项方法的步骤。
有益效果:本发明提供了一种基于2D-3D弱特征3D邻域概率匹配的RGB-D点云拼接方法,该方法可以实现姿态角误差在15度以内,平移误差小于视野宽度的十分之一的三维点云配准。具有匹配精度高,速度快,方法简单易实施等优点。
具体实施方式
为了解决现有技术的问题,发明人进行了深入地研究,发现:
现有技术一基于标签法和迭代最近点算法(ICP)相结合的点云拼接方法,利用标签法来完成初始的粗拼接,再用改进的ICP算法提高拼接的精度。
然而标签法对于不宜粘贴的物品(如文物、大型物体)仍然无法测量,为此现有技术二提出了一种基于点云几何性质的配准算法,以点云的曲率为配准关系,再通过引入刚体变换矢量的几何性质来消除不匹配点,该算法可以得到有效的耦合点来计算原始变换矩阵,但由于曲率限制会导致使用范围变窄。
现有技术三提出了一种基于k-d树的改进ICP算法用于点云配准,将k-d树与传统的ICP数据配准算法相结合,不仅提高了算法的收敛速度,而且提高了算法的稳定性和鲁棒性了,但是这种方法对点云滤波有较高的要求。现有技术四基于信息论中熵的概念提出了迭代最小空间分布熵法,为ICP算法提供较好的初始位置拼接。
由于上述现有技术还存在上文所述的种种缺陷,故而提出下述方案。
在本方案中,具体实施采用结构光重建系统,如图1所示,结构光重建系统包括投影仪、计算机、CCD相机,CCD相机、投影仪连接计算机,投影仪和相机分别置于待测物体上方,投影仪的镜头和CCD相机的镜头均朝向待测物体;待测物体放置在转台上,投影仪投射光栅光源照射到待测物体和桌面上,并触发CCD相机采集条纹光栅照射到待测物体后的图像。投影仪将条纹光栅投射在待测物体上,待测物体使条纹光栅发生畸变,相机拍摄畸变条纹,由计算机解相位后重构物体表面点云。待测物体为玩具盒。
步骤一:从不同视角拍摄玩具盒得到两幅图像View1和View2以及对应的两幅待拼接点云C1,C2。如图3a、图3b、图4所示。图3a和图3b为不同视角的拍摄图像,图4为不同视角下重建的点云显示在同一个界面中的效果图。
步骤二:利用差值法在img1和img2中提取弱特征点,梯度阈值向量为b=[20,25,20,25,20,25],并记录每个弱特征点的特征描述子a。
步骤三:对于每个弱特征点,在RGB-D点云中找出对应的3D位置,利用在点云中的位置计算3D局部描述子ROPS,记作r=[r1,r2…r135],结合2D描述子和3D描述子生成此弱特征点的2D-3D描述子T=[a,r]。
步骤四:载入相机内参矩阵K和两幅点云初始位姿R0,T0:
步骤五:基于2D-3D特征描述子进行特征匹配,得到初始匹配点对。图5为弱特征点初始匹配结果图。
步骤六:记录每个匹配点对的深度值,设定深度阈值δ=5,若|d1-d2|>δ,则该匹配点对为误匹配,删除所有误匹配点对。
步骤七:把点云1和点云2划分为N=20×20×20的空间网格,构建一个大小为8000×8000的投票图像vote,根据预匹配特征点在两幅图像中的位置对投票图像相应位置加1。
步骤八:遍历每个预匹配特征点,记录每匹配特征点在两幅图像中的所属网格索引号,根据其一对网格索引号寻找投票图像的所对应的值,并将此值与阈值δ1=10进行比较,如果大于阈值,则为正确的匹配,否则为错误的匹配,并删除错误的匹配点对。
步骤九:登记该轮正确匹配的点对。
步骤十:重复步骤四至步骤七,直到没有新的匹配点对为止。
步骤十一:根据各匹配点的三维坐标,计算两副点云的位姿关系R1,T1。
步骤十二:把步骤9中获得点云位姿关系R1,T1复制给步骤五中的R0,T0。
步骤十三:重复步骤四之后的步骤,直到匹配误差小于阈值δ2,δ2=10e-3,结束迭代。
获得的最终的位姿变换矩阵。R1,T1为:
步骤十四:根据得到最终的点云位姿关系矩阵,将点云转换到点云1的坐标系中,实现点云拼接。拼接结果如图7、图8所示,图7为两幅点云的贴纹理拼接结果图,图8为两幅点云的纯色拼接结果图。
在上述方案中,可知通过采集2D图像的弱特征点,并提取弱特征点对应3D点云的3D局部特征,融合2D和3D特征的描述子,最后通过深度信息和邻域概率删除误匹配特征点,最后获得位姿矩阵,根据获得的位姿矩阵进行坐标转换,实现点云拼接。
以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。