R-CNN -2014 -two stage
- 候选区域生成: 一张图像生成1K~2K个候选区域 (采用Selective Search 方法)
- 特征提取: 对每个候选区域,使用深度卷积网络提取特征 (CNN)
- 类别判断: 特征送入每一类的SVM 分类器,判别是否属于该类
- 位置精修: 使用回归器精细修正候选框位置
- 缺点:
RoI(Region Proposal/Region of Interest)的获取太麻烦(选择性搜索Selective Search)且正确率感人。
RoI的特征提取太耗时(先切图片,然后CNN提特征,导致数据无法共享),且中间涉及大量的硬盘读写,数据要在硬盘,内存,现存三者之间来回倒腾。 - Fast R-CNN把问题解决了一半(第二个问题),第一个问题还得看Faster RCNN。
Fast R-CNN -two stage
- R-CNN的主要性能瓶颈在于需要对每个提议区域独立抽取特征。,由于这些区域通常有大量重叠,独立的特征抽取会导致大量的重复计算。Fast R-CNN对R-CNN的一个主要改进在于只对整个图像做卷积神经网络的前向计算。
- 与R-CNN相比,Fast R-CNN用来提取特征的卷积神经网络的输入是整个图像,而不是各个提议区域。而且,由于用于提取特征得网络参数可以通过训练更新。
- 它的主要计算步骤如下。
- 提取特征:提取特征的卷积神经网络的输入是整个图像,而不是各个提议区域。
- RoI与Roi pooling:兴趣区域池化(region of interest pooling,RoI池化)层,将卷积神经网络的输出和提议区域作为输入,输出连结后的各个提议区域抽取的特征
- 预测
Faster R-CNN -2016 -two stage
- 引入anchor机制
- 在结构上,Faster RCNN已经将特征抽取(feature extraction),proposal提取,bounding box regression(rect refine),classification都整合在了一个网络中,使得综合性能有较大提高,在检测速度方面尤为明显。
- 4个内容:
- Conv layers。作为一种CNN网络目标检测方法,Faster RCNN首先使用一组基础的conv+relu+pooling层提取image的feature maps。该feature maps被共享用于后续RPN层和全连接层。
- Region Proposal Networks。RPN网络用于生成region proposals。该层通过softmax判断anchors属于positive或者negative,再利用bounding box regression修正anchors获得精确的proposals。
- Roi Pooling。该层收集输入的feature maps和proposals,综合这些信息后提取proposal feature maps,送入后续全连接层判定目标类别。
- Classification。利用proposal feature maps计算proposal的类别,同时再次bounding box regression获得检测框最终的精确位置。
YOLOv1 -2015 -one stage
- 仿照GoogLeNet搭建的,但并没有采用Inception模块,而是使用 [公式] 和 [公式] 卷积层来堆砌的,所以网络的结构是非常简单的
- YOLO v1还未采用先验框anchor,而是直接回归目标位置
- YOLO v1直接预测x,y,w,h,范围比较大,现在我们想预测一个稍微小一点的值,来增加准确度。
YOLOv2 -one stage
- backbone:
YOLO v1存在的问题:
- 预测的框不准确:准确度不足。
- 很多目标找不到:recall不足。
- 检测头的改进:引入anchor
- anchor 是从数据集中聚类得到的,Faster-RCNN中的Anchor的宽高和大小是手动挑选的
YOLOv3 -one stage
- 解决小目标检测问题
- 看YOLO v3检测头分叉
YOLOv4 -one stage
- Using multi-anchors for single ground truth:YOLO v3是1个anchor负责一个GT,YOLO v4中用多个anchor去负责一个GT,缓解了正负样本不均衡的问题。
- Eliminate_grid sensitivity:解决anchor边界的位置是取不到的问题
- CIoU-loss:
2.
3.
4.
-
演化过程:
YOLOv5 -one stage
- 自适应anchor:自适应anchor利用网络的学习功能,让
也是可以学习的。
SSD- one stage -2016
- SSD提取了不同尺度的特征图来做检测,大尺度特征图(较靠前的特征图)可以用来检测小物体,而小尺度特征图(较靠后的特征图)用来检测大物体。
- SSD采用了不同尺度和长宽比的先验框(Prior boxes, Default boxes,在Faster R-CNN中叫做锚,Anchors)
- 与Yolo最后采用全连接层不同,SSD直接采用卷积对不同的特征图来进行提取检测结果。
- SSD采用VGG16作为基础模型,然后在VGG16的基础上新增了卷积层来获得更多的特征图以用于检测。