关于人工智能:深入探索OCR技术前沿算法与工业级部署方案揭秘

深刻摸索OCR技术:前沿算法与工业级部署计划揭秘

注:以上图片来自网络

1. OCR技术背景

1.1 OCR技术的利用场景

  • <font color=red>OCR是什么</font>

OCR(Optical Character Recognition,光学字符识别)是计算机视觉重要方向之一。传统定义的OCR个别面向扫描文档类对象,当初咱们常说的OCR个别指场景文字辨认(Scene Text Recognition,STR),次要面向天然场景,如下图中所示的牌匾等各种天然场景可见的文字。

<center>图1 文档场景文字辨认 VS. 天然场景文字辨认</center>

  • <font color=red>OCR有哪些利用场景?</font>

OCR技术有着丰盛的利用场景,一类典型的场景是日常生活中广泛应用的面向垂类的结构化文本辨认,比方车牌辨认、银行卡信息辨认、身份证信息辨认、火车票信息辨认等等。这些小垂类的独特特点是格局固定,因而非常适合应用OCR技术进行自动化,能够极大的加重人力老本,晋升效率。

这种面向垂类的结构化文本辨认是目前ocr利用最宽泛、并且技术绝对较成熟的场景。

<center>图2 OCR技术的利用场景</center>

除了面向垂类的结构化文本辨认,通用OCR技术也有宽泛的利用,并且经常和其余技术联合实现多模态工作,例如在视频场景中,常常应用OCR技术进行字幕主动翻译、内容安全监控等等,或者与视觉特色相结合,实现视频了解、视频搜寻等工作。

<center>图3 多模态场景中的通用OCR</center>

1.2 OCR技术挑战

OCR的技术难点能够分为算法层和应用层两方面。

  • <font color=red>算法层</font>

OCR丰盛的利用场景,决定了它会存在很多技术难点。这里给出了常见的8种问题:

<center>图4 OCR算法层技术难点</center>

这些问题给文本检测和文本辨认都带来了微小的技术挑战,能够看到,这些挑战次要都是面向天然场景,目前学术界的钻研也次要聚焦在天然场景,OCR畛域在学术上的罕用数据集也都是天然场景。针对这些问题的钻研很多,相对来说,辨认比检测面临更大的挑战。

  • <font color=red>应用层</font>

在理论利用中,尤其是在宽泛的通用场景下,除了上一节总结的仿射变换、尺度问题、光照有余、拍摄含糊等算法层面的技术难点,OCR技术还面临两大落地难点:

  1. 海量数据要求OCR可能实时处理。 OCR利用常对接海量数据,咱们要求或心愿数据可能失去实时处理,模型的速度做到实时是一个不小的挑战。
  2. 端侧利用要求OCR模型足够轻量,辨认速度足够快。 OCR利用常部署在挪动端或嵌入式硬件,端侧OCR利用个别有两种模式:上传到服务器 vs. 端侧间接辨认,思考到上传到服务器的形式对网络有要求,实时性较低,并且申请量过大时服务器压力大,以及数据传输的安全性问题,咱们心愿可能间接在端侧实现OCR辨认,而端侧的存储空间和计算能力无限,因而对OCR模型的大小和预测速度有很高的要求。

<center>图5 OCR应用层技术难点</center>

2. OCR前沿算法

尽管OCR是一个绝对具体的工作,但波及了多方面的技术,包含文本检测、文本辨认、端到端文本辨认、文档剖析等等。学术上对于OCR各项相干技术的钻研层出不穷,下文将简要介绍OCR工作中的几种关键技术的相干工作。

2.1 文本检测

文本检测的工作是定位出输出图像中的文字区域。近年来学术界对于文本检测的钻研十分丰盛,一类办法将文本检测视为指标检测中的一个特定场景,基于通用指标检测算法进行改良适配,如TextBoxes[1]基于一阶段指标检测器SSD[2]算法,调整指标框使之适宜极其长宽比的文本行,CTPN[3]则是基于Faster RCNN[4]架构改良而来。然而文本检测与指标检测在指标信息以及工作自身上仍存在一些区别,如文本个别长宽比拟大,往往呈“条状”,文本行之间可能比拟密集,蜿蜒文本等,因而又衍生了很多专用于文本检测的算法,如EAST[5]、PSENet[6]、DBNet[7]等等。

