Unity:使用合成数据快速创建3D内容

构建计算机视觉系统的综合数据是从真实数据的转变而来。虽然真实世界的数据需要漫长的收集和注释过程,但机器学习(ML)工程师可以在几分钟内构建一个合成数据集,从而实现快速的、以数据为中心的开发周期。此过程速度很快,因此用户可以一次尝试许多数据集变体,以找到经过最佳改进的模型。

目前关于数据的来源仍然是一项挑战。用户需要的往往不是成千上万张的图像与注释,而是数十或数百个三维模型,如网格、纹理和动画等。虽然合成数据降低了对内容的要求,但根据这些资产的3D特性也需要在创建它们时拥有十足的创造性。

幸运的是,四十多年来,电影和电子游戏行业都面临着同样的内容挑战。在那段时间里,他们开发了新的内容创建技术以及庞大的内容存储库,其中大部分已经非常适合进行合成数据生成。

本文将介绍获取3D内容的最佳方式以及各种方式的优缺点,他们适合不同类型的计算机视觉应用。

在线3D资产

获取3D内容最快、最便宜的方法是利用在线的方式下载现有的作品资产。Unity资产商店提供由3D艺术家创作的免费和付费内容,这些内容能够应用于游戏、电影和其他3D应用程序。

Unity资产商店“椅子”的搜索结果

这些在线资产通常以“包”的形式出现,包括各种3D模型、纹理变化、材质和动画等。这些资产可以在数据集生成期间随机化,并能够在每个对象上创建几乎无限的变化。通过下载不同风格的资产进一步增加了数据的广度,能够有效减少模型中的偏差和过度拟合。

当任务需要检测诸如“椅子”或“猫”之类的广泛类别的对象时,在线资产源就变成了一个很好的数据来源,这些对象需要各种各样的内容来支持。为了实现模型概括所需的多样性,用户需要在每个相关轴上寻找变化,包括形状、材质、颜色和姿势等。

即使像卡通或纹理和颜色,这样非真实感的资源也可以在模型中得到更好的概括。在最近的一个项目中,将Unity Asset Store中的一小部分高度逼真的资产转换成为广泛的3D模型和纹理,这大大提高了模型的性能。

扫描

用于检测特定物体或制成品的合成数据集需要真实世界物体的精确3D模型,这些模型在网上很难找到。通过3D扫描,用户可以自己独立创建这些资产。

SynthDet的资产是使用平板扫描仪和3D建模创建的。

这一系列资产是用3D扫描技术生成的,每种技术都适用于不同类型的对象、质量水平和预算。下面让我们来看看这些案例吧:

摄影测量:摄影测量工具,如Agisoft变形和Unity的增强现实伴侣应用通过从一组从不同角度拍摄的照片合成一个3D对象。

优点:适合对任何尺寸或形状的物体捕捉纹理和细节

缺点:对光照条件和物体颜色敏感

平板扫描仪和三维建模:平板扫描仪可用于扫描盒状对象的不同侧面,然后组合成纹理,并使用标准3D创作工具映射到手动创作的3D网格上。

优点:便宜、高精度的纹理

缺点:仅适用于可展平的对象;需要一些手工创作

工业3D扫描仪:使用激光或结构光进行三维扫描。这种方法非常适合检测机械零件和复杂的电子设备。

优点:能够对大多数高几何度物体进行精确的扫描;快速

缺点:昂贵;对象大小有限

程序性内容

扫描对象和在线3D资产通常是真实对象的快照,另一种不断增长的内容形式被称为程序资产,它使用基于规则的算法来产生无限的变化。每个程序资产都提供了参数,这些参数能够定制它们的外观和形状。这对于合成数据来说是完美的功能,其中每个参数都可以被随机化以实现极大的多样性。用户可以反复调整随机化,以提高模型性能。

真实资产多种多样,过程资产通常会随着真实资产变化而改变。道路、人脸、布料和混凝土等材料都是很好的例子。磨损、年龄、形状和颜色等相关因素可以内置为随机化算法的参数。Unity着色器图形、Adobe Substance 3D和Houdini是构建程序资产的灵活工具,Unity资产商店为特定类型的内容提供了几种程序工具。

EasyRoads3D可以在Unity中构建程序性道路。

程序技术也为合成数据的环境生成提供了动力。环境生成器的范围从非结构化和高度随机到复杂的分层系统,用于生成逼真的场景。Unity的API能够帮助用户编写程序场景生成器;Houdini 则常用于需要更多结构的场景。

开始使用合成数据

游戏和电影行业提供了丰富的动态3D内容,让用户可以快速使用拥有合成数据的项目,并开始快速迭代数据。通过使用 Unity Perception package,用户可以导入这些资产,将它们进行随机化,并非常快速地生成高度多样化的数据集。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注