给AI换个“大动力小心脏”之OCR异构加速


导语:OCR在通用文字识别等场景下有广泛应用,基于FPGA异构加速的OCR识别相比CPU/GPU实现具有延时小、成本低的优势。我们设计了多FPGA芯片协同的异构加速架构,能快速适配业务OCR模型变化,检测识别整体性能为GPU P4 130%,处理延时仅为P4的1/10,CPU的1/30。

文字识别技术- OCR

OCR技术,通俗来讲就是从图像中检测并识别字符的一种方法,在证通用文字识别、书籍电子化、自动信息采集、证照类识别等应用场景中得到了广泛应用。通用场景的OCR因此通用场景下的OCR技术一直都是人工智能领域挑战性极强的研究领域,不需要针对特殊场景进行定制,可以识别任意场景图片中的文字。

通用OCR技术包含两大关键技术:文本检测和文字识别。检测模型的作用简单来说就是确定图片中哪里有字,并把有字的区域框出来。文字识别是将文本检测box作为输入,识别出其中的字符。

近年来深度学习逐渐被应用到音频、视频以及自然语言理解等时序数据建模的领域。通过深度学习的端到端学习提升Sequence Learning的效果已经成为当前研究的热点。基本思路是CNN与RNN结合:CNN被用于提取有表征能力的图像特征,将RNN的序列化特性引入到文本检测,增加了文本检测候选区域的上下文信息,可以有效地提升文本检测任务的性能。CNN+RNN的混合网络将文本串识别领域的效果推到了一个新的高度。


图1:CRNN网络结构

*上图引用自《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition》。


我们以目前应用十分广泛的CRNN模型为例,它是DCNN和RNN的组合,可以直接从序列标签学习,不需要详细的标注;比标准DCNN模型包含的参数要少很多。同时CRNN在图像特征和识别内容序列之间严格保序,擅长识别字分割比较困难的文字序列。

架构包括三部分:

1) 卷积层,从输入图像中提取特征序列,将图像进行空间上的保序压缩,相当于沿水平方向形成若干切片,每个切片对应一个特征向量;

2) 循环层,预测每一帧的标签分布;采用双层双向的LSTM,进一步学习上下文特征,据此得到切片对应的字符类别。

3) Transcription层,利用CTC和前向后向算法求解最优的label序列。

 OCR加速架构

依赖于FPGA的可编程性、高性能以及高通信带宽,我们设计了一个多FPGA芯片协同的异构加速架构。单一芯片针对一种类型的模型进行深度定制优化,不同芯片之间通过负载均衡以及流水化来完成整个混合模型的加速过程。


图2:OCR加速硬件架构

  • FPGA 0配置为通用的CNN加速架构
  • FPGA 1配置为通用的LSTM加速架构
  • 对于计算量较小的FC使用CPU进行计算,保持模型灵活性
  • FPGA与服务器CPU通过PCIe Gen3进行数据通信,负载均衡由CPU进行控制
  • FPGA间通过AURORA轻量级协议进行数据交换,数据交换延时ns级,类似不同板卡间内存共享
  • 平台后续升级可支持服务器间的多任务并行/流水调度

为特定的深度学习模型进行底层深度架构优化,通过架构层面上的优化来充分发挥异构加速器件的性能,达到最大的计算收益。

通用加速器引擎

针对CNN以及LSTM这两类最常用的深度学习算法,我们设计了两种加速架构;每种架构能够通过“指令集+基本算子”的形式,能够较为灵活的支持各类模型变种。


3.1 CNN计算引擎


CNN模型的核心计算是Kernel在input feature map滑窗进行3D卷积计算,Kernel数据复用率高,整体计算密度大。

CNN加速器当前版本基于Xilinx Ku115芯片设计,PE计算单元由4096个工作在500MHz的MAC dsp核心构成。KU115芯片由两个DIE对堆叠而成,加速器平行放置了两组处理单元PE。每个PE由4组32x16=512的MAC计算DSP核心组成的XBAR构成。

计算架构设计的关键在于提高数据复用率来提升DSP计算效率,实现模型权重复用和各layer feature map的复用。

其基本组织框架如下图所示:


图3:CNN计算引擎架构


3.2 LSTM计算引擎