<center><img src=”https://ai-studio-static-online.cdn.bcebos.com/548b50212935402abb2e671c158c204737c2c64b9464442a8f65192c8a31b44d” width=”500″></center>
<center>图6 文本检测工作示例</center>

目前较为风行的文本检测算法能够大抵分为基于回归基于宰割的两大类文本检测算法,也有一些算法将二者相结合。

  • 基于回归的算法借鉴通用物体检测算法,通过设定anchor回归检测框,或者间接做像素回归,这类办法对规定形态文本检测成果较好,然而对不规则形态的文本检测成果会绝对差一些,比方CTPN[3]对程度文本的检测成果较好,但对歪斜、蜿蜒文本的检测成果较差,SegLink[8]对长文本比拟好,但对散布稠密的文本成果较差;
  • 基于宰割的算法引入了Mask-RCNN[9],这类算法在各种场景、对各种形态文本的检测成果都能够达到一个更高的程度,但毛病就是后处理个别会比较复杂,因而经常存在速度问题,并且无奈解决重叠文本的检测问题。

<center><img src=”https://ai-studio-static-online.cdn.bcebos.com/4f4ea65578384900909efff93d0b7386e86ece144d8c4677b7bc94b4f0337cfb” width=”800″></center>
<center>图7 文本检测算法概览</center>

<center>图8 (左)基于回归的CTPN[3]算法优化anchor (中)基于宰割的DB[7]算法优化后处理 (右)回归+宰割的SAST[10]算法</center>

2.2 文本辨认

文本辨认的工作是辨认出图像中的文字内容,个别输出来自于文本检测失去的文本框截取出的图像文字区域。文本辨认个别能够依据待辨认文本形态分为规定文本辨认不规则文本辨认两大类。规定文本次要指印刷字体、扫描文本等,文本大抵处在水平线地位;不规则文本往往不在程度地位,存在蜿蜒、遮挡、含糊等问题。不规则文本场景具备很大的挑战性,也是目前文本辨认畛域的次要钻研方向。

<center>图9 (左)规定文本 VS. (右)不规则文本</center>

规定文本辨认的算法依据解码形式的不同能够大抵分为基于CTC和Sequence2Sequence两种,将网络学习到的序列特色 转化为 最终的辨认后果 的解决形式不同。基于CTC的算法以经典的CRNN[11]为代表。

<center>图10 基于CTC的辨认算法 VS. 基于Attention的辨认算法</center>

不规则文本的辨认算法相比更为丰盛,如STAR-Net[12]等办法通过退出TPS等改正模块,将不规则文本改正为规定的矩形后再进行辨认;RARE[13]等基于Attention的办法加强了对序列之间各局部相关性的关注;基于宰割的办法将文本行的各字符作为独立个体,相比与对整个文本行做改正后辨认,辨认宰割出的单个字符更加容易;此外,随着近年来Transfomer[14]的疾速倒退和在各类工作中的有效性验证,也呈现了一批基于Transformer的文本辨认算法,这类办法利用transformer构造解决CNN在长依赖建模上的局限性问题,也获得了不错的成果。

<center>图11 基于字符宰割的辨认算法[15]</center>

2.3 文档结构化辨认

传统意义上的OCR技术能够解决文字的检测和辨认需要,但在理论利用场景中,最终须要获取的往往是结构化的信息,如身份证、发票的信息格式化抽取,表格的结构化辨认等等,多在快递单据抽取、合同内容比对、金融保理单信息比对、物流业单据辨认等场景下利用。OCR后果+后处理是一种罕用的结构化计划,但流程往往比较复杂,并且后处理须要精密设计,泛化性也比拟差。在OCR技术逐步成熟、结构化信息抽取需要日益旺盛的背景下,版面剖析、表格辨认、要害信息提取等对于智能文档剖析的各种技术受到了越来越多的关注和钻研。

  • 版面剖析

