一种基于Hololens深度数据的装配指导方法及系统转让专利

申请号 : CN202110892450.6

文献号 : CN113706689B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周光辉肖佳诚张超

申请人 : 西安交通大学

摘要 :

本发明公开了一种基于Hololens深度数据的装配指导方法及系统,将Hololens设备采集的真实环境的深度数据转换为世界坐标系下的点云模型;进行标注后将点云转换成标准数据集格式;构建待装配的零件三维模型;将构建的零件三维模型转换成点云模型;对转换的零件点云模型进行空间坐标变换并与多个场景点云数据合成,将合成后的点云转换成标准数据集格式;和合成的标准数据集一起输入改进的Votenet网络中进行训练,保存训练结果并结合ICP方法进行辅助校准;Hololens设备将真实场景的深度数据传输给远程服务器,输入到Votenet网络中,输出检测结果;以全息影像的形式展示给用户,实现装配指导。本发明有效地将辅助装配信息以全息影像的形式推送给装配人员,实现装配引导提高装配效率。

权利要求 :

1.一种基于Hololens深度数据的装配指导方法,其特征在于,包括以下步骤:S1、将Hololens设备采集的真实环境的深度数据转换为世界坐标系下的点云模型;

S2、对步骤S1得到的点云模型进行标注,根据标注信息将点云转换成标准数据集格式;

S3、构建待装配的零件三维模型;

S4、将步骤S3构建的零件三维模型转换成点云模型;

S5、对步骤S4转换的零件点云模型进行空间坐标变换并与多个场景点云数据合成,将合成后的点云转换成标准数据集格式;

S6、将步骤S2转换的标准数据集和步骤S5合成的标准数据集一起输入改进的Votenet网络中进行训练,保存训练结果并结合ICP方法进行辅助校准;

S7、Hololens设备将真实场景的深度数据传输给远程服务器,远程服务器对深度数据进行预处理并输入到步骤S6训练好的Votenet网络中,输出检测结果;

S8、Hololens设备获得步骤S7输出的检测结果,将对应的辅助装配信息以全息影像的形式展示给用户,实现装配指导。

2.根据权利要求1所述的方法,其特征在于,步骤S1具体为:S101、通过Hololens设备研究模式获得深度传感器访问权限,通过C++开发深度数据传输插件,导入Unity3D增强现实应用中并部署到Hololens设备上;

S102、启动应用,记录此时Hololens设备的位置作为Hololens世界坐标系的原点origin,深度传感器工作为LongThrow工作模式,Hololens设备在场景中移动,当和服务器建立socket连接后,Hololens设备将实时深度数据帧DepthFrame发送给后台服务器;

S103、解析步骤S102中的DepthFrame获得当前设备原点rigNode到世界坐标系原点origin的空间变换矩阵Trig2world,深度图像的图像宽imgWidth,图像高imgHeight,每一个像素点对应的深度数据D;

T

S104、根据步骤S103中获得的深度数据,将二维深度图像上任一点(u,v)转换为传感器坐标系下的三维坐标:S105、根据步骤S104中获得的传感器坐标系下三维坐标,通过坐标变换计算得到标准坐标系下每个点的坐标;

S106、将步骤S105计算得到的三维点集转换为点云数据并保存。

3.根据权利要求2所述的方法,其特征在于,步骤S104中,传感器坐标系下的三维坐标为:T T

其中,(X,Y,Z) cam传感器坐标系下的坐标;(u,v)表示二维深度图像上任一点像素的坐T标;f表示与传感器内部参数相关的一个映射关系,将(u,v) 映射为(x,y,z),z=1的三维坐标。

4.根据权利要求2所述的方法,其特征在于,步骤S105中,每个点的坐标为:T T

其中,(X,Y,Z)World和(X,Y,Z) cam分别表示标准世界坐标系和传感器坐标系下的坐标;

Tcam2rig表示传感器坐标系到Hololens设备原点的变换矩阵;Trig2world表示Hololens设备到程序启动时定义的Hololens世界坐标系原点origin的变换矩阵;Tworld2World表示Hololens世界坐标系到标准世界坐标系的变换。

5.根据权利要求1所述的方法,其特征在于,步骤S5具体为:S501、对步骤S4中点云模型进行预处理,遍历点云模型中每个点,计算零件的几何中心center和模型尺寸size;

S502、从室内场景数据集SUNRGBD中选择30个场景,提取30个场景的点云模型;

S503、利用步骤S501中零件对应的点云模型在步骤S502中提取的场景点云模型内随机移动和旋转,将每次变换后的零件点云模型和场景点云模型作为一个合成点云模型,同时计算变换之后的零件点云模型以及零件点云模型3D边界框的8个顶点;

S504、寻找步骤S503中3D边界框内的点,计算和零件几何中心center的距离;

