基于PointNet的深度摄像头外参自动标定方法、装置及相关设备与流程

文档序号:31186039发布日期:2022-08-19 21:52阅读:103来源:国知局
基于PointNet的深度摄像头外参自动标定方法、装置及相关设备与流程
基于pointnet的深度摄像头外参自动标定方法、装置及相关设备
技术领域
1.本发明涉及机器学习技术领域,尤其涉及一种基于pointnet的深度摄像头外参自动标定方法、装置及相关设备。


背景技术:

2.ai在不断的发展,机器人也越来越多的活跃在各种和人类密切相关的场景之中,例如送餐机器人、医疗机器人、配送机器人等等,机器人和人类的交互也变得越来越多。
3.为了让机器人和人类交互顺利的进行,需要让机器人可以精准的获取周围环境的信息;通常,机器人都是通过深度摄像头获取周围环境的点云数据,通过点云数据得到语义信息、深度信息等数据;但是受到结构工艺、制造工艺等因素的制约,深度相机在机器人的安装角度往往会出现偏差,这些偏差会以误差的形式体现到机器人通过深度摄像头获取到的周围环境的点云数据中,并且累计到通过点云进行计算的机器人的其它算法流程中;所以机器人在组装后或使用了一段时间后,需要纠正这些误差,即做外参校正,然后再进行后续其它的算法流程。
4.目前应用于纠正这些误差的方法主要分为2个方向,一个方向是用棋盘格做标定,这种方法需要人为手工拍摄多张不同角度的棋盘格照片,然后通过特征提取、匹配的方式计算误差再进行纠正;另一个方向是通过图优化的方式,这种方式需要人为手工推着机器进行一定的轨迹的移动,收集沿途的点云数据,然后用图优化理论进行误差计算。这2个方向都需要人为手工的操作,整体计算时间长,需要准备特殊治具,这不符合现代机器人自动化、脱人工化的需求,无法很好的应用于落地量产机器人,也会降低客户的使用体验。


技术实现要素:

5.本发明的目的是提供一种基于pointnet的深度摄像头外参自动标定方法、装置及相关设备,旨在解决现有技术中,较多人为手工操作导致校正效率低下的问题。
6.第一方面,本发明实施例提供了一种基于pointnet的深度摄像头外参自动标定方法,包括:
7.获取指定场景的深度图,并将指定场景的所述深度图通过数据预处理步骤处理后得到第一点云数据;
8.对所述第一点云数据进行分类标记,并通过标记后的所述第一点云数据对pointnet模型进行训练;
9.获取待校正场景的深度图,并将待校正场景的所述深度图通过数据预处理步骤处理后得到第二点云数据;
10.将所述第二点云数据输入训练好的所述pointnet模型进行深度学习推理,得到第三点云数据,保留所述第三点云数据中的预设类别;
11.分别对不同类别的所述第三点云数据进行误差矩阵计算,并将计算结果融合和自
动校正。
12.第二方面,本发明实施例提供了一种基于pointnet的深度摄像头外参自动标定装置,其特征在于,包括:
13.预训练数据获取单元,获取指定场景的深度图,并将指定场景的所述深度图通过数据预处理步骤处理后得到第一点云数据;
14.分类训练单元,对所述第一点云数据进行分类标记,并利用标记后的所述第一点云数据对pointnet模型进行训练;
15.待校正场景数据获取单元,获取待校正场景的深度图,并将待校正场景的所述深度图通过数据预处理步骤处理后得到第二点云数据;
16.推理选择单元,将所述第二点云数据输入训练好的所述pointnet模型进行深度学习推理,得到第三点云数据,保留第三点云数据中的预设类别;
17.融合校正单元,分别对不同类别的所述第三点云数据进行误差矩阵计算,并将计算结果融合和自动校正。
18.第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的基于pointnet的深度摄像头外参自动标定方法。
19.第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于pointnet的深度摄像头外参自动标定方法。
20.本发明实施例通过数据预处理步骤对获取的深度图进行预处理,可以得到干净的点云数据,便于后续处理;通过对点云数据进行分类标记,并进行训练,使得pointnet模型能对待测点云数据进行分类,并在分类后取得预设类别的点云数据,分别计算预设类别的点云数据的误差矩阵并融合,得到最终的机器人坐标系点云外参自动标定矩阵,使用融合后的矩阵校正初始带有角度偏差的点云数据,得到消除了角度偏差的正确的点云数据,完成自动校正,不需要人为手工操作,不需要特殊治具,最大程度上节约了成本,提高了校正效率。
附图说明
21.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本发明实施例提供的基于pointnet的深度摄像头外参自动标定方法的流程示意图;
23.图2为本发明实施例提供的s101步骤的子流程示意图;
24.图3为本发明实施例提供的s105步骤的子流程示意图;
25.图4为本发明实施例提供的基于pointnet的深度摄像头外参自动标定装置的结构框图。
具体实施方式
26.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
28.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
29.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
30.请参阅图1,一种基于pointnet的深度摄像头外参自动标定方法,包括:
31.s101,获取指定场景的深度图,并将指定场景的所述深度图通过数据预处理步骤处理后得到第一点云数据;
32.s102,对所述第一点云数据进行分类标记,并通过标记后的所述第一点云数据对pointnet模型进行训练;
33.s103,获取待校正场景的深度图,并将待校正场景的所述深度图通过数据预处理步骤处理后得到第二点云数据;
34.s104,将所述第二点云数据输入训练好的所述pointnet模型进行深度学习推理,得到第三点云数据,保留所述第三点云数据中的预设类别;
35.s105,分别对不同类别的所述第三点云数据进行误差矩阵计算,并将计算结果融合和自动校正。
36.在本实施例中,通过数据预处理步骤对获取的深度图进行预处理,可以得到干净的点云数据,便于后续处理;通过对点云数据进行分类标记,并进行训练,使得pointnet模型能对待测点云数据进行分类,并在分类后取得预设类别的点云数据,分别计算预设类别的点云数据的误差矩阵并融合,得到最终的机器人坐标系点云外参自动标定矩阵,使用融合后的矩阵校正初始带有角度偏差的点云数据,得到消除了角度偏差的正确的点云数据,完成自动校正,不需要人为手工操作,不需要特殊治具,最大程度上节约了成本,提高了校正效率。
37.在一实施例中,所述数据预处理步骤包括将通过深度摄像头获取的深度图结合内参转换为点云数据,对所述点云数据进行预处理得到带有法向量的点云数据。
38.在一实施例中,所述将通过深度摄像头获取的深度图结合内参转换为点云数据,包括:
39.按照以下公式计算转换成点云数据:
[0040][0041]
其中,xw、yw、zw分别表示的世界坐标系下的三维坐标点;zc表示深度摄像头坐标的z轴值,即目标到深度摄像头的距离;f表示深度摄像头的焦距;u、v为深度图图像坐标系下的任意坐标点,u0、v0分别为对应深度图的中心点坐标,dx、dy分别表示每一个像素点在x轴和y轴方向上的物理尺寸。
[0042]
请参阅图2,在一实施例中,所述对所述点云数据进行预处理得到带有法向量的点云数据,包括:
[0043]
s201,将所述点云数据进行体素下采样;
[0044]
s202,将下采样后的所述点云数据依次进行直通滤波和统计线性滤波,得到滤波后的点云数据;
[0045]
s203,将滤波后的点云数据通过主成分分析估计点云法向量,得到带有法向量的点云数据。
[0046]
在本实施例中,体素下采样算法通过初始点云数据的每个点的位置关系和初始设置的体素栅格边长,创建一个三维体素栅格,然后在每个体素内,用体素中所有点的重心来近似显示体素中其他点,这样该体素内所有点就用一个重心点最终表示,从而将输入点云创建统一下采样的点云数据。
[0047]
直通滤波算法基于点云空间坐标系设定一个通道,将点云数据在通道范围之外的点剔除滤掉从而保留通道里边的点云数据。通过直通滤波算法,可以将初始设置的左右一定距离的点移除掉。
[0048]
统计线性滤波算法对点云数据每一个点的邻域进行一个统计分析,计算它到所有临近点的平均距离。假设得到的结果是一个高斯分布,其形状是由均值和标准差决定,那么平均距离在标准范围(由全局距离平均值和方差定义)之外的点,可以被定义为离群点并从数据中去除。实现过程为,首先遍历点云,计算每个点与其最近的k个邻居点之间的平均距离;其次计算所有平均距离的均值μ与标准差σ,则距离阈值dmax可表示为dmax=μ+α
×
σ,α是一个常数,可称为比例系数;最后,再次遍历点云,剔除与k个邻居点的平均距离大于dmax的点。
[0049]
通过以上三个步骤的处理后,可以得到比较赶紧的点云数据,然后通过主成分分析估计点云法向量,得到带有法向量的点云数据。
[0050]
主成分分析估计点云法向量为将原来数据n维的特征映射到k维的正交特征上,这个k维的特征称为主成分,进而估计点云的法向量。假设要估计某一点的法向量,需要通过利用该点的近邻点估计出一个平面,然后就能计算出该点的法向量。或者可以这么说,通过最小化一个目标函数(要求的参数为法向量),使得该点与其每个近邻点所构成的向量与法向量的点乘为0,也就是垂直。
[0051]
最小化目标函数:
[0052][0053]
上述最小化目标函数优化后等价于:
[0054]
f(n)=n
t
sn其中,s=(yy
t
)
[0055]
min(f(n))
[0056]
s.t.n
t
n=1;
[0057]
其中,yy
t
是一个3
×
3的协方差矩阵,y表示点云簇中的点到质心的距离的集合,进而形成x,y,z坐标的协方差矩阵。
[0058]
通过拉格朗日算法求解上述优化后的目标函数;
[0059]
使用svd对协方差矩阵进行分解,得到:
[0060]
y=u∑v
*