LSTM模型的核心是向量*矩阵及对应各gate的激活函数。权重矩阵数据量大,同时时间序列上数据存在前后依赖关系,模型中可挖掘的的计算并行度小。

LSTM加速器当前版本基于Xilinx Ku115芯片设计,PE计算单元由4096个工作在300MHz的MAC dsp核心构成。对于核心PE单元,我们将其细分为64个bank,每一个bank由64个级联的DSP组成,利用DSP特性完成向量乘法过程中的乘累加过程。

计算架构设计的关键在于降低访存消耗。在控制部分,需要控制好ROW A和Col B的数据pipeline输入,保证计算数据之间的匹配;在PE输出端需要把控好激活函数的并行性,保证模型计算流水线的高效性。

其基本组织框架如下图所示:


图4:LSTM计算引擎架构

性能对比

对于使用者而言,FPGA平台性能、开发周期以及易用性究竟如何呢?


1.性能

CNN加速平台,峰值计算性能为4Tops,模型inference latency为GPU P4的1/10。

LSTM模型中,峰值计算性能为2.4Tops,FPGA 2us内可以完成一次核心矩阵为1024*512的计算过程(8次1*1024与1024*512向量乘矩阵及相关的激活函数)。

2.易用性

FPGA加速器对底层加速过程进行封装,向上对加速平台的业务方提供易用SDK。业务方调用简单的API函数即可完成加速操作,对业务自身逻辑几乎无任何改动。

如果线上模型需要改动,只需调用模型初始化函数,将对应的模型指令集初始化FPGA即可,加速业务可以在几秒内进行切换。

3.硬件加速开发周期

底层CNN加速平台以及LSTM加速平台,架构通过模型映射指令集的方式进行加速。

对于经典模型及标准layer自研的算法变种,现有加速架构已经可以支持,可以在一天内通过编译器实现模型对应指令集,实现部署上线;

对于自研的特殊模型,例如不对称卷积算子或LSTM特殊结构,需要根据实际模型结构在本平台上进行相关算子迭×××发,开发周期可缩短在一到两周之内进行支持。

结语

目前OCR技术在证件识别、快递单扫描、信息安全审核等领域有着广泛的应用。架构平台部FPGA团队研发的OCR硬件加速解决方案,提供低成本、实时性AI计算加速,将持续助力公司内各业务发展。

在云端,2017年初,我们在腾讯云首发了国内第一台FPGA公有云服务器,我们将会逐步把基础AI加速能力推出到公有云上。

AI异构加速的战场很大很精彩,为公司内及云上业务提供最优的解决方案是架平FPGA团队持续努力的方向。

本文转自公众号“腾讯架构师”

原文地址:http://blog.51cto.com/13591395/2067387

时间: 2024-10-25 09:31:16

给AI换个“大动力小心脏”之OCR异构加速的相关文章

Maze_AI: 一款基于 Python + Pygame + AI 算法的迷宫小游戏

大三课程设计周自己一个人写的迷宫小游戏 (一)课题内容 实现走迷宫. 主要功能为界面显示.上下左右键的响应以及当前步数统计. 通过该课题全面熟悉数组.字符串等的使用,掌握程序设计的基本方法及友好界面的设计. (二)课题要求 1. 基本要求 (1)游戏界面显示:迷宫地图.上下左右移动的特效. (2)动作选择:上下左右键对应于上下左右的移动功能,遇到障碍的处理. (3)得分统计功能:步数等. 2. 扩展要求 (1)用户数据管理. (2)设计一个自动走迷宫的程序,使得得到最短路径. (三)组队分工情况

一个非常有趣的爬虫小练习带ocr识别的

有个小的想法,想找一找 形近字 .百度一搜索,百度文库有一个,收费4元.而且我觉得字数不是太多.想自己弄一个,于是找到了 这个网站 http://www.fantiz5.com/xingjinzi/ 这里面据说字数很多,开练! 主要是为了学习 chrome,开发者调试 发现 有个 zhuan() 的js 找到这个函数 找到这个函数了,开始研究里面的代码 意思是 把输入的汉字 如  ‘中’  ,转化为 url编码 再去掉 % ,再转换成 小写. 再看这行代码,把转后的结果 拼字符串,直接访问. 如

爱与恨,罪与罚,浅谈互联网金融的安全隐患

