高级模型目标(Advanced Model Targets)支持从各个方面识别和追踪一个或多个对象,所有这些对象都包含在一个高级模型目标数据库(Advanced Model Target Database)中。每个对象的识别范围最高可以为360°,用户无需将模型的轮廓与物理对象对齐便可开始追踪。
只需要在模型目标生成器(Model Target Generator)中训练一个或多个(Model Targets)模型目标便可实现识别追踪。与未经训练的Model Targets不同,MTG(Model Target Generator)可以将您的3D模型上传到Vuforia云(Vuforia Cloud)中,以进行深度学习训练。
Vuforia样品包(sample package)展示了美国宇航局(NASA)的“Viking”着陆器,它可以被3D打印,并在360°范围内进行测试。模型和打印说明可在Viking Mars Lander三维打印说明页上找到。它是帮助您入门Advanced Model Targets Databases的示范资源。在Vuforia网站上的“Samples”选项卡下的“Downloads”部分可以找到该示例包。
此外,Unity的Vuforia Engine samples还包含了一个1:18的Polaris RZR XP 1000玩具模型所对应的Advanced Model Target,可以很容易地从亚马逊(Amazon)等网站上获取然后测试。
使用Vuforia开发的Model Target Generator创建Advanced Model Target Databases。其可用于Windows和macOS。它以CAD模型作为输入,并输出Vuforia Device Database。有关Model Targets和指引视图(Guide Views)的安装及基本资料,请参见【Vuforia】用户指南:模型目标生成器(【原文】Model Target Generator User Guide)。
当使用的Advanced Model Target Database包含多个Model Targets和/或多个检测范围达到360°的Guide Views时,Vuforia引擎完全(purely)通过对象的视觉外观来进行区分,这意味着,在选择不同的对象和/或不同的Guide Views时,应考虑以下其他因素。
从本质上讲(Essentially),每个Guide View必须看起来不同——也就是说,Guide View必须通过外观即可单独(alone)区分。用户正在查看的对象,以及与当前视角和距离相对应的Guide View,两者不应存在任何歧义(ambiguity)。
所有对象必须看起来都不一样。如果有多个形体(shape)相似的对象(例如两辆车),需要确保每个对象都能很好地与其他对象区分开来(在汽车例子中,轿车(sedan)和敞篷车(convertible)就有可能够独特)。
注意:CAD模型与目标物体应比例相匹。使用不正确的比例和测量尺寸(scale and measurements)可能导致识别追踪效果变差。有关此主题的详细信息,请参见如何创建模型目标(【原文】How to Create a Model Target)。
请确保使用Model Target Generator中的“创建高级视图(Create Advanced View)”按钮创建为Advanced Model Targets设置的Guide View。这将允许自定义预览图(view)的识别范围。
选择适合模型的范围:对于玩具或汽车等对象,360°全方位识别可能是正确的选择;如果物体只能从特定的一面靠近(例如一台大型机器(machinery)),那么创建两个具有90°识别范围的Guide Views则更为合理。
更多信息,请参阅Guide Views相关文章。
若所建Guide View没有识别范围,则在训练Advanced Model Target之前,始终可以返回添加。
注意:如果创建Advanced Guide Views时包含至少一部分对象轮廓(silhouette),则效果最佳。
注意:您和物理对象越接近,目标物体的CAD模型与物理对象相似精度(accurate)就需要越高。
举个例子,如果您所创建的预览图聚焦于机器的电机滑块(motor block),但CAD模型所包含的电机不同,则无法进行识别。
若有多个Guide Views,则从每个Guide View所代表(representing)的视点进行观察,对象都应该看起来不一样。这包括每个Guide View的整个Recognition Range。Guide View与其相对应的特定视角和位置不应存在任何歧义。
此外,如果在一个Advanced Model Target Database中有多个对象,则每个对象的每个Guide View都应该在视觉上具有独特性(visually distinct)。
• 需要至少一个包含单个对象的数据库,且该对象需包含一个或多个具有识别范围的高级视图Advanced Views,才能创建训练项目(session)。这些Guide Views是训练Model Target的必要条件;
• 如果创建了不带识别范围的Guide Views,则在训练Advanced Model Target之前,您始终可以返回进行添加。
• 如果CAD模型在纹理和颜色等方面看起来和真实物理对象很像,则首选"Realistic"模式。如果选择此模式,则生成的数据库将仅适用于具有与CAD模型相同颜色、图案或贴标(decals)的目标对象。该模式通常用于玩具,或在对象之间形体差异不够明显的情况下使用。一般而言,使用纹理通常有助于进行识别(如果可以的话);
• 如果CAD模型没有逼真的颜色或纹理,则应使用"Non-realistic"模式。生成的数据库不会考虑(look at)实体对象的真实颜色。此模式通常用于没有外观信息的工业(industrial)对象CAD模型。
.vup
项目。(如果在列表中看不到您的Model Target,很可能是因为其尚未生成。返回"Model Targets"选项卡,双击"Model Target",然后单击“生成模型目标(Generate Model Target)”按钮):• 若已创建Model Target的Guide Views没有识别范围,则无法选择该Model进行训练。在这种情况下,请返回模型界面并为所有Guide Views配置识别范围;
• 将Model Target添加到数据库时,会对其在当前状态下进行复制。您对Model Target做出的任何更改,都不会自动更新到任何包含该Model Target的数据库中;(笔者按:就是说比如你改了Guide View,你得重新上传一遍才行)
• 我们建议在单个数据库中不要添加超过10-20个对象,具体取决于为每个对象定义Guide Views的数量。如果每个对象有大量的Guide Views,则应尽量减少每个数据库的对象数,以获得更好的效果;
• 添加到单个数据库中的每个目标对象(及其所有Guide View)都必须在视觉上可区分,以便在运行时能够成功识别。如果您具有外观相似的目标对象,或者如果您所设置的Guide Views使外观不同的目标对象却在某些Guide View中看起来相似,则可能导致识别不准确。
单击右侧所选数据库上的“训练(Train)”按钮开始训练所选模型。我们使用最新的深度学习(Deep Learning)技术从选定模型中训练神经网络(neural network)。这通常要花费大量时间(最多几小时)。几分钟后,界面将显示预计完成时间(ETA)。此训练进程可随时取消;
训练完成后,界面将显示“导出(Export)”按钮。单击按钮将受训数据库导出为Vuforia引擎本地包和Unity包。通过双击数据库,可以在训练过程中和受训之后访问训练集。只有在成功导出训练成果时,训练配额(quota)才会受到影响;(笔者按:经测试,Export失败也有可能使配额-1!所以请尽量减少Train的次数)
如果训练失败,数据库状态会变成"失败(Failed)"。此外,数据库详情界面(在添加的Model Targets列表下)里可能有一个或多个状态消息,其中就包含失败原因的附加信息。根据状态消息,您可能需要重新训练或发送支持请求(send a support request)。
即使训练没有完全失败,训练进程也可能会针对训练数据的质量发出警告,并建议可能的解决方法,例如:
通常,训练失败的原因如下:
CAD模型太大。请参阅模型准备相关章节(【原文】the section about Model Preparation)以及【Vuforia】最佳实践:支持作为模型目标(Model Targets)的对象和CAD模型(【原文】Model Targets Supported Objects & CAD Model Best Practices),并/或减少数据库中的对象数。
如果部分或全部目标对象在视觉上相似,并且/或者它们具有使其在视觉上看起来相似的Guide Views,则无法在视觉上区分它们。参考上述指南(guidelines),以及【Vuforia】最佳实践:支持作为模型目标(Model Targets)的对象和CAD模型(【原文】Model Targets Supported Objects & CAD Model Best Practices)。您可能需要编辑一个或多个Guide Views的Target Recognition Range以消除视觉重叠,或删除不需要的Guide Views。
模型或Guide View没有足够的特征或边缘,无法可靠地进行稳健的识别追踪。
对于360°全方位识别的Advanced Model Targets,旋转对称的目标对象会导致训练失败。
如果您遇到其他问题,或是有任何其他疑问,可以在Model Target Generator中点击“发送反馈(Send Feedback)”按钮,通过电子邮件请求支持。
Model Target Generator会将受训数据库以.unitypackage
文件和.dat
/.xml
文件对(file pairs)保存到您的硬盘(hard drive)中。
请参见Unity模型目标简介(Introduction to Model Targets in Unity)中的分步指南,以了解如何将Unity包导入Unity项目以及如何配置ModelTarget GameObject。
如果要构建原生应用程序(native app),请将.dat
/.xml
文件对加载到由ObjectTracker所创建的Dataset中。更多信息,请参阅模型目标API概述(Model Targets API Overview)和模型目标原生工作流(Model Targets Native Workflow)。
若想使用Android Model Target Test App测试高级数据库,只需将两个数据库文件下载到Android设备上测试应用程序的安装目录中,然后对新生成的Advanced Model Targets进行测试。设备上的目录通常位于以下位置:
/sdcard/Android/data/com.vuforia.engine.ModelTargetsTest/files/ModelTargetData/YourDatabaseName/
将两个数据库文件复制到目录后,就可以运行测试程序了。双击屏幕,找到测试用Advanced Model Target Database,然后会出现一个菜单,再从列表里选择数据库。识别追踪开始运行后,目标物体将被勾勒(outlined)出来。