本节书摘来自华章出版社《AR与VR开发实战》一书中的第2章,第2.5节,作者 张克发 赵兴 谢有龙,更多章节内容可以访问“华章计算机”公众号查看。
2.5 柱形识别
Vuforia SDK提供了带有图像的柱形物体识别功能,柱形识别只针对柱形物体,配合包裹在柱体表面的图像来进行识别,比如识别饮料瓶。本节将介绍柱形识别的实现步骤和方法。
- Vuforia官方案例包
登录Vuforia官网,进入Downloads页面,点击Samples选项,然后下载如下插件并解压。
在解压完成后找到Cylinder Targets包并导入Unity工程。
在Project视图中的Vuforia文件夹下找到ARCamera预制件和CylinderTarget预制件,将这两个预制件拖至层级视图Hierarchy中,同时删除场景中的Main Camera。
2.创建数据库
在Vuforia官网的Develop页面下创建一个新的数据库,命名为CylinderTargets。
创建完成后打开CylinderTargets数据库,选择Add Target,在弹出的文件选项面板中选择第三种Cylinder,然后按照页面要求填写圆柱体的尺寸。其中的三个属性分别代表圆柱体的以下信息:
Bottom Diameter:底面直径。
Top Diameter:顶面直径。
Side Length:边长。
在创建好识别目标后,点击新创建的识别目标,然后选择Upload Image来上传图片,这个图片是指包裹在圆柱体上的识别图案。
图片上传标准:
长度:Top Diameter(或者Bottom Diameter)×π。
宽度:按照具体圆柱高度确定,本书使用可口可乐易拉罐,所以宽度为易拉罐高度11.5cm。
注意
上传图片的长度一定要和上下两面图片的圆形周长相同,图片的宽度即圆柱的高,如果图片尺寸不合适,则无法成功添加。
3.实现柱形识别功能
这里我们使用官方自带的案例来做示范。在Unity工程中选中CylinderTarget,在Inspector面板中选择数据包为系统自带的数据包。
接下来,在CylinderTarget下创建一个子物体模型,这里选择Shpere,然后调节到合适的位置及大小。
最后,点击运行以测试圆柱体识别的效果。