那些年,我尝过的互联网的鲜 我是一个数据库安全从业者,尽管每天会听到.看到.处理该领域相关的安全事件,但基于侥幸心理,从概率角度来推断,从未想过,从未发生过,这种事情真的会落到自己的头上.尽管我每天有数通电话是来自各种银行担保.投资理财.外汇交易,但这些,都没有能够足够触动到我那根敏感的神经,直到一个与往常一样的下午,这件事的发生... 我同时是一个互联网模式的拥趸,各种与此相关的新鲜事务,最新应用,我都会勇于去尝试,期间不吝惜提供个人相关信息,这些信息包括,姓名.电话.邮箱,甚至与此关联的**

阿里云小Ai战胜人类速记,中文人工智能大时代崛起

还记得前不久2016谷歌开发者I/O大会上展示的人工智能语音搜索助理Google Assistant以及基于该语音助理的智能硬件Google Home吗?它们的背后是准确的英文语音识别能力. 如今,以微软Cortana.苹果Siri和Google Assistant为第一军团的人工智能语音识别技术正在大规模商业化与产品化,英文人工智能大时代已经开始.那么,相应的中文市场呢? 中文语音识别挑战人类速记 在6月15日的阿里云厦门云栖大会上,阿里云人工智能小Ai在上千观众的面前完成了现场中文语音识别的

递归小题中的空间换时间思想

题目: 如数: 1  1  2  3   5   8   13   21  34  55 ...... 序号: 0  1  2  3   4   5   6     7    8    9 ...... 由用户输入序号,输出对应的数值. 效果: 实现代码: #include <stdio.h> int bian(int num); //static int shu[100]={1,1}; int main() { int num; while ( printf("请输入编号数:&qu

小Ai成功预测我是歌手依靠的是什么

4月8日晚,湖南卫视<我是歌手>第四季落下帷幕,李玟成为新一代歌王.除了李玟,一个叫阿里云小Ai的人工智能程序也出尽风头,成为舆论焦点.当然一路开挂的阿里云小Ai成功预测歌王归属离不开背后大量的数据支撑,大量的数据搜集整理需要靠Navicat数据库管理工具来完成. Navicat 数据库管理工具下载地址:http://www.formysql.com/xiazai.html 这个来自阿里云的人工智能程序,准确预测了李玟将成歌王,让“机器”变成“机器人”,开启了解人类情感逻辑的先河.电视全程直播

3438: 小M的作物[最小割]

3438: 小M的作物 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1073  Solved: 465[Submit][Status][Discuss] Description 小M在MC里开辟了两块巨大的耕地A和B(你可以认为容量是无穷),现在,小P有n中作物的种子,每种作物的种子 有1个(就是可以种一棵作物)(用1...n编号),现在,第i种作物种植在A中种植可以获得ai的收益,在B中种植 可以获得bi的收益,而且,现在还有这么一种神奇的现

BZOJ3438 小M的作物(最小割)

题目 Source http://www.lydsy.com/JudgeOnline/problem.php?id=3438 Description 小M在MC里开辟了两块巨大的耕地A和B(你可以认为容量是无穷),现在,小P有n中作物的种子,每种作物的种子有1个(就是可以种一棵作物)(用1...n编号),现在,第i种作物种植在A中种植可以获得ai的收益,在B中种植可以获得bi的收益,而且,现在还有这么一种神奇的现象,就是某些作物共同种在一块耕地中可以获得额外的收益,小M找到了规则中共有m种作物组

CCAI 2017 | 小数据学习对人工智能究竟有着怎样的影响?

原文链接 摘要: 中国人工智能大会(CCAI),由中国人工智能学会发起,目前已成功举办两届,是中国国内级别最高.规模最大的人工智能大会.秉承前两届大会宗旨,由中国人工智能学会.阿里巴巴集团 & 蚂蚁金服主办,CSDN.中国科学院自动化研究所承办,云栖社区作为独家直播合作伙伴的第三届中国人工智能大会(CCAI 2017)将于 7 月 22-23 日在杭州召开. 近几年来,得益于大数据的积累.计算能力的提升,深度学习从学术到工程领域均取得了非常显著的发展与突破,尤其是诸如图像识别.语音识别等实际场景