顶会目标检测原文、源码分享
1、RetinaNet (ICCV’2017)
原文:https://arxiv.org/pdf/1708.02002.pdf
源码:https://github.com/yhenon/pytorch-retinanet
介绍:网络结构改进不大,2017ICCV首次单阶段网络超过两阶段网络
单阶段模型速度快,但是精度和R-CNN系列的两阶段算法仍有差距,主要原因是正负样本的不平衡。文章提出了Focal Loss的RetinaNet 模型,改善样本的不平衡,达到和两阶段算法同等的精度。
网络结构:
(a)Backbone主干网络:ResNet50
(b)FPN特征金字塔:深层特征学习语义用于分类,浅层特征精确定位
(c)Class subnet分类:K目标类别数量,A为锚框数量
(d)Box subnet边界框:
Focal loss:
使用锚框进行目标预测,会出现正负样本不平衡问题(候选区域生成的算法也会出现),Focal loss通过控制正负样本的权重,实现分类时正负样本对损失均衡影响 ,提高模型性能。
2、FCOS (ICCV’2019)
原文:https://arxiv.org/pdf/1904.01355.pdf
源码:https://github.com/tianzhi0549/FCOS
介绍:
现有算法不足:
目前的anchor-based算法(RetinaNet、SSD、YOLOv3、Faster RCNN等),存在以下不足:
anchor-based生成的anchor boxex宽高比固定,难以处理小目标和尺度差异大的目标;
anchor boxex生成样本太多,IOU计算也更多;并且大部分是负样本,正负样本不平衡问题
改进方法:
提出anchor-free,减少上面的问题;anchor-free分为基于anchor-point的算法和基于key-point的算法。FCOS是基于anchor-point的算法,通过预测目标中心点xy和边界距离中心点wh检测目标。基于key-point的算法检测目标的边界点(例如角点),再将边界点配对组合成目标的检测框,此类算法包括CornerNet, RepPoints等。
FPN网络引入,处理不同尺度bbox
输出5个head,彼此共享权重,每个head除了目标类别(HWC)之外和目标尺寸(HW4)之外,提出了center-ness(HW1),减少预测像素点和bbox中心的误差
3、RepPoints (ICCV’2019)
原文:https://arxiv.org/pdf/1904.11490
源码:https://github.com/microsoft/RepPoints
介绍:
anchor-free中的基于key-point方法,使用点集表示目标位置。不需要基于anchor-based张的大量anchor框。
关键点:
预测9个RepPoints点,每个location位置预测出9对偏移量,类似于可变形卷积
4、RepPoints V2 (NeurIPS’2020)
原文:https://arxiv.org/pdf/2007.08508
源码:https://github.com/Scalsol/RepPointsV2
介绍:
与RepPoints不同,RepPoints V2中将点集的前两个点定义为左上角点和右下角
点(explicit-corners),并根据这两个点将预测的点集转化为预测框。网络受两个方面的监督,一是预测框左上角和右下角与标签之间的距离损失,二是分类损失。