xMedia来了!支付宝客户端的智能化“武器”
导读:智能终端经过10多年的发展,又一次站在巨变前夕,智能化、去中心化逐渐成为趋势。今天,我们将深入解析支付宝客户端的智能化之路,了解如何在终端侧构建完整的xMedia SDK,为用户提供更加丰富的智能化体验,积极探索和适配新的硬件形态,创造新的应用场景和方式,提升用户体验。
1、智能终端的发展趋势
1983年摩托罗拉第一台移动电话问世开始,手机已走过了30多年的历史。在最初的功能机时代,手机提供语音通话和短信功能,初步解决了人和人之间的交流需求;在随后的智能机时代,高质量的图像、视频能力成为竞争的重点,语音消息、图片共享、视频通话成为社交的主流方式,有效的丰富了人们之间的交流体验。
从苹果2007年发布IPhone开始,智能手机经过10年的发展,目前的视网膜分辨率、4K2K视频拍摄,12M双目拍照已经成为业界主流,音频、视频的效果已基本达到普通用户的体验上限。更高的显示分辨率、更高的图像、视频分辨率对用户的边际价值越来越低,智能手机又一次走到了发展的拐点。
1.1 传感器
摄像头作为最重要的传感器,在过去几十年产生了翻天覆地的变化:
分辨率:从最初的2M增长到现在的主流12M,Nokia曾推出过高达41M的手机;
多目相机:双目相机成为主流,通过双目视觉计算周边环境的深度Depth信息,从而实现大光圈效果、 3D建模等能力;据传华为新一代P20聚成将搭载三目摄像头,增强变焦效果;
主动光源相机:苹果IPhoneX首次将结构光相机引入手机,获得高精度深度Depth信息,实现FaceID;
麦克风作为重要但是容易被忽视的传感器,也有了很大的演进。以IPhoneX为例,通过不同个位置的4个麦克风形成麦克风阵列,实现对声场的重建,实现声源定位、远距离拾音、定向拾音等一系列相应功能。其他手机也基本采用类似设计,提升语音交互及音频体验。
除此之外,手机中集成了陀螺仪(Gyro),加速传感器、距离传感器、气压计、磁力感应器等多种类的传感器,并且精度和种类越来越多,随着多传感器的信息融合,可以提供更丰富的对外界的感知能力。
1.2 计算能力
手机搭载的CPU、GPU能力持续增强,苹果iPhoneX的A11芯片集成43亿个晶体管, 6核CPU (2大4小),3核GPU(对3D游戏、深度学习、AR进行优化),搭载神经网络引擎。高通、华为等手机均在主芯片上搭载NPU支持,可有效的加速深度学习在终端上的运行效果。
1.3 发展趋势
我们认为随着各种传感器的增加、计算能力的增强,尤其是NPU的普及,智能手机会迎来新的变革:
智能化:即手机会更加智能化。手机的发展的重点从增强人和人之间的连接(更高分辨率、更高的图片视频质量)变为对周边环境、对人和环境之间的感知,更加智能化的服务用户。现在的双目相机计算深度信息,麦克风阵列计算用户位置,已经实现了初步的周边环境感知能力;
多样化:手机作为中心的交互方式会逐渐弱化,更自然、更多样的终端设备(例如智能音箱、智能手环、VR/AR设备等)会承接手机的部分功能,从而逐渐减弱手机作为核心交互设备的重要性。目前Amazon/Google/Apple大力投入的智能音箱,就是希望音箱能成为用户在家庭中的一个更自然的交互入口。虽然未来是否能成功有待探索,仍然是一个有益的尝试;
2、多媒体客户端基础
随着支付宝业务需求,从2015年初开始多媒体技术部启动语音、图片、小视频等富媒体通信相关工作。目前在音频视频前端处理领域形成了完整的技术能力,支撑支付宝内各业务场景,为用户提供极致的音视频体验。
前端数据采集是智能化能力的基础,不论人脸识别,图像理解还是语音识别,高质量、低噪声的原始数据是后续高精度识别的基础。我们希望通过多媒体相关技术,在终端上结合算法和工程能力,获取到高质量的原始数据,并高速稳定的传输到云端,作为后续智能化做好准备。
2.1 富媒体通信
目前作为支付宝基础组件,对接云端AFTS/Django/TFS等系统,提供完整的音频/图像/视频编解码、处理、渲染、传输及存储能力,支撑众多业务场景。在自研算法库、缓存优化、网络优化等领域形成自己特有技术能力,并通过数据大盘实现业务数据精细化监控,有效支撑各业务场景精细优化;
2.2 视频直播
2017年自研视频直播组件系统上线,陆续接入口碑、蚂蚁会员周周乐、商家开放平台培训等直播业务,支持最新直播答题特性;
2.3 视频通话
2017年自研视频通话系统上线,支撑闲鱼、菜鸟、IT等业务场景。在支付宝内支持财富远程相关业务(即将上线)。
3、多媒体客户端智能化
基于多媒体客户端高质量的数据采集,多媒体技术部在终端上布局系列技术,提升终端的理解能力(xNN)、空间感知能力(xSLAM)、3D渲染能力(xAnt3D),人机交互能力(手势识别、人体姿态识别等等)。多种能力结合支撑更加智能化的业务场景,为用户提供更加智能化的体验。
3.1 客户端深度学习引擎xNN
近年来,深度学习(DL)在图像识别、语音识别、自然语言处理等诸多领域都取得了突破性进展。DL通常给人以计算复杂、模型庞大的印象。常规应用场景都是手机终端采集数据,云端识别处理。但是对于很多需要低延时、低带宽、高隐私的应用而言,客户端的DL能力是非常必要的。对于支付宝这种海量用户APP,如果能将部分DL工作转移到客户端来实现,对用户体验和云端降成本都有很大的价值。
2017年8月,自研客户端深度学习引擎xNN上线支付宝10.0.20版本,将DL能力推到终端,通过边缘计算实现高实时应用,有效的降低云端负载,提升用户体验。自研xNN具有如下特点:
小引擎:通过移动端SDK的深度裁减,安卓平台只有200KB;
轻模型:通过高效的模型压缩算法,实现高精度+小尺寸的模型;
快速:结合指令层和算法层的优化,综合提升DL计算的效率;
普适:不仅支持经典的CNN、DNN网络,也支持RNN、LSTM、TFLite等网络形态;
易用:完整模型转换工具链,算法工程师能快速完成云端模型到移动端模型的转换和部署;
xNN上线后,已经帮助蚂蚁的多个业务,包括支付宝(扫五福等)、保险、财富、芝麻信用、网商银行,完成客户端DL算法的部署,并输出到多个外部合作公司。阿里巴巴集团范围内,也有多个BU在逐步接入。这得益于xNN自身优秀的性能,具体的:一方面,xNN能够提供提供高达近数十倍的模型压缩能力,解决了DL算法模型尺寸过大的落地瓶颈;另一方面,xNN不仅支持基础的分类任务,而且已能够为更为复杂的目标检测、语义特征点提取等任务提供高效的移动端解决方案。
3.2 客户端位姿计算引擎xSLAM
在我们面临的很多问题中,需要知道手机在空间中的位置和姿态,从而反向推断出用户所在的位置和姿态。SLAM(simultaneous localization and mapping)作为业界广泛使用的定位技术,通过机器视觉和手机传感器相结合,解算出手机在空间中的位置和姿态(6自由度)。SLAM涵盖了图像视觉、多视几何的几乎所有关键算法,对于算法能力、性能优化、终端适配及鲁棒性提出了很高的要求。
2017年9月,自研xSLAM引擎在支付宝10.1.5版本上线。自研算法针对算法在三维空间估计和位姿估计的准确度上,以及不同机型的硬件差异(特别是Andriod手机的IMU质量参差不齐),做了大量的算法及工程适配优化工作,同时在工程上基于各类芯片的GPU/DSP进行极致优化。
SLAM上线后,第一个业务是AR平台扫可口可乐福娃活动。目前保险、萌宝等业务接入中。作为手机位置姿态的基础能力,我们确信后续会支撑更多的业务场景。
3.3 客户端3D渲染引擎xAnt3D
3D渲染是三维计算机图形学最重要的研究课题之一,并且在实践领域与其他技术密切相关,是智能化技术的交互入口。3D渲染是指将3D模型文件(包括几何、视点、纹理、照明和阴影等信息)进行实时渲染获得3D效果。
支付宝3D渲染引擎xAnt3D来自于2017年春节红包的AR互动需求。多媒体技术部虽然之前在图片裁剪/美颜、视频渲染等等较多场景下使用过OpenGL技术,但和2D渲染场景相比,3D渲染涉及3D数学模型、view、project矩阵计算,以及粒子、阴影、光线、平面计算等知识,覆盖光学、视觉感知、数学及软件工程等技术点,对我们产生较大的挑战。
经过1年多的研发工作,xAnt3D移动端轻量级3D渲染引擎,在图像跟踪、陀螺仪跟踪、SLAM跟踪等条件下对模型动画进行稳定的渲染。同时在工程上做了深度的优化工作,Android4.3以上全机型兼容,支持特性有骨骼动画、节点动画、材质贴图、粒子效果、光线、透明视频、文字渲染,同时具备JS脚本扩展支持能力,并可以实现30fps的流畅渲染效果(依赖于手机采集帧率)。在支付宝环境中,xAnt3D渲染引擎在移动端轻量级包大小分在1MB左右。随着更高质量的人机交互要求,xAnt3D渲染引擎肯定会起到更多的作用,支撑更多业务场景。
体验效果可参考上面3.2中xSLAM福娃3D渲染效果。
3.4 客户端人机交互能力
随着终端处理能力和用户要求的提高,我们希望给用户提供类似手势识别、人体姿态识别等更加自然的交互方式,创造更加新颖有趣的玩法,打造新的应用形态。
2018年春节AR红包中的“五福到”红包,首次利用人脸+人手手势的方式进行用户交互。为了降低云端负载,提高用户相应时间,手势识别在客户端实现,业务获得了较大的影响和用户的好评。我们后续有计划在更多业务场景中使用手势识别,并且将支
持更加复杂的手势。
人体姿态估计作为对人体姿态的理解能力,可给大量线上线下场景赋能,创造新的应用空间。例如在线上场景,可以在无需额外体感设备的条件下提供体感操作、体感娱乐的功能(例如QQ高能舞室)。在线下可以实现类似跳舞机的产品;在营销活动中,无论线上还是线下,该技术均可为商家营销提供用户互动体验。
4、多媒体泛终端能力
如最初所述,用户交互方式会逐渐从围绕手机的中心化逐渐离散化,多媒客户端SDK也在技术上做好相应准备,以便将手机上的多媒体能力快速的移植到其他硬件平台,支撑多样性的用户终端,支持业务发展。
网络能力:网络传输使用发布/订阅消息模式,使用小型传输、开销小、协议交互最小化的协议。不同消息传输发布不同服务质量类型消息,可支持低带宽、不可靠的网络传输及弱硬件能力设备;
跨平台能力:增加底层代码跨平台覆盖,和平台特性无关逻辑下沉通过C实现增加Kernel层,上层涉及平台差异性逻辑再通过iOS/Android/Liunx等系统方法来调用;
底层驱动能力:传感器采集等其他硬件驱动扩展支持储备,如智能货柜场景需要支持多摄像头数据采集处理,增加了对USB驱动、Camera驱动等技术储备。
目前相关技术已经应用在行业智能机具管控平台、无人货柜、远程娃娃机等项目中。
5、xMedia技术沙盘
多媒体技术部围绕多媒体基础体验、智能化体验、工程及优化能力,形成完整的多媒体客户端方案xMedia。在核心算法层构建算法技术壁垒,在组件层形成多样的多媒体能力,可以快速上线支撑业务发展。xMeida SDK具有如下特点:
完备:完整多媒体解决方案,包括内容采集、处理、理解、交互、网络、缓存等,实现业务快速接入;
智能:丰富的智能化算法能力,包括智能压缩、处理、视觉理解、深度学习,可在客户端实现丰富功能;
普适:精细化的缓存管理,深入的终端适配工作,终端兼容性高;
传输:多样性的网络传输协议、自适应的网络调度策略,支持富媒体、视频通话、直播等业务场景;
5.1 算法层
算法及相应的工程化是xMedia的竞争力核心,我们在多媒体数据采集、处理、理解、交互及工程化等环节都进行了深入的工作:
多媒体数据采集:(1)在目前双目及多目相机、多麦克风、多扬声器成为标配的现状下,如何充分利用既有硬件提升图像、视频、音频的采集和播放效果,创造新的应用场景是我们面临的重要问题。目前我们已充分掌握多目相机及麦克风阵列等硬件设计及开发能力,既能充分使用终端上的硬件能力,也可以根据需求定制相应的软件硬件方案,形成自己技术壁垒。(2)IMU是终端上另一种重要的传感器数据,对于SLAM有重要的作用,而Andriod平台的IMU精度是我们面临的最大问题。通过大量数据的采集和测试,我们初步完成了终端适配和数据降噪问题,可以满足大部分场景;(3)未来相机、麦克风、IMU等传感器数据融合是必然的趋势,在不同场景下取长补短,获得高精度的数据。相关的技术也在储备中;
多媒体数据处理:(1)压缩:我们对于语音、图像、视频提供丰富的编解码支持,基于HEVC的图像编解码器也已上线灰度;(2)处理:我们提供丰富的图像及视频裁剪、降噪、增强能力;(3)人脸:我们提供丰富的人脸特效,支撑社交及其他场景的应用;(4)音频及语音:我们对于语音3A、音频信号处理有深入理解,支撑音频录制、语音通话、音乐播放等相关场景;
多媒体数据理解:(1)深度学习xNN 深度优化的移动端上DL引擎;(2)位姿计算xSLAM提供高精准和稳定的三维空间估计和位姿估计;(3)目标跟踪x3Dot提供2D、3D的检测及跟踪能力;(4)OCR识别用于银行卡识别、燃气表识别、汽车行驶里程等业务场景;
多媒体工程能力:工程能力和用户体验息息相关,高质量的工程能力决定了算法能否成功落地。(1)性能优化,包括摄像头启动耗时优化,精细化内存缓冲区管理,网络上传耗时优化,通过IP直连、域名收敛、线程通道隔离等优化网络下载成功率及耗时;(2)鲁棒性&兼容性,xMedia SDK在支付宝上经受复杂应用场景的考验,闪退率远低于万分之一的指标;尤其是解决众多Android多厂商及多系统各种各样的兼容性问题; (3)包大小,深度裁剪优化;
5.2 组件层
基于核心算法,我们提供丰富的多媒体组件供业务层使用:
多媒体基础能力:提供丰富的语音、图像及视频处理接口,提供完整的富媒体通信、直播及通话引擎,业务可以快速接入;
多媒体智能能力:提供客户端上深度学习引擎、位姿计算引擎、目标检测引擎、3D渲染引擎、手势识别/人体姿态识别的人机交互能力,支撑各种应用场景;
6、总结及展望
智能终端经过10多年的发展,又一次站在巨变前夕,智能化、去中心化逐渐成为趋势。多媒体技术部集成算法、工程及硬件能力,希望在终端侧构建完整的xMedia SDK:在手机上提供更加丰富的智能化体验,积极探索和适配新的硬件形态,创造新的应用场景和方式,提升用户体验。我们希望通过自己的努力,实现用户、商家、设备之间的互联互通,实现我们人人互通,万物互联的梦想!
关注「技术边城」 把握前沿技术脉搏