[0061]
其中,u中最后一列就是要求解的法向量n,也就是特征值最小的特征向量,v表示svd分解过程中产生的辅助矩阵;通过法向量计算可以得到带有法向量的点云数据。
[0062]
在一实施例中,所述指定场景包括地面和墙面夹角处的场景;
[0063]
所述对所述第一点云数据进行分类标记,包括:
[0064]
对所述第一点云数据分类标记为地面类、墙面类和其他类3种类别。
[0065]
在本实施例中,关于pointnet深度学习模型训练部分:
[0066]
在还没有训练pointnet模型之前,会先收集指定场景的点云数据,一种实施例中指定为地面和墙面的夹角处的场景点云,然后将这部分点云通过点云数据预处理步骤,得到比较干净的点云数据。针对于这部分干净的点云数据进行标记,将点云分为地面类、墙面类、其他类3种类别。
[0067]
用标记好的点云数据对pointnet模型进行训练,得到一组权重,pointnet模型在这个权重下,可以将未经过标记的真实环境中的点云分成3类,即地面类、墙面类和其他类。
[0068]
训练好pointnet模型后,即可将pointnet模型用于待校正场景的预测。
[0069]
在一实施例中,所述预设类别包括地面类和墙面类。
[0070]
在本实施例中,利用pointnet模型算法识别点云数据中的地面、墙面,再和室内存在的固定的自然地面、自然墙面做对比,得到误差矩阵,消除角度偏差,故从训练到预测识别均为了得到地面类和墙面类的点云数据。
[0071]
请参阅图3,在一实施例中,所述分别对不同类别的所述第三点云数据进行误差矩阵计算,并将计算结果融合和自动校正,包括:
[0072]
s301,计算地面类的所述第三点云数据的平面法向量,并结合自然地平面法向量,计算两者的夹角和第一误差矩阵,得到可以校正坐标系的俯仰角和翻滚角;
[0073]
s302,计算墙面类的所述第三点云数据的平面法向量,并结合自然墙面面法向量,计算两者的夹角和第二误差矩阵,得到可以校正坐标系的俯仰角和侧航角;
[0074]
s303,通过矩阵乘法融合所述第一误差矩阵和第二误差矩阵,得到可以校正坐标系的俯仰角、侧航角和翻滚角的外参自动标定矩阵,并进行校正。
[0075]
在本实施例中,计算地面平面点云的平面法向量,计算方法和与上述中的法向量
计算方法一样,再结合室内固定存在的自然地平面法向量,计算这两个法向量的夹角;
[0076]
按照以下公式结合上述夹角计算出第一误差矩阵:
[0077][0078]
其中,θ角为计算出来的偏差角,k
x
、ky、kz为x轴、y轴和z轴三个方向上的尺度;
[0079]
计算出来的第一误差矩阵可以校正机器人坐标系中的俯仰角和翻滚角。
[0080]
计算墙面平面点云的平面法向量,计算方法和与上述中的法向量计算方法一样,再结合室内固定存在的自然墙面面法向量,计算这两个法向量的夹角;
[0081]
按照以下公式结合上述夹角计算出第二误差矩阵:
[0082][0083]
其中,θ角为计算出来的偏差角,k
x
、ky、kz为x轴、y轴和z轴三个方向上的尺度;
[0084]
计算出来的第一误差矩阵可以校正机器人坐标系中的俯仰角和侧航角。
[0085]
计算出来的误差矩阵用矩阵乘法进行融合,得到最终的机器人坐标系点云外参自动标定矩阵,可以校正机器人坐标系下的俯仰角、侧航角和翻滚角。然后用这个融合后的矩阵,校正初始带有角度偏差的点云数据,得到消除了角度偏差的点云数据。
[0086]
请参阅图4,一种基于pointnet的深度摄像头外参自动标定装置10,包括:
[0087]
预训练数据获取单元11,获取指定场景的深度图,并将指定场景的所述深度图通过数据预处理步骤处理后得到第一点云数据;
[0088]
分类训练单元12,对所述第一点云数据进行分类标记,并利用标记后的所述第一点云数据对pointnet模型进行训练;
[0089]
待校正场景数据获取单元13,获取待校正场景的深度图,并将待校正场景的所述深度图通过数据预处理步骤处理后得到第二点云数据;
[0090]
推理选择单元14,将所述第二点云数据输入训练好的所述pointnet模型进行深度学习推理,得到第三点云数据,保留第三点云数据中的预设类别;
[0091]
融合校正单元15,分别对不同类别的所述第三点云数据进行误差矩阵计算,并将计算结果融合和自动校正。
[0092]
一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如所述的基于pointnet的深度摄像头外参自动标定方法。
[0093]
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如所述的基于pointnet的深度摄像头外参自动标定方法。
[0094]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替
换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1