谷歌开发者:看可口可乐公司是怎么玩转TensorFlow的?

在这篇客座文章中,可口可乐公司的 Patrick Brandt 将向咱们介绍他们如何使用 AI 和 TensorFlow 实现无缝式购买凭证。算法

可口可乐的核心忠诚度计划于 2006 年以 MyCokeRewards.com 形式启动。“MCR.com”平台包含为每一瓶以 20 盎司规格销售的可口可乐、雪碧、芬达和动乐产品,以及能够在杂货店和其余零售商店购买的纸箱包装产品建立惟一的产品编码。用户能够在 MyCokeRewards.com 上输入这些产品编码来参加推广活动。编程

几年后的 2016 年:可口可乐的忠诚度计划仍然大受欢迎,用户已经输入了数以百万计的产品编码来参加促销和抽奖。不过,移动浏览在 2006 年还不存在,而到了 2016 年末已占据超过 50% 的份额。为了响应这些浏览行为变化,Coke.com 做为一项移动优先网络体验启动,替代了原来的 MCR.com。将 14 字符编码手动输入到移动设备中着实是一种很是糟糕的用户体验,会影响咱们的计划取得成功。咱们但愿为移动受众提供尽量最好的体验,人工智能的最新进展带来了全新的机遇。服务器

实现无缝式购买凭证的任务
多年来,可口可乐一直尝试使用现成的光学字符识别 (OCR) 库和服务读取产品编码,但收效甚微。咱们的印刷工艺通常使用低分辨率点阵字体,瓶盖或纸箱媒介在打印头下面以很是快的速度运转。这就产生了低保真字符串,让现成的 OCR 软件没法读取这些字符(有时人眼也很难阅读)。OCR 对简化移动用户的编码输入过程相当重要:用户应当可以为编码拍照,而后自动进行购买注册来参加促销。咱们须要一个用途特定的 OCR 系统来识别咱们的产品编码。网络

▲ 瓶盖和纸箱示例架构

咱们的研究将咱们引向了一种前景无限的解决方案:卷积神经网络。卷积神经网络是一系列“深度学习”神经网络中的一种,这些神经网络是现代人工智能产品的核心。Google 已使用卷积神经网络从街景图像中提取出街道地址门牌号。卷积神经网络在识别手写数字方面的表现也至关不错。这些数字识别用例完美表明了咱们一直尝试解决的问题类型:从包含小字符集而且小字符集中所含字符的外观千差万别的图像中提取字符串。框架

经过 TensorFlow 实现的卷积神经网络
过去,因为可用的训练和推理库极其复杂,开发像卷积神经网络同样的深度神经网络一直都是一项巨大的挑战。TensorFlow(Google 于 2015 年开放源代码的一种机器学习框架)旨在简化深度神经网络的开发。机器学习

TensorFlow 为不一样种类的神经元层和热门损失函数提供了高级接口,简化了实现不一样卷积神经网络模型架构的工做。快速迭代不一样模型架构的能力大大缩短了咱们公司构建自定义 OCR 解决方案所需的时间,由于咱们能够在短短几天的时间内开发、训练和测试不一样的模型。TensorFlow 模型也很是便携:框架以原生方式支持在移动设备上(“边缘上的 AI”)或在远程托管于云端的服务器中执行模型。这就为许多不一样平台(包括网络和移动设备)之间的模型执行带来了一种“一劳永逸”的方式。函数

机器学习:熟能生巧
任何神经网络的智慧都不会超过用于训练它的数据。咱们知道本身须要大量带标签的产品编码图像来训练一个卷积神经网络,从而帮助咱们实现性能目标。咱们的训练集分三个阶段构建:
启动前模拟图像
启动前真实图像
咱们的用户在生产中标记的图像性能

启动前训练阶段的第一项工做是以编程方式生成数以百万计的模拟产品编码图像。这些模拟图像包括倾斜、光照、阴影和模糊强度变化。在模型仅使用模拟图像进行训练时,它对真实图像的预测准确率(即,可信度最高的 10 个预测中准确预测所有 14 个字符的频率)为 50%。这为迁移学习提供了一个基线:最初使用模拟图像训练的模型是将要使用真实图像训练的更准确模型的基础。学习

挑战如今就成了使用充足的真实图像丰富模拟图像以实现咱们的性能目标。咱们为 iOS 和 Android 设备构建了一款用途特定的训练应用,“训练人员”可使用这款应用为编码拍照并添加标签;这些带标签的图像随后迁移到云存储中进行训练。咱们对瓶盖和纸箱上的数千个产品编码进行了生产测试,并将代码分配给多个供应商,他们使用这款应用建立初始的真实训练集。