S505、根据步骤S503中的合成的点云模型,用一个二维数组obb[obj_num,10]表示零件类别以及空间姿态,obj_num表示合成的点云场景中存在的物体数量,表示零件变换后的中心,obb[i,3:6]表示物体的长宽高,obb[i,6:

9]表示物体分别沿x轴,y轴,z轴转过的角度,obb[i,9]表示零件的语义类别sem_class,将二维数组保存;

S506、采用FPS最远点采样方法对步骤S503中合成的点云模型进行下采样,最终获得

20000个点,并保存。

6.根据权利要求5所述的方法,其特征在于,步骤S501中,零件的几何中心center,模型尺寸size具体为:其中,xmin,ymin,zmin,xmax,ymax,zmax表示模型点云的边界;l,w,h定义为模型长宽高的一半。

7.根据权利要求5所述的方法,其特征在于,步骤S503中,变换后的点云数据Pcd′为:Pcd′=R·Pcd+T

其中,Pcd表示变换前的点云数据,R表示和旋转相关的矩阵,T表示和平移相关的矩阵。

8.根据权利要求1所述的方法,其特征在于,步骤S6具体为:S601、改进的Votenet网络采用Pointnet++作为backbone,将Pointnet++中SetAbstraction的分组半径设置为factor×[0.2,0.4,0.8,1.0],factor是和待检测零件尺寸相关的比例因子,使得SetAbstraction能更好获取零件局部关键点和特征向量;

S602、将Votenet网络中Porposal Net生成预测特征向量的一维卷积层修改为Conv1d(128,2+3+num_heading_bin×6+num_size_cluster×4+num_class,1),在原有基础上对零件三个方向的旋转角度进行预测;

S603、根据步骤S602得到的预测结果获得零件准确的空间位置和旋转方向,并从原始的点云中分割出来,从步骤S601获得点云的关键点ojb_xyz和特征向量ojb_feature,通过特征向量的相似度评估找到零件模板点云中对应的关键点,通过ICP方法进行配准,获得一个二次校准矩阵Tcalib。

9.根据权利要求1所述的方法,其特征在于,步骤S7具体为:S701、用户佩戴Hololens设备,通过深度传感器采集环境的深度数据并以数据帧DepthFrame的形式发送给远程服务器;

S702、远程服务器获取并解析步骤S701中深度数据帧DepthFrame,构建环境的点云模型;

S703、对步骤S702转换后的原始点云模型进行滤波,设定距离阈值clamp_min=0.2,clamp_max=0.8,将距离用户小于clamp_min或大于clamp_max的点作为无效点去除;

S704、将步骤S703处理后的点云模型输入到步骤S6训练好的Votenet网络中输出预测结果,预测结果包括物体在空间中的几何中心center,模型的尺寸size,模型的旋转角度rotation_angle和语义类别sem_class;

S705、根据步骤S704的预测结果获得对应零件在空间中的位姿,选择区域内的点云,通过ICP配准获得校准后的空间位姿;

S706、利用数据中间件Redis的发布订阅功能实时更新步骤S705的结果,当零件位姿变化超过阈值后,服务器将空间位姿发布到Redis中,Hololens设备中的值随之更新。

10.一种基于Hololens深度数据的装配指导系统,其特征在于,包括:采集模块,将Hololens设备采集的真实环境的深度数据转换为世界坐标系下的点云模型;

标注模块,对采集模块得到的点云模型进行标注,根据标注信息将点云转换成标准数据集格式;

三维模块,构建待装配的零件三维模型;

转换模块,将三维模块构建的零件三维模型转换成点云模型;

合成模块,对转换模块转换的零件点云模型进行空间坐标变换并与多个场景点云数据合成,将合成后的点云转换成标准数据集格式;

训练模块,将标注模块转换的标准数据集和合成模块合成的标准数据集一起输入改进的Votenet网络中进行训练,保存训练结果并结合ICP方法进行辅助校准;

检测模块,用户佩戴Hololens设备,将真实场景的深度数据传输给远程服务器,远程服务器对数据进行预处理并输入训练模块训练好的网络中,输出检测结果;

指导模块,Hololens设备获得检测模块输出的检测结果,将对应的辅助装配信息以全息影像的形式展示给用户,实现装配指导。

说明书 :

一种基于Hololens深度数据的装配指导方法及系统

技术领域

[0001] 本发明属于智能制造与数字化技术领域,具体涉及一种基于Hololens深度数据的装配指导方法及系统。

背景技术

