当前位置: 首页 > news >正文

利用Blenderprc制作bin-picking 工业小零件数据集

BOP挑战赛(Benchmark for 6D Object Pose Estimation)https://bop.felk.cvut.cz/home/近年新增了工业小零件数据集,这类也是真实工业生产里常见的场景,近期准备针对一种零件产品制作数据集,真实数据集非常消耗人力、时间,因此想先通过合成数据生成数据,进行第一阶段训练,这里记录了怎么生成合成数据的技术手段。主要借鉴了BOP挑战赛中的XYZ-IBD数据集的方法进行合成,主要用的是基于blender的blenderPROC(blender针对BOP专门开发的套件)进行合成的。

一、环境搭建

1.安装Blenderproc与bop_toolkit

地址:https://github.com/DLR-RM/BlenderProc.git
           https://github.com/thodan/bop_toolkit.git

可根据readme文件进行安装。后语:bop_toolkit这个是lib文件,后面在使用XYZ-IBD开源项目里面,就有一个文件夹是bop_toolkit_lib,后面装的小伙伴可以试试先不装bop_toolkit,看看项目代码能否跑起来,不行再装。

2.配置Blender内部python环境

blenderproc第一次运行时,会自动下载创建一个python虚拟环境(linux环境下:blender-4.2.1-linux-x64,版本不一定一样),这个python的环境其实是blender软件内部支持python代码设计的环境。后面要运行python脚本来合成数据需要一些第三方库,因此需要进行相关库的安装。注意一定要安装到这个环境里面,不要安装到你系统里的其他python环境里面。

可以通过指定该环境下的python解释器进行pip安装,也可以通过python代码安装(可参考https://blog.csdn.net/g2yyyy/article/details/113820119)

 我用的是 指定python解释器进行pip安装,就算找到blenderproc第一次运行是下载的python虚拟环境里的python解释器路径,比如/home/xxx/blender/blender-4.2.1-linux-x64/4.2/python/bin/python3.11 

1.确保安装有pip
/home/xxx/blender/blender-4.2.1-linux-x64/4.2/python/bin/python3.11 -m ensurepip2.升级pip
/home/xxx/blender/blender-4.2.1-linux-x64/4.2/python/bin/python3.11 pip install --upgrade pip3. install required packages
/home/xxx/blender/blender-4.2.1-linux-x64/4.2/python/bin/python3.11 pip install [报名]
#注:若没有换pip源可将此句改为
/home/xxx/blender/blender-4.2.1-linux-x64/4.2/python/bin/python3.11 pip install [报名] -i https://pypi.tuna.tsinghua.edu.cn/simple"

第三方库缺什么就装什么就好了

安装后可以进这个python环境下的/home/xxx/blender/blender-4.2.1-linux-x64/4.2/python/lib/python3.11/site-packages  查看是否正确安装。

二、合成数据

  直接copy XYZ-IBD 的开源项目进行,只需进行工件三维模型文件和生成数据的路径进行修改就好了。整个项目文件很多example,XYZ-IBD的是在XYZ-IBD-main/examples/datasets/deep-tote文件夹里的文件,其他的是其他类型的数据bin picking。

    我这次只是针对我自己的三维模型(ply格式)合成,项目文件中有15个不同的配置文件,对应的是XYZ-IBD 15种不同的工件,可以根据你自己的工件类型,在这15个不同工件中找个最接近的来改配置文件,我选的是第13种:config_photoneo_zhijiaobanjin13.yaml,需要改这个配置文件里面的三个路径,多少个场景,一个场景多少个角度图像,以及相机的内参和图片大小。其他的渲染参数,可以自行需要修改。

CC_TEXTURES_DIR: '背景文理文件路径',这个其实在我的合成里面不需加背景文理,可以不管
OUTPUT_DIR: '合成数据生成的路径'NUM_SCENES: 3   #生成多少个场景
NUM_CAMERAS_PER_SCENE: 5   #每个场景多少个角度图像以及模型的路径:
OBJECT:FILE: "/home/xxx/BinPickingProj/models/obj_000001.ply"  你自己的模型路径CAMERA:INTRINSICS:FX: 604.461FY: 604.6605PPX: 316.108PPY: 244.1495WIDTH: 640 #1440 #512 HEIGHT: 480 #1080 #512# RANDOM_PERCENT: 5

修改完配置文件就可以跑custom.py文件合成数据了,需要注意的是要切换到安装了blenderproc的虚拟环境下运行,并且注意cd到custom.py所在的文件夹路径下,运行指令。


### Generate the synthetic dataset for specific object
blenderproc run custom.py --config=config_photoneo_zhijiaobanjin13.yaml
### Post Process the synthetic dataset to BOP Format
blenderproc run gen_masks.py --config=config_photoneo_zhijiaobanjin13.yaml

三、合成的数据

合成的数据有以上文件,注意,annotations.json文件是要运行gen_annotations.py才生成的,不过这个文件其实没必要生成,其他几个文件都有需要的标签数据了。

放几张合成的图片

个人觉得要生成好的数据,还需要进行渲染参数的调整,图片大小最好根据你在现实中用的相机参数进行设置,包括相机内参。最后顺便放XYZ-IBD的开源代码。

http://www.dtcms.com/a/463221.html

相关文章:

  • 新建网站怎么做c 购物网站开发流程
  • 品牌建设青之见网站推广和优化的原因网络营销
  • 网站你了解的怎样把自己做的网站放到网上
  • 定制网络监控方案优化设计答案六年级
  • 泸州建设厅官方网站塑模毕业设计代做网站
  • 合肥学网站设计人力招聘网站建设
  • MySQL中,IS NULL和IS NOT NULL不会走索引?错!
  • 云网站注册怎么做网站文章
  • 用织梦做网站后面可以改吗网站建设需要购买服务器么
  • 手机做网站软件wix和wordpress哪个好
  • C++ const 用法全面总结与深度解析
  • 哪块行业需要网站建设自己装修怎么出设计图
  • 网站建设流程讯息中国舆情网官网
  • 西安网站建设和推广公司做会计要关注什么网站
  • 律师做推广宣传的网站开发工具的种类及使用方法
  • js class定义类,私有属性,类继承,子类访问父类的方法,重写父类的方法
  • AD21创建集成库
  • 做暧视频网站大全佛山企业名录黄页
  • jmeter接口测试该怎么做?
  • 10.9总结
  • 自己怎么用h5做网站久久结婚网
  • 住房和城乡建设局网站如何制作一个网页链接
  • 网站开发需求表安康市移动公司
  • 如何做网站的网页网站怎么升级
  • 网站的版式设计网络营销讲师培训
  • 郑州网站公司排名河北网站制作多少钱
  • 贵州移动端网站建设外贸网站定制开发
  • 文明网站建设方案及管理制度网站建设从零开始教程
  • 适合html初学者做的网站企业做网站建设
  • 类的定义和使用