【Vuforia】高级模型目标数据库(Advanced Model Target Databases)

一、引言

Advanced Model Target Databases

       高级模型目标(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”部分可以找到该示例包。

       此外,UnityVuforia Engine samples还包含了一个1:18的Polaris RZR XP 1000玩具模型所对应的Advanced Model Target,可以很容易地从亚马逊(Amazon)等网站上获取然后测试。

二、Model Target Generator (MTG)

       使用Vuforia开发的Model Target Generator创建Advanced Model Target Databases。其可用于WindowsmacOS。它以CAD模型作为输入,并输出Vuforia Device Database。有关Model Targets和指引视图(Guide Views)的安装及基本资料,请参见【Vuforia】用户指南:模型目标生成器(【原文】Model Target Generator User Guide)。

三、用于高级识别(Advanced Recognition)的多个对象和多个Guide Views

       当使用的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)。

Guide Views应该看起来不同,识别范围不应重叠

       请确保使用Model Target Generator中的“创建高级视图(Create Advanced View)”按钮创建为Advanced Model Targets设置的Guide View。这将允许自定义预览图(view)的识别范围。

       选择适合模型的范围:对于玩具或汽车等对象,360°全方位识别可能是正确的选择;如果物体只能从特定的一面靠近(例如一台大型机器(machinery)),那么创建两个具有90°识别范围的Guide Views则更为合理。

       更多信息,请参阅Guide Views相关文章。

       若所建Guide View没有识别范围,则在训练Advanced Model Target之前,始终可以返回添加。
Guide View
注意:如果创建Advanced Guide Views时包含至少一部分对象轮廓(silhouette),则效果最佳。
注意:您和物理对象越接近,目标物体的CAD模型与物理对象相似精度(accurate)就需要越高。

       举个例子,如果您所创建的预览图聚焦于机器的电机滑块(motor block),但CAD模型所包含的电机不同,则无法进行识别。

       若有多个Guide Views,则从每个Guide View所代表(representing)的视点进行观察,对象都应该看起来不一样。这包括每个Guide View的整个Recognition RangeGuide View与其相对应的特定视角和位置不应存在任何歧义。

  • 如果对象是非对称的(asymmetric)(即任何方向观察它结果都不一样),只需确保Guide View角度和距离的范围不重叠即可。
  • 如果对象是对称的(symmetric)(即其具有看起来彼此相似的部分),则需确保覆盖对称部分的Guide View只有一个,并且创建的其它每个Guide View都需要和对称部分看起来不同。

       此外,如果在一个Advanced Model Target Database中有多个对象,则每个对象的每个Guide View都应该在视觉上具有独特性(visually distinct)。

  • 避免使用此类数据库:其中一个对象是简单的立方体(cube),而另一个对象是具有大型的、主要(dominant)为立方体型(cube-shaped)部件的机器。这两种对象可能会互相混淆(confused)。如果您不能避免此类情况,那么请确保其中一个物体至少有一个独特外观(distinctive appearance)(标志或图案)完美地(ideally)覆盖了它的大部分表面。进行此操作时,需要在训练期间使用“真实(Realistic)”选项。或者您也可以设置机器的Guide Views,使其不包括立方体型部件(例如通过设置目标范围(Target Extents)来排除(exclude)它)。

四、创建受训(trained)的Model Target数据集(dataset)

  1. 启动模型目标生成器(Model Target Generator):

       • 需要至少一个包含单个对象的数据库,且该对象需包含一个或多个具有识别范围的高级视图Advanced Views,才能创建训练项目(session)。这些Guide Views是训练Model Target的必要条件;

       • 如果创建了不带识别范围的Guide Views,则在训练Advanced Model Target之前,您始终可以返回进行添加。

  1. 导航到“数据库(Databases)”选项卡。(如果您当前正在编辑某个Model Target,则可能需要首先单击返回箭头(return arrow)以返回主屏幕(Home Screen));
    train
  2. 单击“创建数据库(Create Database)”并为训练项目命名,自己选择是否输入描述,然后进行模型外观(Model Appearance)模式选择:

       • 如果CAD模型在纹理和颜色等方面看起来和真实物理对象很像,则首选"Realistic"模式。如果选择此模式,则生成的数据库将仅适用于具有与CAD模型相同颜色、图案或贴标(decals)的目标对象。该模式通常用于玩具,或在对象之间形体差异不够明显的情况下使用。一般而言,使用纹理通常有助于进行识别(如果可以的话);

       • 如果CAD模型没有逼真的颜色或纹理,则应使用"Non-realistic"模式。生成的数据库不会考虑(look at)实体对象的真实颜色。此模式通常用于没有外观信息的工业(industrial)对象CAD模型。
select

  1. 若您想将目标对象添加到数据库中,请从显示的列表中选择Model Target项目,或通过“浏览(Browse)”按钮选中已有的.vup项目。(如果在列表中看不到您的Model Target,很可能是因为其尚未生成。返回"Model Targets"选项卡,双击"Model Target",然后单击“生成模型目标(Generate Model Target)”按钮):

       • 若已创建Model TargetGuide Views没有识别范围,则无法选择该Model进行训练。在这种情况下,请返回模型界面并为所有Guide Views配置识别范围;

       • 将Model Target添加到数据库时,会对其在当前状态下进行复制。您对Model Target做出的任何更改,都不会自动更新到任何包含该Model Target的数据库中;(笔者按:就是说比如你改了Guide View,你得重新上传一遍才行)

       • 我们建议在单个数据库中不要添加超过10-20个对象,具体取决于为每个对象定义Guide Views的数量。如果每个对象有大量的Guide Views,则应尽量减少每个数据库的对象数,以获得更好的效果;

       • 添加到单个数据库中的每个目标对象(及其所有Guide View)都必须在视觉上可区分,以便在运行时能够成功识别。如果您具有外观相似的目标对象,或者如果您所设置的Guide Views使外观不同的目标对象却在某些Guide View中看起来相似,则可能导致识别不准确。
model targets

  1. 单击右侧所选数据库上的“训练(Train)”按钮开始训练所选模型。我们使用最新的深度学习(Deep Learning)技术从选定模型中训练神经网络(neural network)。这通常要花费大量时间(最多几小时)。几分钟后,界面将显示预计完成时间(ETA)。此训练进程可随时取消;

  2. 训练完成后,界面将显示“导出(Export)”按钮。单击按钮将受训数据库导出为Vuforia引擎本地包和Unity包。通过双击数据库,可以在训练过程中和受训之后访问训练集。只有在成功导出训练成果时,训练配额(quota)才会受到影响;(笔者按:经测试,Export失败也有可能使配额-1!所以请尽量减少Train的次数)

五、训练失败怎么办?

       如果训练失败,数据库状态会变成"失败(Failed)"。此外,数据库详情界面(在添加的Model Targets列表下)里可能有一个或多个状态消息,其中就包含失败原因的附加信息。根据状态消息,您可能需要重新训练或发送支持请求(send a support request)。

       即使训练没有完全失败,训练进程也可能会针对训练数据的质量发出警告,并建议可能的解决方法,例如:
       warning
       通常,训练失败的原因如下:

       如果您遇到其他问题,或是有任何其他疑问,可以在Model Target Generator中点击“发送反馈(Send Feedback)”按钮,通过电子邮件请求支持。

六、使用Advanced Model Target数据库

       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)出来。

八、了解更多

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章