这年头,AI 玩家们想找到合适的图像数据集,简直是越来越难了不仅数据质量参差不齐,合适的数据类型也难找
为了解决这些问题,来自谷歌,MIT,DeepMind,MILA 和剑桥大学等 11 家机构的 34 名研究人员,联手打造了一个名叫 Kubric 的数据集生成器,不仅能自己渲染,而且图像效果也非常真实。
不仅各种图像数据都能做,像语义分割,深度图或光流图这种特殊数据都能一键生成:
还能控制渲染的真实度,渲染出的视频可以达到以假乱真的效果:
可生成 13 类 CV 任务所需数据
先来看看这个 Kubric 数据集生成器究竟是个啥简单来说,它有点像是一个专为图像 AI 打造的数据车间,基于跨平台开源物理引擎 PyBullet 和 3D 图像渲染软件 Blender 打造
其中,PyBullet 给用户提供了一个模拟 3D 物体运动的平台,例如两个球之间的弹性碰撞参数就可以用它来模拟。
Blender 则是一个渲染 3D 动画的平台,但它的优势在于操作方便,而且既可以做出照片级逼真的渲染图像,也可以输出 3D 动画效果。现在结合torchvision和torchtext介绍torch中的内置数据集。
可能这时候你会问,Kubric 相比自己手动渲染视频或图像数据集,方便在哪一方面,Kubric 自带一系列预处理的基础图像数据库
还内置了 Google Scanned Objects室内家具物品数据集中的一系列模型,以及包含背景,光照,材料纹理等参数的 Polyhaven 数据集,还有 ShapeNet 数据集等也就是说,如果你对渲染不太了解,也能利用内置的数据库快速生成想要的图像
另一方面,Kubric 直接提供了从渲染数据到输出AI 训练数据的管道,省去了将渲染图像转成特殊数据,或是额外收集如视场,相机参数,光照等数据的麻烦这也使得 Kubric 支持生成 13 类 CV 任务所需的图像数据,具体包括光流,NeRF,姿态估计,3D 重建等
Kubric 生成的光流图
那么,这样的数据集生成器究竟要怎么用呢。之前使用torchDataLoader类直接加载图像并将其转换为张量。
自带 Python 接口
然后,再通过这两步,分别创建一块地板,和一个球体:
接下来就是在场景中加一个照明,以及渲染摄像头采集图像:
导出文件后,就能获取一个 3D 球体的图像了:
Blender 中的效果
如果需要深度图,灰度图等特殊图层的话,也是几行代码就能搞定:
比自己手动导出要更方便一些:
在原基础上,再加 5 行代码就能直接运行出动态视频版:
看起来,做完数据集后,即使不懂渲染的也能成为半个行家了
目前新的一批内置数据集还在施工中,感兴趣的小伙伴可以先上手试玩~
项目地址:
论文地址:
参考链接:
。