diff --git a/README.md b/README.md index c19493b07b0e615876404689f4eaac0802dbda60..f6a73a7e15739443b5af7d4a73893f63ae1c0a20 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ For a new language request, please refer to [Guideline for new language_requests - [Table Recognition](./ppstructure/table/README.md) - Academic Circles - [Two-stage Algorithm](./doc/doc_en/algorithm_overview_en.md) - - [PGNet Algorithm](./doc/doc_en/algorithm_overview_en.md) + - [PGNet Algorithm](./doc/doc_en/pgnet_en.md) - [Python Inference](./doc/doc_en/inference_en.md) - Data Annotation and Synthesis - [Semi-automatic Annotation Tool: PPOCRLabel](./PPOCRLabel/README.md) diff --git a/README_ch.md b/README_ch.md index 7e088e30116a4dd636b044fcc55169972ef04eb6..7091523d2f6e24dd4256aad9e6a978a6929f9443 100755 --- a/README_ch.md +++ b/README_ch.md @@ -109,15 +109,16 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 - [PP-Structure信息提取](./ppstructure/README_ch.md) - [版面分析](./ppstructure/layout/README_ch.md) - [表格识别](./ppstructure/table/README_ch.md) +- OCR学术圈 + - [两阶段模型介绍与下载](./doc/doc_ch/algorithm_overview.md) + - [端到端PGNet算法](./doc/doc_ch/pgnet.md) + - [基于Python脚本预测引擎推理](./doc/doc_ch/inference.md) + - [使用PaddleOCR架构添加新算法](./doc/doc_ch/add_new_algorithm.md) - 数据标注与合成 - [半自动标注工具PPOCRLabel](./PPOCRLabel/README_ch.md) - [数据合成工具Style-Text](./StyleText/README_ch.md) - [其它数据标注工具](./doc/doc_ch/data_annotation.md) - [其它数据合成工具](./doc/doc_ch/data_synthesis.md) -- OCR学术圈 - - [两阶段模型介绍与下载](./doc/doc_ch/algorithm_overview.md) - - [端到端PGNet算法](./doc/doc_ch/pgnet.md) - - [基于Python脚本预测引擎推理](./doc/doc_ch/inference.md) - 数据集 - [通用中英文OCR数据集](./doc/doc_ch/datasets.md) - [手写中文OCR数据集](./doc/doc_ch/handwritten_datasets.md) diff --git a/doc/doc_ch/training.md b/doc/doc_ch/training.md index c6c7b87d9925197b36a246c651ab7179ff9d2e81..d2deea6f205e0402e8c9c0010d5d8dd3e325fa3b 100644 --- a/doc/doc_ch/training.md +++ b/doc/doc_ch/training.md @@ -4,15 +4,16 @@ 同时会简单介绍PaddleOCR模型训练数据的组成部分,以及如何在垂类场景中准备数据finetune模型。 -- [1. 基本概念](#基本概念) - * [1.1 学习率](#学习率) - * [1.2 正则化](#正则化) - * [1.3 评估指标](#评估指标) -- [2. 数据与垂类场景](#数据与垂类场景) - * [2.1 训练数据](#训练数据) - * [2.2 垂类场景](#垂类场景) - * [2.3 自己构建数据集](#自己构建数据集) -* [3. 常见问题](#常见问题) +- [1.配置文件说明](#配置文件) +- [2. 基本概念](#基本概念) + * [2.1 学习率](#学习率) + * [2.2 正则化](#正则化) + * [2.3 评估指标](#评估指标) +- [3. 数据与垂类场景](#数据与垂类场景) + * [3.1 训练数据](#训练数据) + * [3.2 垂类场景](#垂类场景) + * [3.3 自己构建数据集](#自己构建数据集) +* [4. 常见问题](#常见问题) ## 1. 基本概念 @@ -23,7 +24,7 @@ OCR(Optical Character Recognition,光学字符识别)是指对图像进行分析 模型调优时需要关注以下参数: -### 1.1 学习率 +### 2.1 学习率 学习率是训练神经网络的重要超参数之一,它代表在每一次迭代中梯度向损失函数最优解移动的步长。 在PaddleOCR中提供了多种学习率更新策略,可以通过配置文件修改,例如: @@ -42,7 +43,7 @@ Piecewise 代表分段常数衰减,在不同的学习阶段指定不同的学 warmup_epoch 代表在前5个epoch中,学习率将逐渐从0增加到base_lr。全部策略可以参考代码[learning_rate.py](../../ppocr/optimizer/learning_rate.py) 。 -### 1.2 正则化 +### 2.2 正则化 正则化可以有效的避免算法过拟合,PaddleOCR中提供了L1、L2正则方法,L1 和 L2 正则化是最常用的正则化方法。L1 正则化向目标函数添加正则化项,以减少参数的绝对值总和;而 L2 正则化中,添加正则化项的目的在于减少参数平方的总和。配置方法如下: @@ -55,7 +56,7 @@ Optimizer: ``` -### 1.3 评估指标 +### 2.3 评估指标 (1)检测阶段:先按照检测框和标注框的IOU评估,IOU大于某个阈值判断为检测准确。这里检测框和标注框不同于一般的通用目标检测框,是采用多边形进行表示。检测准确率:正确的检测框个数在全部检测框的占比,主要是判断检测指标。检测召回率:正确的检测框个数在全部标注框的占比,主要是判断漏检的指标。 @@ -65,10 +66,10 @@ Optimizer: -## 2. 数据与垂类场景 +## 3. 数据与垂类场景 -### 2.1 训练数据 +### 3.1 训练数据 目前开源的模型,数据集和量级如下: - 检测: @@ -83,13 +84,14 @@ Optimizer: 其中,公开数据集都是开源的,用户可自行搜索下载,也可参考[中文数据集](./datasets.md),合成数据暂不开源,用户可使用开源合成工具自行合成,可参考的合成工具包括[text_renderer](https://github.com/Sanster/text_renderer) 、[SynthText](https://github.com/ankush-me/SynthText) 、[TextRecognitionDataGenerator](https://github.com/Belval/TextRecognitionDataGenerator) 等。 -### 2.2 垂类场景 +### 3.2 垂类场景 PaddleOCR主要聚焦通用OCR,如果有垂类需求,您可以用PaddleOCR+垂类数据自己训练; 如果缺少带标注的数据,或者不想投入研发成本,建议直接调用开放的API,开放的API覆盖了目前比较常见的一些垂类。 -### 2.3 自己构建数据集 + +### 3.3 自己构建数据集 在构建数据集时有几个经验可供参考: @@ -107,7 +109,7 @@ PaddleOCR主要聚焦通用OCR,如果有垂类需求,您可以用PaddleOCR+ -## 3. 常见问题 +## 4. 常见问题 **Q**:训练CRNN识别时,如何选择合适的网络输入shape?