深度解析阿里云ET之OCR

  1. 云栖社区>
  2. 博客>
  3. 正文

深度解析阿里云ET之OCR

xampp 2016-08-27 12:57:50 浏览8487
展开阅读全文

摘要:什么是印刷字文字识别(OCR)技术?通俗易懂的说就是将图片中的文字识别出来。随着机器性能以及算法的不断演进,OCR技术在越来越多的领域得到应用,比如身份证内的信息识别、门店招牌内容识别等。作为人工智能领域的代表,OCR技术正在改变人们的生活,让越来越多的用户感受到科技发展带来的红利。

背景介绍

阿里云印刷字识别是有IDST-OCR团队开发,主要针对证件类图片进行识别。


TB1YV17MVXXXXXFXVXXXXXXXXXX-865-563.png

阿里云OCR产品的主要优势如下:

TB1qgy_MVXXXXXHXFXXXXXXXXXX-865-445.png

阿里云证件类OCR技术

证件类图像有他天然的一个特点,就是强模板,易于结构化。比如身份证包含且一定包含姓名,性别,民族,出生,住址,公民身份照号码,签发机关,有效期等字段,而驾驶证则一定有姓名,准驾车型,有效期等字段,其他的证件也类似。

TB1StO_MVXXXXb_XFXXXXXXXXXX-341-211.png

TB1bJO7MVXXXXctXFXXXXXXXXXX-331-221.png

针对证件类的强模板类特征,阿里云的证件类OCR技术,在文字区域检测阶段加入了人脸,文字标题区域,印章,国徽等强特征,极大地提高文字区域检测的准确率和速度。比如:利用人脸定位,可以找到证件的方向角度和大概位置,利用下图中固定的区域模板,可以快速定位到所需字段的位置,从而也有利于定位方向角度,缩小所需字段文字区域。

在模型的训练上,阿里云利用字体库,人工生成大量的样本图片数据,再根据真实的场景,进行图像扭曲,模糊,曝光等多种不同技术,组合出不同程度的加噪效果,作为模型训练的基础输入,生成了几十亿条样本数据,模型具有极佳的鲁棒性。下图是人工生成的样本示例图。

TB1_zvgMVXXXXcpXpXXXXXXXXXX-418-359.png

支持如此大规模的离线图像模型训练,则是阿里云提供的GPU高性能服务器,以及基于多服务器,多GPU卡和高速网络连接的集群模型训练(内部称之为PAI-Pluto, PAI是阿里云机器学习平台的代号,欢迎申请试用),主流的GPU卡的计算能力要远远强于CPU。下图是Pluto在跑深度学习模型时的计算加速比。

TB1DDW4MVXXXXXPXVXXXXXXXXXX-693-502.png

在整行模型的识别中,主要使用的是LSTM技术,相比RNN,LSTM能更好的解决梯度衰减(gradient vanishing)的现象。LSTM的基本结构如下图所示,通过多个门电路的结合,使得LSTM可以有效的学习到较长时间序列之间的关系。

TB1PMe3MVXXXXatXVXXXXXXXXXX-682-261.png

整行模型主要用于不便于切字的场景,比如地址,号码等等。

准确率

身份证识别在阿里内部某场景下,准确率(条目一字不差完全对)如下:

TB10he0MVXXXXbrXVXXXXXXXXXX-593-62.jpg

驾驶证的准确率和相关竞品的准确率(条目一字不差完全对)对比如下:

TB1QuLiMVXXXXbuXpXXXXXXXXXX-495-185.jpg

身份证识别:算法识别部分平均时间在0.8秒左右,前端接口部分,由于需要网络传输图片,这部分性能损失比较严重,测试500k,需要1-2秒左右,这个未来阿里云OCR会引入OSS(OSS为对象存储服务, https://www.aliyun.com/product/oss ),用户只需要提供OSS的访问路径和相关授权,就可以极大地减少这部分图像的网络传输时间。

行驶证和驾驶证:算法识别部分平均时间在1秒左右

营业执照:由于图片相对较大,性能较弱,在2秒左右

目前所有的OCR识别都采用的CPU,如果对性能比较有要求,后续阿里云有计划使用GPU,FPGA等技术来提升预测的性能。

网友评论

登录后评论
0/500
评论
xampp
+ 关注