一阶段目标检测算法框架梳理

举报
hao540137644 发表于 2020/03/21 14:27:19 2020/03/21
【摘要】 上篇博客通过Faster R-CNN梳理了两阶段目标检测算法的框架,这篇文章的目的是梳理一阶段目标检测算法框架。因为一阶段算法不像两阶段算法有一个清晰的发展脉络,所以笔者会介绍YOLO、SSD和RetinaNet三种代表性算法。不当之处尚请读者指正,谢谢。

一阶段目标检测算法的核心是回归(regression),省去了两阶段法的区域提名(region proposal)环节,也就是不会有预分类和回归的过程,直接分出具体类别,并对边框进行回归。


  • YOLO(You Only Look Once)

一阶段目标检测算法以YOLO算法为滥觞。YOLO是我接触目标检测的第一个算法,当时看了很多博客,也精读了一遍、反复看了几遍原文,但还是很难理解,因为目前网上的大部分讲解文章都是在讲YOLO是怎么推理的,都没有说YOLO是怎么训练的。直到看了这篇文章【2】,我才恍然大悟。


训练和推理

YOLO首先直接对输入图像进行简单的区域划分(例如7×7),在训练时,每个ground truth的中心所在的区域单元(cell)生成特定个(一个超参)bounding box学习这个ground truth的标签(类别,位置,框大小);在推理时,每个cell再生成相同个预测结果(类别,框大小,预测中心落在这个cell的目标),然后根据设定阈值和NMS对这些预测结果进行去除无关和冗余项。为什么说YOLO的核心思想是回归呢?因为不论是在训练时还是在推理时,YOLO都是在对ground truth/prediction的学习/预测的回归(包括类别概率和定位信息)。


网络结构

image.png


优点:

  1. 快!这是YOLO的最大特点,因为去掉了区域提名环节,节省了大量算力。

  2. 因为使用了图像的全局特征,所以减少了false positive。

缺点:

  1. 因为省去了区域提名环节,使YOLO的定位精读大幅下降。

  2. 因为只使用图像全局特征,对小物体的检测效果不佳。

  3. 因为每个cell只预测一个目标,所以对重叠度较高的目标预测效果较差。


  • SSD(Single Shot Multibox Detector)

YOLO因为去掉了区域提名环节,只对划分的cell进行回归而导致定位精度大幅下降,针对这一点,SSD在吸收了YOLO回归的核心思想的基础上,参考借鉴了Faster R-CNN提出的RPN中的锚框(anchor)思想,引入了先验框(prior box),也就是在特征图上的每个点生成固定个包括类别概率和定位信息的预测结果,然后再经阈值过滤和NMS处理去除无效和冗余项。需要注意的是,SSD对多个尺度的特征图做了预测,而不只是最后一层。另外,SSD使用卷积层——而不是YOLO使用的全连接层——来提取检测结果,节省了大量参数。SSD的检测精读明显好于YOLO,同时保持了实时的特点。


网络结构:

image.png


  • RetinaNet

一阶段算法在实现高速推理的同时也牺牲了很大的精读。RetinaNet分析这种现象后认为,减小精读是因为一阶段算法中正负样本和难易样本的双重不平衡。我们先来看什么是正负样本和难易样本。


正负样本:包含目标的bounding box称为正样本(positive example),不包含目标的bounding box称为负样本(negative example)。

难易样本:得分(score)低的正负样本称为难样本(hard example),得分高的正负样本称为简单样本(易样本,easy example)。


在两阶段算法中,第一阶段会先通过预分类的得分对bounding box做一个筛选,并按一定比例选取正负样本送入第二阶段进行训练,因此正负样本和难易样本不平衡的问题并不突出。除此之外,两阶段算法还可以用OHEM(Online Hard Example Mining)等方法来平衡难易样本问题。而对于一阶段算法而言,由于缺失了一个预选过程,因此正负样本和难易样本的不平衡非常严重:正样本和对模型性能起关键作用的难样本远远少于负样本和容易样本。这就使一阶段算法的检测精读远远小于两阶段算法。


基于此,RetinaNet提出了文中最为关键的Focal Loss。FL的公式如下:

image.png

其中image.pngimage.png是控制正负样本影响权重的超参数,image.pngimage.png是控制难易样本影响权重的超参数。


  • 参考文章

1.Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 779-788.

文章链接:https://www.cv-foundation.org/openaccess/content_cvpr_2016/html/Redmon_You_Only_Look_CVPR_2016_paper.html

2.https://zhuanlan.zhihu.com/p/37850811

3.Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016: 21-37.

文章链接:http://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/44872.pdf

4.https://blog.csdn.net/v_JULY_v/article/details/80170182

5.Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2980-2988.

文章链接:http://openaccess.thecvf.com/content_ICCV_2017/papers/Lin_Focal_Loss_for_ICCV_2017_paper.pdf

6.https://zhuanlan.zhihu.com/p/48958966

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。