diff --git a/doc/doc_ch/FAQ.md b/doc/doc_ch/FAQ.md index dff6476cd0853005bed1a23f2f1652bd42f8b154..682ee64dbab4504d9311b54cbde2b5248922049c 100644 --- a/doc/doc_ch/FAQ.md +++ b/doc/doc_ch/FAQ.md @@ -17,40 +17,39 @@ * [模型训练调优7题](#模型训练调优) * [预测部署8题](#预测部署) * [【实战篇】PaddleOCR实战72个问题](#PaddleOCR实战问题) - * [使用咨询19题](#使用咨询) - * [数据集10题](#数据集) + * [使用咨询20题](#使用咨询) + * [数据集14题](#数据集) * [模型训练调优21题](#模型训练调优) * [预测部署21题](#预测部署) -## 近期更新(2020.11.16) +## 近期更新(2020.11.23) -#### Q3.4.20:文档场景中,使用DB模型会出现整行漏检的情况应该怎么解决? -**A**:可以在预测时调小 det_db_box_thresh 阈值,默认为0.5, 可调小至0.3观察效果。 - -#### Q2.1.7:类似泰语这样的小语种,部分字会占用两个字符甚至三个字符,请问如何制作字典。 +#### Q3.2.11:有哪些标注工具可以标注OCR数据集? -**A**:处理字符的时候,把多字符的当作一个字就行,字典中每行是一个字。 +**A**:您可以参考:https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/data_annotation_en.md。 +我们计划推出高效标注OCR数据的标注工具,请您持续关注PaddleOCR的近期更新。 -#### Q2.3.7:识别训练时,训练集精度已经到达90了,但验证集精度一直在70,涨不上去怎么办? +#### Q3.2.12:一些特殊场景的数据识别效果差,但是数据量很少,不够用来finetune怎么办? -**A**:训练集精度90,测试集70多的话,应该是过拟合了,有两个可尝试的方法: +**A**:您可以合成一些接近使用场景的数据用于训练。 +我们计划推出基于特定场景的文本数据合成工具,请您持续关注PaddleOCR的近期更新。 -(1)加入更多的增广方式或者调大增广prob的[概率](https://github.com/PaddlePaddle/PaddleOCR/blob/a501603d54ff5513fc4fc760319472e59da25424/ppocr/data/rec/img_tools.py#L307),默认为0.4。 +#### Q3.2.13:特殊字符(例如一些标点符号)识别效果不好怎么办? -(2)调大系统的[l2 dcay值](https://github.com/PaddlePaddle/PaddleOCR/blob/a501603d54ff5513fc4fc760319472e59da25424/configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml#L47) +**A**:首先请您确认要识别的特殊字符是否在字典中。 +如果字符在已经字典中但效果依然不好,可能是由于识别数据较少导致的,您可以增加相应数据finetune模型。 +#### Q3.2.14:PaddleOCR可以识别灰度图吗? -#### Q3.4.21:自己训练的det模型,在同一张图片上,inference模型与eval模型结果差别很大,为什么? +**A**:PaddleOCR的模型均为三通道输入。如果您想使用灰度图作为输入,建议直接用3通道的模式读入灰度图, +或者将单通道图像转换为三通道图像再识别。例如,opencv的cvtColor函数就可以将灰度图转换为RGB三通道模式。 -**A**:这是由于图片预处理不同造成的。如果训练的det模型图片输入并不是默认的shape[600, 600], -eval的程序中图片预处理方式与train时一致(由xxx_reader.yml中的test_image_shape参数决定缩放大小) -但predict_eval.py中的图片预处理方式由程序里的preprocess_params决定,最好不要传入max_side_len,而是传入和训练时一样大小的test_image_shape。 +#### Q3.1.20:PaddleOCR与百度的其他OCR产品有什么区别? -#### Q3.4.22:训练ccpd车牌数据集,训练集准确率高,测试均是错误的,这是什么原因? - -**A**:这是因为训练时将shape修改为[3, 70, 220], 预测时对图片resize,会把高度压缩至32,影响测试结果。注释掉[resize代码](https://github.com/PaddlePaddle/PaddleOCR/blob/ed4313d611b7708a7763d4612f00cb7f318a0e1f/tools/infer/predict_rec.py#L54-L55)可以解决问题。 +**A**:PaddleOCR主要聚焦通用ocr,如果有垂类需求,您可以用PaddleOCR+垂类数据自己训练; +如果缺少带标注的数据,或者不想投入研发成本,建议直接调用开放的API,开放的API覆盖了目前比较常见的一些垂类。 @@ -373,6 +372,11 @@ eval的程序中图片预处理方式与train时一致(由xxx_reader.yml中的 **A**:这个一般是因为标注文件格式有问题或者是标注文件中的图片路径有问题导致的,在[tools/train.py](../../tools/train.py)文件中有一个`test_reader`的函数,基于这个去检查一下数据的格式以及标注,确认没问题之后再进行模型训练。 +#### Q3.1.20:PaddleOCR与百度的其他OCR产品有什么区别? + +**A**:PaddleOCR主要聚焦通用ocr,如果有垂类需求,您可以用PaddleOCR+垂类数据自己训练; +如果缺少带标注的数据,或者不想投入研发成本,建议直接调用开放的API,开放的API覆盖了目前比较常见的一些垂类。 + ### 数据集 @@ -428,10 +432,30 @@ eval的程序中图片预处理方式与train时一致(由xxx_reader.yml中的 **A**:可以主要参考可视化效果,通用模型更倾向于检测一整行文字,轻量级可能会有一行文字被分成两段检测的情况,不是数量越多,效果就越好。 -#### Q3.2.10: crnn+ctc模型训练所用的垂直文本(旋转至水平方向)是如何生成的? +#### Q3.2.10:crnn+ctc模型训练所用的垂直文本(旋转至水平方向)是如何生成的? **A**:方法与合成水平方向文字一致,只是将字体替换成了垂直字体。 +#### Q3.2.11:有哪些标注工具可以标注OCR数据集? + +**A**:您可以参考:https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/data_annotation_en.md。 +我们计划推出高效标注OCR数据的标注工具,请您持续关注PaddleOCR的近期更新。 + +#### Q3.2.12:一些特殊场景的数据识别效果差,但是数据量很少,不够用来finetune怎么办? + +**A**:您可以合成一些接近使用场景的数据用于训练。 +我们计划推出基于特定场景的文本数据合成工具,请您持续关注PaddleOCR的近期更新。 + +#### Q3.2.13:特殊字符(例如一些标点符号)识别效果不好怎么办? + +**A**:首先请您确认要识别的特殊字符是否在字典中。 +如果字符在已经字典中但效果依然不好,可能是由于识别数据较少导致的,您可以增加相应数据finetune模型。 + +#### Q3.2.14:PaddleOCR可以识别灰度图吗? + +**A**:PaddleOCR的模型均为三通道输入。如果您想使用灰度图作为输入,建议直接用3通道的模式读入灰度图, +或者将单通道图像转换为三通道图像再识别。例如,opencv的cvtColor函数就可以将灰度图转换为RGB三通道模式。 + ### 模型训练调优