检测框 det_db_unclip_ratio,值越大检测框越大
from paddleocr import PaddleOCR
det_box_ocr = PaddleOCR(lang="ch", show_log=False,det_db_unclip_ratio = 2.5)
输入图像最长边det_limit_side_len
det_limit_side_len=960。表示网络输入图像的最长边不能超过960, 如果超过这个值,会对图像做等宽比的resize操作,确保最长边为det_limit_side_len。 设置为limit_type=‘min’, det_limit_side_len=960 则表示限制图像的最短边为960。
如果输入图片的分辨率比较大,而且想使用更大的分辨率预测,可以设置det_limit_side_len 为想要的值,比如4000,注意速度可能降低
python3 tools/infer/predict_det.py --image_dir="./doc/imgs/1.jpg" --det_model_dir="./inference/ch_PP-OCRv2_det_infer/" --det_limit_type=max --det_limit_side_len=1216
rec_char_dict_path指定使用的字典路径
多进程推理
参考:https://github.com/PaddlePaddle/PaddleOCR/blob/release%2F2.3/doc/doc_ch/inference.md
use_mp表示是否使用多进程。total_process_num表示在使用多进程时的进程数
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./inference/det_db/" --rec_model_dir="./inference/rec_crnn/" --use_angle_cls=false --use_mp=True --total_process_num=6
paddle ocr识别问题
字符重复
文字被重复识别造成,举例,检测框区域如下,可通过判断检测框横坐标是否交叉,第一个检测框识别文本的最后一个字是否与第二个检测框识别文本的第一个字相等,或者其中一个字是另一个字偏旁判断,来去重
漏检
改参数,参数det_db_thresh=0.1, det_db_box_thresh=0.4, det_db_unclip_ratio=2.0,det_db_score_mode=‘slow’, use_dilation=‘True’
文本长度超过25的图片可能识别不到原因
https://github.com/PaddlePaddle/PaddleOCR/issues/7500
训练修改配置文件中的 max_text_length 字段,并将input_size设置为宽高比更大的比例,设置为更大的最长文本长度
识别单个数字精度低原因
det=False 可以提高识别率
det是为了找到文字的位置,rec才是将图片识别成文字,如果你对传入的图片有信心,文字占所有篇幅且没有分割,det false应该是可以的
识别结果根据图片大小变化
识别模型对遮挡有一定的鲁棒性
主要就是这一种场景,一方面可以尝试调整参数,包括输入尺度、后处理参数等,找一组对你这个场景比较合适的参数;另一方面,也可以标注一些数据进行微调,成本相对高一点。