improve the reading experience of some documents (#13562)

pull/13585/head
Wang Xin 2024-08-02 19:41:36 +08:00 committed by GitHub
parent b6211b936b
commit 28c7be63ec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 51 additions and 43 deletions

View File

@ -2,6 +2,7 @@
comments: true
hide:
- navigation
- toc
---
1. **Prediction error: got an unexpected keyword argument 'gradient_clip'**

View File

@ -2,6 +2,7 @@
comments: true
hide:
- navigation
- toc
---
> 恭喜你发现宝藏!
@ -30,11 +31,11 @@ OCR领域大佬众多本文档回答主要依赖有限的项目实践
#### Q: PaddleOCR提供的文本识别算法包括哪些
A: PaddleOCR主要提供五种文本识别算法包括CRNN\StarNet\RARE\Rosetta和SRN, 其中CRNN\StarNet和Rosetta是基于ctc的文字识别算法RARE是基于attention的文字识别算法SRN为百度自研的文本识别算法引入了语义信息显著提升了准确率。 详情可参照如下页面: 文本识别算法
**A**PaddleOCR主要提供五种文本识别算法包括CRNN\StarNet\RARE\Rosetta和SRN, 其中CRNN\StarNet和Rosetta是基于ctc的文字识别算法RARE是基于attention的文字识别算法SRN为百度自研的文本识别算法引入了语义信息显著提升了准确率。 详情可参照如下页面: 文本识别算法
#### Q: 文本识别方法CRNN关键技术有哪些
A: CRNN 关键技术包括三部分。1CNN提取图像卷积特征。2深层双向LSTM网络在卷积特征的基础上继续提取文字序列特征。3Connectionist Temporal Classification(CTC),解决训练时字符无法对齐的问题。
**A**CRNN 关键技术包括三部分。1CNN提取图像卷积特征。2深层双向LSTM网络在卷积特征的基础上继续提取文字序列特征。3Connectionist Temporal Classification(CTC),解决训练时字符无法对齐的问题。
#### Q: 对于中文行文本识别CTC和Attention哪种更优
@ -54,7 +55,7 @@ A: CRNN 关键技术包括三部分。1CNN提取图像卷积特征。2
#### Q: 请问端到端的pgnet相比于DB+CRNN在准确率上有优势吗或者是pgnet最擅长的场景是什么场景呢
A: pgnet是端到端算法检测识别一步到位不用分开训练2个模型也支持弯曲文本的识别但是在中文上的效果还没有充分验证db+crnn的验证更充分应用相对成熟常规非弯曲的文本都能解的不错。
**A**pgnet是端到端算法检测识别一步到位不用分开训练2个模型也支持弯曲文本的识别但是在中文上的效果还没有充分验证db+crnn的验证更充分应用相对成熟常规非弯曲的文本都能解的不错。
#### Q: 目前OCR普遍是二阶段端到端的方案在业界落地情况如何
@ -62,11 +63,11 @@ A: pgnet是端到端算法检测识别一步到位不用分开训练2个
#### Q: 二阶段的端到端的场景文本识别方法的不足有哪些?
A: 这类方法一般需要设计针对ROI提取特征的方法而ROI操作一般比较耗时。
**A**这类方法一般需要设计针对ROI提取特征的方法而ROI操作一般比较耗时。
#### Q: AAAI 2021最新的端到端场景文本识别PGNet算法有什么特点
A: PGNet不需要字符级别的标注NMS操作以及ROI操作。同时提出预测文本行内的阅读顺序模块和基于图的修正模块来提升文本识别效果。该算法是百度自研近期会在PaddleOCR开源。
**A**PGNet不需要字符级别的标注NMS操作以及ROI操作。同时提出预测文本行内的阅读顺序模块和基于图的修正模块来提升文本识别效果。该算法是百度自研近期会在PaddleOCR开源。
### 1.4 评估方法
@ -94,7 +95,7 @@ A: PGNet不需要字符级别的标注NMS操作以及ROI操作。同时提出
#### Q请问对于图片中的密集文字有什么好的处理办法吗
A可以先试用预训练模型测试一下例如DB+CRNN判断下密集文字图片中是检测还是识别的问题然后针对性的改善。还有一种是如果图象中密集文字较小可以尝试增大图像分辨率对图像进行一定范围内的拉伸将文字稀疏化提高识别效果。
**A**可以先试用预训练模型测试一下例如DB+CRNN判断下密集文字图片中是检测还是识别的问题然后针对性的改善。还有一种是如果图象中密集文字较小可以尝试增大图像分辨率对图像进行一定范围内的拉伸将文字稀疏化提高识别效果。
#### Q 文本行较紧密的情况下如何准确检测?
@ -102,19 +103,19 @@ A可以先试用预训练模型测试一下例如DB+CRNN判断下密集
#### Q对于一些在识别时稍微模糊的文本有没有一些图像增强的方式
A在人类肉眼可以识别的前提下可以考虑图像处理中的均值滤波、中值滤波或者高斯滤波等模糊算子尝试。也可以尝试从数据扩增扰动来强化模型鲁棒性另外新的思路有对抗性训练和超分SR思路可以尝试借鉴。但目前业界尚无普遍认可的最优方案建议优先在数据采集阶段增加一些限制提升图片质量。
**A**在人类肉眼可以识别的前提下可以考虑图像处理中的均值滤波、中值滤波或者高斯滤波等模糊算子尝试。也可以尝试从数据扩增扰动来强化模型鲁棒性另外新的思路有对抗性训练和超分SR思路可以尝试借鉴。但目前业界尚无普遍认可的最优方案建议优先在数据采集阶段增加一些限制提升图片质量。
#### Q低像素文字或者字号比较小的文字有什么超分辨率方法吗
A超分辨率方法分为传统方法和基于深度学习的方法。基于深度学习的方法中比较经典的有SRCNN另外CVPR2020也有一篇超分辨率的工作可以参考文章Unpaired Image Super-Resolution using Pseudo-Supervision但是没有充分的实践验证过需要看实际场景下的效果。
**A**超分辨率方法分为传统方法和基于深度学习的方法。基于深度学习的方法中比较经典的有SRCNN另外CVPR2020也有一篇超分辨率的工作可以参考文章Unpaired Image Super-Resolution using Pseudo-Supervision但是没有充分的实践验证过需要看实际场景下的效果。
#### Q对于一些尺寸较大的文档类图片在检测时会有较多的漏检怎么避免这种漏检的问题呢
APaddleOCR中在图像最长边大于960时将图像等比例缩放为长边960的图像再进行预测对于这种图像可以通过修改det_limit_side_len增大检测的最长边tools/infer/utility.py#L42
**A**PaddleOCR中在图像最长边大于960时将图像等比例缩放为长边960的图像再进行预测对于这种图像可以通过修改det_limit_side_len增大检测的最长边tools/infer/utility.py#L42
#### Q文档场景中使用DB模型会出现整行漏检的情况应该怎么解决
A可以在预测时调小 det_db_box_thresh 阈值默认为0.5, 可调小至0.3观察效果。
**A**:可以在预测时调小 det_db_box_thresh 阈值默认为0.5, 可调小至0.3观察效果。
#### Q: 弯曲文本(如略微形变的文档图像)漏检问题
@ -138,19 +139,19 @@ A可以在预测时调小 det_db_box_thresh 阈值默认为0.5, 可调小
#### Q: 如何识别招牌或者广告图中的艺术字?
A: 招牌或者广告图中的艺术字是文本识别一个非常有挑战性的难题因为艺术字中的单字和印刷体相比变化非常大。如果需要识别的艺术字是在一个词典列表内可以将改每个词典认为是一个待识别图像模板通过通用图像检索识别系统解决识别问题。可以尝试使用PaddleClas的图像识别系统。
**A**: 招牌或者广告图中的艺术字是文本识别一个非常有挑战性的难题因为艺术字中的单字和印刷体相比变化非常大。如果需要识别的艺术字是在一个词典列表内可以将改每个词典认为是一个待识别图像模板通过通用图像检索识别系统解决识别问题。可以尝试使用PaddleClas的图像识别系统。
#### Q: 印章如何识别
A1. 使用带tps的识别网络或abcnet,2.使用极坐标变换将图片拉平之后使用crnn
**A**1. 使用带tps的识别网络或abcnet,2.使用极坐标变换将图片拉平之后使用crnn
#### Q: 使用预训练模型进行预测,对于特定字符识别识别效果较差,怎么解决?
A: 由于我们所提供的识别模型是基于通用大规模数据集进行训练的部分字符可能在训练集中包含较少因此您可以构建特定场景的数据集基于我们提供的预训练模型进行微调。建议用于微调的数据集中每个字符出现的样本数量不低于300但同时需要注意不同字符的数量均衡。具体可以参考微调。
**A**: 由于我们所提供的识别模型是基于通用大规模数据集进行训练的部分字符可能在训练集中包含较少因此您可以构建特定场景的数据集基于我们提供的预训练模型进行微调。建议用于微调的数据集中每个字符出现的样本数量不低于300但同时需要注意不同字符的数量均衡。具体可以参考微调。
#### Q: 在使用训练好的识别模型进行预测的时候,发现有很多重复的字,这个怎么解决呢?
A可以看下训练的尺度和预测的尺度是否相同如果训练的尺度为[3, 32, 320],预测的尺度为[3, 64, 640],则会有比较多的重复识别现象。
**A**:可以看下训练的尺度和预测的尺度是否相同,如果训练的尺度为[3, 32, 320],预测的尺度为[3, 64, 640],则会有比较多的重复识别现象。
#### Q: 图像正常识别出来的文字是OK的旋转90度后识别出来的结果就比较差有什么方法可以优化
@ -219,22 +220,22 @@ A可以看下训练的尺度和预测的尺度是否相同如果训练的
#### Q: 增大batch_size模型训练速度没有明显提升
A如果batch_size打得太大加速效果不明显的话可以试一下增大初始化内存的值运行代码前设置环境变量
**A**如果batch_size打得太大加速效果不明显的话可以试一下增大初始化内存的值运行代码前设置环境变量
export FLAGS_initial_cpu_memory_in_mb=2000 # 设置初始化内存约2G左右
#### Q: 预测时提示图像过大,显存、内存溢出了,应该如何处理?
A: 可以按照这个PR的修改来缓解显存、内存占用 #2230
**A**可以按照这个PR的修改来缓解显存、内存占用 #2230
#### Q: 识别训练时训练集精度已经到达90了但验证集精度一直在70涨不上去怎么办
A训练集精度90测试集70多的话应该是过拟合了有两个可尝试的方法1加入更多的增广方式或者调大增广prob的概率默认为0.4。2调大系统的l2 decay值
**A**训练集精度90测试集70多的话应该是过拟合了有两个可尝试的方法1加入更多的增广方式或者调大增广prob的概率默认为0.4。2调大系统的l2 decay值
### 1.7 补充资料
#### Q: 对于小白如何快速入门中文OCR项目实践
A建议可以先了解OCR方向的基础知识大概了解基础的检测和识别模型算法。然后在Github上可以查看OCR方向相关的repo。目前来看从内容的完备性来看PaddleOCR的中英文双语教程文档是有明显优势的在数据集、模型训练、预测部署文档详实可以快速入手。而且还有微信用户群答疑非常适合学习实践。项目地址PaddleOCR AI 快车道课程:<https://aistudio.baidu.com/aistudio/course/introduce/1519>
**A**建议可以先了解OCR方向的基础知识大概了解基础的检测和识别模型算法。然后在Github上可以查看OCR方向相关的repo。目前来看从内容的完备性来看PaddleOCR的中英文双语教程文档是有明显优势的在数据集、模型训练、预测部署文档详实可以快速入手。而且还有微信用户群答疑非常适合学习实践。项目地址PaddleOCR AI 快车道课程:<https://aistudio.baidu.com/aistudio/course/introduce/1519>
## 2. PaddleOCR实战问题
@ -262,15 +263,15 @@ A建议可以先了解OCR方向的基础知识大概了解基础的检测
#### QOSError [WinError 126] 找不到指定的模块。mac pro python 3.4 shapely import 问题
A这个问题是因为shapely库安装有误可以参考 #212 这个issue重新安装一下
**A**这个问题是因为shapely库安装有误可以参考 #212 这个issue重新安装一下
#### QPaddlePaddle怎么指定GPU运行 os.environ["CUDA_VISIBLE_DEVICES"]这种不生效
A通过设置 export CUDA_VISIBLE_DEVICES='0'环境变量
**A**:通过设置 export CUDA_VISIBLE_DEVICES='0'环境变量
#### QPaddleOCR是否支持在Windows或Mac系统上运行
APaddleOCR已完成Windows和Mac系统适配运行时注意两点
**A**PaddleOCR已完成Windows和Mac系统适配运行时注意两点
1在快速安装时如果不想安装docker可跳过第一步直接从第二步安装paddle开始。
2inference模型下载时如果没有安装wget可直接点击模型链接或将链接地址复制到浏览器进行下载并解压放置到相应目录。
@ -297,11 +298,11 @@ APaddleOCR已完成Windows和Mac系统适配运行时注意两点
#### Q训练文字识别模型真实数据有30w合成数据有500w需要做样本均衡吗
A需要一般需要保证一个batch中真实数据样本和合成数据样本的比例是51~101左右效果比较理想。如果合成数据过大会过拟合到合成数据预测效果往往不佳。还有一种启发性的尝试是可以先用大量合成数据训练一个base模型然后再用真实数据微调在一些简单场景效果也是会有提升的。
**A**需要一般需要保证一个batch中真实数据样本和合成数据样本的比例是51~101左右效果比较理想。如果合成数据过大会过拟合到合成数据预测效果往往不佳。还有一种启发性的尝试是可以先用大量合成数据训练一个base模型然后再用真实数据微调在一些简单场景效果也是会有提升的。
#### Q: 当训练数据量少时,如何获取更多的数据?
A当训练数据量少时可以尝试以下三种方式获取更多的数据1人工采集更多的训练数据最直接也是最有效的方式。2基于PIL和opencv基本图像处理或者变换。例如PIL中ImageFont, Image, ImageDraw三个模块将文字写到背景中opencv的旋转仿射变换高斯滤波等。3利用数据生成算法合成数据例如pix2pix等算法。
**A**当训练数据量少时可以尝试以下三种方式获取更多的数据1人工采集更多的训练数据最直接也是最有效的方式。2基于PIL和opencv基本图像处理或者变换。例如PIL中ImageFont, Image, ImageDraw三个模块将文字写到背景中opencv的旋转仿射变换高斯滤波等。3利用数据生成算法合成数据例如pix2pix等算法。
### 2.4 数据标注与生成
@ -345,7 +346,7 @@ StyleText的用途主要是提取style_image中的字体、背景等style信
#### Q如何更换文本检测/识别的backbone
A无论是文字检测还是文字识别骨干网络的选择是预测效果和预测效率的权衡。一般选择更大规模的骨干网络例如ResNet101_vd则检测或识别更准确但预测耗时相应也会增加。而选择更小规模的骨干网络例如MobileNetV3_small_x0_35则预测更快但检测或识别的准确率会大打折扣。幸运的是不同骨干网络的检测或识别效果与在ImageNet数据集图像1000分类任务效果正相关。飞桨图像分类套件PaddleClas汇总了ResNet_vd、Res2Net、HRNet、MobileNetV3、GhostNet等23种系列的分类网络结构在上述图像分类任务的top1识别准确率GPU(V100和T4)和CPU(骁龙855)的预测耗时以及相应的117个预训练模型下载地址。
**A**无论是文字检测还是文字识别骨干网络的选择是预测效果和预测效率的权衡。一般选择更大规模的骨干网络例如ResNet101_vd则检测或识别更准确但预测耗时相应也会增加。而选择更小规模的骨干网络例如MobileNetV3_small_x0_35则预测更快但检测或识别的准确率会大打折扣。幸运的是不同骨干网络的检测或识别效果与在ImageNet数据集图像1000分类任务效果正相关。飞桨图像分类套件PaddleClas汇总了ResNet_vd、Res2Net、HRNet、MobileNetV3、GhostNet等23种系列的分类网络结构在上述图像分类任务的top1识别准确率GPU(V100和T4)和CPU(骁龙855)的预测耗时以及相应的117个预训练模型下载地址。
1文字检测骨干网络的替换主要是确定类似于ResNet的4个stages以方便集成后续的类似FPN的检测头。此外对于文字检测问题使用ImageNet训练的分类预训练模型可以加速收敛和效果提升。
@ -357,11 +358,11 @@ A无论是文字检测还是文字识别骨干网络的选择是预测
#### Q: 下载的识别模型解压后缺失文件没有期望的inference.pdiparams, inference.pdmodel等文件
A用解压软件解压可能会出现这个问题建议二次解压下或者用命令行解压tar xf
**A**用解压软件解压可能会出现这个问题建议二次解压下或者用命令行解压tar xf
#### Q: 为什么在checkpoints中load下载的预训练模型会报错
A: 这里有两个不同的概念:
**A**这里有两个不同的概念:
pretrained_model指预训练模型是已经训练完成的模型。这时会load预训练模型的参数但并不会load学习率、优化器以及训练状态等。如果需要finetune应该使用pretrained。
checkpoints指之前训练的中间结果例如前一次训练到了100个epoch想接着训练。这时会load尝试所有信息包括模型的参数之前的状态等。
@ -378,11 +379,11 @@ checkpoints指之前训练的中间结果例如前一次训练到了100个
#### Q: DB检测训练输入尺寸640可以改大一些吗
A不建议改大。检测模型训练输入尺寸是预处理中random crop后的尺寸并非直接将原图进行resize多数场景下这个尺寸并不小了改大后可能反而并不合适而且训练会变慢。另外代码里可能有的地方参数按照预设输入尺寸适配的改大后可能有隐藏风险。
**A**不建议改大。检测模型训练输入尺寸是预处理中random crop后的尺寸并非直接将原图进行resize多数场景下这个尺寸并不小了改大后可能反而并不合适而且训练会变慢。另外代码里可能有的地方参数按照预设输入尺寸适配的改大后可能有隐藏风险。
#### Q: 预处理部分图片的长和宽为什么要处理成32的倍数
A以检测中的resnet骨干网络为例图像输入网络之后需要经过5次2倍降采样共32倍因此建议输入的图像尺寸为32的倍数。
**A**以检测中的resnet骨干网络为例图像输入网络之后需要经过5次2倍降采样共32倍因此建议输入的图像尺寸为32的倍数。
#### Q: 在识别模型中为什么降采样残差结构的stride为(2, 1)
@ -398,7 +399,7 @@ A以检测中的resnet骨干网络为例图像输入网络之后需要
#### Q识别模型框出来的位置太紧凑会丢失边缘的文字信息导致识别错误
A可以在命令中加入 --det_db_unclip_ratio 参数定义位置这个参数是检测后处理时控制文本框大小的默认1.6可以尝试改成2.5或者更大,反之,如果觉得文本框不够紧凑,也可以把该参数调小。
**A**:可以在命令中加入 --det_db_unclip_ratio 参数定义位置这个参数是检测后处理时控制文本框大小的默认1.6可以尝试改成2.5或者更大,反之,如果觉得文本框不够紧凑,也可以把该参数调小。
### 2.7 模型结构
@ -488,7 +489,7 @@ A可以在命令中加入 --det_db_unclip_ratio ,参数定义位置,这
#### Q: PP-OCR检测效果不好该如何优化
A 具体问题具体分析:
**A** 具体问题具体分析:
如果在你的场景上检测效果不可用首选是在你的数据上做finetune训练
如果图像过大文字过于密集建议不要过度压缩图像可以尝试修改检测预处理的resize逻辑防止图像被过度压缩
检测框大小过于紧贴文字或检测框过大可以调整db_unclip_ratio这个参数加大参数可以扩大检测框减小参数可以减小检测框大小
@ -517,14 +518,14 @@ A 具体问题具体分析:
#### Q: 动态图分支(dygraph,release/2.0),训练模型和推理模型效果不一致
A当前问题表现为使用训练完的模型直接测试结果较好但是转换为inference model后预测结果不一致出现这个问题一般是两个原因
**A**当前问题表现为使用训练完的模型直接测试结果较好但是转换为inference model后预测结果不一致出现这个问题一般是两个原因
1. 预处理函数设置的不一致
2. 后处理参数不一致 repo中config.yml文件的前后处理参数和inference预测默认的超参数有不一致的地方建议排查下训练模型预测和inference预测的前后处理 参考issue。
#### Q: 自己训练的det模型在同一张图片上inference模型与eval模型结果差别很大为什么
A这是由于图片预处理不同造成的。如果训练的det模型图片输入并不是默认的shape[600, 600]eval的程序中图片预处理方式与train时一致 由xxx_reader.yml中的test_image_shape参数决定缩放大小但predict_eval.py中的图片预处理方式由程序里的preprocess_params决定 最好不要传入max_side_len而是传入和训练时一样大小的test_image_shape。
**A**这是由于图片预处理不同造成的。如果训练的det模型图片输入并不是默认的shape[600, 600]eval的程序中图片预处理方式与train时一致 由xxx_reader.yml中的test_image_shape参数决定缩放大小但predict_eval.py中的图片预处理方式由程序里的preprocess_params决定 最好不要传入max_side_len而是传入和训练时一样大小的test_image_shape。
#### Q: 训练模型和测试模型的检测结果差距较大
@ -532,7 +533,7 @@ A这是由于图片预处理不同造成的。如果训练的det模型图片
#### Q: PaddleOCR模型Python端预测和C++预测结果不一致?
A正常来说python端预测和C++预测文本是一致的,如果预测结果差异较大, 建议首先排查diff出现在检测模型还是识别模型或者尝试换其他模型是否有类似的问题。 其次检查python端和C++端数据处理部分是否存在差异建议保存环境更新PaddleOCR代码再试下。 如果更新代码或者更新代码都没能解决建议在PaddleOCR微信群里或者issue中抛出您的问题。
**A**正常来说python端预测和C++预测文本是一致的,如果预测结果差异较大, 建议首先排查diff出现在检测模型还是识别模型或者尝试换其他模型是否有类似的问题。 其次检查python端和C++端数据处理部分是否存在差异建议保存环境更新PaddleOCR代码再试下。 如果更新代码或者更新代码都没能解决建议在PaddleOCR微信群里或者issue中抛出您的问题。
用户总结的排查步骤:<https://github.com/PaddlePaddle/PaddleOCR/issues/2470>
@ -540,7 +541,7 @@ A正常来说python端预测和C++预测文本是一致的,如果预测
#### Q: 某个类别的样本比较少通过增加训练的迭代次数或者是epoch变相增加小样本的数目这样能缓解这个问题么
A 尽量保证类别均衡, 某些类别样本少,可以通过补充合成数据的方式处理;实验证明训练集中出现频次较少的字符,识别效果会比较差,增加迭代次数不能改变样本量少的问题。
**A** 尽量保证类别均衡, 某些类别样本少,可以通过补充合成数据的方式处理;实验证明训练集中出现频次较少的字符,识别效果会比较差,增加迭代次数不能改变样本量少的问题。
#### Q文本检测换成自己的数据没法训练有一些”###”是什么意思?
@ -548,11 +549,11 @@ A 尽量保证类别均衡, 某些类别样本少,可以通过补充合
#### Q如何调试数据读取程序
Atools/train.py中有一个test_reader()函数用于调试数据读取。
**A**tools/train.py中有一个test_reader()函数用于调试数据读取。
#### Q中文文本检测、文本识别构建训练集的话大概需要多少数据量
A检测需要的数据相对较少在PaddleOCR模型的基础上进行Fine-tune一般需要500张可达到不错的效果。 识别分英文和中文,一般英文场景需要几十万数据可达到不错的效果,中文则需要几百万甚至更多。
**A**检测需要的数据相对较少在PaddleOCR模型的基础上进行Fine-tune一般需要500张可达到不错的效果。 识别分英文和中文,一般英文场景需要几十万数据可达到不错的效果,中文则需要几百万甚至更多。
#### Q: config yml文件中的ratio_list参数的作用是什么
@ -638,11 +639,11 @@ lr:
#### Q: 为什么PaddleOCR检测预测是只支持一张图片测试即test_batch_size_per_card=1
A测试的时候对图像等比例缩放最长边960不同图像等比例缩放后长宽不一致无法组成batch所以设置为test_batch_size为1。
**A**测试的时候对图像等比例缩放最长边960不同图像等比例缩放后长宽不一致无法组成batch所以设置为test_batch_size为1。
#### Q: PaddleOCR支持tensorrt推理吗
A: 支持的需要在编译的时候将CMakeLists.txt文件当中将相关代码option(WITH_TENSORRT "Compile demo with TensorRT." OFF)的OFF改成ON。关于服务器端部署的更多设置可以参考飞桨官网
**A**支持的需要在编译的时候将CMakeLists.txt文件当中将相关代码option(WITH_TENSORRT "Compile demo with TensorRT." OFF)的OFF改成ON。关于服务器端部署的更多设置可以参考飞桨官网
#### Q: 如何使用TensorRT加速PaddleOCR预测
@ -678,11 +679,11 @@ python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/ch/word_4.jpg"
#### Qhubserving、pdserving这两种部署方式区别是什么
Ahubserving原本是paddlehub的配套服务部署工具可以很方便的将paddlehub内置的模型部署为服务paddleocr使用了这个功能并将模型路径等参数暴露出来方便用户自定义修改。paddle serving是面向所有paddle模型的部署工具文档中可以看到我们提供了快速版和标准版其中快速版和hubserving的本质是一样的而标准版基于rpc更稳定更适合分布式部署。
**A**hubserving原本是paddlehub的配套服务部署工具可以很方便的将paddlehub内置的模型部署为服务paddleocr使用了这个功能并将模型路径等参数暴露出来方便用户自定义修改。paddle serving是面向所有paddle模型的部署工具文档中可以看到我们提供了快速版和标准版其中快速版和hubserving的本质是一样的而标准版基于rpc更稳定更适合分布式部署。
#### Q: 目前paddle hub serving 只支持 imgpath如果我想用imgurl 去哪里改呢?
A图片是在[这里](https://github.com/PaddlePaddle/PaddleOCR/blob/67ef25d593c4eabfaaceb22daade4577f53bed81/deploy/hubserving/ocr_system/module.py#L55)读取的, 可以参考下面的写法将url path转化为np array
**A**:图片是在[这里](https://github.com/PaddlePaddle/PaddleOCR/blob/67ef25d593c4eabfaaceb22daade4577f53bed81/deploy/hubserving/ocr_system/module.py#L55)读取的, 可以参考下面的写法将url path转化为np array
```
response = request.urlopen('http://i1.whymtj.com/uploads/tu/201902/9999/52491ae4ba.jpg')
@ -692,11 +693,11 @@ img = cv.imdecode(img_array, -1)
#### Q: C++ 端侧部署可以只对OCR的检测部署吗
A可以的识别和检测模块是解耦的。如果想对检测部署需要自己修改一下main函数 只保留检测相关就可以: [参考](https://github.com/PaddlePaddle/PaddleOCR/blob/de3e2e7cd3b8b65ee02d7a41e570fa5b511a3c1d/deploy/cpp_infer/src/main.cpp#L72)
**A**可以的识别和检测模块是解耦的。如果想对检测部署需要自己修改一下main函数 只保留检测相关就可以: [参考](https://github.com/PaddlePaddle/PaddleOCR/blob/de3e2e7cd3b8b65ee02d7a41e570fa5b511a3c1d/deploy/cpp_infer/src/main.cpp#L72)
#### Q服务部署可以只发布文本识别而不带文本检测模型么
A可以的。默认的服务部署是检测和识别串联预测的。也支持单独发布文本检测或文本识别模型比如使用PaddleHUBPaddleOCR 模型时deploy下有三个文件夹分别是
**A**可以的。默认的服务部署是检测和识别串联预测的。也支持单独发布文本检测或文本识别模型比如使用PaddleHUBPaddleOCR 模型时deploy下有三个文件夹分别是
ocr_det检测预测
ocr_rec: 识别预测
ocr_system: 检测识别串联预测

View File

@ -1,5 +1,8 @@
---
comments: true
hide:
- navigation
- toc
---
### Recently Update

View File

@ -1,5 +1,8 @@
---
comments: true
hide:
- navigation
- toc
---
### 更新

View File

@ -250,7 +250,6 @@ extra_javascript:
extra_css:
- https://unpkg.com/katex@0/dist/katex.min.css
nav:
- Home: index.md
- 快速开始: quick_start.md
@ -355,6 +354,7 @@ nav:
- Text Telescope: algorithm/super_resolution/algorithm_sr_telescope.md
- 公式识别算法:
- CAN: algorithm/formula_recognition/algorithm_rec_can.md
- LaTeX-OCR: algorithm/formula_recognition/algorithm_rec_latex_ocr.md
- 端到端OCR算法:
- PGNet: algorithm/end_to_end/algorithm_e2e_pgnet.md
- 表格识别算法: