Unity开发——Hololens2+Vuforia实现图像识别详细教程

在跟着Vuforia官网教程实现的时候感觉很多东西没有讲清楚,在网上自己搜索相关教程的时候发现许多博客采用的Vuforia的版本过于老旧,已经不适用了。因此也就催生了这篇博客,希望让读者看完之后都能够从0开始将Vuforia图像识别的功能跑起来。

环境

  • Unity版本:2020.3.x(Vuforia的例程只支持这个版本与2021.1.x)
  • Hololens 2
  • Vuforia SDK版本:10.1

Vuforia官方例程

要配置自己的工程之前建议把Vuforia提供的官方例程先跑通,其中还需要结合Holens2配置的官网教程。我把两个教程综合了一下,按如下步骤配置即可(如有写的不详细的地方还请移步上述两个链接)。

  1. 确保Unity安装了Windows Build Support(IL2CPP)与Universal Windows Platform Build Support在这里插入图片描述

  2. 创建新的Unity工程,在File->Build Setting中切换平台至Universal Windows Platform,对右侧的选项进行如下配置:在这里插入图片描述

  3. 到Vuforia官网上注册并下载SDK,下载链接:Vuforia Engine,版本选择10.1

  4. 下载MRTK管理工具,下载链接:MRTK。(之前MRTK是unity包的形式,每次要下载再导入很麻烦,现在有统一管理工具辣)

  5. 在Unity中选择Assets->Import Package->Custom Package,导入下载的Vuforia包,中间有提示说要升级工程 ,选择“Update”即可。在这里插入图片描述

  6. 在网页中打开Asset Store,搜索“Hololens Vuforia”,订阅“Vuforia Hololens 1+2 Sample for Unity 2020.3 LTS”(此处选择在Unity中打开似乎会失败,因为Unity2020版本统一用Package Manager对商店的包进行管理,而在此之前的Unity版本能够直接跳转到Unity中,打开Asset Store并直接导入包)在这里插入图片描述

  7. 打开Windows->Package Manager,可以在其中看到Vuforia Engine AR,代表Vuforia安装成功,注意其版本为10.1.4。在这里插入图片描述

  8. 左上角Packages下拉栏中选择My Assets,并搜索“Vuforia”即可看到刚才在Asset Store中订阅的例程,并选择“Import”。此处务必注意例程的版本与Vuforia的版本应该一致(此处皆为10.1.4),如果不一致的话右下角会出现“Update”的选项可以进行升级。在这里插入图片描述
    之后会提示覆盖当前工程的配置,选择“Import”;提示需要Package Manager dependencies,选择“Install/Upgrade”。

  9. 下一步对Unity中Hololens的部分进行配置(此步骤放在Vuforia之后是因为Vuforia的例程会覆盖当前工程的设置)。首先导入MRTK,打开刚才下载并安装的Mixed Reality Feature Tool,选择工程路径以后选择“Discover features”,之后选择Mixed Reality Toolkit FoundationMixed Reality Toolkit Extensions并且点击“Get features”。在Hololens官网中对Unity2020的配置可与选择OpenXR或者Windows XR plugin,此处的选择是后者,因为前者实测与Vuforia的兼容性有点问题,例程跑不起来。之后选择“Import”。
    在这里插入图片描述

  10. 导入之后选择Edit->Project Settings,在最下方的XR Plugin Management中勾选“Initialize XR on Startup”与下方的“Windows Mixed Reality”。之后选择左侧的Player栏,在“Resolution and Presentation”中取消Run in Background的对勾,Default Orientation选的是“Landscape Left”。在“Publishing Settings”中修改Package name,确保Capabilities中的Internet Client, WebCam, Microphone, SpatialPerception以及Supported Device Families中的Holographic都勾选上了。关闭该界面。 在这里插入图片描述在这里插入图片描述

  11. 如果有出现MRTK的弹窗选择“Apply”即可。官网配置中会要求从上方“Mixed Reality Toolkit”中选择“Add to Scene and configure…”,但是导入的例程会自带MRTK的配置,因此不需要选择该选项。 之后可以从下方选择Assets->SampleResources->Scenes中打开0-ManagerScene,选中左侧“MixedRealityPlayspace”的子物体“Main camera”,并在右边找到Vuforia Behaviour并点击“Open Vuforia Engine configuration”。在这里插入图片描述

  12. 打开Vuforia官网并登陆,选择上方Develop并选择“Get Component Key”,输入名称后确认。
    在这里插入图片描述

  13. 打开刚才创建的Key,并且复制授权码在这里插入图片描述
    粘贴到刚才打开的Vuforia Configuration中的App Licsense Key在这里插入图片描述

  14. 点击File->Build Settings,确保五个场景已经添加到Scenes In Build中,点击Build,并创建一个“App”文件夹到其中。

  15. 用数据线连接电脑与Hololens2(无线也可以进行部署,但部署速度不如有线,而且经常连接不稳定会断开)。用Visual Studio打开工程,在上方选择“Release”、“ARM64”、“Device”,点击绿色小箭头。有时候会提示超时错误,拔插一下数据线重新部署就可以了。(不要在VS调试模式下运行程序,会很卡。结束调试以后在Hololens中打开即可)在这里插入图片描述

  16. 此处下载四张图片并打印(黑白即可,无需彩色)。

  17. 部署完成后从Hololens中打开App并选择“ImageTargets”在这里插入图片描述
    之后看到如下界面在这里插入图片描述
    可以对四副测试样例进行识别与增强
    在这里插入图片描述

