Vuforia核心功能介绍—VR及AR开发高级教程(4)

发表于:2017-3-22 10:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:吴亚峰、刘亚志、于复    来源:51Testing软件测试网原创

  第2章  Vuforia核心功能介绍
  前面章节中笔者介绍了增强现实的基本知识,尤其着重介绍了Vuforia工具、Unity开发环境的搭建、Vuforia SDK的下载以及其官网账号的注册。本章中将详细讲解Vuforia的核心功能,使得读者在开发过程中可以熟练应用这部分知识。
  2.1  扫描图片-Image Target
  Vuforia SDK可以对图片进行扫描和追踪,通过摄像机扫描图片时在图片上方出现一些设定的3D物体,这种情况适用于媒体印刷的海报以及部分产品的可视化包装等。虚拟按钮、用户自定义图片以及扫描多目标等技术都以扫描图片技术为基础。
  处理目标图片有两个阶段,你需要设计目标图像,然后上传到Vuforia目标管理进行处理和评估。评估结果有5个星级,不同的星数代表相应的星级,如图2-1和图2-2所示,星级越高表示图片的识别率也就越高。为获得较高的星级数,在选择被扫描的图片时应该注意以下几点。
  选择图片时建议选择使用8位或者24位的JPG和只有RGB通道的PNG图像及灰度图,且每张图片的大小不可以超过2MB。
  图片目标最好是无光泽、较硬材质的卡片,因为较硬的材质不会有弯曲和褶皱的地方,可以使摄像机在扫描图片时更好地聚焦。
  图片要包含丰富的细节、较高的对比度以及无重复的图像,例如街道、人群、运动场的场景图片,重复度较高图片的评估星级往往会比较低,甚至没有星级。
  被上传到官网的整幅图片的8%宽度被称为功能排斥缓冲区,意为该8%的区域不会被识别。
  带有轮廓分明、有棱有角的图案的图片评级就会越高,其追踪效果和识别效果也就越好。
  在扫描图片时,环境也是十分重要的因素,图像目标应该在漫反射灯光照射的适度明亮的环境中,图片表面应被均匀照射,这样图像的信息才会被更有效地收集,更加有利于Vuforia SDK的检测和追踪。
 
  对于不规则图片可以将其放在白色背景下,在图像编辑器中(如Photoshop)将白色背景图和不规则图像渲染成一张图片,然后将其上传到官网,这样就可以将不规则图片作为目标图像。
  本小节简单地介绍了选择图片的注意事项,以及在摄像机扫描图片时的环境设置,扫描图片技术的应用十分广泛,多目标技术、图片拓展追踪以及虚拟按钮技术都是通过图片实现的,大部分技术都直接或间接地应用了扫描图片技术,应重点掌握如何选择一张合适的图片。
  2.2  圆柱体识别--Cylinder Targets
  Cylinder Targets能够使应用程序识别并追踪卷成圆柱或者圆锥形状的图像。它也支持识别和追踪位于圆柱体或圆锥体顶部和底部的图像。开发人员需要在Vuforia官网上创建Cylinder Targets,创建时需要使用到圆柱体的边长、顶径、底径以及想要识别的图片。
  2.2.1 图片标准
  Cylinder Targets支持的图片格式和Image Targets、Multi Targets相同。图片为使用RGB或GrayScale(灰度)模式的PNG和JPG格式图片,大小为2MB以下。上传到官网上之后,系统会自动将提取出来的图像识别信息存储在一个数据集中,供开发人员下载使用。
  2.2.2 如何获取实际物体的具体参数
  现实中常常能够看到类圆柱体的物件,但是很少有非常完美、标准的圆柱体,比如生活中的水瓶、水杯、易拉罐,它们的形态都不是十分标准,但是它们的形态都十分接近圆柱体,所以开发人员可以使用它们来进行增强现实的开发。
  商标是指在圆柱体上展现的图案,有些物体的商标可能只覆盖了物体的一部分,比如红酒瓶、矿泉水瓶,有的则能够将整个圆柱体覆盖住,比如易拉罐。通常个人手中并没有这些物体的具体数据和物体上商标的标准数字图片。这时需要手动测量其具体的参数,具体方法如下。
  (1)使用纸带来制作模拟罐头盒、瓶子的模型
  通常瓶子(罐头)的商标是360度覆盖在物体上的,所以首先用直尺来测量出瓶子(罐头)的准确高度,并将纸张裁剪到与其相应的高度,然后将纸张尽可能地包裹住瓶子(罐头),并在重叠的部分做上记号,最后将重叠的部分减掉即可。为了能够测量出瓶子(罐头)的周长,纸带的宽度必须为瓶子(罐头)上商标的宽度,而纸张的长度可以将其设置得长一些,以便后面测量。
  (2)开始获取圆柱体需要的数据
  通过上一步可以使用纸带准确地获取了瓶子(罐头)的具体尺寸,包括物体的高以及周长,接下来展开纸带,计算出需要的纸带的长和宽,在制作TargerManager时可以通过使用圆的周长公式求出圆柱体的顶径和底径数据,如图2-3所示。
 
  2.2.3 如何制作自定义的商标
  通常为了制作方便,识别效果好,开发过程中常常会使用一些自制的图片。在制作图片时也有许多方面需要注意,使得让追踪和识别的精度更高。下面将详细介绍对数字图片的几种处理方式,来适应开发过程中对图片的要求。
  (1)数字图片的制作规格
  数据测量完成后,开发人员要使用绘图工具来制作一张自己的商标图片,并且商标图片的宽高之比要与纸带的宽高比相同,看上去数字图像的形态要与纸带十分相似。一般情况,需要设置图片较短的一条边至少有240像素。
  (2)调整图像-添加白边
  也有一些瓶子(罐头)上面的商标宽度小于瓶子(罐头)的高度,并没有完全覆盖住整个瓶身,这种情况在制作数字图像时,需要在商标图片的上方和下方加上白边,使图像的宽高比能够匹配纸带的宽高之比,如图2-4所示。
  (3)调整图像-剪切图片
  如果使用的源图像的宽高比小于制作过程中所需要的宽高比,开发人员应将源图片的上方和下方裁切掉一部分,如图2-5所示,使其能够匹配需要的宽高比。但这是有副作用的,如果这么做就会使得图像变得不完整,会损失掉一些图像细节,一般情况下,如果没用特别重要的细节,这并不会造成严重的影响。
  
  (4)调整图像-添加图像长度
  有一些瓶子(罐头)上的商标并不会360°包裹瓶身,这就会导致上面商标的宽高比要小于从纸带上获取的宽高比,这时就需要在图片的左右两端添加白色区域来扩大源图像的宽高比,如图2-6所示,但是这么做的副作用就是,会使追踪的限制角度小于360°。
  (5)图像调整-拉伸图像
  通过拉伸图像来匹配需要的宽高比,这种方法适用于上述的任何一种情况,无论源图像的宽高比和需要的宽高比相比是大是小,如图2-7所示。但是如果这样做的话,由于会对源图像的宽高比产生变化,从而使得图像内容变形。
 
  (6)开始获取圆锥体需要的数据
  首先开发人员需要展开在测量时使用的纸带,圆锥体展开的纸带应为扇形,如图2-8所示。然后测量其宽度与高度,此时纸带的宽和高应为能够紧紧包裹住扇形纸带的矩形的宽和高。还需要测出锥体的顶径和底径(锥体顶径和底径不相同),用于制作TargetManager。
 
  (7)制作需要使用的数字图片
  数据测量完成后,需要使用绘图工具来制作一张自己的商标图片,并且商标图片的宽高之比要与纸带的宽高比相同,看上去数字图像的形态要与纸带十分相似。一般情况,开发人员需要设置图片较短的一条边至少有240像素。
  (8)调整图像
  在制作自己的商标图片时,和圆柱体同样会碰到源图像与需要的宽高比不匹配的情况,其调整方式可以参照上面介绍的圆柱体的调整方式,包括添加白边、添加图像长度、拉伸图像等,如图2-9和图2-10所示。
 
本文选自《VR及AR开发高级教程—基于Unity》第二章,本站经人民邮电出版社和作者的授权。
版权声明:51Testing软件测试网获清华大学出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
Vuforia开发环境的搭建—VR及AR开发高级教程(3)
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号