目标检测——RetinaNet(十)

简介:

这篇paper《RetinaNet:Focal Loss for Dense Object Detection》获得了ICCV 2017的Best,创新点就是Focal Loss了,其主要贡献就是解决了one-stage算法中正负样本的比例严重失衡的问题,不需要改变网络结构,只需要改变损失函数就可以获得很好的效果。
原论文地址:https://arxiv.org/pdf/1708.02002.pdf

网络结构:

在这里插入图片描述
由上图可以看出结构比较简单,基础网络使用的是Resnet,然后在不同尺度的feature map建立金字塔,也就是FPN网络,这样就获得了丰富且多尺度的卷积特征金字塔,并且在FPN的每个level连接一个subnet用于回归和分类预测,这些subnet的参数是共享的,它相当于一个小型的FCN结构。

Focal Loss:

RetinaNet的出发点,其实是想为YOLO、SSD等前辈找回牌面,毕竟这些one stage算法在速度上是达到实时了,但是精度上依然被Faster rcnn等two stage检测器吊打。既然痛点在精度上,论文的重点也在于此,作者认为精度差在于单阶段检测器中样本的失衡,负样本比例远远大于正样本,占据样本中多数,影响网络的优化;而两阶段检测器这种问题小很多,因为第一阶段会剔除掉大量负样本,所以在第二阶段训练时候,正负样本比例失衡并不严重,尽管第一阶段也会面临这样的问题。

  • 首先看一个二分类交叉熵可以表示为:
    在这里插入图片描述
  • 平衡交叉熵的提出是为了解决正负样本不平衡的问题的:
    在这里插入图片描述
  • Focal Loss中 r 的引入是为了解决难易样本不平衡的问题的:
    在这里插入图片描述
    在这里插入图片描述
    可以看出,蓝色的线为CE loss, 随着 r 的增加,那些容易分类的样本所贡献的loss就越小,所以可以使模型的优化方向更加关注那些难分类的样本,这样就可以提高模型的精度,同时兼顾了速度。

总结:

优点:

1、分析了One-Stage算法和Two Stage算法的差距,实现了一个精度可以媲美Two Stage算法的One Stage算法模型——RetinaNet;
2、Focal Loss对解决正负样本与难易样本不均衡的问题非常有效,几乎可以应用到很多imbalance数据的领域,非常有实用价值。

系列传送门:
目标检测——R-CNN(一)
目标检测——Fast R-CNN(二)
目标检测——Faster R-CNN(三)
目标检测——Mask R-CNN(四)
目标检测——R-FCN(五)
目标检测——YOLOv3(六)
目标检测——YOLOv4(七)
目标检测——YOLOv5(八)
目标检测——SSD(九)
目标检测——RetinaNet(十)
目标检测——RefineDet(十一)

猜你喜欢

转载自blog.csdn.net/qq_42823043/article/details/109468944