Show / Hide Table of Contents

    模型识别入门教程

    Note

    支持:Android / iOS

    注意:模型识别暂时不支持PC端直接运行,请打包至移动端体验。


    一、简介

    对现实世界中的特定对象进行精准识别和稳定跟踪,进而使用AR内容增强和扩展。

    通过模型识别技术,可以将虚拟内容放置在各类物品上(如设备仪器、车辆、电器、玩具、展品),用于工业、营销、医疗、培训、展览展示等领域。

    - 视频教程

    跟随我们的视频教程,了解在Unity中开发模型识别的详细步骤。

    • 在Unity中实现模型识别

    二、阅读指南

    本教程演示了如何在Unity3D中,使用VOID AR Model Tracking SDK实现模型识别功能。

    默认读者您拥有一定的软件使用、应用开发经验。

    教程中只会对Unity的基础使用进行简要说明,有关Unity使用的更多信息,请访问Unity官网查看。

    三、搭建环境

    在进行具体操作前,您需要安装下列软件,准备如下环境:

    • 操作系统:Windows 7 或更高版本(推荐使用Windows 10)

    • Unity3D:Unity 2017.1 或更高版本

      Note

      推荐使用教程中的版本:Unity 2018.4.0f1 LTS

    • 太虚AR SDK:下载太虚AR模型识别SDK

    • 示例的3D模型:下载Car.zip,完成后请解压文件

    • 纸模型资源:您可以在此处下载,打印并参考说明制作纸质模型

    • 移动设备:准备1台Android或iOS设备(Android为骁龙820及以上机型,iOS为iPhone5s及以上机型)

    四、实现流程

    实现流程大体分为四步:

    • 第一步、创建项目;
    • 第二步、使用工具,生成模型的初始化轮廓及数据;
    • 第三步、制作应用,绑定轮廓图/初始化数据/模型;
    • 第四步、打包至移动端,即可识别跟踪预设的3D物体。

    第一步、创建项目

    1.1 新建Unity工程

    打开Unity,新建工程。填写Project name为“ModelTracking”、选择保存的位置,点击[ Create project ]。

    1

    1.2 导入SDK

    选中[ Assets ] -> [ Import Package ] -> [ Custom Package... ],导入模型识别SDK。

    2

    选择下载好的SDK文件(.unitypackage),点击[ 打开 ]按钮。

    3

    弹出界面,点击[ Import ],导入过程需要耐心等待一段时间。

    4

    如果弹出“API Update Required”界面,请点击[ I Made a Backup, Go Ahead! ]。

    5

    第二步、使用工具生成初始化数据

    Note

    工具需在Windows环境下使用,暂时不支持OSX平台。

    2.1 打开工具

    选中[ Assets ] -> [ VoidAR ] -> [ Tool ],打开ModelTargetCreator场景。

    6

    2.2 导入3D模型

    请选中一个目录,导入3D模型。

    Important

    有关3D模型详细要求,具体细节请查阅模型对象的要求与限制

    例如右键选中Assets,点击[ Import New Asset... ],弹出界面选中Car.obj并导入。

    7

    Note

    导入完成后,选中模型,并且确认“Read/Write Enabled”属性是打开的。

    8

    2.3 添加模型对象到场景

    选中模型,将其拖至场景中。

    9

    选中“Car”,将其坐标调整为(0,0,0)。

    49

    2.4 调整模型大小

    Important

    模型的大小,需要与识别的目标物体一致或接近。

    首先,需要调整模型的大小。

    Car.obj对应的纸模型汽车长度为10cm,创建一个Cube作为参照(Unity中新建Cube的x,y,z初始值都为1m)。

    右键点击场景,列表中选中“3D Object”,点击[ Cube ]。

    48

    选中“Cube”,将其坐标调整为(0,0,0)。

    50

    选中“Car”,将其大小调整至Cube的1/10(X , Y , Z = 0.008 , 0.008 , 0.008)。

    51

    Note

    调整完成后,右键选中“Cube”,点击[ Delete ],删除参照物。

    52

    2.5 调整模型位置

    Important

    1)请调整模型,不要调整Camera;

    2)建议调整后,模型为“俯视”或“平视”,不要“仰视”。

    选中Car模型,调整模型的“位置”和“旋转”。

    调整时,请确保Camera能看到模型,调整中您可以通过Game窗口直接预览效果。

    10

    调整后参考如下:

    11

    2.6 设置模型材质

    展开[ Car ],选中default,查看右侧的“Inspector”栏,打开"Materials"设置模型材质。

    53

    设置Element 0,选择材质为“RimMat”。

    54

    设置完成后,显示如下。

    55

    2.7 设置输出路径

    先选中“Main Camera”,然后再鼠标左键点击“Car”,按住不放,将其拖入“Model 3D”变量中。

    12

    接着,在“Main Camera”中设置输出路径。

    Important

    1)为方便后续调用,路径推荐设置在“Unity工程中的Assets目录下”;

    2)为避免出现异常,请不要选择带中文的路径,并手动在目标目录下先创建好文件夹。

    • 设置Output Path = "D:\unity\ModelTracking\Assets\InitData"

    设置完成后,显示如下。

    13

    2.8 生成轮廓及数据

    选中[ File] -> [ Save ],进行场景保存。

    14

    将Game窗口的分辨率设置为“640×360”(如果没有该分辨率,请先手动添加)

    15

    先点击[ 运行 ]按钮,随后点击[ CreateInitData ],生成模型的轮廓及初始化数据。

    16

    创建成功后,取消运行。目录下会生成“模型的轮廓图(模型名字.png)”和“初始化数据(模型名字.bytes)”。

    17

    第三步、制作应用

    3.1 新建场景

    选中[ File ] -> [ New Scene ] ,新建场景。

    18

    3.2 删除Main Camera

    右键选中场景中自带的“Main Camera”,点击[ Delete ]删除。

    19

    3.3 拖入预制件

    展开[ Assets ] -> [ VoidAR ] -> [ Prefabs ]目录,将预制件“ARCamera”和“ModelTarget”分别拖至场景中。

    20

    操作成功后显示如下:

    21

    3.4 添加模型对象到场景

    选中之前导入的模型,将其拖至场景中。

    Note

    这里是拖入原始的,未调整过大小、位置、旋转的模型

    22

    3.5 绑定数据

    绑定轮廓图

    展开[ ModelTarget ],选中InitContour,右侧的“Inspector”栏中打开Shader设置,点击[ Select ]。

    23

    弹出界面,选择生成好的Car.png,完成设置。

    24

    绑定模型

    先选中“ModelTarget”,然后再鼠标左键点击“Car”,按住不放,将其拖入“Virtual Object”变量中。

    25

    用于显示叠加的虚拟模型,绑定完成。

    26

    绑定初始化数据

    选中ModelTarget,右侧的“Inspector”栏中打开Initial Data设置。弹出界面,选择生成好的Car.bytes,完成初始化数据绑定。

    27

    3.6 设置ARCamera

    选中“ARCamera”,然后再鼠标左键点击“ModelTarget”,按住不放,将其拖入“ModelTarget”变量中。

    46

    操作成功后显示如下:

    47

    3.7 设置App License Key

    打开云平台网址,注册账号并登录。

    网站地址:https://cloud.voidar.net

    28

    进入云平台,左侧点击[ 创建模型识别应用 ]。

    29

    点击[ 创建应用 ]。

    30

    弹出界面填写AppId,填写完成后点击[ 保存 ]。

    Note

    因AppId属于唯一值,所以此处请您自行设置AppId,比如 "com.VOIDAR.ModelTracking"

    Warning

    打包时设置的Bundle Identifier,必须与此处设置的AppId相同,否则后续当您需要移除水印时,将无法正常进行。

    31

    完成后,获得“AppKey”。

    32

    返回Unity,选中ARCamera,查看右侧的Inspector栏,完成“App License Key”的设置。

    33

    3.8 设置启动按钮及方法

    Note

    添加“启动按钮”,点击后即可触发识别。

    右键点击场景,列表中选中“UI”,点击[ Button ]。

    75

    操作成功后显示如下:

    76

    选中Button,查看右侧的“Inspector”栏,在On Click()事件下点击“+”。

    77

    选中“Button”,然后再鼠标左键点击“ModelTarget”,按住不放,将其拖入“Object”变量中。

    78

    点击“No Function”,列表中选中“ModelTargetBehaviour”,点击[ StartTracking () ]。

    79

    操作成功后显示如下:

    80

    选中“Button”,设置按钮、锚点的大小和位置。根据需要进行调整即可,参考设置如下。

    81

    展开[ Button ],选中Text,调整按钮文案和字号。

    82

    3.9 保存场景

    选中[ File ] -> [ Save ],进行场景保存。

    14

    设置文件名为“ModelTracking”,点击[ 保存 ]按钮。

    34

    第四步、打包发布

    Note

    模型识别暂时不支持PC端直接运行,请打包至移动端体验。

    打包流程分为“Android”、“iOS”。

    4.1 Android

    打包Android,需要将Unity切换至Android平台,点击[ File ] -> [ Build Settings... ]。

    56

    选中Android标签,如果左下的[ Switch Platform ]按钮为灰色,需要下载Unity Android Support,请点击右侧的[ Open Download Page ]按钮,下载并安装。

    19

    点击[ Switch Platform ]按钮,完成Android平台的切换。

    57

    切换完成后,先关闭Build Settings界面,继续搭建打包环境。

    选中[ Edit ] -> [ Preferences... ],设置参数。

    58

    弹出界面选中“External Tools”选项,设置Android SDK。

    Note

    如果本地没有SDK,可以点击后方的[ Download ],在弹出的网页上进行下载即可。

    也可以用链接下载安装:

    SDK(要科学上网才能打开):https://developer.android.com/studio/index.html

    安装完成后,设置好SDK的路径就可以了。

    59

    选中[ File ] -> [ Build Settings... ],点击[ Add Open Scenes ],添加当前的场景。

    60

    添加完成后,如下所示:

    36

    设置属性参数

    点击[ Player Settings... ]按钮,查看右侧的“Inspector”栏,设置属性参数,您可以自定义。

    • 设置Company = "VOIDAR"

    • 设置Product Name = "ModelTracking"

    • 设置Bundle Identifier= "com.VOIDAR.ModelTracking"(必须与3.7设置的AppId相同,否则后续当您需要移除水印时,将无法正常进行)

    • Important

      取消“Multithreaded Rendering”的勾选!

    23

    设置屏幕方向

    • 设置Orientation = "Portrait"或者"Landscape Left"

    73

    完成设置后,点击[ Build ]按钮。

    38

    设置文件名为“ModelTracking”,点击[ 保存 ]按钮,开始打包。

    39

    打包过程需要耐心等待一段时间。完成后,将生成一个“ModelTracking.apk”文件,安卓打包完成。

    4.2 iOS

    iOS打包需要在Mac OS系统中完成,需要准备Mac设备(如MacBook Pro、MacBook、iMac、Mac mini等)。

    在Unity中,将开发平台切换至iOS,然后Build生成Xcode工程。

    Warning

    推荐使用Mac设备的Unity软件来生成Xcode工程。如果之前是在Windows环境下编辑的,可以将Unity工程输出成unitypackage,或拷贝至Mac电脑中进行编辑处理。

    启动Unity,打开之前保存的、或者拷贝过来的项目工程文件(工程已经打开的,跳过这步)

    28

    将Unity切换至iOS平台,点击[ File ] -> [ Build Settings... ]。

    30

    选中iOS标签,如果左下的[ Switch Platform ]按钮为灰色,需要下载Unity iOS Support,请点击右侧的[ Open Download Page ]按钮,下载并安装。

    31

    点击[ Switch Platform ]按钮,完成iOS平台的切换。

    66

    切换完成后,点击[ Player Settings... ]按钮。

    340

    Important

    取消“Multithreaded Rendering”的勾选!

    51

    设置屏幕方向

    • 设置Orientation = "Portrait"或者"Landscape Left"

    74

    选中[ File ] -> [ Build Settings... ],点击[ Add Open Scenes ],添加当前的场景。

    67

    添加完成后,如下所示:

    68

    完成设置后,点击[ Build ]按钮。

    69

    准备生成Xcode工程,命名为“Output”,点击[ Save ]。

    37

    打开生成的Xcode文件。

    38

    设置属性参数

    填写配置,将自己的证书、iOS适应版本都正确选上:

    左侧点击[ Unity-iPhone ],配置参数,您可以自定义。

    • 设置Display Name = "VOIDAR_Test"
    • 设置Bundle Identifier = "com.VOIDAR.ModelTracking"(必须与3.7设置的AppId相同,否则后续当您需要移除水印时,将无法正常进行)
    • 设置Version = "1.0"
    • 设置Build = “1.0”
    • 设置Team = “您自己的证书”

    70

    添加Accelerate.framework

    General页面往下拉,在Linked Frameworks and Libraries中,点击“+”。

    40

    弹出界面,选中“Accelerate.framework,点击[ Add ]。

    41

    添加完成,Linked Frameworks and Libraries下方出现“Accelerate.framework”。

    42

    添加摄像机权限

    选中“Info”标签,点击Supported interface orientations后面的“+”。在弹出列表中选中“Privacy - Camera Usage Description”。

    43

    44

    设置Enable Bitcode = “No”

    选中”Build Settings”标签,设置Enable Bitcode = “No”。

    45

    打包取消armv7

    选中“Build Settings”标签,展开Architectures,选择 “Other...”。

    52

    弹出界面,选中“armv7”后点击“-”。

    53

    取消后显示如下即可。

    54

    数据线连接iphone或者ipad,点击[ 运行 ],即可打包。

    46

    完成后,iphone或者ipad上,将生成一个“VOIDAR_Test”的APP,iOS打包完成。

    五、应用操作

    打包完成后,即可在移动设备上运行。

    1)启动应用,界面如下所示。

    44

    2)以预设角度对准3D物体,识别成功。

    45

    至此,模型识别制作完成。

    Back to top Generated by DocFX