当前位置: > 关于睿道 > 新闻中心 > 行业动态
  • 睿道简介
  • 新闻中心
  • 园区环境
  • 联系我们
  • 【玩转IT】支付宝AR扫福如何实现?

    2020-01-15 来源:Neuedu东软睿道

          “你扫福了吗?”

          “你集齐五福了?”

          “你有哪些?我们换。”

          春节还有一周多就到了,作为春节序曲的扫福活动已经开始了。

          外行看热闹,内行看门道。作为IT人,是否了解支付宝AR扫福背后的复杂技术:业务层面挑战与实现方案、AR红包支付架构的变化、技术难点和攻克手段、细节优化和保障方法等等。

          今天,我们就来分析一下AR扫福是如何实现的。

          首帧时对图片进行识别,即对多种图片识别,每帧处理时间大概控制在一百毫秒内,所以能快速判断当前拍摄的是否是海报。

          第二帧时,需要判断手机是否静止。当客户端识别不成功,图片传到服务端后,需要判断当前手机是否处于静止状态。而静帧判断也有多种方式,比如通过手机陀螺仪及传感器等进行判断,这里是通过图像判断,使用图像前后帧的差异大小判断,如果在2到3秒连续时间内图像差异不大,那么就判定当前用户的意图是要拍摄一张图片并发送到服务器端识别,所以在第二帧进行的是图像静止判断处理。如果静止判断成功,就会将图片传到服务器端进行识别。


    AR扫福揭秘

          众所周知,计算机是二进制原理运行的,即无论屏幕上显示的是什么,背后计算机接收的,全都是由1和0组成的一串数字,经过翻译解码后形成对应的图像。所以要想让手机识别扫描的是“福”字,而非别的文字或场景,就需要完成以下几步,才能完成这个看似简单的识别过程。

          第1步:先对动态的手机照相机进行稳定的识别,所以这时就需要你稳定手机,对准所要识别的区域,支付宝软件后台开始执行,对焦、拍摄等一些简单初始的图像,并将图像进行简单对齐、校正操作。

          第2步:对处理过的图像进行"二值化"处理,将复杂颜色划分归类,分为前景色和背景色。前景定义为黑色,背景定义为白色。这是为方便程序识别判断,也是为节省资源。

          第3步:将处理好的图片进行修复、降噪处理,让图片更清晰。当一切准备就绪,程序就会开始执行"字符切割"处理,由于拍摄原因多种多样,有未拍摄好的地方在所难免,精心智能的切割补位处理,同时福字在春联和窗花上的特殊性和多变性,也使得切割有一定局限。为了解决这个局限,需要在进行下一步"字符识别"时来优化数据算法,bundling features算法、hash function(散列函数)等。

          第4步:算法都是较常用的算法,基于“福”字来编写算法完全不用考虑到适应所有汉字结构,同时,支付宝最终是为了让用户扫出“福”字,所以对算法要求并不是很严格。这也就是为什么有时候我们发现,并不是一定要写正确的福字才会识别,只要是结构相近的就可以。

          第5步:识别字符与数据库中的字符基本吻合时,会向支付宝服务器发送反馈指令,同时在接受指令时反馈到用户手机,并在应用程序上执行起来,整个过程不到0.5秒就可以完成,随着你扫描越多,系统也会自动学习、优化。


    实现AR扫福技术难点

          1.识别多任务并发,扫一扫的接口不仅需要识别福字,还要识别不同图片,而且红包识别也是通过扫一扫的入口将图上传后台进行识别的,所以这是个多任务并发的过程。

          2.请求高并发,春节期间数据并发非常大,数据量大也是一个挑战。

          3. 福字识别的挑战是,需要对福字的电子图片及手写书法都能识别。

          学完以上内容,现在,来扫福吧。