4 损失函数
VFNet的训练是由以下的loss函数来监督的:
其中和分别为FPN每一级特征图上位置的c类IACS的预测和目标IACS。为GIoU损失,、和分别表示初始、细化和ground truth bounding box。用训练目标为加权,这是前景点的gt借据,否则为0,跟随FCOS。和分别是用来平衡中2个子损失的超参数,本文经验设定分别为1.5和2.0。Npos是前景点的数量,用于使总损失正常化。这里在训练期间使用ATSS来定义前景和背景点。
VFNet的推理很简单,只涉及通过网络模型传输输入图像和NMS的后处理步骤,以消除冗余检测。
基于YOLO V5的改进代码
替换YOLOV5中的Focal Loss即可,小编在小型数据集已经验证该方法的有效性。
class VFLoss(nn.Module): def __init__(self, loss_fcn, gamma=1.5, alpha=0.25): super(VFLoss, self).__init__() # 传递 nn.BCEWithLogitsLoss() 损失函数 must be nn.BCEWithLogitsLoss() self.loss_fcn = loss_fcn # self.gamma = gamma self.alpha = alpha self.reduction = loss_fcn.reduction self.loss_fcn.reduction = 'mean' # required to apply VFL to each element def forward(self, pred, true): loss = self.loss_fcn(pred, true) pred_prob = torch.sigmoid(pred) # prob from logits focal_weight = true * (true > 0.0).float() + self.alpha * (pred_prob - true).abs().pow(self.gamma) * (true <= 0.0).float() loss *= focal_weight if self.reduction == 'mean': return loss.mean() elif self.reduction == 'sum': return loss.sum() else: return loss
5 实验结果
5.1 Varifocal损失对比实验
表1 FL、GFL、VFL对比表
表1显示了使用不同损失训练模型的结果。可以看到Varifocal损失使RetinaNet, FoveaBox和ATSS持续改善0.9 AP。对于RepPoints增加了1.4 AP。这表明Varifocal损失可以很容易地给现有的密集物体探测器带来相当大的性能提升。
与GFL相比Varifocal损失在所有情况下表现都比它好,证明了Varifocal损失的优越性。
此外,作者用FL和GFL训练了VFNet以便进一步比较。表1的最后一部分显示了结果,可以观察到Varifocal损失相对于FL和GFL依然具有优势。同时也证明了VFNet的有效性。
5.2 SOTA模型对比
表2 SOTA检测器对比
表2给出了SOTA检测器实验结果对比。与Backbone ATSS相比VFNet在不同Backbone网下实现了大约2.0 AP的提升,例如使用ResNet-101 Backbone时46.0AP和43.6AP,这验证了方法的有效性。
与类似的工作的GFL(其MSTrain标度范围为1333x[480:800])相比,VFNet始终比它好得多。同时用Res2Net-101-DCN训练的模型达到了51.3AP,几乎超过了所有最新的检测器。
文章还给出了VFNet在Nvidia V100 GPU上的推断速度。由于在完全相同的设置下很难得到所有列出的检测器的速度,所以只将VFNet与Baseline ATSS进行比较。可以看出VFNet非常高效,例如以19.3 FPS的速度实现44.8AP,与Baseline相比,只增加了很小的计算开销。
5.3 测试可视化结果
通过上图可以看到,对于小目标和密集目标具有很好的鲁棒性。
6 参考
[1].VarifocalNet: An IoU-aware Dense Object Detector
[2].https://github.com/hyz-xmaster/VarifocalNet
7 推荐阅读
CVPR2021全新Backbone | ReXNet在CV全任务以超低FLOPs达到SOTA水平(文末下载论文和源码)
CVPR2021-即插即用 | Coordinate Attention详解与CA Block实现(文末获取论文原文)
最强检测 | YOLO V4?都是弟弟! CenterNet2以56.4mAP超越当前所有检测模型(附源码与论文)
全新FPN | 通道增强特征金字塔网络(CE-FPN)提升大中小目标检测的鲁棒性(文末附论文)
最强Vision Trabsformer | 87.7%准确率!CvT:将卷积引入视觉Transformer(文末附论文下载)