[0002] 装配是指按照一定的工艺流程将零件组装成完整产品的一系列操作活动,是产品生命周期中的一个重要环节。目前,产品的多样性,以及复杂产品装配工序的繁琐性,使得装配人员不得不借助纸质的说明手册或者电子文档进行装配引导。然而,从大量的文字信息中提取出有效的引导信息,需要耗费大量的时间,同时对装配人员的理解和认知水平也有一定的要求。因此,如何提供一种更易于理解,效率更高的装配指导模式成为一个关键的问题。
[0003] 增强现实技术是一种把三维跟踪技术、实时交互技术和虚实结合技术作为特性,通过叠加多媒体信息到真实环境中的融合技术。将增强现实技术用于复杂产品装配中,能够使用户同时对虚拟对象和真实物体进行操作。在这样一种虚实融合的环境下,用户的感知能力得以增强同时能够获得更好的交互体验,用户在获得有效的辅助装配信息如装配顺序、装备位置、装配要求等的情况下,不会影响对真实物理零件的装配操作,从而提高装配效率,减少装配错误。
[0004] Hololens作为一种头戴式的增强现实设备,便于携带同时可以解放用户的双手,十分适合用于装配指导。然而,目前多数基于Hololens开发的增强现实应用还是利用Vuforia等SDK,基于标志物进行三维注册,将虚拟信息叠加到真实物体上。在实际装配过程中,通常对零件表面光洁度有要求,并且装配工位可能会发生变化,因而预置标志物的方法存在很多限制。

发明内容

