① 扫描真实物体,获得扫描参数
② 在Unity中搭建
③ 更进一步

下载本教程工程文件(Github)


从我最早开始接触增强现实以来,有三种核心识别方式:

  1. 图像识别,可以通过图像在空间内布置虚拟物品;(相关内容可查阅教程 Augmented Reality Portal based on ARFoundation in Unity 中第一章节 Windows)
  2. 平面检测,可以转换任意墙面或地板成为虚拟世界的一部分;(相关内容可查阅教程 Augmented Reality Portal based on ARFoundation in Unity 中第二章节 Doors)
  3. 物体识别,从2017年Vuforia开始便具备这一功能,包括EasyAR也是很早具备此功能的,但由于其操作流程极其受限,我一直没有试着去尝试,直到ARKit在2019年给出了非常轻便的方法 ARReferenceObject,这篇教程记录基于此,有兴趣可以点击查阅官方文档。通过本教程,可以实现如下效果。

① 扫描真实物体,获得扫描参数

设备要求

  1. iPhone 6s或更新,系统iOS 12或更高;
  2. iPad五代或更新,系统iOS 12或更高。

安装扫描App

  1. 下载官方提供的工程文件“ScanningAndDetecting3DObjects”,通过Xcode安装到设备中,详情可看官方文档
  2. 在设备中,扫描App名称为:ARKit Scanner。

布置扫描环境

  1. 确保被扫描物体非透明、非高反射度(如镜面)、表面尽可能粗糙(更多识别点),最小长度不小于1厘米,最大长度不大于5米;
  2. 扫描环境处于自然光中最佳,确保被扫描物体光照均匀,如使用人造光则日光灯最佳(色温6500k);
  3. 被扫描物体以外,中性色且无反光。

开始扫描

  1. 打开ARKit Scanner,镜头对准被扫描物体,直至有点云和黄框立方体出现,点击“Next”进行框定;
  1. 双指在屏幕上移动或缩小黄框立方体,直至正好框住被扫描物体,点击“Scan”进行扫描;
  1. 绕着被扫描物体,直至“上左右前后”五个面都出现黄色透明面,并且在App的标题部分显示“100%”,黄框立方体将自动出现3轴坐标轴;
  1. 点击“Test”,将被扫描物体放置在不同环境中测试识别准确度(若光线不足,可点击“Light On”打开设备闪光灯);
  1. 若在第四步的识别准确度测试中效果不佳,可以点击左上角“Merge Scans>Merge New Scan”增加扫描数据;
  1. 点击“Test”,检查识别准确度是否提高,在本例中,可以看到识别点云大幅度增加了;
  1. 点击“Share”导出识别数据文件arobject(请勿通过QQ、微信等通讯软件进行传输,文件将发生损坏)。

② 在Unity中搭建

  1. 确保布置好ARFoundation开发环境(基本操作,此处不详述);
  2. 将上一章节中创建的arobject拖入Assets中,其应该如下图显示,如果没有图片,说明文件损坏,原因上一章已说;
  1. 在Project中右键,Create>XR>ReferenceObjectLibrary,将arobject文件拖拽入Reference Object Assets,并输入Name;
  1. 在Inspector中,AR Session Origin>Add Component,添加AR Tracked Object Manager;
  2. 将ReferenceObjectLibrary拖拽入AR Tracked Object Manager>Reference Library中;
  3. 将识别模型(确保位置在0位置,尺寸已根据物体的真实大小做了调整,且已制成Prefab)拖拽入AR Tracked Object Manager>Tracked Object Prefab。

③ 更进一步

在案例中,我只使用了视频作为识别对象,教程可看 AR transparent video playback in Unity 第三章。

关于物体识别,我更考虑在空间内的与空间发生关系的物品,如家具等,作为混合现实空间体验的标记物,这可能是物体识别最大的价值所在(当下,图像识别稳定度比物体识别稳定度高多了)。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 登出 /  更改 )

Google photo

您正在使用您的 Google 账号评论。 登出 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 登出 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 登出 /  更改 )

Connecting to %s