即便是一个通过加强和丰富的训练集,也没法替代最终用户在各类环境条件下建立的图像。咱们知道扫描可能致使编码预测不许确,所以咱们须要提供一种能让用户迅速纠正这些预测的用户体验。两个组件对提供这种体验相当重要:产品编码验证服务,它从咱们最初的忠诚度平台于 2006 年启动以来就一直在使用(用于验证预测的编码是不是真实编码);预测算法,用于执行回归来肯定 14 个字符位置上每一个字符的可信度。若是预测的编码无效,置信度最高的预测和每一个字符的可信度水平将返回到界面。低置信度字符将突出显示,指导用户更新须要注意的字符。

▲ 错误纠正界面让用户能够纠正无效预测并生成有用的训练数据

这个界面创新实现了一个主动学习过程:反馈循环让模型能够将纠正的预测返回训练管道,逐步改进。咱们的用户能够经过这种方式随着时间有组织地提升字符识别模型的准确率。

▲ 产品编码识别管道

针对实现最大性能进行优化
为了知足用户对性能的指望,咱们为产品编码 OCR 管道创建了一些严格的要求:
快速:咱们在产品编码图像发送到 OCR 管道后须要平均一秒的处理时间
准确:咱们启动时的目标是实现 95% 的字符串识别准确率,并保证模型能够经过主动学习随着时间不断改进
小型:OCR 管道须要足够小,以便直接分发到移动应用上,并在模型随着时间不断改进时可以适应无线更新
OCR 管道须要处理不一样的产品编码介质:数十种不一样的字体类型、瓶盖与纸箱包装介质组合

最初,咱们探索了一种为全部产品编码介质使用一个卷积神经网络的架构。这种方式建立的模型过大,没法分发至移动应用,而且执行时间也比所需的时间长。咱们在 Quantiphi, Inc. 的应用 AI 合做伙伴开始迭代不一样的模型架构,并最终肯定了一种使用多个卷积神经网络的架构。

这种新架构在不牺牲准确率的前提下显著减少了模型大小,不过仍然没法知足咱们为移动应用提供无线更新支持的须要。咱们随后使用了 TensorFlow 的预构建量化模块,它能够经过减少相连神经元之间的权重保真度来减少模型大小。量化模块将模型大小减少了 4 系数,可是当 Quantiphi 使用一种名称为 SqueezeNet 的新方式取得突破后,模型大小显著减少。

SqueezeNet 模型由加州大学伯克利分校和斯坦福大学的一组研究人员于 2016 年 11 月发布。它采用小型但高度复杂的设计,根据 Imagenet 等热门基准的数据,它能够实现与大得多的模型至关的准确率水平。在从新设计咱们的字符识别模型架构以使用 SqueezeNet 卷积神经网络后,Quantiphi 将特定介质类型的模型大小减少了 100 系数。因为 SqueezeNet 模型本质上就比较小,能够构建更丰富的功能检测架构,凭借比咱们第一批并不是使用 SqueezeNet 训练的模型显著减少的大小实现明显提升的准确率。咱们如今拥有一个能够在远程设备上轻松更新的高度准确模型;咱们在主动学习以前的最终模型的识别成功率接近 96%,能够带来 99.7% 的字符识别准确率(每 1000 个字符预测中仅有 3 个出错)。

▲ 具备不一样类型遮挡、平移和照相机焦点问题的有效产品编码识别示例

经过 AI 跨越边界
人工智能的发展和 TensorFlow 的成熟让咱们最终能够实现求之不得的购买凭证能力。自从 2017 年 2 月底启动以来,咱们的产品编码识别平台已经为十多个促销活动提供帮助并生成了超过 18 万个扫描代码;它如今已成为可口可乐北美地区全部网络促销活动的核心组件。

迁移到由 AI 提供支撑的产品编码识别平台对咱们很是有价值,两个主要缘由包括:
及时实现无缝式购买凭证,与咱们向移动优先营销平台的总体转变保持一致。
可口可乐避免了更新生产线中的印刷机以支持更高保真度字体(适合现有的现成 OCR 软件)的要求,节省了数百万美圆的资金。

咱们的产品编码识别平台是以 AI 为支撑的新能力在可口可乐公司内的首次大规模执行。咱们目前正在多个业务领域探索 AI 应用,从产品开发到电子商务零售优化,不一而足。

原文连接:https://mp.weixin.qq.com/s/qEnVTpu50L0c7wp8VvJWOA

更多机器学习教程:http://www.tensorflownews.com/

相关文章
相关标签/搜索