[0005] 本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于Hololens深度数据的装配指导方法及系统,利用Hololens自带的深度传感器采集环境数据,重新构建环境的点云模型,识别出待装配的零件类别及其空间位姿,从而将相应的辅助装配信息以全息影像的形式推送给装配人员,实现装配指导提高装配效率。
[0006] 本发明采用以下技术方案:
[0007] 一种基于Hololens深度数据的装配指导方法,包括以下步骤:
[0008] S1、将Hololens设备采集的真实环境的深度数据转换为世界坐标系下的点云模型;
[0009] S2、对步骤S1得到的点云模型进行标注,根据标注信息将点云转换成标准数据集格式;
[0010] S3、构建待装配的零件三维模型;
[0011] S4、将步骤S3构建的零件三维模型转换成点云模型;
[0012] S5、对步骤S4转换的零件点云模型进行空间坐标变换并与多个场景点云数据合成,将合成后的点云转换成标准数据集格式;
[0013] S6、将步骤S2转换的标准数据集和步骤S5合成的标准数据集一起输入改进的Votenet网络中进行训练,保存训练结果并结合ICP方法进行辅助校准;
[0014] S7、Hololens设备将真实场景的深度数据传输给远程服务器,远程服务器对深度数据进行预处理并输入到步骤S6训练好的Votenet网络中,输出检测结果;
[0015] S8、Hololens设备获得步骤S7输出的检测结果,将对应的辅助装配信息以全息影像的形式展示给用户,实现装配指导。
[0016] 具体的,步骤S1具体为:
[0017] S101、通过Hololens设备研究模式获得深度传感器访问权限,通过C++开发深度数据传输插件,导入Unity3D增强现实应用中并部署到Hololens设备上;
[0018] S102、启动应用,记录此时Hololens设备的位置作为Hololens世界坐标系的原点origin,深度传感器工作为LongThrow工作模式,Hololens设备在场景中移动,当和服务器建立socket连接后,Hololens设备将实时深度数据帧DepthFrame发送给后台服务器;
[0019] S103、解析步骤S102中的DepthFrame获得当前设备原点rigNode到世界坐标系原点origin的空间变换矩阵Trig2world,深度图像的图像宽imgWidth,图像高imgHeight,每一个像素点对应的深度数据D;
[0020] S104、根据步骤S103中获得的深度数据,将二维深度图像上任一点(u,v)T转换为传感器坐标系下的三维坐标:
[0021] S105、根据步骤S104中获得的传感器坐标系下三维坐标,通过坐标变换计算得到标准坐标系下每个点的坐标;
[0022] S106、将步骤S105计算得到的三维点集转换得到的点云数据,并保存为.pcd文件。
[0023] 进一步的,步骤S104中,传感器坐标系下的三维坐标为:
[0024]
[0025]
[0026] 其中,(X,Y,Z)Tcam传感器坐标系下的坐标;(u,v)T表示二维深度图像上任一点像素T的坐标;f表示与传感器内部参数相关的一个映射关系,将(u,v) 映射为(x,y,z),z=1的三维坐标。
[0027] 进一步的,步骤S105中,每个点的坐标为:
[0028]
[0029]
[0030] 其中,(X,Y,Z)TWorld和(X,Y,Z)Tcam分别表示标准世界坐标系和传感器坐标系下的坐标;Tcam2rig表示传感器坐标系到Hololens设备原点的变换矩阵,和传感器在设备上的位置有关;Trig2world表示Hololens设备到程序启动时定义的Hololens世界坐标系原点origin的变换矩阵;Tworld2World表示Hololens世界坐标系到标准世界坐标系的变换。
[0031] 具体的,步骤S5具体为:
[0032] S501、对步骤S4中点云模型进行预处理,去除离群点和噪声点后,遍历点云模型中每个点,计算零件的几何中心center和模型尺寸size;
[0033] S502、从常见的室内场景数据集SUNRGBD中选择30个场景,提取30个场景的点云模型;
[0034] S503、让步骤S501中零件对应的点云模型在步骤S502中提取的场景点云模型内随机移动和旋转,将每次变换后的零件点云模型和场景点云模型作为一个合成点云模型,同时计算变换之后的零件点云模型以及零件点云模型3D边界框的8个顶点;
[0035] S504、寻找步骤S503中3D边界框内的点,计算和零件几何中心center的距离,保存为vote.npz文件;
[0036] S505、根据步骤S503中的合成的点云模型,用一个二维数组obb[obj_num,10]表示零件类别以及空间姿态,obj_num表示合成的点云场景中存在的物体数量,表示零件变换后的中心,obb[i,3:6]表示物体的长宽高,obb[i,6:
9]表示物体分别沿x轴,y轴,z轴转过的角度,obb[i,9]表示零件的语义类别sem_class,将二维数组保存为obb.npz文件;
[0037] S506、采用FPS最远点采样方法对步骤S503中合成的点云模型进行下采样,最终获得20000个点,并保存为pc.npz文件。
[0038] 进一步的,步骤S501中,零件的几何中心center,模型尺寸size具体为:
[0039]
[0040]
[0041] 其中,xmin,ymin,zmin,xmax,ymax,zmax表示模型点云的边界;l,w,h定义为模型长宽高的一半。
[0042] 进一步的,步骤S503中,变换后的点云数据Pcd′为:
[0043] Pcd′=R·Pcd+T
[0044] 其中,Pcd表示变换前的点云数据,R表示和旋转相关的矩阵,T表示和平移相关的矩阵。
[0045] 具体的,步骤S6具体为:
[0046] S601、改进的Votenet网络采用Pointnet++作为backbone,将Pointnet++中SetAbstraction的分组半径设置为factor×[0.2,0.4,0.8,1.0],factor是和待检测零件尺寸相关的比例因子,使得SetAbstraction能更好获取零件局部关键点和特征向量;
[0047] S602、将Votenet网络中Porposal Net生成预测特征向量的一维卷积层修改为Conv1d(128,2+3+num_heading_bin×6+num_size_cluster×4+num_class,1),在原有基础上对零件三个方向的旋转角度进行预测;
[0048] S603、根据步骤S602得到的预测结果获得零件准确的空间位置和旋转方向,并从原始的点云中分割出来,从步骤S601获得点云的关键点ojb_xyz和特征向量ojb_feature,通过特征向量的相似度评估找到零件模板点云中对应的关键点,通过ICP方法进行配准,获得一个二次校准矩阵Tcalib。
[0049] 具体的,步骤S7具体为:
[0050] S701、用户佩戴Hololens设备,通过深度传感器采集环境的深度数据并以数据帧DepthFrame的形式发送给远程服务器;
[0051] S702、远程服务器获取并解析步骤S701中深度数据帧DepthFrame,构建环境的点云模型;
[0052] S703、对步骤S702转换后的原始点云模型进行滤波,设定距离阈值clamp_min=0.2,clamp_max=0.8,将距离用户小于clamp_min或大于clamp_max的点作为无效点去除;
[0053] S704、将步骤S703处理后的点云模型输入到步骤S6训练好的Votenet网络中输出预测结果,预测结果包括物体在空间中的几何中心center,模型的尺寸size,模型的旋转角度rotation_angle和语义类别sem_class;
[0054] S705、根据步骤S704的预测结果获得对应零件在空间中的位姿,选择区域内的点云,通过ICP配准获得校准后的空间位姿;
[0055] S706、利用数据中间件Redis的发布订阅功能实时更新步骤S705的结果,当零件位姿变化超过阈值后,服务器将空间位姿发布到Redis中,Hololens设备中的值随之更新。
[0056] 本发明的另一技术方案是,一种基于Hololens深度数据的装配指导系统,包括:
[0057] 采集模块,将Hololens设备采集的真实环境的深度数据转换为世界坐标系下的点云模型;
[0058] 标注模块,对采集模块得到的点云模型进行标注,根据标注信息将点云转换成标准数据集格式;
[0059] 三维模块,构建待装配的零件三维模型;
[0060] 转换模块,将三维模块构建的零件三维模型转换成点云模型;
[0061] 合成模块,对转换模块转换的零件点云模型进行空间坐标变换并与多个场景点云数据合成,将合成后的点云转换成标准数据集格式;
[0062] 训练模块,将标注模块转换的标准数据集和合成模块合成的标准数据集一起输入改进的Votenet网络中进行训练,保存训练结果并结合ICP方法进行辅助校准;
[0063] 检测模块,用户佩戴Hololens设备,将真实场景的深度数据传输给远程服务器,远程服务器对数据进行预处理并输入训练模块训练好的网络中,输出检测结果;
[0064] 指导模块,Hololens设备获得检测模块输出的检测结果,将对应的辅助装配信息以全息影像的形式展示给用户,实现装配指导。
[0065] 与现有技术相比,本发明至少具有以下有益效果:
[0066] 本发明一种基于Hololens深度数据的装配指导方法,利用Hololens自带传感器采集的原始深度数据还原场景的点云模型,将点云作为输入,通过Votenet网络和ICP方法,检测出场景中待装配零件的类型及其空间位姿,从而为装配人员提供相应的装配指导信息;本方法无需预置标志物,也不需要额外的传感器,可以充分发挥Hololens设备易于携带,解放双手的优势,实现不同场景不同工位的灵活装配指导,具有良好的通用性。
[0067] 进一步的,通过Hololens研究模式,获取深度传感器权限,开发了数据传输插件,实现了将场景的实时深度图像传给后台服务器,后台服务器通过成像原理,将深度图像转换为点云模型,使得后续的检测都能以场景实时点云作为输入,提高了装配指导的时效性。
[0068] 进一步的,基于深度图像重构出点云数据,通过三维空间的点来表示真实场景,可以更好反应物体表面的几何形状,同时便于输入后续的检测网络。
[0069] 进一步的,在实际装配过程中,人员通常处于移动的状态,传感器的坐标系会发生不断的变化,设置一个标准的世界坐标系将点转换到该坐标系下,可以保证点云坐标的一致性,同时由传感器单帧深度图像转换得到的点云通常是稀疏的,将点云转换到统一坐标系还可以方便将多帧数据进行合并,使得点云更加完整。
[0070] 进一步的,在对真实场景点云进行标注的基础上,将待检测零件的3D模型转换成点云,将零件点云随机平移和旋转同时计算3D边界框生成标注信息,并与多个场景点云合成,将真实数据与合成数据共同作为最终的数据集,解决了装配零件数据集构建和标注困难的问题。
[0071] 进一步的,对于合成数据,一方面数据量很大,另一方面零件点云随机变换可能不是很明显,采用手动标注较为困难,通过获得零件点云几何中心center和尺寸size,根据每次的旋转和平移通过矩阵计算可以准确获得对应的标注信息。
[0072] 进一步的,通过修改3D目标检测网络Votenet,使其能够检测零件在三维空间中的准确位置以及大致绕x,y,z轴的旋转方向,在这基础上,从预测的区域获取关键和特征向量,通过相似度评估,找到零件模板点云中的对应点,利用ICP方法进行更细致的配准,从而获得零件更准确的空间位姿。
[0073] 进一步的,在实际装配过程中,用户佩戴Hololens将所见场景的实时深度数据传给后台服务器,服务器对数据进行处理并输入检测网络,将本次检测结果和上次检测结果对比,当变化超过阈值说明零件位姿发生明显变化,服务器将新的结果发布到Redis,Hololens随之获得更新后的值,保证数据实时性的情况下,减少了冗余信息的传输,使得检测结果更稳定。
[0074] 综上所述,本发明开发了Hololens实时深度数据传输插件,将改进的Votenet网络应用到装配零件检测领域,通过深度数据转换的点云数据实现了对装配零件空间位姿的检测,可以有效地将辅助装配信息以全息影像的形式推送给装配人员,实现装配引导提高装配效率。
[0075] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0076] 图1为本发明基于Hololens深度数据的装配指导方法工作流程图;
[0077] 图2为本发明构建的数据集部分点云数据图,其中,(a)为真实环境点云数据,(b)为合成点云数据;
[0078] 图3为本发明基于Hololens点云预测图,其中,(a)为初始预测结果,(b)为校准后的结果;
[0079] 图4为本发明基于预测结果推送相关装配指导信息图,其中,(a)为对风扇的检测结果,(b)为和风扇相关的装配体信息,(c)为风扇下一步装配零件信息。

