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

author author     2022-10-13     502

关键词:


技术分享图片




导语: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团队持续努力的方向。



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


技术分享图片

深度学习的异构加速技术:螺狮壳里做道场

...员,隶属腾讯TEG-架构平台部,主要研究方向为深度学习异构计算与硬件加速、FPGA云、高速视觉感知等方向的构架设计和优化。“深度学习的异构加速技术”系列共有三篇文章,主要在技术层面,对学术界和工业界异构加速的构... 查看详情

云边端一体化的异构ai计算

...开发部署带来较大的挑战。 本次分享主要介绍阿里云AI异构计算编译框架HALO以及面向深度学习的异构硬件统一接口规范ODLA,通过具体的实例说明如何利用异构编译和硬件架构抽象实现上层应用在异构计算资源上的平滑迁移... 查看详情

又一重要进展发布!openmmlab算法仓支持昇腾ai训练加速

...MDeploy0.10.0版本,该版本已支持OpenMMLab算法仓库在昇腾异构计算架构CANN上的推理部署。本文分享自华为云社区《又一重要进展发布!OpenMMLab算法仓支持昇腾AI训练加速》,作者:昇腾CANN。近日,上海人工智能实... 查看详情

王磊:ai时代物流行业的ocr应用

...没有明显边界,文本框内除了笔画,其余部分均是背景,给文本识别 查看详情

昇腾ascend随记——昇腾ai的基本架构

文章目录1.昇腾AI全栈架构1.1昇腾AI全栈的四个大部分2.异构计算架构CANN2.1CANN抽象的五层架构2.2CANN的三层逻辑架构1.应用层2.芯片使能层3.计算资源层3.昇腾计算语言接口AscendCL3.1AscendCL简介3.2AscendCL的优势3.3AscendCL的主要应用场景3.4... 查看详情

ai异构通信:重压下的突围,华为p50系列的卓越体验

AI异构通信是华为长期以来根据用户体验和开发者需求不断优化网络连接能力推动多种网络能力并行,长期积累下来的能力释放,以期给用户一个完美的上网体验。撰文|懂懂编辑|秦言来源:懂懂笔记 “华为不会让消费者失... 查看详情

“清洁地球日”看ai与碳中和:百度ocr成无纸化办公利器

...字识别技术以其与“节约纸张”的高度关联,成为了加速碳中和进程的重要推进力量。在“无纸化”办公需求日益迫切时,OCR快速渗透到政企机构与 查看详情

又一重要进展发布!openmmlab算法仓支持昇腾ai训练加速

...MDeploy0.10.0版本,该版本已支持OpenMMLab算法仓库在昇腾异构计算架构CANN上的推理部署。本文分享自华为云社区《又一重要进展发布!OpenMMLab算法仓支持昇腾AI训练加速》,作者:昇腾CAN 查看详情

ai的“高度近视”有何破解之法?深度学习加速技术让“人工智障”戴上眼镜

【导读】「是什么黑科技,成全了AI又快又准又省的心愿?」有什么比秃头更心酸的吗?有,比如智能机器人将秃了的后脑勺识别成未戴口罩的脸,跟随一路提醒佩戴口罩。如今AI应用已非常普遍,这过程... 查看详情

如何加速 tesseract OCR

】如何加速tesseractOCR【英文标题】:HowtospeeduptesseractOCR【发布时间】:2017-11-0312:02:00【问题描述】:我正在尝试对很多文档进行OCR(我的意思是每天300k+范围)。目前我正在使用Tesseractwrapperfor.NET,它的质量都很好,但速度还不... 查看详情

比赛报名第四范式x英特尔:ai应用与异构内存编程挑战赛

【AI应用与异构内存编程挑战赛】第四范式联合英特尔共同举办“AI应用与异构内存编程挑战赛”。基于人工智能应用,以异构内存架构为硬件底座,特别是基于英特尔®傲腾™持久内存,进行两者结合的前沿应用探索以及硬核编... 查看详情

人工智能之数据标注

...据中的特征。比如我们要让机器学习认知汽车,我们直接给机器一个汽车的图片它是无法识别的,我们必须对汽车图片进行标注打上标签注明“这是一个汽车”,当机器获得大量打上标签的汽车图片进行学习之后,我们再给机器... 查看详情

ocr文字识别

...现可以查询OCR识别的开源分析:包含开源代码OCR技术系列之一:字符识别技术总览OCR技术系列之二:文字定位与分割OCR技术系列之三:大批量生成文字训练集OCR技术系列之四:基于深度学习的文字识别(3755个汉字)腾讯OCR:自... 查看详情

qt+百度ai文字识别ocr小工具

基于百度AI开放平台的OCR文字识别小工具,用Qt5编写。实现通用识别,精准识别,表格识别,身份证识别等常用OCR功能。Qt+百度AI文字识别mOCR小工具@目录Qt+百度AI文字识别mOCR小工具介绍编译环境界面功能To-doList介绍基于百度AI开... 查看详情

ai之opencvsharp安卓手机摄像头识别人脸

...f0c;从OpenCv的知识架构来讲,源码是一样一样的。就是换个语言写而已。1.OpenCvSharp尽可能地以原生OpenCVC/C++API风格为蓝本。2.OpenCvSharp的许多类都实现了IDisposabl 查看详情

构筑超异构计算时代,英特尔ai全布局

作者 |伍杏玲出品| AI科技大本营(ID:rgznai100)我们正值数据井喷时代,据IDC发布《数据时代2025》报告显示,全球每年产生的数据将从2018年的33ZB增长到2025年的175ZB。其中大部分为非结构化数据,对数据实时性... 查看详情

[转]ai+rpa融合更智能

...。下面介绍几个RPA+OCR的应用场景。▲本地OCR本地OCR包最大的优势,本地执行,速度快。首推的是 Tesseracthttp://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe (下载地址)Tesseract是免费开源的OCR工具,部署在本地以... 查看详情

python实现ai图像识别-身份证识别(代码片段)

...进行提取,不用再使用人工去手动抄写了,下面给大家说的这个身份识别主要是使用python+flask+华为云OCR进行实现的。步骤申请华为云OCR接口获取token调用身份证识别接口提取身份证信息申请华为云OCR接口图像识别主... 查看详情