[深度学习 - 目标检测总结] retinaNet & RFBNet
通过这个链接🔗进行复习学习。https://github.com/scutan90/DeepLearning-500-questions
目标检测
前面两节讲了,two-stage、one-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卷积层,主要目的应该是为了减少计算量。
RFBNet300的整体结构如下图所示,基本上和SSD类似。RFBNet和SSD不同的是:1、主干网上用两个RFB结构替换原来新增的两层。2、conv4_3和conv7_fc在接预测层之前分别接RFB-s和RFB结构。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)