版面剖析(Layout Analysis)次要是对文档图像进行内容分类,类别个别可分为纯文本、题目、表格、图片等。现有办法个别将文档中不同的板式当做不同的指标进行检测或宰割,如Soto Carlos[16]在指标检测算法Faster R-CNN的根底上,联合上下文信息并利用文档内容的固有地位信息来进步区域检测性能;Sarkar Mausoom[17]等人提出了一种基于先验的宰割机制,在十分高的分辨率的图像上训练文档宰割模型,解决了适度放大原始图像导致的密集区域不同构造无奈辨别进而合并的问题。

<center>图12 版面剖析工作示意图</center>

  • 表格辨认

表格辨认(Table Recognition)的工作就是将文档里的表格信息进行辨认和转换到excel文件中。文本图像中表格品种和款式简单多样,例如不同的行列合并,不同的内容文本类型等,除此之外文档的款式和拍摄时的光照环境等都为表格辨认带来了极大的挑战。这些挑战使得表格辨认始终是文档了解畛域的钻研难点。

<center>图13 表格辨认工作示意图</center>

表格辨认的办法品种较为丰盛,晚期的基于启发式规定的传统算法,如Kieninger[18]等人提出的T-Rect等算法,个别通过人工设计规定,连通域检测剖析解决;近年来随着深度学习的倒退,开始涌现一些基于CNN的表格构造辨认算法,如Siddiqui Shoaib Ahmed[19]等人提出的DeepTabStR,Raja Sachin[20]等人提出的TabStruct-Net等;此外,随着图神经网络(Graph Neural Network)的衰亡,也有一些研究者尝试将图神经网络应用到表格构造辨认问题上,基于图神经网络,将表格辨认看作图重建问题,如Xue Wenyuan[21]等人提出的TGRNet;基于端到端的办法间接应用网络实现表格构造的HTML示意输入,端到端的办法大多采纳Seq2Seq办法来实现表格构造的预测,如一些基于Attention或Transformer的办法,如TableMaster[22]。

<center>图14 表格识别方法示意图</center>

  • 要害信息提取

要害信息提取(Key Information Extraction,KIE)是Document VQA中的一个重要工作,次要从图像中提取所须要的要害信息,如从身份证中提取出姓名和公民身份号码信息,这类信息的品种往往在特定工作下是固定的,然而在不同工作间是不同的。

<center>图15 DocVQA工作示意图</center>

KIE通常分为两个子工作进行钻研:

  • SER: 语义实体辨认 (Semantic Entity Recognition),对每一个检测到的文本进行分类,如将其分为姓名,身份证。如下图中的彩色框和红色框。
  • RE: 关系抽取 (Relation Extraction),对每一个检测到的文本进行分类,如将其分为问题和的答案。而后对每一个问题找到对应的答案。如下图中的红色框和彩色框别离代表问题和答案,黄色线代表问题和答案之间的对应关系。

<center>图16 ser与re工作</center>

个别的KIE办法基于命名实体辨认(Named Entity Recognition,NER)[4]来钻研,然而这类办法只利用了图像中的文本信息,短少对视觉和构造信息的应用,因而精度不高。在此基础上,近几年的办法都开始将视觉和构造信息与文本信息交融到一起,依照对多模态信息进行交融时所采纳的的原理能够将这些办法分为上面四种:

  • 基于Grid的办法
  • 基于Token的办法
  • 基于GCN的办法
  • 基于End to End 的办法

[链接]

2.4 其余相干技术

后面次要介绍了OCR畛域的三种关键技术:文本检测、文本辨认、文档结构化辨认,更多其余OCR相干前沿技术介绍,包含端到端文本辨认、OCR中的图像预处理技术、OCR数据合成等。后续会讲[链接]

3. OCR技术的产业实际

