3评论

AR识别3D模型(Unity+Vufuria)

ArtStealer 2018-11-07 1.6k浏览
AR的应用场景中需要识别3D物体,其原理大部分是基于特征点匹配的方案来做的。
今天分享一下用Vufuria来扫描识别3D物体

Vufuria官方参考链接:Vufuria Object Scanner

1 准备工作

先下载Vufuria给我们提供的Scanner工具,下载下的包里有一个apk和一个标定图片,我们需要把这个把这个图片按原比例打印出来。
Vufuria提供的标定图:

2 扫描物体

把要扫描的物体放到标定纸的右上角灰色格子区域,打开扫描App开始扫描
识别出标定纸后会在平面上出现 红绿蓝 三个坐标轴,如上图所示。

点击开始扫描,就会看到一些对物体提取出的特征点(上图绿色小点)
绕着物体扫描完一圈,对一些已经提取完成的面会入上图绿色的罩子,绿色全部覆盖后整个物体的所有面就都提取完毕了。当然你也可以只识别其中某个角度下的,根据应用需求而定。

3 添加Target

扫描结束后,可以把我们的扫描结果保存到手机本地,然后需要将这个文件导入到Vufuria的开发者账号下。在TargetManager页签下增加一个Target,Type 选择 3D Object,File项将我们扫描的od文件上传上去,取一个Name就OK了。

4 导入Unity

首先将这个Target下载下来,选择开发平台为 Unity Editor,如下图:
在Unity中添加Vuforia对象:GameObject/Vuforia/3D Scan。如下图:


导入后Hierarchy中增加一个ObjectTarget,点击选中,在其Object Target列表中会看到我们前面从Vufuria下载导入的Target对象,选中后效果如图:

然后导入我们在识别完物体后需要展示的模型:Mario

挂载到ObjectTarget下,如下图结构:

5 真机测试

剩下就是打包出apk在真机上测试一下,马里奥出现了,说明我们的酸奶已经识别出来了。
这样就大功告成了。

另外Vufuria还提供了一个直接识别3D模型文件的工具,有兴趣的同学可以自己下载下来体验一下,这里就不再介绍了。