通过这个链接🔗进行复习学习。https://github.com/scutan90/DeepLearning-500-questions

目标检测

前面两节讲了,two-stageone-stage目标检测算法;

  • Two-Stage检测器(如Faster R-CNN、FPN)效果好,但速度相对慢
  • One-Stage检测器(如YOLO、SSD)速度快,但效果一般

retinaNet是针对one-stage算法准确率不高做出的改进。

one-stage和two-stage在算法上效果差异存在的问题就是,类别分布不均衡的问题。

类别分布不均衡

简单的说就是负样本数量大于正样本数量。

我们知道一个数据集中,可能存在的目标区域很小,但是背景区域所占的部分非常大。two-stage在提取候选框阶段就可以筛选掉很多的box;而one-stage是将所有格子提取多个anchor-box,并没有提取筛选。因此存在很多负样本anchor-box。

RetinaNet(One-Stage)

为了解决样本类别分布不均衡的问题,作者提出使用FocalLoss做目标分类的损失函数。
(Focal-Loss更加关注在困难样本上的训练,降低简单样本的训练所占权重,提高困难样本训练所占权重。)

RetinaNet网络结构(ResNet + FPN)

主干网络使用ResNet,使用FPN做分类和预测框的回归。

损失函数 :Focal Loss

RFBNet

RFBNet主要想利用一些技巧使得轻量级模型在速度和精度上达到很好的trade-off的检测器。

(内部结构:多分支卷积层和dilated卷积层。)

**RFB模块:**借鉴了Inception的思想,引入3个dilated卷积层。(为了增大感受野)
**RFB-s模块:**用3x3卷积层代替5x5卷积层,另一方面用1x3和3x1卷积层代替3x3卷积层,主要目的应该是为了减少计算量。RFB模块

RFBNet300的整体结构如下图所示,基本上和SSD类似。RFBNet和SSD不同的是:1、主干网上用两个RFB结构替换原来新增的两层。2、conv4_3和conv7_fc在接预测层之前分别接RFB-s和RFB结构。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