diff --git a/mindocr/models/2024-10-14-14-22-14.png b/mindocr/models/2024-10-14-14-22-14.png new file mode 100644 index 0000000000000000000000000000000000000000..0ee4d73adeb4881db03992602a50a5ddd3824024 Binary files /dev/null and b/mindocr/models/2024-10-14-14-22-14.png differ diff --git "a/mindocr/models/\346\250\241\345\236\213\350\277\201\347\247\273\351\200\211\345\236\213\350\257\264\346\230\216\344\271\246.md" "b/mindocr/models/\346\250\241\345\236\213\350\277\201\347\247\273\351\200\211\345\236\213\350\257\264\346\230\216\344\271\246.md" new file mode 100644 index 0000000000000000000000000000000000000000..d33e7aa41afc39ddaadd10f8cdb4fc7cf5f5d890 --- /dev/null +++ "b/mindocr/models/\346\250\241\345\236\213\350\277\201\347\247\273\351\200\211\345\236\213\350\257\264\346\230\216\344\271\246.md" @@ -0,0 +1,59 @@ +# 前言 +MindOCR是一个基于MindSpore 框架开发的OCR开源工具箱,集成系列主流文字检测识别的算法、模型,并提供易用的训练和推理工具,可以帮助用户快速开发和应用业界SoTA文本检测、文本识别模型,如DBNet/DBNet++和CRNN/SVTR,满足图像文档理解的需求。 + +针对MindOCR的产品定位,本人目前的具体任务为:**迁移并整合1至2个具有关键影响力的模型至MindOCR平台,简化迁移操作的复杂度,有效降低模型迁移的技术门槛,最终实现MindOCR模型库的显著丰富与提升。** +# 内容 +## 1.迁移目标 +1. **洞察业界已有领域模型,选取并迁移2个关键模型至MindOCR框架;** +2. **确保迁移模型的精度与性能均不低于原论文所描述精度与性能。** + +## 2.模型洞察 +通过对OCR套件领域模型丰富度的洞察,当前MindOCR共支持检测与识别模型14+,其支持的模型种类包括:文本检测模型、文本识别模型、表格识别模型、关键信息抽取模型,相对业界缺失模型种类包括:**公式识别模型、文本超分模型、端到端模型、一模多语模型、版面矫正预测模型、文档图片方向分类模型。** 业界OCR套件领域模型种类分析如下表所示(由于业界OCR套件支持的文本检测、文本模型较多,该文只取三个为例)。 + +![](2024-10-14-14-22-14.png) +## 3. 模型选型 +### 端到端模型——PGNet +OCR算法可以分为两阶段算法(文本检测+文本识别)和端到端算法。端到端算法指**在一个算法中完成文本检测和文本识别,模型更小,速度更快**,在文本分布密集的业务场景中效率更较高,比如工业仪表识别、车牌识别等。 + +**MindOCR目前并未支持端到端模型**,因此本人选取业界端到端模型精度和性能较优的PGNet模型进行迁移。 + +### 版面区域检测模型--PicoDet +在文档图像识别以及文档还原的过程中,版面区域检测是核心步骤。普通的OCR技术只能提取图像中的文字,但无法提取图像中的图片、表格、印章等其他元素,以及各个元素之间的位置关系。而**版面区域检测技术可以对输入的文档图像进行内容解析和区域划分,识别图像中的文字、图表、图片,并将其归类为纯文本区、标题区、表格去、图片区,并确定这些区域在文档中的位置和大小**,从而确保文档在电子化过程中能够保持原有的排版和格式。 + +由于MindOCR仅支持YoloV8这一个版面区域检测模型,而PicoDet优化了YoloV8的网络结构,在移动设备上达到较好的帧率(150FPS),且在各种场景下的模板检测任务中取得了较好的结果,**有助于提高智能文档分析的版本区域检测效率与精度**,因此选取该模型进行迁移。 + +# 实现方式 +## 1.环境配置 +openEuler: >= 20.3 CentOS:>= 7.6 Ubuntu:>= 18.04 Windows 10 MacOS:10.15/11.3; + +Ascend:910A、910B GPU:支持cuda10.1以上 CPU。 + +## 2.模型转换 +利用MindOCR框架提供的模型转换工具或API,将所选模型转换为MindOCR框架支持的格式; + +对转换后的模型进行必要的调整和优化,以确保其与MindOCR框架的兼容性。 + +## 3.训练与调优 +使用MindOCR框架提供的训练工具和数据集,对迁移后的模型进行训练和调优; + +通过调整学习率、批量大小等超参数,优化模型的训练过程和性能; + +利用MindOCR框架的模型评估工具,对训练后的模型进行精度和性能评估,确保其不低于原论文所述。 + +## 4.代码集成与测试 +将迁移后的模型代码集成到MindOCR框架中,并进行必要的代码优化和重构; + +对集成后的MindOCR框架进行全面的测试,包括单元测试、集成测试和性能测试等,以确保其稳定性和可靠性。 + +## 5.精度与性能评估 +使用与原论文相同的测试数据集和评估指标,对迁移后的模型进行精度评估,对比迁移前后模型的精度指标,确保其不低于原论文所述; + +使用MindOCR框架提供的性能测试工具,对迁移后的模型进行性能测试,评估模型的推理速度、内存占用等性能指标,确保其满足实际应用场景的需求。 + + + + + + + +