PP-PicoDet交并比边界框回归损失的改进
PP-PicoDet中使用的边界框损失函数为GIOU Loss,对边界框损失函数更换为CIOU取得了更好的效果。
·
目标检测之交并比边界框回归损失
- 教程目的: 通过PaddleDetection目标检测框架,学习交并比边界框回归损失的演进
- 教程内容: 以PicoDet模型为baseline进行模型测试
- 数据准备: 本教程程基于PaddleDetection开发套件中的交通路标数据集
- 其他说明: 本教程所有命令均在Aistudio中执行
想要了解更多,请查看PaddleDetection(github)
一、PP-PicoDet模型介绍
- PP-PicoDet模型:
二、PP-PicoDet模型backbone介绍
三、PP-PicoDet模型结构介绍
四、PP-PicoDet模型 交并比边界框回归损失函数(GIOU)
PicoDet 模型中使用的交并比损失函数 GIOU 是在 IOU 基础上进行改进的,主要解决以下两个问题:
- (1) IoU(G,P)=0时,不能反映A,B距离的远近
- (2) 两个框的相交值确定时,IoU值相同,不能反映两框是如何相交的
五、PP-PicoDet模型的 交并比边界框回归损失函数改进(CIOU)
CIOU(2020 AAAI Distance-IoU Loss)是在GIOU基础上进行改进的,主要解决以下两个问题:
- (1)当预测框在真值框内时,GIOU退化为IOU,无法反应预测框在真值框内的关系
- (2)Diou Loss考虑了重叠面积和中心点距离,但没有考虑到长宽比
-
(3)Picodet中使用的边界框损失函数为GIOU,如果预测框在真值框之内,GIOU就退化为了IOU。不能很好的体现预测框在真值框内的位置与预测框的高宽比,因此需要对交并比边界框回归损失进行改进,CIOU Loss满足:
1 提升准确度
2 能体现预测框在真值框内的关系
3 能体现预测框与真值框高宽比的关系
六、交并比边界框回归损失函数(GIOU & CIOU)对比实验
1、git paddle-detection目标检测套件
!git clone https://gitee.com/gao-rui123/paddle-detection1125.git
2、配置目标检测路径
%cd paddle-detection1125/
3、安装依赖
!pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
!pip install paddleslim==2.2.1
4、执行原版picodet_m_320_coco.yml
!python tools/train.py -c configs/picodet/picodet_m_320_coco.yml --eval --use_vdl=True --vdl_log_dir='./output_vdl'
5、修改configs/picodet/base/picodet_esnet.yml目录下的loss_bbox 的name的值为DIouLoss:
loss_bbox:
name: GIoULoss → DIouLoss
loss_weight: 2.0
6、修改完成后进行对比训练
!python tools/train.py -c configs/picodet/picodet_m_320_coco.yml --eval --use_vdl=True --vdl_log_dir='./output_vdl2'
7、基于GIOU与CIOU训练结果
两次训练均在相同参数下进行,只对交并比边界框回归损失进行修改
mAP(GIOU Loss):88.6%
mAP(CIOU Loss):89.4%
7、基于GIOU与CIOU训练结果可视化
8、基于GIOU与CIOU训练结果可视化细节图(放大)
七、CIOU Loss模型推理测试
!python tools/infer.py -c configs/picodet/picodet_m_320_coco.yml --infer_img=demo/road554.png --output_dir=demo2/ -o weights=output/picodet_m_320_coco/best_model.pdparams
请点击此处查看本环境基本用法.
Please click here for more detailed instructions.
更多推荐
已为社区贡献1438条内容
所有评论(0)