小蚂蚁说

AR是一种新颖的交互方式,与传统交互方式相比,可以让用户更深入地参与互动,给用户带来新体验。

而春节期间,支付宝的「扫福得福」活动也异常火爆,支付宝将AR与游戏、红包相结合,探索出了一种新玩法。

虽然AR领域已经有了很多年的发展历程,但技术成熟度和用户普及度都还有很大的进步空间。而走在该领域前排的支付宝,背后又有哪些技术架构和研究故事呢?今天就有请我们的支付宝AR团队来给大家进行详细分享。

1. 前言

首先,我们回顾下网络上对AR技术的定义:增强现实技术(Augmented Reality,简称AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。

从这个定义可以看出,AR包含两个关键要素:相机姿态估计和虚实互动

不过,在当前流行的AR应用中,未必都满足这两个要素,比如有些简单的AR应用主要是识别某个物料,识别成功后播放一段广告视频然后发个优惠券,这个过程并没有估计相机姿态,但是已经满足初期AR营销需求了。为此,我们可以称当前的很多AR应用为泛AR应用。

2. AR技术概述

AR技术本身可以从各个维度进行分类,比如根据硬件载体不同,可以分为基于通用移动设备的AR(比如手机AR)和基于专用设备的AR(比如Hololens)。这里我们主要关注基于手机的AR,正是由于手机的普及推动了AR技术的普及。具体到手机AR,又可以细分成多种:

•   基于NFT(Natural Feature Tracking,自然特征点跟踪)的AR:对着一个纹理丰富的平面物体扫描,就可以实时估计相机姿态并将3D模型叠加到平面物体上;

•   基于SLAM(Simultaneous  localization  andmapping) 技术的AR:同时估计相机姿态和周围环境地图,并可在周围环境中叠加虚拟物体;

•   基于LBS的AR:主要利用GPS信息和陀螺仪信息实现AR效果,比如PokemonGo;

•   基于3D物体的AR:通常需要预先对3D物体进行建模,然后以任意角度扫3D物体均可估计相机姿态;

•   基于AI的AR:主要结合模式识别技术,实现物体类别识别、物体特征点定位、物体分割,然后在此基础上叠加虚拟物体。随着AI技术的蓬勃发展,这个方向将会受到更多的重视。

2.1 AR平台识别算法

对于大多数AR应用来说,通常都包含以下3个模块:

•   识别:具体来说包含图像识别、跟踪、3D姿态估计;

•   渲染:结合成像模型,利用渲染引擎将3D虚拟物体叠加到图像上

•   交互:手机上主要是通过触控与虚拟物体互动,Hololens则通过手势、语音进行多模态互动

支付宝AR平台作为一个平台性的系统,除了包含以上基本模块外,还有线上活动运营管理系统等。这里,我们主要介绍识别模块,包括基于自然特征点的图片识别、跟踪、姿态估计,以及基于AI技术的物体识别。

2.2 识别算法框架

总体上,AR平台识别算法框架包含识别核心层业务层识别内容管理层。

其中识别核心层由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>ORB,准确性和耗时基本相反,在手机上常用的特征一般为后面三种。

对于快速检索方面,有两个思路:

•   采用FLANN近邻搜索方式:从所有候选图像的所有特征点里查找最相似的特征点,然后根据每张图片匹配上的点数进行排序得到候选匹配图片。

•   是采用BOW(Bag-of-Words)检索方式:这样可以让我们像查字典一样快速检索到候选匹配图片。

快速检索只是从众多图片中检索出最相近的N幅候选图片,针对这N幅候选图片,还需要做进一步的甄别,给出明确的答案,确定到底和哪一幅图片匹配,不能模棱两可。

最后再做一个单应性校验:基于平面物料的假设,物料模板图片和实际拍摄的物料图片之间存在一个单应性变换,利用匹配上的特征点可以估计出一个单应性变换矩阵,最后再根据内点数多少判定是否真的匹配上了。到此,单纯的图片识别过程就完成了。

3.3 客户端NFT跟踪

对于需要需要跟踪的场景,比如我们最初做的Costa活动,就需要实时对Costa餐盘纸进行跟踪和姿态估计,以便虚拟的花总是无缝贴合在餐盘纸上,如下图所示:

跟踪的最终目的是为了能够实时地给出相机姿态,以便3D虚拟物体可以实时叠加到实景中。

事实上,如果每帧做特征点检测、匹配、校验、姿态估计的速度足够快足够准,也可以不用做跟踪。然而现有的特征点检测匹配算法在客户端速度还不够快,因此普遍做法是检测之后做跟踪。

由于跟踪过程中,我们还需要实时估计相机姿态,因此基于整个物体ROI区域跟踪的方法比如KCF(Kernelized CorrelationFilters)方法在这里不适用,我们需要特征点跟踪方法,以便利用特征点进行姿态估计。

最常用的特征点跟踪算法就是KLT(Kanade-Lucas-Tomasi)算法,当运动幅度不是很剧烈时,效果还是很不错的,对于相对剧烈的运动,容易跟踪失败。

为此,我们采用了局部区块模版匹配的方式进行特征点跟踪。当然,为了提速,具体实现时采用了很多加速策略。跟踪完成后,同样也需要做单应性校验,确认跟踪是否正确。如果跟踪正确了,则进行后面的3D姿态估计环节。

知道2D点和3D点对应关系求解位姿,可采用非线性的Bundle Adjustment方法,也可以采取线性PnP(Perspective-n-Point)的方法求解。相比Bundle Adajustment方法,PnP方法速度更快,但精度略低,抖动大一些。为减轻抖动,可以通过对位姿做帧间平滑。

3.4 服务端NFT识别

相比客户端本地识别,我们的服务端可以识别更多种类的图片,具有更多更强的识别能力。服务端具备海量图片检索能力和热点图片检索能力,并且融合这两个检索结果,做进一步的精匹配以确定最终匹配结果。

3.5 AI识别算法

除了常规的NFT图片识别外,我们还提供了其他基于模式识别的算法,比如春节扫红包用的Adaboost目标检测、SSD目标检测、xFuNet识别以及定制的圆形目标检测、颜色识别、HogSVM识别等。

其中,基于SSD目标检测的方法由于通用性好、速度快、能够处理多种复杂情况,借助支付宝强大的客户端深度学习引擎xNN已落地到多个业务场景:

在AR平台,SSD目标检测最初用于解决弱纹理商家logo识别问题。

不少商家希望通过扫他们的品牌logo参加活动,然而有些品牌logo实在是没啥纹理,比如耐克的logo,之前介绍的NFT图片识别算法对这种场景基本无能为力。因此,我们迫切需要找到一种新方法来满足这一场景需求。

期间我们尝试了多种方案:Dense SIFT、深度特征学习、目标检测等。对各种方案进行比对后,结合AR平台业务场景,我们选择了目标检测的方式。具体到目标检测,常见的有Faster-RCNN、YOLO、SSD等。

实测发现SSD的检测速度最快,精度也能满足业务需求。最终,我们选择了SSD目标检测方式来识别弱纹理商家logo。

主体方案确定之后,还有一个问题需要解决,即商家通常只提供少量几张logo图片,这对于深度学习来说,那真是杯水车薪。我们的解决方案是对少量的商家logo图像数据做倍增,具体倍增方式包括面内面外旋转、缩放、平移、背景替换、颜色变化等。

此外,针对容易误检的样本,特别添加到样本集参与样本倍增合成。最终,我们的SSD目标检测训练流程如下图所示:

除了SSD目标检测,基于Adaboost的目标检测算法由于其全机型覆盖、计算量小等优势用在了春节红包扫福和扫手势活动中。此外,还有之前的扫中秋月亮、扫脉动瓶盖也使用了定制化的模式识别算法。

3.6 性能指标

AR平台识别算法基本性能如下:

1.客户端NFT识别耗时:<200ms

2.客户端NFT跟踪耗时:<10ms

3.NFT识别包大小:<20k

5.客户端SSD检测+校验:<100ms

4. 后记

支付宝AR平台经过长时间的打磨,各项基本功能日趋完善。同时,我们也非常欢迎AR、AI爱好者加入我们团队,共同把支付宝AR平台打造得更好!


代表产品有:支付宝AR扫、2017春节AR红包、2018新春集五福扫福字、扫“五福到”手势、支付宝小程序缴费通、开创了支付宝银行卡识别绑定、声波支付等。

如果你对我们的工作感兴趣,欢迎投简历加入我们!我们目前正在招聘目标检测、图像识别等方向的专业人才,有兴趣可以发邮件至: mingcai.zmc@antfin.com

— END —

分享 | 带来全新交互体验的『支付宝AR』技术大解密相关推荐

  1. 老子云3D数字人为银行带来全新金融服务体验,全面促进资产增值!

    在人工智能时代,去银行办理业务,迎接我们的可能不是银行的柜员,也有可能是像这样的3D数字人. 面对数字人大屏,你可以告诉她你的需求,她会帮你完成相应的业务,是不是看起来科技感十足. 除了效果够炫,其实 ...

  2. HarmonyOS 2发布!华为MateView带来全新智慧体验

    2021年6月2日,HarmonyOS 2及华为全场景新品发布会正式召开,伴随着HarmonyOS 2的到来,华为MateView解锁了智慧办公新体验:将搭载HarmonyOS 2的华为手机的算力与华 ...

  3. 鸿蒙手机beta使用体验,鸿蒙 2.0手机应用开发者Beta,来了!全新交互体验

    16.png (197.92 KB, 下载次数: 17) 2020-12-16 21:23 上传 12月16日,华为正式召开HarmonyOS2.0手机开发者Beta发布活动.华为消费者业务软件部总裁 ...

  4. 空间音频已来,TWS 4.0时代已来!TWS200带来全新听觉体验

    自苹果2016年发布第一代AirPods耳机,非苹果TWS蓝牙耳机在不断进化.TWS1.0时代,从产品外观上,剪断了脖挂式耳机的中间连线,携带更便捷,佩戴更舒适,但产品体验还有很多问题,比如对耳配对繁 ...

  5. SD-RTN——毫秒级网络加速带来全新的体验

    近几年网络直播视频.VR/AR.竞技游戏.大数据.4K高清视频的快速增长,正在将毫秒级网络加速技术推向历史发展的潮头.用户的预期越来越高,他们期待"最好"的在线体验,网络延迟会直接 ...

  6. 华为鸿蒙2.0什么核心,鸿蒙系统2.0:安卓最核心部分基本已去除,将带来全新的体验...

    早些时候,华为在东莞举办的华为2020华为开发者大会如期召开,在大会上华为正式发布了鸿蒙系统2.0,并称将于明年应用到智能手机上,其中升级了EMUI 11的用户可以优先获得体验鸿蒙系统2.0的资格,瞬 ...

  7. 支付宝 AR 红包技术探讨及如何在下一波技术浪潮中畅泳

    AR继2016年在Pokemon Go的引爆下,2017年新年前后由支付宝带来了第二波热潮.这些现象背后预示着下一波技术浪潮,除人工智能及机器人外,代码构成的虚拟世界正逐步通过AR/VR侵入我们的生活 ...

  8. 『征文精选』技术翻译与术语管理技术:专业人说专业话

    本文来自 SphereEx SIGs[Translation]组 XLM1226 同学在日常翻译工作中的心得体会,希望给大家带来启发. Technical Writing(技术写作)或称为 Techn ...

  9. 三星Galaxy S9给用户带来了哪些全新的体验?

    2018年3月6日三星在中国广州发布了今年的年度旗舰Galaxy S9/S9+,并邀请井柏然作为三星手机中国区品牌代言人,朱亚文为三星手机中国首席AI官,凸显其对这部旗舰手机的重视和信心. 实力铸就三 ...

最新文章

  1. 探索7.x, 全面解析Activity启动框架 (1)
  2. [改善Java代码]自由选择字符串拼接方法
  3. 每秒8.8亿次请求!让数据存得起,看得见 - 云原生多模数据库Lindorm 2020双十一总结
  4. Linux C/C++ UDP Socket 网络通信
  5. Qt setMargin()和setSpacing() 的含义
  6. 小米:停止2016年发布的红米手机升级推送
  7. Task 6.1 校友聊之NABCD模型分析
  8. UIApplication Delegate和UIApplicationMain(程序完整启动过程)
  9. 串口通信程序中十六进制格式发送和接收实现
  10. CAD/CASS城市坐标转换到CGCS2000(不涉及参数计算)
  11. SMA、SPI、LTE
  12. Cassandra Vs Voldemort
  13. MIT 18.01 Single Variable Calculus(单变量微积分)课堂笔记【3】——求导四则运算和三角函数求导
  14. 安装archlinux+cinnamon笔记
  15. 非阻塞IO处理上几个常见问题
  16. SLAM之camera(Intel RealSense D435)调试第一弹:Win10平台下getting started
  17. 解决小新13pro2020连接4k60hz显示器后,出现卡顿,查看刷新率只有30hz的问题
  18. 零基础学python大概要多久-零基础学python大概要多久
  19. 为什么要学习 Python?这是我听过最实用的答案
  20. 系统监理工程师学习笔记

热门文章

  1. iOS App thinning【( 通过 LinkMap、mach-o寻找优化点)】1、段迁移rename_section减小__TEXT 段大小(需关闭 Bitcode)2、查无用方法/类/宏/图
  2. 大家来讨论怎么写概要设计
  3. Udacity 人工智能编程基础 - 课程目录
  4. 2019 中国开源年会即将开启
  5. Office Tool Plus 下载使用 365 2021/2019等版本
  6. 信驰达微信iBeacon摇一摇周边方案ibeacon蓝牙设备
  7. 你可能不知道的 Ps 技巧
  8. 华为matebook X 笔记本没开什么程序,有时经常慢卡
  9. 医学影像研究的重要性 计算机,计算机辅助医学影像诊查之关键学习技术研究.doc...
  10. java 切换系统输入法_系统语言改变时,输入法变成默认输入法分析