ios摄像头AR深度感应人体遮挡方法的实现总结


前言

AR(Augmented Reality)中文翻译为增强现实,不同于VR的沉浸式体验,AR是通过在真实世界增加一些虚拟元素提升视觉和交互上的体验,传统的AR对空间属性的处理并不明显,多是通过识别现实世界中的图片或是二维码,实现对真实世界的锚定。随着激光雷达和空间算法的引入和优化,AR的特性更多体现在对现实世界的三维空间识别上,让现实世界的空间与虚拟空间进行融合,或者说让虚拟空间完全叠合在现实空间中。那么,对人物的抓取和定位,就成了AR进一步发展的必然,让真实世界的人物与虚拟世界融合,并带来更多的应用场景。
本篇文章主要总结ARKit4.0,通过使用unity3d提供的AR Foundation如何快速实现和使用人体深度感应或者人体识别。ARFoundation确实提供了一个比较方便的实现AR的方式,但是其提供的默认UI确实太丑了。ARFoundation适合快速实现AR,但不适合深度开发,其在深度开发的时候需要进行大量的修改。
人体感应和人体遮挡的功能在ARKit4.0以及华为的huawei ar engine中提供了相关的功能,但是Android的ARCore暂时还没有相关功能。华为自己的AR或者XR引擎提供相应的API,并没有整合到ARFoundation中,我会在以后的文章中解释华为引擎的使用,实测华为引擎的性能要优于ARCore,这可能是有针对性的软硬件优化的结果,但是华为引擎还是略逊于ios的ARKit。


一、工作背景

在深度感应和识别方面苹果确实做的更好,但是也可以看到华为的努力,最差的是android,他们似乎并不关心这方面的应用,也许是其AR眼镜做得有点儿伤心吧。所有的工作都是基于unity3d展开的,下面的总结主要是对苹果设备进行的,其他设备开发的小伙伴请自动略过。

二、工作步骤

1.准备工作,导入相应的依赖

我使用的UnityLTS版本 2019.4(注意:较低的Unity版本可能无法使用ARFoundation),平台是ios,接着在unity=》window=》Package Manager中找到AR Foundation进行升级,升级到version4.1.1,另外务必确保ARKitXRPlugin、ARCoreXRPlungin、ARSubsystems以及ARKitFaceTracking的版本和ARFoundation保持一致,否则可能会有问题,同时注意XRPluginManagement的版本,我选择的是3.2.16配合ARFoundation的4.1.1来配置。如果没有安装请一并安装。ARKit对一些手机的系统和设置是有要求的,例如硬件必须是iphone6S及已上机型必须是iOS11系统及以上,可以选择在Unity的PlayerSettings里勾选require ARKit support ,根据你的应用需求来确定。然后将程序运行的最小版本变为11.0,接着再把Architecture设置为ARM 64的,因为ARKit只能运行在ARM 64程序上。
选择了4.1.1版本,实测4.1.5发稿时暂有兼容性问题
在场景中可以直接鼠标右键在XR中生成AR Session和AR Session Origin两个控件。
AR Session设置
AR Session Origin设置
AR Camera设置
在AR Camera中加入了AR Occlusion Manage方法,该方法就是用来实现人体遮挡的方法,加入它,并可根据需要调整性能和选项,遮挡功能就可实现了。

2.Player Settings设置

生成AR照相机后要对Player Settings进行设置,主要是Player和XR Plug-in Management这两个子项进行设置。
Player设置截图如下:
Player设置截图
XR Plug-in Management设置截图如下:
XR Plug-in Management设置
这里勾选ARKit会将依赖的库拷贝到xcode依赖库中。

3.Build Xcode文件测试

以上都设置完后,就可以生成xcode文件进行测试,在Xcode中要对相关的依赖库进行引用,否则会报出无法找到的错误,如果是从arkit2.0升级,注意要将原来的unityarkit.a的依赖删除,否则会一直报错找不到文件,因为这个库在arkit4.0和arfoundation中,已经被libunityarkit.a代替。

总结

上述方法已经经过真机测试,完全有效,希望对其他小伙伴有所帮助。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值