OCR技术最终还是要落到产业实际当中。尽管学术上对于OCR技术的钻研很多,OCR技术的商业化利用相比于其余AI技术也曾经绝对成熟,但在理论的产业利用中,还是存在一些难点与挑战。下文将从技术和产业实际两个角度进行剖析。

3.1 产业实际难点

在理论的产业实际中,开发者经常须要依靠开源社区资源启动或推动我的项目,而开发者应用开源模型又往往面临三大难题:

<center>图17 OCR技术产业实际三大难题</center>

1. 找不到、选不出

开源社区资源丰盛,然而信息不对称导致开发者并不能高效地解决痛点问题。一方面,开源社区资源过于丰盛,开发者面对一项需要,无奈疾速从海量的代码仓库中找到匹配业务需要的我的项目,即存在“找不到”的问题;另一方面,在算法选型时,英文公开数据集上的指标,无奈给开发者经常面对的中文场景提供间接的参考,一一算法验证须要消耗大量工夫和人力,且不能保障选出最合适的算法,即“选不出”。

2. 不实用产业场景

开源社区中的工作往往更多地偏差成果优化,如学术论文代码开源或复现,个别更偏重算法成果,均衡思考模型大小和速度的工作相比就少很多,而模型大小和预测耗时在产业实际中是两项不容忽视的指标,其重要水平不亚于模型成果。无论是挪动端和服务器端,待辨认的图像数目往往十分多,都心愿模型更小,精度更高,预测速度更快。GPU太贵,最好应用CPU跑起来更经济。在满足业务需要的前提下,模型越轻量占用的资源越少。

3. 优化难、训练部署问题多

间接应用开源算法或模型个别无奈间接满足业务需要,理论业务场景中,OCR面临的问题多种多样,业务场景个性化往往须要自定义数据集从新训练,现有的开源我的项目上,试验各种优化办法的老本较高。此外,OCR利用场景非常丰盛,服务端和各种挪动端设施上都有着宽泛的利用需要,硬件环境多样化就须要反对丰盛的部署形式,而开源社区的我的项目更偏重算法和模型,在预测部署这部分显著撑持有余。要把OCR技术从论文上的算法做到技术落地利用,对开发者的算法和工程能力都有很高的要求。

3.2 产业级OCR开发套件PaddleOCR

OCR产业实际须要一套残缺全流程的解决方案,来放慢研发进度,节约贵重的研发工夫。也就是说,超轻量模型及其全流程解决方案,尤其对于算力、存储空间无限的挪动端、嵌入式设施而言,能够说是刚需。

在此背景下,产业级OCR开发套件PaddleOCR应运而生。

PaddleOCR的建设思路从用户画像和需要登程,依靠飞桨外围框架,精选并复现丰盛的前沿算法,基于复现的算法研发更实用于产业落地的PP特色模型,并买通训推一体,提供多种预测部署形式,满足理论利用的不同需要场景。

<center>图18 PaddleOCR开发套件全景图</center>

从全景图能够看出,PaddleOCR依靠于飞桨外围框架,在模型算法、预训练模型库、工业级部署等层面均提供了丰盛的解决方案,并且提供了数据合成、半自动数据标注工具,满足开发者的数据生产需要。

在模型算法层面,PaddleOCR对文字检测辨认文档结构化分析两类工作别离提供了解决方案。在文字检测辨认方面,PaddleOCR复现或开源了4种文本检测算法、8种文本辨认算法、1种端到端文本辨认算法,并在此基础上研发了PP-OCR系列的通用文本检测辨认解决方案;在文档结构化分析方面,PaddleOCR提供了版面剖析、表格辨认、要害信息抽取、命名实体辨认等算法,并在此基础提出了PP-Structure文档剖析解决方案。丰盛的精选算法能够满足开发者不同业务场景的需要,代码框架的对立也不便开发者进行不同算法的优化和性能比照。

