目的
此类问题出现较多,问题多是trained model预测时候的预处理、后处理参数和inference model预测的时候的预处理、后处理参数不一致导致的。官方DBnet检测模型提供的yml文件自行训练时候需要进行相应的修改才可以训练模型训练。
解决
一、根据官方说明进行调整
官方这块也有说明:PaddleOCR/detection.md at release/2.5 · PaddlePaddle/PaddleOCR (github.com)
根据官网部署预测模型代码推测,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
总结
以上修改效果,可以查看我之前的前几篇文章的银行卡、车牌号、身份证文本检测训练结果,在垂类效果上比通用的文本检测模型效果要好很多。