目标检测之交并比边界框回归损失

  • 教程目的: 通过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.

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