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