基于物理运算引擎的三维点云数据集生成方法

文档序号:30302145发布日期:2022-06-05 00:55阅读:212来源:国知局
基于物理运算引擎的三维点云数据集生成方法

1.本发明涉及的是一种图像处理领域的技术,具体是一种基于物理运算引擎physx与opengl的三维点云数据集生成方法。


背景技术:

2.在工业自动化分拣中需要使用基于点云数据的位姿估计方法,而基于点云数据的识别算法所采用的数据集获取一般采用人工标注的方式实现,时间和人力成本消耗巨大。近年来出现了一些在仿真环境下获取数据集的方法,但大规模多物体数据集生成仍较为耗时耗力。


技术实现要素:

3.本发明针对现有技术存在的上述不足,提出一种基于物理运算引擎的三维点云数据集生成方法,直接使用opengl接口对所需场景进行三维绘制,不仅能实现点云数据的仿真获取,还能够大幅提升点云数据集生成的效率和质量,适应于工业分拣、无人驾驶、智能家居等多领域应用中的高效低成本的数据集生成。
4.本发明是通过以下技术方案实现的:
5.本发明涉及一种基于物理运算引擎physx与opengl的三维点云数据集生成方法,通过载入物体和场景的三维模型后,随机初始化物体位姿并初始化physx物理世界并进行仿真;然后在opengl内设立拍摄系统,将physx物理世界中的物体位姿与三维模型中的材质、表面纹理参数输入opengl,在opengl中绘制生成场景初始点云;再通过色彩映射得到场景的语义和实例标签图像,并通过色彩逆映射实现对场景点云各点增加标签,与位姿标签数据一并作为三维点云数据集。
6.所述的三维模型包括:顶点、面片、表面纹理、材质,用于后续physx碰撞模型的生成和opengl三维场景的绘制。
7.所述的三维模型,优选.obj封装格式。
8.所述的初始化,包括:设置弹性系数、摩擦系数等物理碰撞参数,利用顶点和面片数据构建物理碰撞模型;在physx物理世界中按初始位置生成各物体。
9.所述的仿真是指:以步进方式仿真至得到真实的物体位置关系,同时使用gpu加速physx仿真过程,具体为:在physx中设置模拟重力,载入三维模型中物体的顶点、面片数据,建立凸包碰撞模型,设置各物体弹性系数、摩擦系数,在指定范围内随机初始化各物体位姿,进行仿真步进。
10.所述的仿真,优选在physx中使用gpu进行物理运算,利用图形硬件加速技术提高仿真运算的效率。
11.所述的拍摄系统包括:相机个数、相机外部及内部参数、光源个数、光照强度和颜色、阴影质量。
12.所述的场景初始点云,通过调用physx接口得到位姿信息,将相机参数转换为的相
机矩阵,在opengl中设置相机矩阵,利用opengl着色器载入设定的光照参数,为各物体载入对应的表面纹理和材质,使用opengl绘制具有颜色信息的三维点云。
13.所述的场景的语义和实例标签图像,通过以下方式得到:重置opengl的绘制状态,利用色彩映射将物体序号对应为不同rgb颜色,并以之作为各物体的材质参数输入opengl,调整着色器忽略光照、阴影,将opengl切换为纯色渲染模式;一次性绘制得到场景的语义和实例标签图像。
14.所述的增加标签是指:将场景初始点云按深度图索引排序,利用色彩逆映射得到标签图像上各序号物体对应的蒙版区域,使用各个蒙版区域将场景初始点云各点按深度图排序,并由图像蒙版为其中各点打上标签,完成对场景点云各点的标签工作。
15.优选地,通过重复进行仿真、色彩映射和增加标签操作,使数据集规模快速达到需求,从而针对目标场景高速生成大规模的点云数据集。
16.本发明涉及一种实现上述方法的系统,包括:物理仿真单元、图形渲染单元、标签生成单元以及人机交互单元,其中:物理仿真单元根据工件模型信息进行碰撞仿真,得到散乱堆叠工件的场景,图形渲染单元根据物理仿真结果进行三维图形渲染,得到场景图像和三维点云,标签单元根据场景图形和点云进行标签绘制和输出,得到用于分割和位姿估计的网络训练数据,人机交互单元为操作人员提供快捷方便的参数设置接口。技术效果
17.本发明基于physx与opengl的仿真标签,与现有技术相比同一单幅场景的仿真和标签时间从1分钟降低到0.3s以内,大大降低了基于深度学习的工件分拣系统在生产线上的部署时间。
附图说明
18.图1为基于physx与opengl的点云数据集生成系统示意图;
19.图2为用于仿真的物体模型示意图;
20.图3为用于仿真的场景模型示意图;
21.图4为基于physx与opengl生成的仿真场景示意图;
22.图5为实际拍摄的真实场景示意图;
23.图6为基于opengl生成的标签场景示意图;
24.图7为基于opengl生成的实例标签示意图;
25.图8为基于opengl生成的点云示意图。
26.图9为基于本方法训练的工件分拣算法实验
具体实施方式
27.如图1所示,为本实施例涉及一种基于物理运算引擎physx与opengl的工业零件分拣点云数据集生成方法,包括以下步骤:
28.步骤1)如图2和图3所示,载入分拣工位中所需物体和场景的三维模型,其中物体以连杆为例,场景模型为工件料箱,同时在内存中保存和管理各工件、料箱的表面纹理和材质参数。
29.步骤2.1)初始化physx物理环境,设置重力等环境参数;随机当前使用的物体数
量,在physx中对各工件和场景设置碰撞模型、弹性系数、摩擦系数等物理参数,这里使用基于凸包的物体碰撞模型;随机初始化各工件位姿,且初始化范围位于工件料箱上方。
30.步骤2.2)完成初始化后,调用physx开始物理仿真,同时启用gpu加速,物理环境中各物体通过仿真重力下落和碰撞,最终达到相对稳定状态,从而模拟真实的工业分拣堆叠场景。
31.步骤3.1)通过physx接口得到当前各工件的位姿数据,并转换为世界坐标矩阵输入opengl,从而使图形渲染时各工件和场景物体位姿与物理世界相一致。
32.步骤3.2)根据当前所需相机数量和参数,得到opengl绘制所需的相机矩阵,利用opengl着色器载入光照参数,启动opengl完成对场景的色彩绘制,同时生成场景点云,绘制结果和生成点云(以深度图示意)如图8所示,。
33.步骤4.1)根据各物体在physx中的编号,利用色彩映射,将各物体编号映射为不同rgb值的颜色。
34.步骤4.2)在opengl中将各物体切换为按各自映射颜色的纯色绘制模式,启动opengl再次绘制,绘制结果如图7所示,也即仅需一次绘制便得到了场景中所有物体的语义和实例标签图像。
35.步骤5.1)利用色彩逆映射,将图7中不同的rgb值映射为各物体编号,进而得到各编号对应的图像蒙版,再将点云中各点按深度图排序,从而由各编号对应图像蒙版为点云各点打上语义和实例标签。
36.步骤5.2)调用物理引擎内部接口,保存此时各物体的位姿数据;至此,对于单个场景的点云和标注信息便生成完毕,其中点云使用.ply格式保存,物体位姿在.json文件中保存为四元数。
37.步骤5.3)重新随机初始化各物体位姿和数量,模拟工件分拣场景,生成样本至指定规模,快速构建大规模点云数据集。
38.经过具体实际实验,使用该数据集训练的深度学习网络可以在实际场景中正确估计料箱中待分拣工件的位姿,如图9所示。
39.与现有技术相比,本方法在同一单幅场景的仿真和标签时间从1分钟降低到0.3s以内,大幅提升了基于深度学习的工件分拣系统在生产线上的部署速度。
40.上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1