Closed shmonly closed 2 years ago
自己训练数字模型,用到检测和识别,在转inference模型前,识别的是数字。但将检测和识别串联的时候,按照官方教程,转换成inference模型,为什么识别出来的是中文?
这里是一个OCR的任务?
自己训练数字模型,用到检测和识别,在转inference模型前,识别的是数字。但将检测和识别串联的时候,按照官方教程,转换成inference模型,为什么识别出来的是中文?
这里是一个OCR的任务?
是的,paddleOCR
目前还有个问题,已经训练好的检测模型,转inference之前,抓取的字符框是对的。转inference之后,有些没抓取到,有些抓取的有偏差。这是啥原因造成的?
自己训练数字模型,用到检测和识别,在转inference模型前,识别的是数字。但将检测和识别串联的时候,按照官方教程,转换成inference模型,为什么识别出来的是中文?
你是不是没有修改字典文件
是不是没有修改字典文件
现在已经修改utility下的字典,更改为ic15_dict.txt,确实可以识别成数字了。但现在又有个问题。我用到检测和识别。检测转成inference。但发现转之后,检测效果并没有转化之前好,请问大神该如何解决?识别转之后,预测效果是一致的。
自己训练数字模型,用到检测和识别,在转inference模型前,识别的是数字。但将检测和识别串联的时候,按照官方教程,转换成inference模型,为什么识别出来的是中文?
你是不是没有修改字典文件
是不是没有修改字典文件
现在已经修改utility下的字典,更改为ic15_dict.txt,确实可以识别成数字了。但现在又有个问题。我用到检测和识别。检测转成inference。但发现转之后,检测效果并没有转化之前好,请问大神该如何解决?识别转之后,预测效果是一致的。
你的代码是最新的不,后处理的时候 use_dilation 这个参数强制设置为False 试试https://github.com/PaddlePaddle/PaddleOCR/blob/864ad073ab02ceab5a23020a3972efd46f45346d/ppocr/postprocess/db_postprocess.py#L49
是不是没有修改字典文件
现在已经修改utility下的字典,更改为ic15_dict.txt,确实可以识别成数字了。但现在又有个问题。我用到检测和识别。检测转成inference。但发现转之后,检测效果并没有转化之前好,请问大神该如何解决?识别转之后,预测效果是一致的。
你的代码是最新的不,后处理的时候 use_dilation 这个参数强制设置为False 试试
PaddleOCR-release-2.1版本的,我看了db_postprocess.py,里面的use_dilation 是false
parser.add_argument("--use_dilation", type=bool, default=False) 改成 parser.add_argument("--use_dilation", type=str2bool, default=False) 试试
parser.add_argument("--use_dilation", type=bool, default=False) 改成 parser.add_argument("--use_dilation", type=str2bool, default=False) 试试
更改了后,并没有改善
det转换前测试语句如下,效果最好。 python tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" Global.pretrained_model="./output/det_db/best_accuracy" Global.load_static_weights=false
det转换为inference后,测试语句,会出现几个抓取不到的情况 python tools/infer/predict_det.py --image_dir="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" --det_model_dir="./inference/det_db"
det+rec串行,测试语句,会出现更多抓取不到的情况 python tools/infer/predict_system.py --image_dir="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" --det_model_dir="./inference/det_db/" --rec_model_dir="./inference/rec_crnn/" --use_angle_cls=false
更改了后,并没有改善
det转换前测试语句如下,效果最好。 python tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" Global.pretrained_model="./output/det_db/best_accuracy" Global.load_static_weights=false
det转换为inference后,测试语句,会出现几个抓取不到的情况 python tools/infer/predict_det.py --image_dir="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" --det_model_dir="./inference/det_db"
可以对齐tools/infer_det.py 预测和infer/predict_system.py 预测的前后处理,infer_det.py是把输入resize到了[736, 1280] https://github.com/PaddlePaddle/PaddleOCR/blob/21b9bd63646fdca95f63062d94fd62f35cfa61cc/configs/det/det_mv3_db.yml#L116
predict_det.py是限制了最长边:https://github.com/PaddlePaddle/PaddleOCR/blob/21b9bd63646fdca95f63062d94fd62f35cfa61cc/tools/infer/predict_det.py#L42
你可以把下面代码里的参数改成:https://github.com/PaddlePaddle/PaddleOCR/blob/21b9bd63646fdca95f63062d94fd62f35cfa61cc/tools/infer/predict_det.py#L42 {"image_shape": [736, 1280]}
并保证后处理参数是一致的;
更改了后,并没有改善
det转换前测试语句如下,效果最好。 python tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" Global.pretrained_model="./output/det_db/best_accuracy" Global.load_static_weights=false
det转换为inference后,测试语句,会出现几个抓取不到的情况 python tools/infer/predict_det.py --image_dir="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" --det_model_dir="./inference/det_db"
可以对齐tools/infer_det.py 预测和infer/predict_system.py 预测的前后处理,infer_det.py是把输入resize到了[736, 1280] https://github.com/PaddlePaddle/PaddleOCR/blob/21b9bd63646fdca95f63062d94fd62f35cfa61cc/configs/det/det_mv3_db.yml#L116
predict_det.py是限制了最长边:
你可以把下面代码里的参数改成:
{"image_shape": [736, 1280]} 并保证后处理参数是一致的;
牛逼啊,大神,果然一样了。by the way,rec是不需要设置imageshape的把?还有det的结果框,有可以过滤其大小,位置的参数是?
rec是不需要设置imageshape的把?
可以看下识别的预处理代码,不需要设置image shape,会把输入的高度强制resize到32
还有det的结果框,有可以过滤其大小,位置的参数是?
没有根据位置和大小过滤文本框的参数,可以调整后处理参数进行筛选,或者你可以手动加一个逻辑根据文本框位置和大小进行过滤
另外,如果识别的置信度drop score低于某个阈值,检测框也不会在可视化出来:https://github.com/PaddlePaddle/PaddleOCR/blob/ebd266656b344b16e38a3299e3e77014aba337de/tools/infer/utility.py#L80
参数介绍可以参考 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.2/doc/doc_en/config_en.md
代码结构介绍参考 https://github.com/PaddlePaddle/PaddleOCR/blob/release%2F2.2/doc/doc_en/add_new_algorithm_en.md
运行逻辑看readme中的文档就行 https://github.com/PaddlePaddle/PaddleOCR#tutorials
大神,再请教下,我的图像大小是固定的,408(W)243(H)。字符roi也是固定的,大小70(W)60(H)。目前rec的配置文件,image_shape是32,100。 PaddleOCR/configs/rec/rec_mv3_none_none_ctc.yml
Q1:rec按照默认的32,100。字符缩小,会不会损失细节,影响精度? Q2:rec的改成70*60是不是更好些?对速度有无影响? Q3:rec更改成60,70,出现报错 Q4:det的configs/det/det_mv3_db.yml,与tools/infer/predict_det.py,将image_shape=[243, 408],发现可以训练,但测试的时候,会报错
parser.add_argument("--use_dilation", type=bool, default=False) 改成 parser.add_argument("--use_dilation", type=str2bool, default=False) 试试
更改了后,并没有改善
det转换前测试语句如下,效果最好。 python tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" Global.pretrained_model="./output/det_db/best_accuracy" Global.load_static_weights=false
det转换为inference后,测试语句,会出现几个抓取不到的情况 python tools/infer/predict_det.py --image_dir="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" --det_model_dir="./inference/det_db"
det+rec串行,测试语句,会出现更多抓取不到的情况 python tools/infer/predict_system.py --image_dir="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" --det_model_dir="./inference/det_db/" --rec_model_dir="./inference/rec_crnn/" --use_angle_cls=false
麻烦问一下,我没用自己的检测模型,只用了自己的识别模型,为什么还是检测不出来,需要更改哪些参数
更改了后,并没有改善
det转换前测试语句如下,效果最好。 python tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" Global.pretrained_model="./output/det_db/best_accuracy" Global.load_static_weights=false
det转换为inference后,测试语句,会出现几个抓取不到的情况 python tools/infer/predict_det.py --image_dir="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" --det_model_dir="./inference/det_db"
可以对齐tools/infer_det.py 预测和infer/predict_system.py 预测的前后处理,infer_det.py是把输入resize到了[736, 1280] https://github.com/PaddlePaddle/PaddleOCR/blob/21b9bd63646fdca95f63062d94fd62f35cfa61cc/configs/det/det_mv3_db.yml#L116
predict_det.py是限制了最长边: https://github.com/PaddlePaddle/PaddleOCR/blob/21b9bd63646fdca95f63062d94fd62f35cfa61cc/tools/infer/predict_det.py#L42
你可以把下面代码里的参数改成: https://github.com/PaddlePaddle/PaddleOCR/blob/21b9bd63646fdca95f63062d94fd62f35cfa61cc/tools/infer/predict_det.py#L42
{"image_shape": [736, 1280]} 并保证后处理参数是一致的;
牛逼啊,大神,果然一样了。by the way,rec是不需要设置imageshape的把?还有det的结果框,有可以过滤其大小,位置的参数是?
可以看一下是怎么修改的吗,不知道怎么修改
更改了后,并没有改善
det转换前测试语句如下,效果最好。 python tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" Global.pretrained_model="./output/det_db/best_accuracy" Global.load_static_weights=false
det转换为inference后,测试语句,会出现几个抓取不到的情况 python tools/infer/predict_det.py --image_dir="D:\Paddle\PaddleOCR-release-2.1\train_data\5X\det_test" --det_model_dir="./inference/det_db"
可以对齐tools/infer_det.py 预测和infer/predict_system.py 预测的前后处理,infer_det.py是把输入resize到了[736, 1280] https://github.com/PaddlePaddle/PaddleOCR/blob/21b9bd63646fdca95f63062d94fd62f35cfa61cc/configs/det/det_mv3_db.yml#L116
predict_det.py是限制了最长边:
你可以把下面代码里的参数改成:
{"image_shape": [736, 1280]} 并保证后处理参数是一致的;
是在这修改吗
Since you haven\'t replied for more than 3 months, we have closed this issue/pr. If the problem is not solved or there is a follow-up one, please reopen it at any time and we will continue to follow up. It is recommended to pull and try the latest code first. 由于您超过三个月未回复,我们将关闭这个issue/pr。 若问题未解决或有后续问题,请随时重新打开(建议先拉取最新代码进行尝试),我们会继续跟进。
自己训练数字模型,用到检测和识别,在转inference模型前,识别的是数字。但将检测和识别串联的时候,按照官方教程,转换成inference模型,为什么识别出来的是中文?