部署自己的Vuforia应用

以上都是官网上给出的例程,下面来介绍如何配置配置自己的Vuforia应用:

  1. 在官网点击选中Develop界面中,点击Target Manager,点击Add Database,Type选择“Device”在这里插入图片描述
  2. 选中数据集,点击“Add Target”。在这里插入图片描述
  3. 上传自己的需要识别的AR图片(图片应该尽可能纹理丰富以便于识别)。注意在Width处应填写在真实空间中图片的宽度(米为单位)。也就是说应该把你需要识别的图片打印出来,测量其宽度并填写,长度会根据你上传的图片自动换算,因此不需要你填写。在这里插入图片描述
    可以点开你的图片,查看识别的关键点以及图像可用性的评分在这里插入图片描述
  4. 选中你刚添加的图片,点击“Download Database”,选项选择“Unity Editor”。之后会下载一个Unity包,导入Unity中。
  5. 建立一个新的工程,按照上一个阶段例程配置中步骤1-5、9-10对Vuforia以及Hololens部分进行配置
  6. 通过Unity上方的Mixed Reality Toolkit点击“Add to Scene and configure…”来添加MRTK管理工具(由于是自己建立的工程,因此需要手动添加MRTK)
  7. 给MixedRealityPlayspace的子物体Main Camera添加控件Vuforia Behaviour(无需添加官方提到的AR Camera),按上一个阶段例程配置中步骤12-13来配置授权码(用之前的也可以,无需新建)。在下方Max Simultanesous Tracked Images选项上将需要识别图像的数目改为特定值,代表能同时识别多少张图片。
  8. 这一步比较重要,在测试的时候发现用默认的MRTK配置出来的工程无法进行识别,因此需要将Vuforia例程的配置文件拷贝到当前工程目录下具体操作是将上一节例程工程文件夹下Assets->MRTK->MixedRealityToolkit.Generated->CustomProfiles中的配置文件拷贝到当前工程下Assets->MixedRealityToolkit.Generated->CustomProfiles中。在这里插入图片描述
  9. 在Unity的Hierachy中选中MixedRealityToolkit物体,在右侧配置文件处选择VuforiaXRMRTKConfigurationProfile在这里插入图片描述
  10. 在Unity上方栏处选择GameObject->Vuforia Engine->ImageTarget,就会添加一个带追踪的图像对象。刚才我们已经把需要追踪的图片打包并导入到Unity中了,因此在右侧Image Target Behaviour脚本中将Type选为“From Database”,并选择刚才导入的Database与图像在这里插入图片描述
    可以看到图像的长度也被自动导入,为0.0537m,也就是真实世界中需要识别的图像应该是5.37cm宽。(另外在下方我们可以看到一个警告符号,提示说extended tracking需要用到DeviceTracker,这个功能的作用是当Hololens中我们对图像进行识别并显示了虚拟物体,那么如果该图像消失在视野里,虚拟物体仍然固定在之前的位置上而不是消失。这一点在做物体标注时很有用,例如我们经过图像校准让标注信息显示在真实物体上,那么当我们转动视野看物体的时候校准图像可能消失在视野里,此时我们仍然希望标注信息固定在原来的位置。这个功能默认是开启的,无需我们过多的操作。)
  11. 我们添加需要展示的虚拟物体作为待识别图像的子物体,这样当识别到图像的时候会显示该物体。例如我们添加一个Cube,调整scale为0.1,0.1,0.1。将其位置放置在待识别物体的上方。在这里插入图片描述
  12. 打包并部署到Hololens上
  13. 打印出待识别的图像并运行程序(我将官方例程的测试图像也添加进了工程中)。在这里插入图片描述

