Closed mybrew closed 3 years ago
同问,python下识别准确率很高,C++下识别准确率就不行,使用2.0版本。
训练之后,转换为识别模型输出 python tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_common_train_v1.1.yml -o Global.checkpoints=./output/rec_CRNN/best_accuracy Global.save_inference_dir=./inference/ch_rec_r34_vd_crnn_enhance
首先确保代码是最新的release/2.1 分支代码;另外,python预测是用的inference model预测还是 trained model预测的;
可以发一张测试图片在comment里
@lydyc @mybrew
你好,python预测用的是自己训练后,通过export_model转换出来的模型文件(2个文件)。
我用你的图和ch_ppocr_mobile 模型对比了python,和C++结果,差别没那么大; python
C++:
你用的哪个分支的代码?更新代码试一下呢?
我用你的图和ch_ppocr_mobile 模型对比了python,和C++结果,差别没那么大; python
C++:
你用的哪个分支的代码?更新代码试一下呢?
你好,我用的是V1.1。谢谢你的回复,我尝试更新下版本再看看。如果我修改了image_shape: [3, 32, 320]这个配置,在C++那边需要对应改哪部分代码或者配置呢?
如果tools/infer/predict_system.py 运行得到的结果是对的话,C++也问题不大,你可以着重检查下C++ 图像预处理和后处理是否和python一致;建议先更新代码到最新develop分支代码试试
如果tools/infer/predict_system.py 运行得到的结果是对的话,C++也问题不大,你可以着重检查下C++ 图像预处理和后处理是否和python一致;建议先更新代码到最新develop分支代码试试
谢谢你的解答。
你好,现在遇到个问题,识别模型是在官方模型基础上加图片样本训练出来的。 Global: algorithm: CRNN use_gpu: true epoch_num: 150 log_smooth_window: 20 print_batch_step: 10 save_model_dir: ./output/rec_CRNN save_epoch_step: 3 eval_batch_step: 2000 train_batch_size_per_card: 1 test_batch_size_per_card: 1 image_shape: [3, 32, 320] max_text_length: 25 character_type: ch character_dict_path: ./ppocr/utils/ppocr_keys_v1.txt loss_type: ctc distort: true use_space_char: true reader_yml: ./configs/rec/rec_chinese_reader.yml pretrain_weights: ./pretrain_models/ch_ppocr_server_v1.1_rec_pre/best_accuracy checkpoints:
训练之后,转换为识别模型输出 python tools/export_model.py -c configs/rec/ch_ppocr_v1.1/rec_chinese_common_train_v1.1.yml -o Global.checkpoints=./output/rec_CRNN/best_accuracy Global.save_inference_dir=./inference/ch_rec_r34_vd_crnn_enhance
单张图做预测 python tools/infer/predict_system.py --image_dir="./doc/imgs/LL.jpg" --det_model_dir="./inference/det_db/" --rec_model_dir="./inference/ch_rec_r34_vd_crnn_enhance/" --use_angle_cls=False --use_space_char=True 效果和训练的是一致的。
同样的图,同样的检测和识别模型在C++下运行,结果却不如python下运行结果,python下识别一行,在c++下会识别为两行。 C++下配置可改动貌似不多,
det config
max_side_len 960 det_db_thresh 0.5 det_db_box_thresh 0.3 det_db_unclip_ratio 1.6 det_model_dir ./PaddleOCR/inference/det_db
cls config
use_angle_cls 0 cls_model_dir ./PaddleOCR/inference/cls cls_thresh 0.9
rec config
rec_model_dir ./PaddleOCR/inference/ch_rec_r34_vd_crnn_enhance char_list_file ./PaddleOCR/ppocr_keys_v1.txt
请问如何修改,可以使得C++下调用PYTHON训练出来的模型和python下预测结果基本一致? python下有个设定 image_shape: [3, 32, 320],c++下需要同样处理吗?如果需要,请问怎么处理它?
谢谢。