diff --git a/README_ch.md b/README_ch.md index f302df6d9198affa6795d1f11dfceca643c6021b..74f93c5ed0afac5f417d35d135de1f91a2877fe7 100755 --- a/README_ch.md +++ b/README_ch.md @@ -98,7 +98,7 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 - [PP-OCR模型训练](./doc/doc_ch/training.md) - [文本检测](./doc/doc_ch/detection.md) - [文本识别](./doc/doc_ch/recognition.md) - - [方向分类器](./doc/doc_ch/angle_class.md) + - [文本方向分类器](./doc/doc_ch/angle_class.md) - [配置文件内容与生成](./doc/doc_ch/config.md) - PP-OCR模型推理部署 - [基于C++预测引擎推理](./deploy/cpp_infer/readme.md) diff --git a/deploy/cpp_infer/readme.md b/deploy/cpp_infer/readme.md index 9bdd54669faec874e3cdad59f604882ab0bce010..f88d021d0a050aeecf859981cc2de1cee8f3a2c0 100644 --- a/deploy/cpp_infer/readme.md +++ b/deploy/cpp_infer/readme.md @@ -4,15 +4,32 @@ C++在性能计算上优于python,因此,在大多数CPU、GPU部署场景,多采用C++的部署方式,本节将介绍如何在Linux\Windows (CPU\GPU)环境下配置C++环境并完成 PaddleOCR模型部署。 +* [1. 准备环境](#1) + + [1.0 运行准备](#10) + + [1.1 编译opencv库](#11) + + [1.2 下载或者编译Paddle预测库](#12) + - [1.2.1 直接下载安装](#121) + - [1.2.2 预测库源码编译](#122) +* [2 开始运行](#2) + + [2.1 将模型导出为inference model](#21) + + [2.2 编译PaddleOCR C++预测demo](#22) + + [2.3运行demo](#23) + + ## 1. 准备环境 -### 运行准备 + + +### 1.0 运行准备 + - Linux环境,推荐使用docker。 - Windows环境,目前支持基于`Visual Studio 2019 Community`进行编译。 * 该文档主要介绍基于Linux环境的PaddleOCR C++预测流程,如果需要在Windows下基于预测库进行C++预测,具体编译方法请参考[Windows下编译教程](./docs/windows_vs2019_build.md) + + ### 1.1 编译opencv库 * 首先需要从opencv官网上下载在Linux环境下源码编译的包,以opencv3.4.7为例,下载命令如下。 @@ -71,6 +88,8 @@ opencv3/ |-- share ``` + + ### 1.2 下载或者编译Paddle预测库 * 有2种方式获取Paddle预测库,下面进行详细介绍。 @@ -132,9 +151,12 @@ build/paddle_inference_install_dir/ 其中`paddle`就是C++预测所需的Paddle库,`version.txt`中包含当前预测库的版本信息。 + ## 2 开始运行 + + ### 2.1 将模型导出为inference model * 可以参考[模型预测章节](../../doc/doc_ch/inference.md),导出inference model,用于模型预测。模型导出之后,假设放在`inference`目录下,则目录结构如下。 @@ -149,6 +171,7 @@ inference/ | |--inference.pdmodel ``` + ### 2.2 编译PaddleOCR C++预测demo @@ -172,13 +195,14 @@ CUDNN_LIB_DIR=/your_cudnn_lib_dir * 编译完成之后,会在`build`文件夹下生成一个名为`ppocr`的可执行文件。 + -### 运行demo +### 2.3 运行demo 运行方式: ```shell ./build/ppocr [--param1] [--param2] [...] -``` +``` 其中,`mode`为必选参数,表示选择的功能,取值范围['det', 'rec', 'system'],分别表示调用检测、识别、检测识别串联(包括方向分类器)。具体命令如下: ##### 1. 只调用检测: @@ -258,6 +282,4 @@ CUDNN_LIB_DIR=/your_cudnn_lib_dir -### 2.3 注意 - -* 在使用Paddle预测库时,推荐使用2.0.0版本的预测库。 +**注意:在使用Paddle预测库时,推荐使用2.0.0版本的预测库。** diff --git a/doc/doc_ch/angle_class.md b/doc/doc_ch/angle_class.md index 321b32ba48e599fb6e72f697fa438a3a54e33337..723d0d2ce5a8c25699c085c32004aa827b188fd9 100644 --- a/doc/doc_ch/angle_class.md +++ b/doc/doc_ch/angle_class.md @@ -1,14 +1,14 @@ # 文本方向分类器 -- [方法介绍](#方法介绍) -- [数据准备](#数据准备) -- [启动训练](#启动训练) -- [训练](#训练) -- [评估](#评估) -- [预测](#预测) +- [1.方法介绍](#方法介绍) +- [2.数据准备](#数据准备) +- [3.启动训练](#启动训练) +- [4.训练](#训练) +- [5.评估](#评估) +- [6.预测](#预测) -## 方法介绍 +## 1. 方法介绍 文本方向分类器主要用于图片非0度的场景下,在这种场景下需要对图片里检测到的文本行进行一个转正的操作。在PaddleOCR系统内, 文字检测之后得到的文本行图片经过仿射变换之后送入识别模型,此时只需要对文字进行一个0和180度的角度分类,因此PaddleOCR内置的 文本方向分类器**只支持了0和180度的分类**。如果想支持更多角度,可以自己修改算法进行支持。 @@ -18,7 +18,7 @@ ![](../imgs_results/angle_class_example.jpg) -## 数据准备 +## 2. 数据准备 请按如下步骤设置数据集: @@ -70,7 +70,7 @@ train/cls/train/word_002.jpg 180 | ... ``` -## 启动训练 +## 3. 启动训练 将准备好的txt文件和图片文件夹路径分别写入配置文件的 `Train/Eval.dataset.label_file_list` 和 `Train/Eval.dataset.data_dir` 字段下,`Train/Eval.dataset.data_dir`字段下的路径和文件里记载的图片名构成了图片的绝对路径。 @@ -99,7 +99,7 @@ PaddleOCR提供了多种数据增强方式,如果您希望在训练时加入 *由于OpenCV的兼容性问题,扰动操作暂时只支持linux* -## 训练 +## 4. 训练 PaddleOCR支持训练和评估交替进行, 可以在 `configs/cls/cls_mv3.yml` 中修改 `eval_batch_step` 设置评估频率,默认每1000个iter评估一次。训练过程中将会保存如下内容: ```bash @@ -118,7 +118,7 @@ PaddleOCR支持训练和评估交替进行, 可以在 `configs/cls/cls_mv3.yml` **注意,预测/评估时的配置文件请务必与训练一致。** -## 评估 +## 5. 评估 评估数据集可以通过修改`configs/cls/cls_mv3.yml`文件里的`Eval.dataset.label_file_list` 字段设置。 @@ -129,7 +129,7 @@ python3 tools/eval.py -c configs/cls/cls_mv3.yml -o Global.checkpoints={path/to/ ``` -## 预测 +## 6. 预测 * 训练引擎的预测 diff --git a/doc/doc_ch/config.md b/doc/doc_ch/config.md index a729b900d4419706c35fa029f163fba3b4afec1e..600d5bdb120444ec89222360af02adb3f96a8640 100644 --- a/doc/doc_ch/config.md +++ b/doc/doc_ch/config.md @@ -1,5 +1,11 @@ # 配置文件内容与生成 +* [1. 可选参数列表](#1) +* [2. 配置文件参数介绍](#2) +* [3. 多语言配置文件生成](#3) + + + ## 1. 可选参数列表 以下列表可以通过`--help`查看 @@ -9,11 +15,12 @@ | -c | ALL | 指定配置文件 | None | **配置模块说明请参考 参数介绍** | | -o | ALL | 设置配置文件里的参数内容 | None | 使用-o配置相较于-c选择的配置文件具有更高的优先级。例如:`-o Global.use_gpu=false` | + ## 2. 配置文件参数介绍 以 `rec_chinese_lite_train_v2.0.yml ` 为例 -### 2.1 Global +### Global | 字段 | 用途 | 默认值 | 备注 | | :----------------------: | :---------------------: | :--------------: | :--------------------: | @@ -124,6 +131,8 @@ | drop_last | 是否丢弃因数据集样本数不能被 batch_size 整除而产生的最后一个不完整的mini-batch | True | \ | | num_workers | 用于加载数据的子进程个数,若为0即为不开启子进程,在主进程中进行数据加载 | 8 | \ | + + ## 3. 多语言配置文件生成 PaddleOCR目前已支持80种(除中文外)语种识别,`configs/rec/multi_languages` 路径下提供了一个多语言的配置文件模版: [rec_multi_language_lite_train.yml](../../configs/rec/multi_language/rec_multi_language_lite_train.yml)。