具体实施方式

[0080] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0081] 在本发明的描述中,需要理解的是,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0082] 还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0083] 还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0084] 在附图中示出了根据本发明公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
[0085] 本发明提供了一种基于Hololens深度数据的装配指导方法,首先启动Hololens设备的增强现实应用,将场景的深度数据传输给服务器;然后服务器将深度数据转为点云数据输入到三维目标检测网络中,预测零件的类别以及空间位姿,利用ICP进行精确校准;Hololens设备获得最终的预测结果,结合预先构建的知识图谱,将最合适的辅助装配信息以全息影像的形式推送给装配人员,实现装配指导的作用。本发明无需任何预置标志物,传感器,可以实现对不同零件,不同工位的装配指导,同时将环境的实时数据作为输入,具有较好的时效性。
[0086] Hololens是微软开发的头戴式增强现实设备,可以完全独立使用,无需线缆连接,用户佩戴Hololens可以以真实世界为载体获得全息体验,同时Hololens本身具有多个传感器包括4个可见光相机,2个红外相机,1个tof深度传感器等,具有环境感知的能力。
[0087] 请参阅图1,本发明一种基于Hololens深度数据的装配指导方法,以下步骤:
[0088] S1、将Hololens设备采集的真实环境的深度数据转换为世界坐标系下的点云模型;
[0089] S101、通过Hololens设备研究模式获得深度传感器访问权限,通过C++开发深度数据传输插件,导入Unity3D增强现实应用中并部署到Hololens设备上;
[0090] S102、启动应用,记录此时设备的位置作为Hololens世界坐标系的原点,将深度传感器设置为LongThrow工作模式,用户佩戴Hololens设备在场景中移动,当和服务器建立socket连接后,Hololens将实时深度数据帧DepthFrame发送给服务器;
[0091] S103、解析步骤S102中的DepthFrame可以获得当前设备原点rigNode到世界坐标系原点的空间变换矩阵Trig2world,深度图像的图像宽imgWidth,图像高imgHeight,每一个像素点对应的深度数据D;
[0092]
[0093] 其中,深度数据D等于传感器坐标系下三维空间点(X,Y,Z)Tcam到传感器的距离。
[0094] S104、二维深度图像上任一点(u,v)T可以转换为传感器坐标系下的三维坐标:
[0095]
[0096]
[0097] 其中,(X,Y,Z)Tcam传感器坐标系下的坐标;(u,v)T表示二维深度图像上任一点像素T的坐标;f表示与传感器内部参数相关的一个映射关系,将(u,v) 映射为(x,y,z),z=1的三维坐标;
[0098] S105、通过坐标变换计算得到标准坐标系(z轴向上,y轴向前,x向右)下每个点的坐标:
[0099]
[0100]
[0101] 其中,(X,Y,Z)TWorld和(X,Y,Z)Tcam分别表示标准世界坐标系和传感器坐标系下的坐标;Tcam2rig表示传感器坐标系到Hololens设备原点的变换矩阵,和传感器的位置有关;Trig2world表示Hololens设备到程序启动时定义的Hololens世界坐标系原点的变换矩阵;
Hololens世界坐标系默认y轴向上,‑z轴向前,x向右Tworld2World表示其到标准世界坐标系的变换;
[0102] S106、将通过深度数据转换得到的点云数据保存为.pcd文件。
[0103] S2、利用标注软件对点云模型进行标注,根据标注信息将点云转换成标准数据集格式;
[0104] 通过标注软件,用一个3D边界框对点云中的零件标注,从而获得其几何中心center,模型尺寸size,旋转角度rotation_angle以及语义类别sem_class,最终保存为数据集的标准格式。
[0105] S3、构建待装配的零件的三维模型;
[0106] 用三维建模软件如SolidWorks构建零件的三维模型。
[0107] S4、将步骤S3中的零件三维模型转换成点云模型;
[0108] 通过pcl将零件的三维模型转换成点云模型。
[0109] S5、对步骤S4中零件的点云模型进行空间坐标变换,并与多个场景点云数据合成,将合成后的点云转换成标准数据集格式;
[0110] S501、对步骤S4中点云模型进行预处理,去除离群点和噪声点后,遍历点云中每个点,计算出零件的几何中心center,模型尺寸size:
[0111]
[0112]
[0113] 其中,xmin,ymin,zmin,xmax,ymax,zmax表示模型点云的边界;l,w,h定义为模型长宽高的一半。
[0114] S502、由于步骤S1中获得的真实环境点云数据有限,从常见的室内场景数据集SUNRGBD中选择30个场景,提取场景的点云模型并与零件点云模型合成;
[0115] S503、让模型在场景内随机移动和旋转实现数据增强,计算变换之后的点云以及模型3D边界框的8个顶点;
[0116] Pcd′=R·Pcd+T
[0117]
[0118]
[0119] 其中,Pcd和Pcd′分别表示变换前和变换后的点云数据;box_corners表示变换后零件3D边界框的顶点;R表示和旋转相关的矩阵,其中α,β,γ分别为绕x轴,y轴,z轴的旋转转角度,范围为[0,2π];T表示和平移相关的矩阵,其中的值为三个方向上平移的距离。
[0120] S504、寻找3D边界框内的点,计算和零件几何中心center的距离,保存为vote.npz文件;
[0121] S505、用一个二维数组obb[obj_num,10]表示零件类别以及空间姿态,其中obj_num表示合成的点云场景中存在的物体数量, 表示零件变换后的中心,obb[i,3:6]表示物体的长宽高,obb[i,6:9]表示物体分别沿x轴,y轴,z轴转过的角度,obb[i,9]表示零件的语义类别sem_class,将二维数组保存为obb.npz文件;
[0122] S506、采用FPS最远点采样对合成后的点云进行下采样,最终获得20000个点,并保存为pc.npz文件。
[0123] S6、将步骤S2和步骤S5构建的数据集一起输入到改进的Votenet网络中训练,并保存最终的训练结果,结合ICP方法进行辅助校准;
[0124] S601、Votenet网络采用Pointnet++作为backbone,将Pointnet++中SetAbstraction的分组半径设置为factor×[0.2,0.4,0.8,1.0],其中factor是和待检测零件尺寸相关的比例因子,使得SetAbstraction能更好获取零件局部关键点和特征向量;
[0125] S602、将Votenet中Porposal Net中生成预测特征向量的一维卷积层修改为Conv1d(128,2+3+num_heading_bin×6+num_size_cluster×4+num_class,1),在原有基础上对零件三个方向的旋转角度进行预测;
[0126] S603、根据预测结果可以获得零件准确的空间位置和大致的旋转方向,从原始的点云中将这部分区域分割出来,从步骤S601中获得这部分点云的关键点ojb_xyz和特征向量ojb_feature,通过特征向量的相似度评估,找到零件模板点云中对应的关键点,通过ICP方法进行配准,获得一个二次校准矩阵Tcalib。
[0127] S7、用户佩戴Hololens设备,将真实场景的深度数据传输给远程服务器,服务器对数据进行预处理并输入到步骤S6训练好的网络中,输出检测结果;
[0128] S701、用户佩戴Hololens,打开应用程序,观察存在待装配零件的环境,深度传感器采集环境的深度数据并发送给远程服务器;
[0129] S702、服务器解析深度数据帧DepthFrame,根据步骤S1所述方法构建环境的点云模型;
[0130] S703、对转化后的原始点云进行滤波,去除噪声点、离群点,同时考虑装配时零件和用户的距离,用户的臂展,设定距离阈值clamp_min=0.2,clamp_max=0.8,将距离用户太近或太远的点作为无效点去除;
[0131] S704、将处理后的点云输入到训练好的Votenet网络中,输出预测结果,包括物体在空间中的几何中心center,模型的尺寸size,模型的旋转角度rotation_angle和语义类别sem_class;
[0132] S705、通过ICP配准获得校准后的空间位姿;
[0133] S706、利用数据中间件Redis的发布订阅功能实时更新步骤S705的结果,当零件位姿变化超过一定阈值后,服务器将空间位姿发布到Redis中,Hololens中的值随之更新。
[0134] S8、Hololens获得返回的检测结果,将对应的辅助装配信息以全息影像的形式展示给用户。
[0135] 预先利用知识图谱建立起装配语义模型,描述装配结构、装配工艺、零件之间的装配关系,通过检测结果中的语义信息明确当前零件的类别,通过零件的空间位姿和零件之间的距离判断零件所处的装配状态,从而将下一步最可能的装配过程或其他辅助装配信息以全息影像的形式化展示给用户。
[0136] 打开Hololens开发的增强现实应用,根据零件检测的结果以及预先构建的装配语义模型的知识图谱,可以推断出当前零件所处的装配状态,将最合适的指导信息以全息影像推送给装配人员,装配人员无需手动检索和筛选,使得信息的获取效率更高,展示形式更加直观,可以有效提高装配指导的效率
[0137] 本发明再一个实施例中,提供一种基于Hololens深度数据的装配指导系统,该系统能够用于实现上述基于Hololens深度数据的装配指导方法,具体的,该基于Hololens深度数据的装配指导系统包括采集模块、标注模块、三维模块、转换模块、合成模块、训练模块、检测模块以及指导模块。
[0138] 其中,采集模块,将Hololens设备采集的真实环境的深度数据转换为世界坐标系下的点云模型;
[0139] 标注模块,利用标注软件对采集模块得到的点云模型进行标注,根据标注信息将点云转换成标准数据集格式;
[0140] 三维模块,构建待装配的零件三维模型;
[0141] 转换模块,将三维模块构建的零件三维模型转换成点云模型;
[0142] 合成模块,对转换模块转换的零件点云模型进行空间坐标变换并与多个场景点云数据合成,将合成后的点云转换成标准数据集格式;
[0143] 训练模块,将标注模块转换的标准数据集和合成模块合成的标准数据集一起输入改进的Votenet网络中进行训练,保存训练结果并结合ICP方法进行辅助校准;
[0144] 检测模块,Hololens设备将真实场景的深度数据传输给远程服务器,远程服务器对深度数据进行预处理并输入训练模块训练好的Votenet网络中,输出检测结果;
[0145] 指导模块,Hololens设备获得检测模块输出的检测结果,将对应的辅助装配信息以全息影像的形式展示给用户,实现装配指导。
[0146] 本发明再一个实施例中,提供了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor、DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field‑Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于基于Hololens深度数据的装配指导方法的操作,包括:
[0147] 将Hololens设备采集的真实环境的深度数据转换为世界坐标系下的点云模型;利用标注软件对点云模型进行标注,根据标注信息将点云转换成标准数据集格式;构建待装配的零件三维模型;将零件三维模型转换成点云模型;对转换的零件点云模型进行空间坐标变换并与多个场景点云数据合成,将合成后的点云转换成标准数据集格式;将转换的标准数据集和合成的标准数据集一起输入改进的Votenet网络中进行训练,保存训练结果并结合ICP方法进行辅助校准;Hololens设备将真实场景的深度数据传输给远程服务器,远程服务器对深度数据进行预处理并输入训练好的Votenet网络中,输出检测结果;Hololens设备获得检测结果,将对应的辅助装配信息以全息影像的形式展示给用户,实现装配指导。
[0148] 本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(Memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端设备中的内置存储介质,当然也可以包括终端设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。
需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器。
[0149] 可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关基于Hololens深度数据的装配指导方法的相应步骤;计算机可读存储介质中的一条或一条以上指令由处理器加载并执行如下步骤:
[0150] 将Hololens设备采集的真实环境的深度数据转换为世界坐标系下的点云模型;利用标注软件对点云模型进行标注,根据标注信息将点云转换成标准数据集格式;构建待装配的零件三维模型;将零件三维模型转换成点云模型;对转换的零件点云模型进行空间坐标变换并与多个场景点云数据合成,将合成后的点云转换成标准数据集格式;将转换的标准数据集和合成的标准数据集一起输入改进的Votenet网络中进行训练,保存训练结果并结合ICP方法进行辅助校准;Hololens设备将真实场景的深度数据传输给远程服务器,远程服务器对深度数据进行预处理并输入训练好的Votenet网络中,输出检测结果;Hololens设备获得检测结果,将对应的辅助装配信息以全息影像的形式展示给用户,实现装配指导。
[0151] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0152] 请参阅图1,本发明提出了一种基于Hololens深度数据的装配指导方法,首先分别通过对真实环境点云标注以及数据合成构建数据集。对真实环境点云标注的过程为,佩戴Hololens在场景中移动,观察放置在桌面或手持的待装配的零件,将深度数据传输给服务器并转为点云,然后用标注软件标注。数据合成的过程为,选择SUNRGBD数据集中的30个场景,提取其点云模型,将待装配零件转为点云模型,使零件点云在场景点云内随机移动和旋转,并计算出相应的标注信息。最终构建了装配体零件在不同点云场景中不同位姿的2000条数据集,部分点云数据如图2所示。
[0153] 然后将数据集输入到三维目标检测网络中训练,Votenet网络通过Pointnet++学习场景中不同物体点云的局部和全局特征,生成关键点和特征向量,通过投票网络生成投票,预测到物体几何中心的偏移距离,通过聚类预测出物体的几何中心,最终输出物体的几何中心,长宽高的尺寸以及三个方向的旋转角度,测试结果表示可以准确地检测出装配体各零件在空间中的位置部分结果如表1所示。
[0154]
[0155] 然而,有些情况下对于旋转角度的预测效果不是很理想,标准Votenet网络只考虑z轴方向的旋转,通过预测的3D边界框和真实边界框的IoU是否超过阈值来判断预测结果的准确性,考虑三个方向的旋转后,无法简单的计算IoU,因而将零件3D边界框顶点按1~8标号,通过计算对应的4个点的欧式距离是否超过阈值判断预测结果的准确性。以叶轮检测结果为例,同时考虑位置和旋转的平均预测精度为53.7%;根据初始预测结果,从整体的点云场景中将物体可能存在区域的点及其特征分割出来,通过特征向量相似度计算,从零件模板点云中选取对应的点,利用ICP方法进行进一步配准,平均预测精度提高到83.4%,初始预测结果和校准后的结果如图3所示。
[0156] 利用Redis的发布/订阅功能来实现对最终检测结果的实时更新,将前后两次检测结果用向量表示,计算其欧氏距离,设定一个阈值ψ,如果大于阈值说明零件发生了明显的变化,服务器将最新的检测结果发布到Redis中,Redis将信息推送给订阅它的Hololens增强现实应用,用户即可获得包含零件类别及其空间位姿的最新信息。根据预先构建的知识图谱,即可推断出零件当前所处的装配状态,并将最合理的辅助装配信息推送给装配人员,实现具有良好时效性且直观的装配指导,如图4所示。
[0157] 综上所述,本发明一种基于Hololens深度数据的装配指导方法及系统,利用设备采集的环境数据对零件检测,无需预置标志物也不用布置额外的传感器,可以应用与不同装配对象不同装配工位,更加通用灵活;将环境实时数据作为作为输入,具有较好的时效性;以全息影像的方式推送辅助装配信息,使得装配指导更加直观高效。
[0158] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0159] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0160] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0161] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0162] 以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。