6月,苹果发布了面向iOS的增强现实(AR)开发工具ARKit,正式进入AR领域。近日,在Project Tango深耕三年的谷歌,同样推出面向Android设备的增强现实(AR)应用开发工具ARCore。这一消息意味着谷歌、苹果这两大智能手机操作系统巨头在AR领域展开了正式较量。
其实国内外早有一批优秀的AR SDK出现,在ARKit发布之前,就已经积累了大量内容和开发者。例如国外的Vuforia、ARToolkit、Wikitude,和国内的亮风台HiAR SDK、太虚Void AR、视辰EasyAR等。
根据笔者了解,国外的AR SDK在易用性、费用、功能、甚至语言等方面,并不能满足很多AR开发者的需求,反而国内团队的快速响应、内容制作和技术积累,甚至会比国外更胜一筹。如HiAR SDK从底层到性能的都比较突出,服务了营销、教育、工业等不少领域的众多“标杆”客户,EasyAR团队制作了大量的AR营销内容。这可能也和团队基因有关系,亮风台的首席科学家是国际知名的CV科学家凌海滨,团队中技术大咖众多,视辰的初创团队多在偏内容领域有经验,如商业展示、影楼婚庆、广告营销等。
不久前,笔者了解到亮风台在CV国际顶会与期刊有较多的研究成果发布。例如亮风台AR跟踪算法被IEEE人工智能顶级期刊《PAMI》收录,可在强干扰的场景下实现快速且准确的平面跟踪。
所以笔者想着重关注一下亮风台的HiAR SDK,以它为例,为大家就AR SDK的重要参数进行评测分析,以供学习参考。
AR SDK技术概述
目前来看,2D图像识别和跟踪技术是市场上的主流应用,包括支付宝、QQ等在内的公司推出的AR应用案例多基于2D,也就是平面图像的识别与跟踪技术,并与IMU数据进行融合,以保证用户体验。而2D之外,单目SLAM(实时定位与建图)是去年下半年到目前AR公司的主打研发方向,苹果ARKit的核心技术VIO,其实是SLAM的一个变种注。
注:
VIO(Visual Inertial Odometry)跟SLAM的区别主要有两点:
1 VIO在硬件上需要融合传感器,包括相机和IMU。
2 VIO侧重的是快速姿态跟踪,不需要维护全局地图。
然而,市场主流AR SDK主要基于2D图像识别与跟踪技术,仅少数公司具有基础SLAM。
HiAR SDK主要包括2D图像识别和跟踪、SLAM、人脸识别与检测(为美图等人脸识别与检测需求的公司提供底层技术支持)、以及3D物体识别和手势识别。其中2D技术免费开放给开发者,其他技术和平台方案,联系商务可进行定制服务。
HiAR SDK支持Android、iOS、Unity 3D的跨平台开发,除智能手机之外,也支持PC、AR智能终端(如亮风台自主研发的AR智能眼镜HiAR Glasses)、无人机、机器人、智能家具等终端,是通用开发工具。
此外,HiAR SDK另一主打功能为云识别,目前,支持本地识别、云识别、以及本地和云混合识别。前不久,亮风台公布B轮融资,消息提到“云+端”是重要战略,可以预见,下一步,HiAR SDK的云能力也会再次提升。
2D识别与跟踪
既然大部分AR SDK还是基于2D图像识别,故首先对HiAR SDK的2D的识别与跟踪能力进行一个测评。
笔者使用iPhone 7 Plus,制作一个简单的图像跟踪Demo,感觉跟得很稳,几乎没有延迟。经过详细测试,发现HiAR SDK的跟踪速度最高可超过120帧每秒,远超过人眼的可识别速度25帧每秒,跟踪精度约为0.5像素。
据了解,这一数据是在2016年里约奥运会期间,亮风台与腾讯合作QQ-AR传火炬,腾讯QQ对AR技术提供方亮风台提出的要求。
那在大倾角、光照影响、远距离识别等某些极端情况下,HiAR SDK的表现会是如何呢?
大倾角情况下的识别与跟踪
大倾角实验中,笔者将识别图缓缓倾斜到极限,直到某方模型丢失。
目测HiAR SDK支持的识别图最大可识别倾角在50度左右,而最大可跟踪倾斜角度可能超过80度,接近垂直。而市场主流AR SDK在同样的倾角下出现了目标丢失,不稳定的情况。
远距离识别与跟踪
我们在摄像头位置不动的情况下,让识别图从远至近缓缓靠近,效果如下:
可以看出,HiAR SDK远距离识别与跟踪能力同样表现不俗,在摄像头与识别图距离不断拉远,识别图片占据屏幕的1/20左右时,同样能做到稳定、快速的识别速度与跟踪稳定性。比市场主流AR SDK具有更远的识别距离阈值。但是HiAR依然要求识别目标占摄像头的最小面积为5%。
抗光线干扰
再来看下光照环境变化对AR SDK性能的影响,如暗光、局部亮光、过曝等情况。HiAR SDK与市场主流SDK的表现对比结果如下:
在测试过程中,弱光情况下稳定识别后,再调暗光线,HiAR SDK的虚拟物体稳定地叠加在识别图上,且几乎无抖动,表现比较出色。
快速运动
AR的使用场景变化多端,能够抵抗快速运动带来的干扰,会是AR SDK优良的重要参考参数。在摄像头如手机快速、剧烈运动,或者识别物做相似变化时,需要稳定的识别跟踪技术,目标快速重建等技术的支持。下面就来看一下对比效果:
抗遮挡能力
有时候做AR识别时候,识别图会不小心被其他物体所遮挡,模型容易丢失,影响用户体验。
通过实验,当识别图被物体遮挡时,HiAR SDK可以更稳定地表现出AR显示效果,模型不容易抖动甚至丢失:
多目标识别与跟踪
具有多目标识别能力,广泛应用于AR教学等需要呈现多种内容的场景中。HiAR SDK可以同时识别多张图片,并加载不同的模型数据。
如下图所示,HiAR SDK一次性识别9个图片,且支持大角度、远距离等极端条件下的多图识别。
本地K级别图像识别
如果需要识别的图像很多,那么AR SDK的表现将会如何呢?笔者特意做了一个实验,结果如下。
由上面的对比参数可以得知:
同样机型,HiAR SDK的可识别图像数量为市场主流AR SDK的6-7倍,甚至在某些机型上支持10k级别的本地识别。
包体大小
很多开发者在抱怨嵌入AR的应用太大,不利于推广,也容易让已有客户产生厌烦情绪。的确,对于智能手机来说,受限于内存等因素AR SDK 包大小是关键决定因素。
在笔者测试中发现,HiAR SDK最新版本包大小为2.5M,和官方宣传的小于3M一致,这可能也是在AR营销活动中,不少大型合作伙伴,如腾讯QQ选用HiAR SDK的原因。
SLAM
虽然SLAM技术并未在HiAR SDK中开放,但笔者注意到,在不少商业合作中,已经用到了亮风台研发的SLAM。在CES 2017 Asia中,亮风台开放了SLAM体验。在CES 2017 Asia中,亮风台展现的HiAR SLAM具有以下特点:
总结
经过测试,发现HiAR SDK不仅在2D识别与跟踪方面具有自己的优势,而且很好地控制了包的大小。经过进一步的了解,亮风台不仅研发基于自身核心算法的AR SDK并推出商用,也发布了AR智能眼镜HiAR Glasses等产品。
其官方人员曾表示,开发硬件的原因之一也在于优化自身的技术,2D图像识别与跟踪、SLAM、手势、人脸等技术已经或正在向眼镜端部署。
作为一枚小小的开发者,笔者看好国内自主研发的HiAR SDK,也期待HiAR Glasses能够带来更多惊喜。