参考资料

1.https://library.vuforia.com/articles/Solution/Working-with-the-HoloLens-sample-in-Unity.html
2.https://library.vuforia.com/articles/Training/getting-started-with-vuforia-in-unity.html#intro
3.https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/tutorials/mr-learning-base-02?tabs=winxr
4.https://blog.csdn.net/li1214661543/article/details/107820207
5.https://www.pianshen.com/article/41031887858/

  • 26
    点赞
  • 152
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
### 回答1: Vuforia是一款用于增强现实(AR)应用开发的软件。Hololens是一款由微软推出的AR眼镜。Unity是一种用于多平台游戏和应用程序开发的跨平台游戏引擎。Unity 2020.3 LTS是Unity的一个稳定版本。 在使用Unity 2020.3 LTS时,我们可以利用Vuforia插件和Hololens设备来开发AR应用程序。Unity提供了Vuforia Hololens 1和2的示例项目,这些示例项目提供了一个基础模板,可以帮助开发者更好地理解AR应用程序的开发实现。 在这些示例项目中,开发者可以学习如何使用Vuforia插件来识别现实世界中的图像和对象,并将其与虚拟对象进行交互和融合。通过使用Hololens设备,开发者可以在现实世界的环境中将虚拟对象投射到真实世界中,实现更加真实的AR体验。 在开发AR应用程序时,开发应该注意选择合适的技术和工具,例如VuforiaHololens设备,并熟悉其使用。Unity 2020.3 LTS提供了一个稳定的开发环境,方便开发者进行AR应用程序的开发实现。 ### 回答2: Vuforia Hololens是一款在Hololens平台上运行的增强现实开发工具,其可以增强Hololens用户的体验,使用户可以通过头戴式显示器看到虚拟对象与显示屏的混合视觉场景。同时,Vuforia Hololens还提供了在Unity 2020.3 LTS中的样例项目,该项目可以帮助开发者更快速、更有效地开发Hololens应用程序。 Vuforia HololensHololens平台上提供了强大的AR功能,例如图像识别、目标跟踪、手势识别等。这些功能可以使Hololens应用程序更加互动和富有创意,利用这些功能,设计师可以创造出更多具有体验感和趣味性的虚拟体验。 在Unity 2020.3 LTS中,Vuforia Hololens还提供了样例项目,该项目展示了如何使用Vuforia Hololens进行AR开发开发者可以使用该项目作为模板,快速上手Hololens的AR开发。该项目提供了详细的文档,包含如何安装和使用Vuforia Hololens、如何在Hololens平台上进行AR开发等。 总之,Vuforia Hololens作为一款强大的Hololens增强现实开发工具,为Hololens应用程序的开发者提供了很多便利。与此同时,Vuforia HololensUnity 2020.3 LTS中提供的样例项目可以使开发者更加高效地进行Hololens应用程序的开发。 ### 回答3: Vuforia 是一个由 PTC 公司开发的增强现实引擎,可以与 Hololens 1 和 2 无缝集成,而 Unity 2020.3 LTS 是 Unity 的一个长期支持版本。在 Unity 中,我们可以使用 Vuforia 引擎来创建增强现实应用程序,可以通过扫描图像或实际物体来在 Hololens 中呈现虚拟对象。该引擎提供了自动识别、跟踪和显示虚拟对象的功能,开发人员可以依靠 Vuforia 引擎将虚拟内容融合到现实世界中。 在使用 Unity 2020.3 LTS 版本开发 Vuforia Hololens 1 和 2 应用程序时,可以使用 Vuforia 官方提供的 Unity 范例。这些范例提供了一些基本的场景和功能,如在 Hololens 上显示虚拟物体、通过手势控制虚拟物体等。开发人员可以使用这些范例作为起点,在其基础上进一步开发自己的应用程序,实现更丰富的功能。 总之,利用 VuforiaUnity 构建 Hololens 1 和 2 应用程序可以为用户提供全新的增强现实体验,这将有助于拓展 Hololens 在教育、培训、医疗等领域的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值