在预训练模型库层面,基于PP-OCR和PP-Structure解决方案,PaddleOCR研发并开源了实用于产业实际的PP系列特色模型,包含通用、超轻量和多语言的文本检测辨认模型,和简单文档分析模型。PP系列特色模型均在原始算法上进行了深度优化,使其在成果和性能上均能达到产业实用级别,开发者既能够间接利用于业务场景,也能够用业务数据进行简略的finetune,便能够轻松研发出实用于本人业务需要的“实用模型”。

在工业级部署层面,PaddleOCR提供了基于Paddle Inference的服务器端预测计划,基于Paddle Serving的服务化部署计划,以及基于Paddle-Lite的端侧部署计划,满足不同硬件环境下的部署需要,同时提供了基于PaddleSlim的模型压缩计划,能够进一步压缩模型大小。以上部署形式都实现了训推一体全流程买通,以保障开发者能够高效部署,稳固牢靠。

在数据工具层面,PaddleOCR提供了半自动数据标注工具PPOCRLabel和数据合成工具Style-Text,助力开发者更不便的生产模型训练所需的数据集和标注信息。PPOCRLabel作为业界首个开源的半自动OCR数据标注工具,针对标注过程干燥繁琐、机械性高,大量训练数据所需人工标记,工夫金钱老本低廉的问题,内置PP-OCR模型实现预标注+人工校验的标注模式,能够极大晋升标注效率,节俭人力老本。数据合成工具Style-Text次要解决理论场景实在数据严重不足,传统合成算法无奈合成文字格调(字体、色彩、间距、背景)的问题,只须要少许指标场景图像,就能够批量合成大量与指标场景格调相近的文本图像。

<center>图19 PPOCRLabel应用示意图</center>

<center>图20 Style-Text合成成果示例</center>

3.2.1 PP-OCR与PP-Structrue

PP系列特色模型是飞桨各视觉开发套件针对产业实际需要进行深度优化的模型,力求速度与精度均衡。PaddleOCR中的PP系列特色模型包含针对文字检测辨认工作的PP-OCR系列模型和针对文档剖析的PP-Structure系列模型。

(1)PP-OCR中英文模型

<center>图21 PP-OCR中英文模型辨认后果示例</center>

PP-OCR中英文模型采纳的典型的两阶段OCR算法,即检测模型+辨认模型的组成形式,具体的算法框架如下:

<center>图22 PP-OCR零碎pipeline示意图</center>

能够看到,除输入输出外,PP-OCR外围框架蕴含了3个模块,别离是:文本检测模块、检测框改正模块、文本辨认模块。

  • 文本检测模块:外围是一个基于DB检测算法训练的文本检测模型,检测出图像中的文字区域;
  • 检测框改正模块:将检测到的文本框输出检测框改正模块,在这一阶段,将四点示意的文本框改正为矩形框,不便后续进行文本辨认,另一方面会进行文本方向判断和校对,例如如果判断文本行是倒立的状况,则会进行转正,该性能通过训练一个文本方向分类器实现;
  • 文本辨认模块:最初文本辨认模块对改正后的检测框进行文本辨认,失去每个文本框内的文字内容,PP-OCR中应用的经典文本辨认算法CRNN。

PaddleOCR先后推出了PP-OCR[23]和PP-OCRv2[24]模型。

PP-OCR模型分为mobile版(轻量版)和server版(通用版),其中mobile版模型次要基于轻量级骨干网络MobileNetV3进行优化,优化后模型(检测模型+文本方向分类模型+辨认模型)大小仅8.1M,CPU上均匀单张图像预测耗时350ms,T4 GPU上约110ms,裁剪量化后,可在精度不变的状况下进一步压缩到3.5M,便于端侧部署,在骁龙855上测试预测耗时仅260ms。更多的PP-OCR评估数据可参考benchmark。

PP-OCRv2放弃了PP-OCR的整体框架,次要做了成果上的进一步策略优化。晋升包含3个方面:

  • 在模型成果上,绝对于PP-OCR mobile版本晋升超7%;
  • 在速度上,绝对于PP-OCR server版本晋升超过220%;
  • 在模型大小上,11.6M的总大小,服务器端和挪动端都能够轻松部署。

