一、项目选题
项目名称:OCR
项目简介:PaddleOCR是一个实用的超轻量OCR系统。主要由DB文本检测、检测框矫正和CRNN文本识别三部分组成。该系统从骨干网络选择和调整、预测头部的设计、数据增强、学习率变换策略、正则化参数选择、预训练模型使用以及模型自动裁剪量化8个方面,采用19个有效策略,对各个模块的模型进行效果调优和瘦身(如绿框所示),最终得到整体大小为3.5M的超轻量中英文OCR和2.8M的英文数字OCR。PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力使用者训练出更好的模型,并应用落地。项目相关特性分析。
特性:
PP-OCR系列高质量预训练模型,准确的识别效果
超轻量PP-OCRv2系列:检测(3.1M)+ 方向分类器(1.4M)+ 识别(8.5M)= 13.0M
超轻量PP-OCR mobile移动端系列:检测(3.0M)+方向分类器(1.4M)+ 识别(5.0M)= 9.4M
通用PPOCR server系列:检测(47.1M)+方向分类器(1.4M)+ 识别(94.9M)= 143.4M
支持中英文数字组合识别、竖排文本识别、长文本识别
支持多语言识别:韩语、日语、德语、法语
丰富易用的OCR相关工具组件
半自动数据标注工具PPOCRLabel:支持快速高效的数据标注
数据合成工具Style-Text:批量合成大量与目标场景类似的图像
文档分析能力PP-Structure:版面分析与表格识别
支持用户自定义训练,提供丰富的预测推理部署方案
支持PIP快速安装使用
可运行于Linux、Windows、MacOS等多种系统
二、NABCD模型分析
- Need
OCR功能并不陌生,如今我们常见的软件如QQ百度等都带文字识别功能。但大多数情况下,这些功能都需要联,并且软件体积较大,使用不方便。如果能做一款不需要联网又具有较高准确率的小巧方便的文字识别软件也是有很大的应用空间的。
- Approach
文字识别一般包括两个部分:文本检测和文本识别;文本检测首先利用检测算法检测到图像中的文本行;然后检测到的文本行用识别算法去识别到具体文字。
文本检测:文本检测就是要定位图像中的文字区域,然后通常以边界框的形式将单词或文本行标记出来。这里我们小组将采用基于深度学习的文本检测算法。基于深度学习的文本检测算法可以大致分为以下几类:
基于目标检测的方法;一般是预测得到文本框后,通过NMS筛选得到最终文本框,多是四点文本框,对弯曲文本场景效果不理想。典型算法为EAST、Text Box等方法。
基于分割的方法;将文本行当成分割目标,然后通过分割结果构建外接文本框,可以处理弯曲文本,对于文本交叉场景问题效果不理想。典型算法为DB、PSENet等方法。
混合目标检测和分割的方法;
文本识别:识别算法的输入数据一般是文本行,背景信息不多,文字占据主要部分。识别算法目前可以分为两类算法:
基于CTC的方法;即识别算法的文字预测模块是基于CTC的,常用的算法组合为CNN+RNN+CTC。目前也有一些算法尝试在网络中加入transformer模块等等。
基于Attention的方法;即识别算法的文字预测模块是基于Attention的,常用算法组合是CNN+RNN+Attention。
通过分析训练集中标注的数据的特点,使用PP-OCR模型进行设计、训练和预测,对测试集中测试数据进行识别和分类。
- Benefit
PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力使用者训练出更好的模型,并应用落地。该系统从骨干网络选择和调整、预测头部的设计、数据增强、学习率变换策略、正则化参数选择、预训练模型使用以及模型自动裁剪量化8个方面,采用19个有效策略,对各个模块的模型进行效果调优和瘦身,在占用极少资源的情况下,利用该软件可以完成在实践、精准度、数据化程度等多方面得到提升的OCR,为广大的文字工作者提供图片中的文字识别效果。
- Competitors
市面上不乏许多优秀的OCR,但是在软件的效果和用户的满意程度上来看,人们日益增多的工作量对于此类软件的需求更加严苛,许多的文字工作者需要更加高效便捷的工具,这时出现与时俱进的OCR显得尤为重要。传统的OCR多是通过手工提取特征的方式,特点是速度快,简单场景效果好,但是面对自然场景,效果会大打折扣。我们的项目将会在这些方面做出相应的提升。
- Delivery
首先我们要保证识别的准确性,在准确性达标的情况下进行推广。我们可以先在学校进行推广,得到同学们的反馈,然后再慢慢走向市场,面对更加复杂的识别环境。