本发明涉及测量方法,尤其涉及一种基于kinect深度相机测量方法。
背景技术:
目前,工程测量具备时间性较强,作业环境复杂,涉及的其它专业知识较多,对测量人员的专业知识和技术能力要求较高的特点,比如基坑测力量通常是配合降水和开挖过程,具有鲜明的时间性,测量结果往往是动态变化的,几小时前的测量结果都有可能失去意义。因此,如何在规定时间最大化还原物体模型、测量物体尺度信息已成为该技术的研究热点。
技术实现要素:
为了解决现有技术中的问题,本发明提供了一种基于kinect深度相机测量方法。
本发明提供了一种基于kinect深度相机测量方法,包括以下步骤:
s1、深度影像数据的转换;
s2、计算全局的摄像头的姿势信息;
s3、将从已知姿势信息的摄像头产生的深度影像数据融合为代表摄像头视野范围内的景物的立方体;
s4、从传感器视点位置对重建立方体进行光线投射,重建的点阵云产生渲染了的三维重建立方体;
s5、计算测量点之间的距离。
作为本发明的进一步改进,步骤s1中深度影像数据的转换包括以下子步骤:
s11、获取原始深度及彩色数据,将kinect中获取的原始深度帧数据转换为以米为单位的浮点数据;
s12、对浮点数据进行优化,通过获取摄像头的坐标信息,将浮点数据转换为和kinect摄像头朝向一致的点云数据;
s13、对点云数据进行阈值化及降噪处理,表面情况通过使用alignpointclouds函数获取。
作为本发明的进一步改进,步骤s2包括以下子步骤:
s21、采用nuifusionalignpointclouds方法将从重建对象计算得来的点云数据与从kinect深度影像数据中获取的点云数据进行配准;
s22、采用aligndepthtoreconstruction方法对重建立方体进行处理,获得追踪结果,如果场景中的追踪被中断,那么将摄像头的位置和上一次的摄像头位置对齐,继续进行追踪。
作为本发明的进一步改进,步骤s3包括以下子步骤:
s31、三维点云配准,找出两组点云数据集的空间变换关系,即旋转和平移向量,然后将这两组点云数据变换到同一的坐标系下,使得两者之间的交集区域重叠;
s32、逐帧对深度数据融合,同时并行运行平滑算法进行去噪。
作为本发明的进一步改进,步骤s31包括以下子步骤:
s311、计算最近点,即对于集合u中的每一个点,在集合p中都找出距该点最近的对应点,设集合p中由这些对应点组成的新点集为q={qi,i=0,1,2,…,n};
s312、计算两个点集q和u的重心位置坐标,并进行点集中心化生成新的点集;由新的点集计算正定矩阵n,并计算正定矩阵n的最大特征值及其最大特征向量;
s313、由于最大特征向量等价于残差平方和最小时的旋转四元数,将四元数转换为旋转矩阵r;在旋转矩阵r被确定后,由于平移向量t是两个点集的重心差异,通过两个坐标系中的重心点和旋转矩阵确定;其中r是3×3的旋转矩阵,t是3×1的平移矩阵;
s314、计算坐标变换,即对于集合u,用配准变换矩阵r,t进行坐标变换,得到新的点集u1,即u1=ru+t;
s315、计算u1与q之间的均方根误差,如小于预设的极限值ε,则结束,否则,以点集u1替换u,重复上述步骤。
作为本发明的进一步改进,步骤s4包括以下子步骤:
s41、从直接光照的微多边形生成点云;
s42、计算点云的n-1次反弹光照;
s43、根据点云计算并渲染间接光照。
作为本发明的进一步改进,步骤s5包括以下子步骤;
s51、从生成的点云中读取测量点的点云信息;
s52、根据测量要求,根据点云所包含信息进行长度和曲率计算。
本发明的有益效果是:具备良好的动态性能,不需要高性能配置的计算机设备,可以实现对物体的在线实时重建,操作简易,成本低廉,测量精度高,时效性高,灵活性强,可以满足普通用户日常生活中的目标场景的数字化再现。
附图说明
图1是本发明一种基于kinect深度相机测量方法的测量框图。
图2是本发明一种基于kinect深度相机测量方法的非线性摄像机透视投影模型图。
图3是本发明一种基于kinect深度相机测量方法的kinectv2从sdk获取彩色数据流程图。
图4是本发明一种基于kinect深度相机测量方法的kinectv2从sdk获取深度数据流程图。
图5是本发明一种基于kinect深度相机测量方法的icp算法基本流程图。
具体实施方式
下面结合附图说明及具体实施方式对本发明作进一步说明。
如图1至图5所示,一种基于kinect深度相机测量方法,包括以下步骤:
(1)、原始数据获取及尺度转换:利用kinectv2设备获取原始深度及彩色数据,sdk将kinect中获取的原始深度帧数据转换为以米为单位的浮点数据;
(2)、空间视角转换:对深度数据进行优化,通过获取摄像头的坐标信息,将这些浮点数据转换为和kinect摄像头朝向一致的点云数据;
(3)、点云预处理:点云数据阈值化及降噪处理,表面情况通过使用alignpointclouds函数获取;
(4)、点云配准:采用nuifusionalignpointclouds方法将从重建对象计算得来的点云与从kinect深度影像数据中获取的点云进行配准;
(5)、点云追踪:采用aligndepthtoreconstruction方法对重建立方体进行处理时能够获得更高精度的追踪结果,如果场景中的追踪被中断,那么需要将摄像头的位置和上一次的摄像头位置对齐才能继续进行追踪;
(6)、点云融合:将这两组点云数据变换到同一的坐标系下,使得两者之间的交集区域重叠,逐帧对深度数据融合,同时并行运行平滑算法进行了去噪,具体为:三维点云配准,找出两组点云数据集的空间变换关系,即旋转和平移向量,然后将这两组点云数据变换到同一的坐标系下,使得两者之间的交集区域重叠;逐帧对深度数据融合,同时并行运行平滑算法进行了去噪,其中,三维点云配准过程如下:
a1)、计算最近点,即对于集合u中的每一个点,在集合p中都找出距该点最近的对应点,设集合p中由这些对应点组成的新点集为q={qi,i=0,1,2,…,n};
a2)、计算两个点集q和u的重心位置坐标,并进行点集中心化生成新的点集;由新的点集计算正定矩阵n,并计算n的最大特征值及其最大特征向量;
a3)、由于最大特征向量等价于残差平方和最小时的旋转四元数,将四元数转换为旋转矩阵r;在旋转矩阵r被确定后,由平移向量t仅仅是两个点集的重心差异,可以通过两个坐标系中的重心点和旋转矩阵确定;其中r是3×3的旋转矩阵,t是3×1的平移矩阵;
a4)、计算坐标变换,即对于集合u,用配准变换矩阵r,t进行坐标变换,得到新的点集u1,即u1=ru+t;
a5)、计算u1与q之间的均方根误差,如小于预设的极限值ε,则结束,否则,以点集u1替换u,重复上述步骤;
(7)、点云渲染:从直接光照的微多边形生成点云,计算点云的n-1次反弹光照;(如果只需一次反弹,则该步可以省略),根据点云计算并渲染间接光照;
(8)、点云测量:根据测量位置读取点云信息,测量长度、曲率、角度信息。
本发明提供的一种基于kinect深度相机测量方法,主要是基于icp的
改进包括以下步骤:
(1)、点选择:根据深度传感器产生的点云数据,需要选择部分点云数据作为样本用于计算两组点云数据之间的最优转换,然后在整个数据集中测试这个转换。根据源点云数据集,已被证明其中一部分点更适合于作样本点,因为这些店更容易识别进行匹配。针对rgb-d数据,提出了利用sift(尺度不变特征变换)特征进行样本点选择并被证明很有效。对于具有凹槽的平面目标物体,进行样本点采样应确保采样点法向量的角度是广泛分布的。对于应使用哪种采样方法应根据每个具体的问题进行选择;
(2)、点匹配:icp算法中最关键的一步即是对应点的匹配问题。主要的方法就是要在另一个点云集中找出最邻近的点或找出源数据点与目标表面(网格点云匹配)的交集。对于基于sift特征点的采样,同样可以通过sift特征进行排序,利用蛮力搜索或k-d树的方式加速查找最接近的匹配点,并且要求两者之间的法向量内积大于一个设定的阈值;
(3)、点对加权:由于一些点对匹配程度优于其他点,用一些更明智的方式给匹配程度好的点对赋予权值,从而改善转换矩阵的结果质量。一种方法是对应点之间距离越小分配的权值越大。另外一种方法是针对rgb-d的数据考虑该点的彩色值,或考虑其sift特征点的距离,低距离比高距离具有的权值更大。其他加权方法还包括:常数权值、法向量越一致权值越大、根据深度传感器的可靠性分配权值等方法。最后预计可用于噪声的权重配对;
(4)、点对去除:主要是排除影响误差最小化的离群点,这些离群点包括来自于传感器噪声或来自于两个连续帧的深度图像不重叠的区域。这个步骤对于配准的精度影响很大,但不能改善配准的收敛速度。处理这种问题的主要方法就是去除去除点云边缘上的数据点,因为这些点最可能处于非重叠的区域。还有其他方法如去除点对距离超过设定阈值的点对;
(5)、误差度量和最小化。当数据点已被选择并匹配,点对加权和误点对去除后,两个点云集合需要用合适的误差度量来表达,需要被最小化。最直接的方式就是考虑每个点对平方距离和。假定两个输入点云集:
上式中
案例分析
基于mfc应用软件平台,使用本发明测量一个工业机器人完成如下实验。
通过导出stl图形,通过solidworks测量工具测量物体尺寸如下:长方形物体为0.31864m*0.50751m*0.15262m,实际物体长度为0.321m*0.501m*0.163m,误差在0.02m之内。
从实验结果看,本发明具备测量精度高,时效性高,灵活性强,成本低廉特性。
本发明提供的一种基于kinect深度相机测量方法,主要分为两个阶段,前期进行粗略配准估计,后期再进行精细配准估计。首先是通过提取特征点和计算点特征直方图,借助k-d树进行对应点估计,利用随机抽样一致方法去除无匹配点,得到一个粗配准对齐,然后是利用迭代最邻近点算法进行精细配准,利用非线性算子求解空间转换矩阵。在融合阶段,借助面元表达方法将配准后的点云进行融合并去除杂点和外点,采取多边形网格表示和纹理映射技术,获得可视化的真实物体三维模型结果,最后,根据测量位置读取点云信息,测量长度、曲率、角度信息。因此,本发明对kinect重建模型进行改进,改进后的方法可以实现对物体的在线实时重建,操作简易,成本低廉,测量精度高,时效性高,灵活性强。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。