PP-OCR和PP-OCRv2的具体优化策略将在第四章中进行具体解读。

除了中英文模型,PaddleOCR也基于不同的数据集训练并开源了英文数字模型、多语言辨认模型,以上均为超轻量模型,实用于不同的语言场景。

<center>图23 PP-OCR的英文数字模型和多语言模型辨认成果示意图</center>

(2)PP-Structure文档分析模型

PP-Structure反对版面剖析(layout analysis)、表格辨认(table recognition)、文档视觉问答(DocVQA)三种子工作。

PP-Structure外围性能点如下:

  • 反对对图片模式的文档进行版面剖析,能够划分文字、题目、表格、图片以及列表5类区域(与Layout-Parser联结应用)
  • 反对文字、题目、图片以及列表区域提取为文字字段(与PP-OCR联结应用)
  • 反对表格区域进行结构化分析,最终后果输入Excel文件
  • 反对Python whl包和命令行两种形式,简略易用
  • 反对版面剖析和表格结构化两类工作自定义训练
  • 反对VQA工作-SER和RE

<center>图24 PP-Structure零碎示意图(本图仅含版面剖析+表格辨认)</center>

3.2.2 工业级部署计划

飞桨反对全流程、全场景推理部署,模型起源次要分为三种,第一种应用PaddlePaddle API构建网络结构进行训练所得,第二种是基于飞桨套件系列,飞桨套件提供了丰盛的模型库、简洁易用的API,具备开箱即用,包含视觉模型库PaddleCV、智能语音库PaddleSpeech以及自然语言解决库PaddleNLP等,第三种采纳X2Paddle工具从第三方框架(PyTorh、ONNX、TensorFlow等)产出的模型。

飞桨模型能够选用PaddleSlim工具进行压缩、量化以及蒸馏,反对五种部署计划,别离为服务化Paddle Serving、服务端/云端Paddle Inference、挪动端/边缘端Paddle Lite、网页前端Paddle.js, 对于Paddle不反对的硬件,比方MCU、地平线、鲲云等国产芯片,能够借助Paddle2ONNX转化为反对ONNX的第三方框架。

<center>图25 飞桨反对部署形式</center>

Paddle Inference反对服务端和云端部署,具备高性能与通用性,针对不同平台和不同利用场景进行了深度的适配和优化,Paddle Inference是飞桨的原生推理库,保障模型在服务器端即训即用,疾速部署,实用于高性能硬件上应用多种利用语言环境部署算法简单的模型,硬件笼罩x86 CPU、Nvidia GPU、以及百度昆仑XPU、华为昇腾等AI加速器。

Paddle Lite 是端侧推理引擎,具备轻量化和高性能特点,针对端侧设施和各利用场景进行了深度的设配和优化。以后反对Android、IOS、嵌入式Linux设施、macOS 等多个平台,硬件笼罩ARM CPU和GPU、X86 CPU和新硬件如百度昆仑、华为昇腾与麒麟、瑞芯微等。

Paddle Serving是一套高性能服务框架,旨在帮忙用户几个步骤疾速将模型在云端服务化部署。目前Paddle Serving反对自定义前后解决、模型组合、模型热加载更新、多机多卡多模型、分布式推理、K8S部署、平安网关和模型加密部署、反对多语言多客户端拜访等性能,Paddle Serving官网还提供了包含PaddleOCR在内的40多种模型的部署示例,以帮忙用户更快上手。

<center>图26 飞桨反对部署形式</center>

4. 总结

首先介绍了OCR技术的利用场景和前沿算法,而后剖析了OCR技术在产业实际中的难点与三大挑战。
后续章节内容波及:介绍检测、辨认技术并实际;介绍PP-OCR优化策略; 进行预测部署实战; 文档结构化;端到端、数据预处理、数据合成等其余OCR相干算法; OCR相干数据集和数据合成工具。

更多优质内容请关注公号:汀丶人工智能;会提供一些相干的资源和优质文章,收费获取浏览。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理