forked from PaddlePaddle/PaddleOCR
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
70 changed files
with
2,401 additions
and
966 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
[English](README.md) | 简体中文 | ||
|
||
## 简介 | ||
PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力使用者训练出更好的模型,并应用落地。 | ||
|
||
**近期更新** | ||
- 2020.9.22 更新PP-OCR技术文章,https://arxiv.org/abs/2009.09941 | ||
- 2020.9.19 更新超轻量压缩ppocr_mobile_slim系列模型,整体模型3.5M(详见[PP-OCR Pipline](#PP-OCR)),适合在移动端部署使用。[模型下载](#模型下载) | ||
- 2020.9.17 更新超轻量ppocr_mobile系列和通用ppocr_server系列中英文ocr模型,媲美商业效果。[模型下载](#模型下载) | ||
- 2020.9.17 更新[英文识别模型](./doc/doc_ch/models_list.md#英文识别模型)和[多语言识别模型](doc/doc_ch/models_list.md#多语言识别模型),已支持`德语、法语、日语、韩语`,更多语种识别模型将持续更新。 | ||
- 2020.8.26 更新OCR相关的84个常见问题及解答,具体参考[FAQ](./doc/doc_ch/FAQ.md) | ||
- 2020.8.24 支持通过whl包安装使用PaddleOCR,具体参考[Paddleocr Package使用说明](./doc/doc_ch/whl.md) | ||
- 2020.8.21 更新8月18日B站直播课回放和PPT,课节2,易学易用的OCR工具大礼包,[获取地址](https://aistudio.baidu.com/aistudio/education/group/info/1519) | ||
- [More](./doc/doc_ch/update.md) | ||
|
||
|
||
## 特性 | ||
|
||
- PPOCR系列高质量预训练模型,准确的识别效果 | ||
- 超轻量ppocr_mobile移动端系列:检测(2.6M)+方向分类器(0.9M)+ 识别(4.6M)= 8.1M | ||
- 通用ppocr_server系列:检测(47.2M)+方向分类器(0.9M)+ 识别(107M)= 155.1M | ||
- 超轻量压缩ppocr_mobile_slim系列:检测(1.4M)+方向分类器(0.5M)+ 识别(1.6M)= 3.5M | ||
- 支持中英文数字组合识别、竖排文本识别、长文本识别 | ||
- 支持多语言识别:韩语、日语、德语、法语 | ||
- 支持用户自定义训练,提供丰富的预测推理部署方案 | ||
- 支持PIP快速安装使用 | ||
- 可运行于Linux、Windows、MacOS等多种系统 | ||
|
||
## 效果展示 | ||
|
||
<div align="center"> | ||
<img src="doc/imgs_results/1101.jpg" width="800"> | ||
<img src="doc/imgs_results/1103.jpg" width="800"> | ||
</div> | ||
|
||
上图是通用ppocr_server模型效果展示,更多效果图请见[效果展示页面](./doc/doc_ch/visualization.md)。 | ||
|
||
## 快速体验 | ||
- PC端:超轻量级中文OCR在线体验地址:https://www.paddlepaddle.org.cn/hub/scene/ocr | ||
|
||
- 移动端:[安装包DEMO下载地址](https://ai.baidu.com/easyedge/app/openSource?from=paddlelite)(基于EasyEdge和Paddle-Lite, 支持iOS和Android系统),Android手机也可以直接扫描下面二维码安装体验。 | ||
|
||
|
||
<div align="center"> | ||
<img src="./doc/ocr-android-easyedge.png" width = "200" height = "200" /> | ||
</div> | ||
|
||
- 代码体验:从[快速安装](./doc/doc_ch/installation.md) 开始 | ||
|
||
<a name="模型下载"></a> | ||
## PP-OCR 1.1系列模型列表(9月17日更新) | ||
|
||
| 模型简介 | 模型名称 |推荐场景 | 检测模型 | 方向分类器 | 识别模型 | | ||
| ------------ | --------------- | ----------------|---- | ---------- | -------- | | ||
| 中英文超轻量OCR模型(8.1M) | ch_ppocr_mobile_v1.1_xx |移动端&服务器端|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/det/ch_ppocr_mobile_v1.1_det_train.tar)|[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/rec/ch_ppocr_mobile_v1.1_rec_pre.tar) | | ||
| 中英文通用OCR模型(155.1M) |ch_ppocr_server_v1.1_xx|服务器端 |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/server/det/ch_ppocr_server_v1.1_det_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_train.tar) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_infer.tar) / [预训练模型](https://paddleocr.bj.bcebos.com/20-09-22/server/rec/ch_ppocr_server_v1.1_rec_pre.tar) | | ||
| 中英文超轻量压缩OCR模型(3.5M) | ch_ppocr_mobile_slim_v1.1_xx| 移动端 |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/det/ch_ppocr_mobile_v1.1_det_prune_infer.tar) / [slim模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_det_prune_opt.nb) |[推理模型](https://paddleocr.bj.bcebos.com/20-09-22/cls/ch_ppocr_mobile_v1.1_cls_quant_infer.tar) / [slim模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_cls_quant_opt.nb)| [推理模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile-slim/rec/ch_ppocr_mobile_v1.1_rec_quant_infer.tar) / [slim模型](https://paddleocr.bj.bcebos.com/20-09-22/mobile/lite/ch_ppocr_mobile_v1.1_rec_quant_opt.nb)| | ||
|
||
更多模型下载(包括多语言),可以参考[PP-OCR v1.1 系列模型下载](./doc/doc_ch/models_list.md) | ||
|
||
## 文档教程 | ||
- [快速安装](./doc/doc_ch/installation.md) | ||
- [中文OCR模型快速使用](./doc/doc_ch/quickstart.md) | ||
- [代码组织结构](./doc/doc_ch/tree.md) | ||
- 算法介绍 | ||
- [文本检测](./doc/doc_ch/algorithm_overview.md) | ||
- [文本识别](./doc/doc_ch/algorithm_overview.md) | ||
- [PP-OCR Pipline](#PP-OCR) | ||
- 模型训练/评估 | ||
- [文本检测](./doc/doc_ch/detection.md) | ||
- [文本识别](./doc/doc_ch/recognition.md) | ||
- [方向分类器](./doc/doc_ch/angle_class.md) | ||
- [yml参数配置文件介绍](./doc/doc_ch/config.md) | ||
- 预测部署 | ||
- [基于pip安装whl包快速推理](./doc/doc_ch/whl.md) | ||
- [基于Python脚本预测引擎推理](./doc/doc_ch/inference.md) | ||
- [基于C++预测引擎推理](./deploy/cpp_infer/readme.md) | ||
- [服务化部署](./deploy/hubserving/readme.md) | ||
- [端侧部署](./deploy/lite/readme.md) | ||
- [模型量化](./deploy/slim/quantization/README.md) | ||
- [模型裁剪](./deploy/slim/prune/README.md) | ||
- [Benchmark](./doc/doc_ch/benchmark.md) | ||
- 数据集 | ||
- [通用中英文OCR数据集](./doc/doc_ch/datasets.md) | ||
- [手写中文OCR数据集](./doc/doc_ch/handwritten_datasets.md) | ||
- [垂类多语言OCR数据集](./doc/doc_ch/vertical_and_multilingual_datasets.md) | ||
- [常用数据标注工具](./doc/doc_ch/data_annotation.md) | ||
- [常用数据合成工具](./doc/doc_ch/data_synthesis.md) | ||
- [效果展示](#效果展示) | ||
- FAQ | ||
- [【精选】OCR精选10个问题](./doc/doc_ch/FAQ.md) | ||
- [【理论篇】OCR通用21个问题](./doc/doc_ch/FAQ.md) | ||
- [【实战篇】PaddleOCR实战53个问题](./doc/doc_ch/FAQ.md) | ||
- [技术交流群](#欢迎加入PaddleOCR技术交流群) | ||
- [参考文献](./doc/doc_ch/reference.md) | ||
- [许可证书](#许可证书) | ||
- [贡献代码](#贡献代码) | ||
|
||
<a name="PP-OCR"></a> | ||
## PP-OCR Pipline | ||
<div align="center"> | ||
<img src="./doc/ppocr_framework.png" width="800"> | ||
</div> | ||
|
||
PP-OCR是一个实用的超轻量OCR系统。主要由DB文本检测、检测框矫正和CRNN文本识别三部分组成。该系统从骨干网络选择和调整、预测头部的设计、数据增强、学习率变换策略、正则化参数选择、预训练模型使用以及模型自动裁剪量化8个方面,采用19个有效策略,对各个模块的模型进行效果调优和瘦身,最终得到整体大小为3.5M的超轻量中英文OCR和2.8M的英文数字OCR。更多细节请参考PP-OCR技术方案 https://arxiv.org/abs/2009.09941 。其中FPGM裁剪器和PACT量化的实现可以参考[PaddleSlim](https://github.com/PaddlePaddle/PaddleSlim)。 | ||
|
||
<a name="效果展示"></a> | ||
## 效果展示 [more](./doc/doc_ch/visualization.md) | ||
- 中文模型 | ||
<div align="center"> | ||
<img src="./doc/imgs_results/1102.jpg" width="800"> | ||
<img src="./doc/imgs_results/1104.jpg" width="800"> | ||
<img src="./doc/imgs_results/1106.jpg" width="800"> | ||
<img src="./doc/imgs_results/1105.jpg" width="800"> | ||
</div> | ||
|
||
- 英文模型 | ||
<div align="center"> | ||
<img src="./doc/imgs_results/img_12.jpg" width="800"> | ||
</div> | ||
|
||
- 其他语言模型 | ||
<div align="center"> | ||
<img src="./doc/imgs_results/1110.jpg" width="800"> | ||
<img src="./doc/imgs_results/1112.jpg" width="800"> | ||
</div> | ||
|
||
<a name="欢迎加入PaddleOCR技术交流群"></a> | ||
## 欢迎加入PaddleOCR技术交流群 | ||
请扫描下面二维码,完成问卷填写,获取加群二维码和OCR方向的炼丹秘籍 | ||
|
||
<div align="center"> | ||
<img src="./doc/joinus.PNG" width = "200" height = "200" /> | ||
</div> | ||
|
||
<a name="许可证书"></a> | ||
## 许可证书 | ||
本项目的发布受<a href="https://github.com/PaddlePaddle/PaddleOCR/blob/master/LICENSE">Apache 2.0 license</a>许可认证。 | ||
|
||
<a name="贡献代码"></a> | ||
## 贡献代码 | ||
我们非常欢迎你为PaddleOCR贡献代码,也十分感谢你的反馈。 | ||
|
||
- 非常感谢 [Khanh Tran](https://github.com/xxxpsyduck) 和 [Karl Horky](https://github.com/karlhorky) 贡献修改英文文档 | ||
- 非常感谢 [zhangxin](https://github.com/ZhangXinNan)([Blog](https://blog.csdn.net/sdlypyzq)) 贡献新的可视化方式、添加.gitgnore、处理手动设置PYTHONPATH环境变量的问题 | ||
- 非常感谢 [lyl120117](https://github.com/lyl120117) 贡献打印网络结构的代码 | ||
- 非常感谢 [xiangyubo](https://github.com/xiangyubo) 贡献手写中文OCR数据集 | ||
- 非常感谢 [authorfu](https://github.com/authorfu) 贡献Android和[xiadeye](https://github.com/xiadeye) 贡献IOS的demo代码 | ||
- 非常感谢 [BeyondYourself](https://github.com/BeyondYourself) 给PaddleOCR提了很多非常棒的建议,并简化了PaddleOCR的部分代码风格。 | ||
- 非常感谢 [tangmq](https://gitee.com/tangmq) 给PaddleOCR增加Docker化部署服务,支持快速发布可调用的Restful API服务。 |
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
<a name="算法介绍"></a> | ||
## 算法介绍 | ||
本文给出了PaddleOCR已支持的文本检测算法和文本识别算法列表,以及每个算法在**英文公开数据集**上的模型和指标,主要用于算法简介和算法性能对比,更多包括中文在内的其他数据集上的模型请参考[PP-OCR v1.1 系列模型下载](./models_list.md)。 | ||
|
||
- [1.文本检测算法](#文本检测算法) | ||
- [2.文本识别算法](#文本识别算法) | ||
|
||
<a name="文本检测算法"></a> | ||
### 1.文本检测算法 | ||
|
||
PaddleOCR开源的文本检测算法列表: | ||
- [x] DB([paper](https://arxiv.org/abs/1911.08947))(ppocr推荐) | ||
- [x] EAST([paper](https://arxiv.org/abs/1704.03155)) | ||
- [x] SAST([paper](https://arxiv.org/abs/1908.05498)) | ||
|
||
在ICDAR2015文本检测公开数据集上,算法效果如下: | ||
|
||
|模型|骨干网络|precision|recall|Hmean|下载链接| | ||
|-|-|-|-|-|-| | ||
|EAST|ResNet50_vd|88.18%|85.51%|86.82%|[下载链接](https://paddleocr.bj.bcebos.com/det_r50_vd_east.tar)| | ||
|EAST|MobileNetV3|81.67%|79.83%|80.74%|[下载链接](https://paddleocr.bj.bcebos.com/det_mv3_east.tar)| | ||
|DB|ResNet50_vd|83.79%|80.65%|82.19%|[下载链接](https://paddleocr.bj.bcebos.com/det_r50_vd_db.tar)| | ||
|DB|MobileNetV3|75.92%|73.18%|74.53%|[下载链接](https://paddleocr.bj.bcebos.com/det_mv3_db.tar)| | ||
|SAST|ResNet50_vd|92.18%|82.96%|87.33%|[下载链接](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_icdar2015.tar)| | ||
|
||
在Total-text文本检测公开数据集上,算法效果如下: | ||
|
||
|模型|骨干网络|precision|recall|Hmean|下载链接| | ||
|-|-|-|-|-|-| | ||
|SAST|ResNet50_vd|88.74%|79.80%|84.03%|[下载链接](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)| | ||
|
||
**说明:** SAST模型训练额外加入了icdar2013、icdar2017、COCO-Text、ArT等公开数据集进行调优。PaddleOCR用到的经过整理格式的英文公开数据集下载:[百度云地址](https://pan.baidu.com/s/12cPnZcVuV1zn5DOd4mqjVw) (提取码: 2bpi) | ||
|
||
PaddleOCR文本检测算法的训练和使用请参考文档教程中[模型训练/评估中的文本检测部分](./detection.md)。 | ||
|
||
|
||
<a name="文本识别算法"></a> | ||
### 2.文本识别算法 | ||
|
||
PaddleOCR开源的文本识别算法列表: | ||
- [x] CRNN([paper](https://arxiv.org/abs/1507.05717))(ppocr推荐) | ||
- [x] Rosetta([paper](https://arxiv.org/abs/1910.05085)) | ||
- [x] STAR-Net([paper](http:https://www.bmva.org/bmvc/2016/papers/paper043/index.html)) | ||
- [x] RARE([paper](https://arxiv.org/abs/1603.03915v1)) | ||
- [x] SRN([paper](https://arxiv.org/abs/2003.12294)) | ||
|
||
参考[DTRB](https://arxiv.org/abs/1904.01906)文字识别训练和评估流程,使用MJSynth和SynthText两个文字识别数据集训练,在IIIT, SVT, IC03, IC13, IC15, SVTP, CUTE数据集上进行评估,算法效果如下: | ||
|
||
|模型|骨干网络|Avg Accuracy|模型存储命名|下载链接| | ||
|-|-|-|-|-| | ||
|Rosetta|Resnet34_vd|80.24%|rec_r34_vd_none_none_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_none_none_ctc.tar)| | ||
|Rosetta|MobileNetV3|78.16%|rec_mv3_none_none_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_none_none_ctc.tar)| | ||
|CRNN|Resnet34_vd|82.20%|rec_r34_vd_none_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_none_bilstm_ctc.tar)| | ||
|CRNN|MobileNetV3|79.37%|rec_mv3_none_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_none_bilstm_ctc.tar)| | ||
|STAR-Net|Resnet34_vd|83.93%|rec_r34_vd_tps_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_ctc.tar)| | ||
|STAR-Net|MobileNetV3|81.56%|rec_mv3_tps_bilstm_ctc|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_ctc.tar)| | ||
|RARE|Resnet34_vd|84.90%|rec_r34_vd_tps_bilstm_attn|[下载链接](https://paddleocr.bj.bcebos.com/rec_r34_vd_tps_bilstm_attn.tar)| | ||
|RARE|MobileNetV3|83.32%|rec_mv3_tps_bilstm_attn|[下载链接](https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_attn.tar)| | ||
|SRN|Resnet50_vd_fpn|88.33%|rec_r50fpn_vd_none_srn|[下载链接](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar)| | ||
|
||
**说明:** SRN模型使用了数据扰动方法对上述提到对两个训练集进行增广,增广后的数据可以在[百度网盘](https://pan.baidu.com/s/1-HSZ-ZVdqBF2HaBZ5pRAKA)上下载,提取码: y3ry。 | ||
原始论文使用两阶段训练平均精度为89.74%,PaddleOCR中使用one-stage训练,平均精度为88.33%。两种预训练权重均在[下载链接](https://paddleocr.bj.bcebos.com/SRN/rec_r50fpn_vd_none_srn.tar)中。 | ||
|
||
PaddleOCR文本识别算法的训练和使用请参考文档教程中[模型训练/评估中的文本识别部分](./recognition.md)。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
## 文字角度分类 | ||
|
||
### 数据准备 | ||
|
||
请按如下步骤设置数据集: | ||
|
||
训练数据的默认存储路径是 `PaddleOCR/train_data/cls`,如果您的磁盘上已有数据集,只需创建软链接至数据集目录: | ||
|
||
``` | ||
ln -sf <path/to/dataset> <path/to/paddle_ocr>/train_data/cls/dataset | ||
``` | ||
|
||
请参考下文组织您的数据。 | ||
- 训练集 | ||
|
||
首先请将训练图片放入同一个文件夹(train_images),并用一个txt文件(cls_gt_train.txt)记录图片路径和标签。 | ||
|
||
**注意:** 默认请将图片路径和图片标签用 `\t` 分割,如用其他方式分割将造成训练报错 | ||
|
||
0和180分别表示图片的角度为0度和180度 | ||
|
||
``` | ||
" 图像文件名 图像标注信息 " | ||
train_data/cls/word_001.jpg 0 | ||
train_data/cls/word_002.jpg 180 | ||
``` | ||
|
||
最终训练集应有如下文件结构: | ||
``` | ||
|-train_data | ||
|-cls | ||
|- cls_gt_train.txt | ||
|- train | ||
|- word_001.png | ||
|- word_002.jpg | ||
|- word_003.jpg | ||
| ... | ||
``` | ||
|
||
- 测试集 | ||
|
||
同训练集类似,测试集也需要提供一个包含所有图片的文件夹(test)和一个cls_gt_test.txt,测试集的结构如下所示: | ||
|
||
``` | ||
|-train_data | ||
|-cls | ||
|- 和一个cls_gt_test.txt | ||
|- test | ||
|- word_001.jpg | ||
|- word_002.jpg | ||
|- word_003.jpg | ||
| ... | ||
``` | ||
|
||
### 启动训练 | ||
|
||
PaddleOCR提供了训练脚本、评估脚本和预测脚本。 | ||
|
||
开始训练: | ||
|
||
*如果您安装的是cpu版本,请将配置文件中的 `use_gpu` 字段修改为false* | ||
|
||
``` | ||
# 设置PYTHONPATH路径 | ||
export PYTHONPATH=$PYTHONPATH:. | ||
# GPU训练 支持单卡,多卡训练,通过CUDA_VISIBLE_DEVICES指定卡号 | ||
export CUDA_VISIBLE_DEVICES=0,1,2,3 | ||
# 启动训练 | ||
python3 tools/train.py -c configs/cls/cls_mv3.yml | ||
``` | ||
|
||
- 数据增强 | ||
|
||
PaddleOCR提供了多种数据增强方式,如果您希望在训练时加入扰动,请在配置文件中设置 `distort: true`。 | ||
|
||
默认的扰动方式有:颜色空间转换(cvtColor)、模糊(blur)、抖动(jitter)、噪声(Gasuss noise)、随机切割(random crop)、透视(perspective)、颜色反转(reverse),随机数据增强(RandAugment)。 | ||
|
||
训练过程中除随机数据增强外每种扰动方式以50%的概率被选择,具体代码实现请参考: | ||
[randaugment.py](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/ppocr/data/cls/randaugment.py) | ||
[img_tools.py](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/ppocr/data/rec/img_tools.py) | ||
|
||
*由于OpenCV的兼容性问题,扰动操作暂时只支持linux* | ||
|
||
### 训练 | ||
|
||
PaddleOCR支持训练和评估交替进行, 可以在 `configs/cls/cls_mv3.yml` 中修改 `eval_batch_step` 设置评估频率,默认每500个iter评估一次。评估过程中默认将最佳acc模型,保存为 `output/cls_mv3/best_accuracy` 。 | ||
|
||
如果验证集很大,测试将会比较耗时,建议减少评估次数,或训练完再进行评估。 | ||
|
||
**注意,预测/评估时的配置文件请务必与训练一致。** | ||
|
||
### 评估 | ||
|
||
评估数据集可以通过`configs/cls/cls_reader.yml` 修改EvalReader中的 `label_file_path` 设置。 | ||
|
||
*注意* 评估时必须确保配置文件中 infer_img 字段为空 | ||
``` | ||
export CUDA_VISIBLE_DEVICES=0 | ||
# GPU 评估, Global.checkpoints 为待测权重 | ||
python3 tools/eval.py -c configs/cls/cls_mv3.yml -o Global.checkpoints={path/to/weights}/best_accuracy | ||
``` | ||
|
||
### 预测 | ||
|
||
* 训练引擎的预测 | ||
|
||
使用 PaddleOCR 训练好的模型,可以通过以下脚本进行快速预测。 | ||
|
||
默认预测图片存储在 `infer_img` 里,通过 `-o Global.checkpoints` 指定权重: | ||
|
||
``` | ||
# 预测分类结果 | ||
python3 tools/infer_cls.py -c configs/cls/cls_mv3.yml -o Global.checkpoints={path/to/weights}/best_accuracy Global.infer_img=doc/imgs_words/en/word_1.png | ||
``` | ||
|
||
预测图片: | ||
|
||
![](../imgs_words/en/word_1.png) | ||
|
||
得到输入图像的预测结果: | ||
|
||
``` | ||
infer_img: doc/imgs_words/en/word_1.png | ||
scores: [[0.93161047 0.06838956]] | ||
label: [0] | ||
``` |
Oops, something went wrong.