赞
踩
接上一篇:检测模型训练(二)
PaddlePaddle环境的构建详见专栏内其他文章。
本文使用MobileNetV3_large_x0_5_pretrained预训练检测模型,评估该检测模型在icdar2015上的检测效果。
icdar2015检测数据集如上图所示。
首先修改配置文件,文件路径如下图所示
这是MobileNetV3_large_x0_5_pretrained模型的配置文件,如果用的是其他模型,请使用其他的.yml配置文件。
打开.yml配置文件,在Architecture标签下可以看到该配置文件适用的模型是MobileNetV3,算法是DB,其他算法模型效果列表:
在Global标签下,写上模型的路径。注意断点路径checkpoints是优先使用的。
下一步直奔eval标签下的测试集路径:
快速评估,在G:\python_OCR\PaddleOCR-dygraph路径下打开cmd(不管放在哪里,一定要在PaddleOCR-dygraph路径下)
运行下面这行代码:
python tools/eval.py -c configs/det/det_mv3_db.yml PostProcess.box_thresh=0.5 PostProcess.unclip_ratio=1.5
其中-c后面是刚刚修改的参数文件路径。
PostProcess.box_thresh=0.5是算法内置的一个阈值,大于这个阈值会认为检测到,小于这个阈值就不会认为检测到。设置这个值小于0.5,检测到的框数量会增加。当发现模型在实际应用中很难检测出图片中的文本时,可以适当调低该值。
PostProcess.unclip_ratio=1.5表示检测框的大小,值越大检测框越大。
在paddleorc.py中,默认值如下所示:
下面两个图可以生动反映出调整PostProcess.unclip_ratio的结果:
上方的图PostProcess.unclip_ratio=2.0,下放的图PostProcess.unclip_ratio=0.5
可以看到当PostProcess.unclip_ratio减小时,框更小了,更贴近于文字了。
哦对,忘了放检测单张图片的代码了:
python tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="./doc/imgs_en/img_12.jpg" Global.load_static_weights=false PostProcess.unclip_ratio=0.5
Global.infer_img可以是任意图片,paddle很贴心的给你内置了几张在doc文件夹里,注意icdar是英文数据集只能识别出英文。
言归正传,看eval的效果:
precision是平均准确度,recall是平均召回率,hmean是这两项的调和平均。
看起来效果很差……不过没关系,这只是一个预训练模型。
降低交并比IOU可以有效提高准确率(掩耳盗铃)
交并比定义参考https://blog.csdn.net/ybdesire/article/details/82056485
修改IOU的方法如下:
默认是0.5
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。