吴浩然,于 海,彭 林,李春龙
(1.国网无锡供电公司,江苏 无锡 210096;2.全球能源互联网研究院,南京 210003)
基于点云的部件识别和姿态估计方法研究
吴浩然1,于 海2,彭 林2,李春龙2
(1.国网无锡供电公司,江苏 无锡 210096;2.全球能源互联网研究院,南京 210003)
为了识别与理解装配环境中的真实物体对象,提出一种基于配准的3D感知方法,利用点云的相似度对场景中真实物体进行感知,为降低噪声对配准结果的影响,提出一个基于密度自适应的匹配算法,自适应调整不同来源的点云密度,利用共面四点特征的仿射不变性实现对真实物体的识别。该方法可以减少点云的数据量,降低运算复杂度,还能提高匹配精确度。实验结果表明,该方法能准确在装配环境点云中识别出零部件并能计算出它们的姿态,可用于噪声条件下增强现实交互应用。
增强现实;场景重构;增强现实装配
在增强现实装配环境中,为了对零部件进行交互操作或者装配,要求对场景进行深度感知。除了要识别不同的零部件,还要求了解它们在场景中的6自由度姿态[1-2]。而传统的增强现实也可以针对某个目标物体进行交互,但所有的交互操作事实上是在2D空间上进行的。传统增强现实利用平面特征表示增强现实环境,通过二维空间中对虚拟3D模型处理和分析,这虽然可以实现对场景中的物体识别,但不能获取物体的空间姿态。传统增强现实无法进行真正的虚实融合交互操作,无法对操作的场景进行感知和反馈,一旦工作场景发生变化,增强现实系统就无法工作。为此本文研究场景感知方法,可以工作在装配环境中,有很强的识别和感知能力,能实现3D交互和装配任务。
1.1识别框架
2D图像上的物体识别和3D空间中的物体识别是当今计算机视觉的难题之一,识别与模型表达紧密相关,想获得一个通用的识别方法,首先场景和模型必须有一致的描述格式[3-4]。为了识别物体以及计算它们的姿态,本文用点云格式来描述CAD模型和由视频图像重构的场景。通过匹配CAD模型点云和场景点云,可以分析场景中的目标,并进行识别。
本文场景识别方法思路是:(1)场景中出现模型都有一个CAD模型与之匹配;(2)CAD模型与它的点云可以相互转换,点云的配准过程为一种刚体变换;(3)在参与配准两个点云中,当CAD模型点云中所有的点与它们最近邻的场景点欧式距离足够接近,就认为识别成功,场景中和CAD模型点云配准的那块点云是目标物体。
该框架有两个输入,一是场景点云,二是CAD模型点云库,由很多常用的零件模型和它们的点云构成,在离线阶段建好。为了在场景点云中找到目标模型,本文从模型点云库中取出一个模型的点云,与场景点云匹配。如果模型的点和场景某一区域中的点的匹配误差小于阈值,则认为匹配成功由此识别出场景中出现的目标物体。如果匹配的误差较大,则认为CAD模型点云不能在场景点云中找到对应,则认为该物体在场景不存在,从CAD模型点云库中提取另一个点云进行新一轮的配准和验证。在识别成功之后,得到CAD模型点云在场景中的一个初始姿态。为了计算出物体在场景中的精确6自由度姿态,通过ICP迭代算法对模型点云和场景点云进行进一步匹配,如果匹配误差小于阈值则认为姿态估算完成,场景中的物体被成功识别和姿态求解,把该物体的CAD模型叠加在场景对应位置上。由于虚拟模型在虚拟空间的姿态己知,通过一个虚实之间的关系转换,可以求得该目标模型在虚拟空间的姿态。
1.2匹配问题
已知同一物体经过不同角度扫描或者由不同的生成方法得到的带有任意不同初始姿势的两个三维点云数据P和Q,则配准的基本问题是寻找一个最佳的变换,包括旋转、平移和缩放,使得两个点云重合在一起的,其差异应该小于一定的阈值。
如果从P和Q中选取不同的基集,计算相应的刚性变换,那么一对分别含有三个点的集合,一个在P上,另一个在Q上,就足够唯一定义一个刚性变换了,描述如下:
pp,j∈P,pq,j∈Q
(1)
要计算从点云P中点转换到点云Q中的点对应的刚体变换关系,即
果农们也来了,搬走了几箱子除虫剂;大户来生骑着电驴子,愣是在带货架上塞满了多个品种秋播下地的种子、农药、肥料……
∀i={1,…n}pq,j= rotP→Q(pp,j)+tranP→Q+noise
由于点云的空间点很多,按照穷尽搜索的方法来找到这个三点对应显然不太可能。为此,很多研究者对参与配准的点云进行分析,希望能找一种通用的描述方法,能够在相似的点云中建立对应关系,降低计算复杂度,把两者的转换关系计算出来。为场景和模型点云构建简化的描述基集,在描述基集中找到对应关系,再映射到全局点云,由此计算模型到场景的6自由度的空间转换矩阵。
为了得到被测的场景物体的姿态,把虚拟的CAD模型转换成点云,在场景坐标系统中,把变换后的CAD模型点云与场景物体点云匹配,通过匹配,识别场景出现的物体以及它们的6自由度姿态。为了降低参与运算的数据量,对输入的两个点云提取描述基集,获得各自的描述基集,采用Ransac的方法匹配对基集进行迭代匹配,去除一些错误的矢量对应,估计两者的刚体转换关系,接着再把这个转换关系应到全局点云,如果两者的匹配误差小于一定阈值,就认为这个匹配成功。
2.1点云描述基集的提取
点云的描述基集有很多种,其中最常用的是与法向量相关的描述基集,例如一些对局部或者全局形状进行描述的算子SHOT、FPFH、VFH等[1]。这些描述基集用于噪声干扰较小的场合时,可以大幅度提高点云之间的配准成功率和效率。但以SFM重构的点云有很多噪声,使得点云表示的表面特征不全,即使经过滤波处理和增强,和真实场景的表面相比,还是有很大差距。尤其经过滤波之后,点云的密度又下降了许多,所以很难提取点云表面的描述矢量。或者提取到的描述向量无法反应点云的特征,导致错误匹配。
为此采用一种共面四点基集,这种方法有较强抗噪性能,最初用于处理不完整点云之间的缝合。假设如果可以找到特殊的四点基集,以代替三点基集,则配准的精度会更高,效果会更好,尤其有噪声的情况下。从点云P上提取一个不在同一直线的共面点{a,b,c,d},从Q上提取的四个共类似面点{a′,b′,c′,d′},如果这两对共面点是对应的,那么这两对共面点满足仿射不变,也就是说这两个四点集合经过仿射变换后,可以完全吻合。
对于不在同一直线的共面点集{a,b,c,d},设线段ab和线段cd相交于e点,定义了两个比率:
r1和r2在仿射变换下是不变的,并且可以唯一地确定仿射变换中的4点。现在,给定一个含有n个点的集合Q,和两个仿射不变比率r1和r2,提取所有由这两个不变量确定的4点集合,对于每一对点:{a′,b′,c′,d′}∈Q,计算下面两个相交点:
e1=a′-r1(b′-a′)
e2=c′-r1(d′-c′)
2.2密度自适应匹配算法
虽然共面四点基集不需要计算和提取法向量,但应用过程中要求参与配准的点云的重叠部分的密度基本相同。本文的场景点云来自SFM,而虚拟模型由虚拟扫描仪生成,两者的来源不同,因此不能做点云密度相同的假设。针对这些问题,采取密度自适应方法,把两个点云的下采样处理作为算法的一个步骤,采用由稀疏到稠密的配准策略,多层次的采样处理除了增加两者的相似度,还能减少点云的数据量,提高算法的效率。
2.3基于体素点权重的点云下采样
在实际配准过程中,为了提高共面四点基集的查找效率,一般采用缩小搜索范围的策略,直接在两个点云的重叠部分进行搜索是最合理的选择。但由于重叠部分也是未知,还需要专门的分析和计算来确定这一块区域。有的研究者为缩小搜索范围而做了一些改变,比如在噪声很小的点云上,利用局部描述向量来描述点云,再在描述向量集合的基础上提取进行共面四点基集,再进行点云间的配准。但是,搜索的范围还是很广,算法经常得到局部优化而不是全局最优,另外效率也很低。为了提高点云之间的配准效率,有很多解决方法被提出。但其中最重要的是对点云进行下采样,通过降低点云密度,从而降低了描述基集生成数量,从而缩小了查找对应基集的搜索范围。在提取共面四点基集之前,将点云密度进行处理,目的是让参与配准的点云密度基本相同。
常规的方法主要有三维体素下采样法,为输入的点云数据创建一个包围盒,再把包围盒细分成很多微小的三维立方体包围盒,最后对体素内的点进行简化处理。对在三维立方体包围盒内的点,不论形状和分布都以包围盒中心近似表示,这样该包围盒内所有点就缩减成一个点表示,大幅度降低了点云的数据量。该方法下采样的效率很高,但一般用于点云无噪声的情况下,有噪声条件下很少使用。
为了既能减少点云数据,又能保持点云的表面特征,有研究人员使用体素内所有点的重心来近似表示体素中其他点,虽然结果和体素中心法一样,也就是体素内所有点简化成一个点。但这种方法利用了点云的数据聚集特点,在有噪声的条件下,得到的点云结果比体素中心的下采样法得到的点云结果更真实,表达的表面轮廓更为清晰。
3.1模型点云库构建
本节构造的CAD模型数据库包括常用零部件的CAD模型和它们的点云。首先要对零部件进行3D建模,很多产品在设计阶段,3D模型已经被建好,也可以用一些建模软件构建。有了CAD模型,就可以利用虚拟3D扫描仪,根据点云的密度以及噪声要求,把CAD模型转换成为基本上没有噪声的点云。虚拟3D扫描仪类似真实的扫描仪,可在CAD模型的虚拟坐标系中按规划路径行走,对目标模型进行扫描,生成模型的表面点云。
3.2 3D识别与配准试验
3D识别与配准实验分为两个部分:一是仿真实验,另一个是真实场景的实验。为了验证本文算法的可行性,首先在没有噪声的虚拟数据上测试算法。实验采用台式机,Solidworks建模,Point cloud library进行点云可视化处理。
从CAD模型点云库中任选一个零件的CAD模型和点云。为了模拟真实场景中零件的摆放状态,重新对CAD模型进行处理,只对零件CAD模型的局部表面进行扫描,被遮挡部分不进行处理,生成的点云只反映的零件的部分表面结构特征。对零件点云(以P表示)做一个姿态的调整,使之与Q有一个位置和姿态的差异。参与配准的两个点云没有任何噪声,能准确反映虚拟模型表面特征。接下来,向零件局部点云Q添加的高斯噪声以模拟真实的场景,点云P不做改变再进行新的匹配。在接近真实噪声的条件下,零件点云P也能在点云空间中找到对应的局部点云Q。
用SFM方法重构了一个装配场景,为了提高配准效率和精确度,场景点云经过降噪和下采样。场景点云经过降噪处理后,仍然有许多噪声点和场景中物体表面真实的点混在一起。这些噪声有的是来自场景中的背景,这部分噪声是由背景的纹理、明暗差异产生的:另一部分的噪声来自前景的物体,有的是由于光照或者遮挡原因产生的,有的是因为摄像机的镜头畸变导致计算错误而产生的。CAD模型点云库中的点云是干净的没有噪声,能精确反映零部件的表面特征。为了识别装配场景中的真实工具和它们的姿态,每次识别都从虚拟的CAD模型点云库中取出一个零件点云。
本文提出一种对装配场景点云进行感知的方法。以点云数据为对象,通过CAD模型点云与场景点云的匹配来对场景中出现的部件进行识别,再利用ICP配准算法获取该部件在场景中的6自由度姿态。提出一个基于密度自适应的匹配算法,自适应调整不同来源的点云密度,降低点云共面四点基集的搜素范围,利用基于体素点权重的点云下采样方法降低所需匹配的点数,提高匹配速度。在对装配场景中出现的物体进行匹配的实验中,本方法成功识别装配场景中多种常见的工具和零件。实验采用两种下采样方法对点云进行下采样,而采用基于体素点权重的下采样方法的。点云配准成功率比利用体素重心法下采样的点云配准成功率提升了15%。
[1] ALDOMA A, MARTON Z C, TOMBARI F, et al. Point cloud library[J]. IEEE Robotics& Automation Magazine, 2012, 19(3): 80-91.
[2]PARK Y, LEPETIT V,WOO W. ESM-Blur: Handling & rendering blur in 3D trackingand augmentation[C]// Proceedings of the IEEE International Symposium onMixed and Augmented Reality(ISMAR). IEEE, 2009: 163-166.
[3]STRASDAT H, MONTIEL J M M, DAVISON A J. Real-time monocular SLAM: Why filter?[J]. Proceedings of the IEEE International Conference on Robotics andAutomation(ICRA). 2010: 2657-2664.
[4]WHELAN T, KAESS M, JOHANNSSON H, et al. Real-time large-scale dense RGB-DSLAM with volumetric fusion[J]. The International Journal of Robotics Research, 2015, 34(4/5): 598-626.
(本文编辑:杨林青)
Research on Component Recognition and Attitude Estimation Method Based on Point Cloud
WU Haoran1, YU Hai2, PENG Lin2, LI Chunlong2
(1.State Grid Wuxi power supply company, Jiangsu Wuxi 210096, China; 2. Global energy Internet Research Institute, Nanjing 210003, China)
To identify and understand real object objects in an assembly environment, a registration based 3D perception method is proposed. To reduce the influence of noise on registration results, a density based adaptive matching algorithm is proposed to perceive real objects in a scene using the similarity of point cloud. The algorithm can adaptively adjust the density of point clouds from different sources, and realize the recognition of real object by affine invariance of coplanar four point feature. This method can reduce the amount of cloud data and the computational complexity, and also improve the matching accuracy. The experimental results show that the proposed method can identify components accurately in the assembly environment point cloud and calculate their pose. It can be used for augmented reality interactive applications under noisy conditions.
augmented reality; scene reconstruction; augmented reality assembly
10.11973/dlyny201704016
吴浩然(1964—),男,高级工程师,总经理,从事电力系统运行检修管理工作。
TP391
:A
:2095-1256(2017)04-0431-04
2017-06-03