目录
- 一、引言
-
- 训练模型目标数据库(Training Model Target databases)
- 二、安装Model Target Generator
-
- 最低系统要求
- 安装和设置(Installation and Setup)
- 三、模型要求和准备
-
- 支持特征
- 支持格式
- 模型准备
- 修正(Modification)
- 工具
- 四、Model Target Generator界面
-
- 使用输出文件
- 五、Guide Views
- 六、Advanced Model Target Databases
- 七、了解更多
一、引言
模型目标生成器(MTG)将已有的3D模型转换为Vuforia引擎数据库(database),Vuforia引擎可以使用该数据库对模型目标进行追踪。此工具使您能够确认模型特征是否可用,设置初始捕捉(snapping)位置,然后导出最终数据库。
若要创建自定义“指引视图”(Guide View)图像作为应用程序(app)的视觉样式(visual style),MTG生成的数据库包含Guide View(检测位置(detection position))里模型的预览图(renderings),使用该预览图可能比Vuforia引擎API提供的默认Guide View图像更合适。
训练模型目标数据库(Training Model Target databases)
Model Target Generator允许您为每个对象定义一个或多个Guide View,并允许您将不同的Model Targets(每个都具有一个或多个高级指引视图(Advanced Guide Views))合并到一个高级数据库(advanced database)中。
MTG通过基于云的深度学习进程(cloud-based process)对高级数据库进行训练,该进程允许app在多个Model Targets之间自动切换,每个Target在运行时具有一个或多个识别范围高达360°的Advanced Guide Views。
二、安装Model Target Generator
最低系统要求
- Model Target Generator支持在Windows和macOS上运行。相关支持版本的详细信息,请参阅支持版本表。
安装和设置(Installation and Setup)
MTG和您的开发者帐户相关联,并在您使用开发者凭据登录后启动。为了在多次MTG启动时轻松访问,可以通过选中“记住我(Remember Me)”框将凭据存储在Windows凭据存储区(credential store)或macOS密钥链(Keychain)中,此凭证将在登出(signing out)时删除。
MTG附带了(shipped with)一组基本的模型转换器(model converters)。如果输入需要JT转换,那么还需要安装Creo View和相应的(accompanying)JT适配器(adapter)。只有当Creo View能够导入JT文件时,MTG才能这样做。支持格式的完整列表如下所示。
只要源模型是能够导入MTG的格式,就不需要额外的模型转换。当创建一个新项目时,甚至当源文件被更新时(假设在创建项目时使用的位置仍然可以访问源文件),MTG会自动对其进行处理。
三、模型要求和准备
MTG可以读取各种3D文件,并将它们转换为Vuforia Engine的内部网格格式(internal mesh format)。因此,在此转换过程中所引入模型的任何可视化(visual)错误都将显示在MTG视口(viewport)中。一些源模型格式(source model formats)由于缺少网格信息(mesh information),可能会导致模型转换出错。所以,应使用MTG检查导入模型是否与源数据(source data)一致。如果有问题,使用不同文件格式可能会得以解决;如果解决不了,则可能需对源数据进行修整(be cleaned up)。
Vuforia Engine对Model Target的追踪效果在CAD模型上表现最好,因其拥有例如与物理对象相应的颜色、复杂程度低等特性(particular characteristics),且其在我们的其他最佳实践中表现优异。
详细有关信息,请参见【翻译】Vuforia最佳实践:支持作为模型目标(Model Targets)的对象和CAD模型(【原文】Model Targets Supported Objects & CAD Model Best Practices)。
支持特征
导入管线支持包含以下内容的网格:
- 多个子网格(Multiple sub-meshes)
每个sub-mesh与Renderer中的Material相对应,例如MeshRenderer或SkinnedMeshRenderer。sub-mesh由一组三角形组成,这些三角形指向(refer to)一组顶点(vertices)。顶点可以在多个sub-meshes之间共享。
- 顶点位置(Vertex positions)
- 顶点法线(Vertex normal)
- 顶点纹理坐标(Vertex texture coordinates)(仅一组)
- 漫反射纯色(Diffuse solid colors)
- 漫反射纹理颜色(Diffuse texture colors)
- 法线贴图(Normal maps)
如果输入模型提供的信息多于上述信息(例如,额外的纹理坐标集),则在导入时将忽略多余信息。
支持格式
MTG支持读取:Creo View (.pvz), Collada (.dae), FBX (.fbx), IGES (.igs, .iges), Wavefront (.obj), STEP (.stp, .step), STL (.stl, .sla), VRML (.wrl, .vrml), glTF 2.0。如果安装了适用于JT的Creo View Adapter,那JT数据也支持。
注意:macOS的MTG不支持STEP(stp,.STEP)和JT数据文件。
使用Creo View Adapter、Collada、FBX和JT可以观察到最佳的导入结果。
注意:模型支持的纹理格式为32-bit、24-bit和8-bit的JPG、PNG和PGM文件。
模型准备
有关推荐规范和最佳实践的详细概述,请参见【翻译】Vuforia最佳实践:支持作为模型目标(Model Targets)的对象和CAD模型(【原文】Model Targets Supported Objects & CAD Model Best Practices)。
在为MTG准备3D模型时,需要检查数字对象和物理对象的比例(scale)是否匹配。在某些情况下,全尺寸(full-size)目标对象的3D模型是不能对玩具仿制品(toy replica)进行追踪的。为了获得最佳的追踪效果,模型和目标对象的大小应该相匹配。有关此规则(topic)的详细信息,请参见Vuforia最佳实践:缩放模型目标(【原文】Best Practices for Scaling Model Targets)。
如果模型拥有超过40万个多边形(polygons)或超过10个部分(parts),则需要对模型进行简化。简化过程包括:减少将对象表示为网格所需的多边形数。如果要在移动设备上实时运行,则必须优化计算机视觉算法(computer vision algorithms);简化过的多边形只要不是过于粗糙(coarse),就不会影响检测追踪的精度。
任何简化工具都会带来一定的缺陷(artefacts)。幅度(range)缩小至1:10的缺陷通常不会影响计算机视觉算法。例如,将一个与整车3D模型相对应的网格从50万个多边形减少到5万个,会造就一个大为简化的数据库,并仍然拥有良好的检测追踪性能。
原图 | 有缺陷 |
---|---|
上面两张图是笔者找到的,对artefacts一词的应用。1
修正(Modification)
在某些情况下,对象的3D模型可以包含不在被追踪对象身上(或所有实例上)的部件,就像订购东西时,可以指定的那种可选的附加组件:比如摩托车上的附加搁脚板(footrests)或乘客座椅。理想情况下,用于追踪的3D模型不应包含此类部件。
此外,可以轻易地从3D模型所在位置移动的部件(例如,可以旋转或调整以适合驾驶员操作的方向盘(steering wheel))也会干扰追踪。将其从3D模型中移除可以减少3D模型与真实物体之间的差异(disparities),从而提高追踪质量。
通常,包含在CAD模型中,但在尝试初始化追踪时无法从对象外部看到的内部(Internal)组件也应移除。存储在应用程序中时,这些部件会增加设备数据库的大小,并在运行时增加要处理的多边形数。去除以进一步提高Model Target的检测追踪性能。
工具
若要简化或修改模型,请使用第三方网格编辑工具,如PiXYZ Studio、Simplygon、Blender、Maya、Umbra3D和MeshLab。更多相关信息,请参阅您所选用工具的官方文档。
四、Model Target Generator界面
MTG Home Screen主界面有两个重要组成部分:在左侧,您将看到已导入或创建的各个模型目标Model Targets。双击其中任何一个都会跳转到3D查看器,用以操作模型,修改其Guide Views。在右侧,将列出Advanced Model Targets训练集(training sets),显示已配置、正在运行和已完成的训练项目(training sessions)。在此处,您可以将一个或多个Model Targets组合到一个经过训练的设备数据库(Device Database)中,并导出最终结果。
Home Screen顶部的状态栏显示了用于创建Model Targets和高级数据库的可用配额(quotas)。
有关Vuforia分步指南:使用Model Target Generator创建一个新的Model Target的详细信息,请参见如何创建模型目标(【原文】How to Create a Model Target)。
使用输出文件
对于Unity,您将使用*.unitypackage
文件。将其导入到Unity项目中,并添加和配置ModelTarget GameObject以使用它。有关详细信息,请参见Unity中的Model Targets简介(【原文】Introduction to Model Targets in Unity)。
对于使用Vuforia引擎原生(native)SDK开发的app,请将*.dat
和*.xml
加载到由ObjectTracker创建的Device Database中。详细有关信息,请参见Vuforia:模型目标原生工作流(【原文】Model Targets Native Workflow)。
可选:使用PNG文件作为基线(baseline)来设计自定义Guide View图像,app将使用这些图像来指导用户将相机与被追踪对象正确对齐,以便初始化跟踪。如果使用的话,请注意自定义的Guide Views需要由应用程序开发人员单独加载和打包。详细有关信息,请参见Vuforia:模型目标API概述(【原文】Model Targets API Overview)。
五、Guide Views
使用Model Target Generator时,可以为模型目标Model Target定义一个或多个Guide Views,并为每个Guide View设置目标识别范围(Target Recognition Range)。详细有关信息,请参见Vuforia:模型目标的指引视图(【原文】Model Target Guide Views)。
六、Advanced Model Target Databases
如果要允许app自动识别不同的对象并且不显示Guide Views,或者如果希望有一个或多个识别范围高达360°的Model Targets,则需要训练Advanced Model Target数据库。
这是通过Model Target Generator桌面工具中基于云(cloud-based)的训练进程完成的。详细有关信息,请参见Vuforia:高级模型目标数据库(【原文】Advanced Model Target Databases)。
七、了解更多
- Vuforia:模型目标概述
【原文】Model Targets Overview - Vuforia:如何创建模型目标
【原文】How to Create a Model Target - Vuforia:模型目标的指引视图
【原文】Model Target Guide Views - Vuforia:高级模型目标数据库
【原文】Advanced Model Target Databases - 【Vuforia】最佳实践:支持作为模型目标(Model Targets)的对象和CAD模型
【原文】Model Targets Supported Objects & CAD Model Best Practices - Vuforia:模型目标API概述
【原文】Model Targets API Overview
图片来源于Artifacts on a model (texture compression problem),作者:antonyony。 ??