基于PaddleOCR解决文本检测训练模型与inference模型预测效果不一致的问题

目的

       此类问题出现较多,问题多是trained model预测时候的预处理、后处理参数和inference model预测的时候的预处理、后处理参数不一致导致的。官方DBnet检测模型提供的yml文件自行训练时候需要进行相应的修改才可以训练模型训练。

解决

一、根据官方说明进行调整

官方这块也有说明:PaddleOCR/detection.md at release/2.5 · PaddlePaddle/PaddleOCR (github.com)

基于PaddleOCR解决文本检测训练模型与inference模型预测效果不一致的问题_第1张图片

根据官网部署预测模型代码推测,yml配置情况如下

      - DetResizeForTest:
          limit_side_len: 960
          limit_type: max

二、经过自己测试进行调整

        在训练银行卡、车牌号、身份证等文本检测模型的时候,按上面的配置实际训练效果不好,通过固定图片大小的情况效果就非常好,如下修改:

方式一:

1、修改yml文件

      - DetResizeForTest:
          limit_side_len: 960
          limit_type: resize_long

2、将后面预测的params.py也按照上面两个参数进行改写,将“max”换成“resize_long”

方式二:

1、修改yml文件

      - DetResizeForTest:
          resize_long: 960

2、tools/infer/utility.py文件中添加如下参数

 3、tools/infer/predict_det.py文件中修改如下

4、其他文件:修改部署预测文件,以hubserving部署为例:

deploy/hubserving/ocr_system/params.py

总结        

         以上修改效果,可以查看我之前的前几篇文章的银行卡、车牌号、身份证文本检测训练结果,在垂类效果上比通用的文本检测模型效果要好很多。

你可能感兴趣的:(PaddlePaddle,PaddleOCR,paddlepaddle,python,计算机视觉,PaddleOCR)