温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
动手
OCR
动手学OCRMay 11,2022CONTENTS1推荐序12序言32.1关于本书.32.1.1内容和结构.42.1.2目标受众.52.2社区.52.3致谢.53如何使用本书73.1预备知识.73.2基础环境准备.73.3获取和运行代码.83.4查阅资料.83.5寻求帮助.84OCR技术导论94.1OCR技术背景.94.1.1OCR技术的应用场景.94.1.2OCR技术挑战.114.2OCR前沿算法.124.2.1文本检测.124.2.2文本识别.144.2.3文档结构化识别.164.2.4其他相关技术.204.3OCR技术的产业实践.214.3.1产业实践难点.214.3.2产业级OCR开发套件PaddleOCR.224.4本章小结.304.5参考文献.315文本检测33i5.1文本检测方法介绍.345.1.1基于回归的文本检测.355.1.2基于分割的文本检测.405.2文本检测算法DBNet实战.445.2.1快速使用.445.2.2DBNet算法详解.485.2.3DBNet模型训练.625.2.4文本检测FAQ.955.2.5作业.995.3本章小结.995.4参考文献.1006文本识别1036.1文本识别方法介绍.1056.1.1规则文本识别.1056.1.2不规则文本识别.1086.2文本识别算法CRNN实战.1126.2.1快速体验.1126.2.2CRNN算法详解.1136.2.3CRNN模型训练.1296.2.4文本识别FAQ.1396.2.5作业.1446.3本章小结.1446.4参考文献.1457PP-OCR系统及优化策略1477.1PP-OCR系统简介与总览.1477.1.1PP-OCR系统与优化策略简介.1477.1.2PP-OCRv2系统与优化策略简介.1487.2PP-OCR 优化策略.1507.2.1文本检测.1507.2.2方向分类器.1627.2.3文本识别.1707.3PP-OCRv2优化策略解读.1797.3.1文字检测模型优化详解.1797.3.2文本识别模型优化详解.1937.4本章小结.2057.5作业.2058PP-OCRv2预测部署2078.1预测部署简介与总览.2078.1.1简介.2078.1.2环境准备.209ii8.2基于Paddle Inference的Python推理实战.2098.2.1简介.2098.2.2PP-OCRv2文字检测模型推理.2108.2.3PP-OCRv2方向分类器模型推理.2238.2.4PP-OCRv2文字识别模型推理.2278.2.5PP-OCRv2 系统串联预测推理.2318.2.6PP-OCRv2 使用whl包预测推理.2388.3基于Paddle Inference的C+推理实战.2428.3.1准备模型.2428.3.2编译OpenCV库.2438.3.3获取Paddle Inference预测库.2448.3.4编译PaddleOCR的推理代码.2448.3.5运行PP-OCRv2系统.2458.4基于Paddle Serving服务化部署实战.2468.4.1Padde Serving简介.2468.4.2准备预测数据和部署环境.2478.4.3准备部署模型.2488.4.4Paddle Serving pipeline部署.2508.4.5FAQ.2528.5基于Paddle Lite的端侧推理实战.2528.5.1准备环境.2528.5.2准备模型.2538.5.3编译.2538.5.4上传至手机等移动端.2538.5.5运行.2538.5.6FAQ.2548.6作业.2549文档分析2559.1文档分析方法介绍.2559.1.1版面分析.2559.1.2表格识别.2619.1.3文档视觉问答.2709.2表格识别实战.2789.2.1快速体验.2789.2.2预测原理详解.2819.2.3训练.2929.2.4作业.2999.3文档视觉问答实战.2999.3.1快速体验.2999.3.2原理详解.3029.3.3训练.312iii9.3.4作业.31910 端到端算法32110.1背景介绍.32110.2算法.32210.2.1端到端规则文本识别.32210.2.2端到端任意形状文本识别.32410.3本章小结.33410.4参考文献.33511 预处理算法33711.1背景介绍.33711.2数据增广.33811.2.1标准数据增广.34011.2.2图像变换类.34711.2.3图像裁剪类.34911.2.4图像混叠.35211.3图像二值化.35311.3.1全局阈值方法.35311.3.2局部阈值方法.35311.3.3深度学习方法.35411.4去噪.35511.4.1空间域滤波.35511.4.2变换域滤波.35811.4.3BM3D.35811.4.4深度学习.35811.5本章小结.35911.6参考文献.35912 数据合成方法36112.1背景介绍.36112.2数据合成算法.36112.3本章小结.36712.4参考文献.367ivCHAPTERONE推荐序1动手学OCR2Chapter 1.推荐序CHAPTERTWO序言近年来,随着技术的发展,文字识别(OCR)已经被广泛的运用至各个场景之中,尤其是采用深度学习技术的OCR文字检测和识别技术将更是得到了广泛应用,包括已经在日常生活中广泛应用的面向垂类的结构化文本识别,如车牌识别、银行卡信息识别、身份证信息识别、火车票信息识别等等,此外,通用OCR技术也有广泛的应用,如在视频场景中,经常使用OCR技术进行字幕自动翻译、内容安全监控等等,或者与视觉特征相结合,完成视频理解、视频搜索等任务。一方面,我们看到了OCR广泛的应用空间,但是另一方面,我们也发现世面上很少有全面介绍OCR从理论到实践的书籍,这样就导致很多算法工程师需要走很多弯路才能熟悉和了解这个领域。同时,在实际应用中,尤其是在广泛的通用场景下,OCR问题还需要面临一些挑战,比如仿射变换、尺度问题、光照不足、拍摄模糊等技术难点;另外OCR应用常对接海量数据,但要求数据能够得到实时处理;并且OCR应用常部署在移动端或嵌入式硬件,而端侧的存储空间和计算能力有限,因此对OCR模型的大小和预测速度有很高的要求。这些对于从业人员非常关键的内容,无疑可以加速整个行业的升级与OCR深度学习技术的产业落地。基于以上的动机,围绕OCR产业落地的关键内容,致敬李沐大神的动手学深度学习,本书起名为动手学OCR,通过联合高校、企业、社区开发者联合创作的方式,在Github开源本书的全部内容和代码,并提供了配套的视频课程,供开发者学习使用。由于本书由众多开发者协作完成,后期编辑尽可能统一风格,但是难免挂一漏万,若有遗漏笔误之处,欢迎读者在issue中批评指正,也更欢迎大家直接提交Pull Request修订并参与共建。2.1 关于本书本书的工作流同样采用了GitHub提交和维护代码+jupyter notebook整合代码、公式和图片的形式,包含了OCR最新的的方法和应用,并不断更新;在内容上,主要介绍基于深度学习技术并考虑实际应用的可行性;从内容上看,我们不敢声称这是一本严谨的教科书,但它确实是一本可以帮助开发者快速实现OCR项目落地的,包含可运行代码的生动的教程。我们坚信动手实践对于学习深度学习的重要性,同时也尽可能的介绍一些如何实现给定的方法,以及有关算法设计的思路和实现细节的解释。这本书,不仅适用于OCR的初学者,可以快速了解OCR相关的基础概念和一些重点算法,同时也适用于希望将OCR技术产业落地的算法工程师,可以快速基于示例代码和关于预测部署的介绍快速项目落地。关于这个项目,我们希望达成以下目标:1、所有人均可在网上免费查看获取代码源文件;3动手学OCR2、通过这本书为桥梁,吸引OCR科研人员共建共享,发布自己的最近研究成果,扩宽尽可能的技术广度,成为OCR技术书籍的一本科研概述性质的教材;3、所有算法均包含可运行的代码,为OCR算法工程师展示如何在实际中解决问题,成为OCR产业落地的一本指导教程文档;4、书籍内容由整个社区共建共享,不断快速迭代内容,紧跟仍在高速发展的深度学习领域;5、技术细节问答,可以在issue和discussion形成讨论,使大家可以相互答疑并交换经验。2.1.1 内容和结构 第一部分是本书的推荐序、序言与预备知识,包含本书的定位与使用书籍内容的过程中需要用到的知识索引、资源链接等 第二部分是本书的4-8章,介绍与OCR核心的检测、识别能力相关的概念、应用与产业实践。在“OCR技术导论”中总括性的解释OCR的应用场景和挑战、技术基本概念以及在产业应用中的痛点问题。然后在“文本检测”与“文本识别”两章中介绍OCR的两个基本任务,并在每章中配套一个算法展开代码详解与实战练习。第6、7章是关于PP-OCR系列模型的详细介绍,PP-OCR是一套面向产业应用的OCR系统,在4Chapter 2.序言动手学OCR基础检测和识别模型的基础之上经过一系列优化策略达到通用领域的产业级SOTA模型,同时打通多种预测部署方案,赋能企业快速落地OCR应用。第三部分是本书的9-12章,介绍两阶段OCR引擎之外的应用,包括数据合成、预处理算法、端到端模型,重点展开了OCR在文档场景下的版面分析、表格识别、视觉文档问答的能力,同样通过算法与代码结合的方式使得读者能够深入理解并应用。2.1.2 目标受众本书面向希望深入学习与应用OCR知识的学生、研究者和企业工程师,是一本OCR方向的实践类书籍,需要具备基础的深度学习、机器学习、计算机视觉知识。2.2 社区本书的讨论方式主要有两类:1、【中文】issue话题社区活动是以OCR社区为核心的中国国内社区活动,向不同类型的开发者提供多层次多维度的开放式项目,并为优秀的社区项目给予物质与精神的多重奖励。2、【英文】discussion,主要面向全球范围内的技术讨论交流,包含但不限于理论算法、技术及应用。2.3 致谢特别感谢OCR产学研各方大牛的大力支持,包括(排名不分先后):华中科技大学教授/博导、IAPR Fellow白翔、复旦大学青年研究员陈智能,中国移动研究院视觉领域资深专家黄文辉、中国工商银行研究员祝放等提供的OCR前沿理论与代码实践的内容。我们无比感谢本书的中英文版稿件贡献者们,包括但不限于:增添内容、修改勘误,改进结构以及提供了有价值的反馈等。特别地,我们要感谢每一位为项目做出贡献的开发者们。这些贡献者的GitHub用户名或姓名是(排名不分先后):LDOUBLEV、WenmuZhou、dyning、tink2123、MissPenguin、littletomatodonkey、Evezerest、andyjpaddle、D-DanielYang、Topdu、weisy11、BeyondYourself、JetHong、Intsigstephon、xmy0916、cuicheng01、bjjwwang、ZhangXinNan、hysunflower、d2623587501、Wei-JL、xxxpsyduck、Yipeng-Sun、TingquanGao、tangmq、MrCuiHao、authorfu、HexToString、GreatV、neonhuang、xiangyubo、Huntersdeng、iamyoyo、buptlihang、Lovely-Pig、OliverLPH、YukSing12、bingooo、fengxiaoshuai、lilinxiong、SibiAkkash、linkecoding、kjf4096、Sunny-wong、bupt906、XiaoguangHu01、Nikhil-Sawant-141、xxlyu-2046、znsoftm、xiaoyangyang2、sdcb、lyl120117、daassh、PeterH0323、before31、zhiqiu、zhangyingying520、DannyIsFunny、uf