小蚂蚁说。
增强现实是一种新颖的交互方式,它比传统的交互方式更能让用户更深入地参与交互,给用户带来新的体验。
春节期间,支付宝的“扫地祝福”活动也异常火爆。支付宝把AR和游戏、红包结合起来,探索新的玩法。
AR领域虽然发展了很多年,但是在技术成熟度和用户普及度方面还是有很大进步空。支付宝这个领域的前排,背后有哪些技术架构和研究故事?今天,请邀请我们的支付宝AR团队与您详细分享。
1.前言
首先,我们回顾一下网上对AR技术的定义:增强现实(Augmented Reality,简称AR)是一种实时计算相机图像的位置和角度,并添加相应的图像、视频和3D模型的技术。这项技术的目标是将虚拟世界放在屏幕上,与现实世界互动。
从这个定义来看,AR包含两个关键要素:相机姿态估计和虚实交互。
但是,在目前流行的ar应用中,这两个要素可能无法满足。比如一些简单的AR应用主要是识别某个素材,识别成功后播放一个广告视频,然后发放优惠券。这个过程并不估算相机姿态,但已经满足了最初的AR营销需求。所以我们可以把现在的很多AR应用叫做泛AR应用。
2.增强现实技术概述
ar技术本身可以从各个维度进行分类,比如根据硬件载体的不同,可以分为一般的基于移动设备的ar(比如手机ar)和特殊的基于设备的AR(比如Hololens)。这里主要关注基于手机的AR,因为手机的普及推动了AR技术的普及。具体到手机AR,可以细分为很多种:
基于NFT(Natural Feature Tracking)的AR:扫描纹理丰富的平面物体,可以实时估计相机姿态,并将三维模型叠加在平面物体上;
基于SLAM(同时定位和映射)技术的AR:同时估计相机姿态和周围环境地图,在周围环境中叠加虚拟物体;
基于LBS的AR:主要利用GPS信息和陀螺仪信息来实现AR效果,比如PokemonGo;
基于三维物体的AR:通常需要预先对三维物体进行建模,然后对三维物体进行任意角度的扫描来估计相机姿态;
基于AI的AR主要结合模式识别技术实现对象分类识别、对象特征点定位和对象分割,然后在此基础上叠加虚拟对象。随着AI技术的蓬勃发展,这个方向会受到更多的关注。
2.1增强现实平台识别算法
对于大多数增强现实应用程序,通常有以下三个模块:
识别:具体包括图像识别、跟踪和3D姿态估计;
渲染:结合成像模型,利用渲染引擎将三维虚拟物体叠加在图像上
交互:手机主要通过触摸与虚拟物体进行交互,Hololens则通过手势和声音进行多模态交互
支付宝AR平台作为一个平台系统,不仅包含以上基本模块,还拥有在线活动运营管理系统。这里主要介绍识别模块,包括基于自然特征点的图像识别、跟踪和姿态估计,以及基于AI技术的目标识别。
2.2识别算法框架
识别核心层由AR客户端识别引擎和服务器端识别引擎组成,两者都基于核心算法,有机结合、互补、协同完成识别任务。
AR业务层还包括客户端和服务器,负责视频采集、交互渲染、业务路由和后台管理。另一个模块是身份识别内容的管理,包括身份识别模型的培训和评估、身份识别内容的发布和监控。本文主要介绍核心识别算法。
3.NFT识别算法
3.1 NFT算法流程
从数据流来看,我们的NFT核识别算法的流程如下图所示。
整个过程包括客户端和服务器端。对于输入图像的每一帧,将首先识别客户端。如果客户端识别失败,满足静态判断条件,则上传到服务器进行识别。
3.2客户NFT身份证明
客户端识别包括局部特征点检测、特征点描述、快速检索、图片1对1匹配、单应性验证等。每一步都有很多方法可以选择。比如SIFT、SURF、Fast、ORB等等,其中前两者具有尺度不变性,后两者没有尺度不变性,需要从不同分辨率的图像中提取特征。
局部特征点描述为SIFT、SURF、BRISK、FREAK、ORB等。,他们的时间消耗是sift >: SURF >的;BRISK = FREAK & gtORB,精度和时间消耗基本相反,后三个特性是手机上常用的。
为了快速检索,有两种思路:
采用FLANN最近邻搜索:从所有候选图像的所有特征点中找到最相似的特征点,然后根据每个匹配图像上的点数进行排序,得到候选匹配图像。
采用BOW(词袋)检索方法:可以让我们像查字典一样快速地搜索到候选匹配图片。
快速检索只是从众多图片中检索出最近的N张候选图片。对于这N张候选图片,我们需要进一步筛选,给出明确的答案,确定匹配哪张图片,没有歧义。
最后做一个单应性检查:基于平面素材的假设,素材模板图片和实际拍摄的素材图片之间有一个单应性变换,可以利用匹配上的特征点来估计一个单应性变换矩阵,最后根据内部点数来判断是否真的匹配。至此,简单的图片识别过程完成。
3.3客户NFT跟踪
对于需要跟踪的场景,比如我们最初的Costa活动,我们需要实时跟踪估计Costa版纸的姿态,让虚拟的花朵始终无缝贴合在版纸上,如下图所示:
跟踪的最终目的是实时给出相机姿态,让3D虚拟物体实时叠加在真实场景上。
事实上,如果每一帧中特征点检测、匹配、标定和姿态估计的速度足够快,足够准确,就不需要跟踪。但是现有的特征点检测和匹配算法在客户端速度不够快,所以通常的做法是检测后跟踪。
在跟踪过程中,我们还需要实时估计摄像机姿态,因此基于整个物体感兴趣区域的跟踪方法,如KCF(kernel ized Correlation Filters)在这里不适用。我们需要通过特征点跟踪的方法来估计姿态。
最常用的特征点跟踪算法是KLT算法。当运动幅度不是很剧烈的时候,效果还是很好的。对于相对剧烈的运动,很容易跟踪失败。
因此,我们使用局部块模板匹配来跟踪特征点。当然,为了加速,采用了很多加速策略。跟踪完成后,还需要做单应性检查,确认跟踪是否正确。如果跟踪正确,继续进行后续的3D姿态估计。
已知2D点和3D点之间的对应关系来求解姿态,我们可以使用非线性束调整方法或线性PnP(透视-n点)方法。与束调整法相比,PnP法速度更快,但精度稍低,抖动更大。为了减少抖动,我们可以平滑帧间的姿态。
3.4服务器NFT识别
与客户端的本地识别相比,我们的服务器可以识别更多种类的图片,识别能力越来越强。服务器具有海量图像检索和热点图像检索的能力,融合这两种检索结果进行进一步的精细匹配,确定最终的匹配结果。
3.5 AI识别算法
除了常规的NFT图像识别,我们还提供了其他基于模式识别的算法,如Adaboost目标检测、SSD目标检测、xFuNet识别、自定义圆形目标检测、颜色识别、HogSVM识别等。
其中,基于固态硬盘的目标检测方法通用性好,速度快,能够处理各种复杂情况。在支付宝强大的客户端深度学习引擎xNN的帮助下,它登陆了很多商业场景:
在AR平台上,SSD目标检测最初用于解决弱纹理商家的logo识别问题。
很多商家希望通过扫描自己的品牌logos来参与活动。但是有些品牌logo确实没有质感,比如耐克的logo。之前介绍的NFT图像识别算法对这个场景基本无能为力。因此,我们迫切需要找到一种新的方法来满足这种场景的需要。
在此期间,我们尝试了很多方案:密集SIFT、深度特征学习、目标检测等。在比较了各种方案后,结合AR平台的业务场景,选择了目标检测方法。具体到目标检测,fast-RCNN、YOLO、SSD等都比较常见。
发现固态硬盘检测速度最快,准确率能够满足业务需求。最后,选择固态硬盘目标检测方法识别弱纹理商家标志。
主方案确定后,还有一个问题需要解决,就是商家通常只提供几个logo图,对于深度学习来说,确实是杯水车薪。我们的解决方案是将少量的商业标志图像数据进行相乘。具体的乘法方法有面内旋转、缩放、平移、背景替换、颜色变化等。
此外,特别将容易被误检的样本加入样本集中,参与样本乘法合成。最后,我们的SSD目标检测训练流程如下图所示:
除SSD目标检测外,基于Adaboost的目标检测算法因其模型覆盖全、计算量小的优点,被用于春节红包扫描和手势扫描活动。此外,还有之前扫中秋月和脉动瓶盖的定制模式识别算法。
3.6绩效指标
AR平台识别算法的基本性能如下:
1.客户NFT识别时间:
2.客户NFT跟踪时间:
3.NFT识别数据包大小:
5.客户端SSD检测+验证:
4.附言
经过长时间的打磨,支付宝AR平台的基本功能越来越完善。同时,我们也欢迎AR和AI爱好者加入我们的团队,共同把支付宝AR平台做得更好!
代表产品包括支付宝AR扫描、2017年春节AR红包、2018年春节扫符字、扫描“到”手势、支付宝小程序支付通、创建支付宝银行卡身份绑定、声波支付等。
如果你对我们的工作感兴趣,请加入我们的简历!我们目前正在招聘目标检测和图像识别方面的专业人员。如果你感兴趣,你可以发电子邮件到mingcai.zmc@antfin.com
—结束—
1.《支付宝ar 分享 | 带来全新交互体验的『支付宝AR』技术大解密》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《支付宝ar 分享 | 带来全新交互体验的『支付宝AR』技术大解密》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1269408.html