- Two-stage(Faster RCNN系列)
- One-stage(YOLO和SSD系列)
1. One-stage 基本介绍
- 使用CNN卷积特征
- 直接回归物体的物体类别和位置坐标信息(无region proposal)
- 准确度低。速度相较two-stage更快
1.1 基本流程
![](https://i-blog.csdnimg.cn/blog_migrate/e49ba6214ff54982b182e72d33db6c1d.png)
1.2 核心组件
1.2.1 CNN卷积神经网络
一般CNN设计原则:
- 一是从简到繁再到简的卷积神经网络。最开始的卷积神经网络是比较简单的,最经典的是Lenet,但是它的性能就相对较差,在大规模的任务中就会到达瓶颈,在网络中的表达能力就相对弱一些。之后又提出了Alexnet,VGGnet,Resnet,Goolenet,Densenet等等一些复杂的网络。这些网络发展主要是分为两个方向,一是增加网络的深度,尽可能的去增加网络深度,因为网络越深,它的非线性表达能力越强,在现实生活中,我们遇到的问题一般都是非线性的,因此这样可以得到物体更抽象的表达,而且网络越深,它对于图像 最初的一些变化更加不敏感,即鲁棒性更好,但是这样会出现两种问题,增加网络的规模,也会导致梯度消失或者说是梯度弥散的问题。二是增加网络的宽度,通过加大网络的宽度来增强网络的表达能力,比较有代表性的就是谷歌提出来的一系列 Inception 结构。
- 更轻量级的CNN网络。之后在设计网络时考虑性能和网络模型大小的平衡,其中比较具有代表性的就包括了Mobilenet,ShuffleNet等。
- 多尺度融合网络。通过融合不同尺度下的特征来提高网络的表达能力。
1.2.2 回归网络
- 区域回归(置信度、位置、类别)输入是通过CNN卷积神经网络进行特征提取得到的feature map,主要完成的是区域回归和目标区域类别的判定,其实区域回归就是指通过回归网络直接输出最终目标的Bbox的位置信息。
- Anchor机制(SSD)
回归网络预测过程(YOLO)
将图片划分为S*S的小格子,针对每个网格预测以当前这个网格为中心的目标区域的位置信息,在预测出中心后,再给出格子的宽高(x,y,w,h),这时候就能在图片中找到一个矩形框的检测区,即预测到Bounding Boxes。除此之外,对于每个格子还要计算它的置信度,置信度就是描述当前的这个格子中是否存在目标的概率值。其次,还会针对每个格子来预测当前格子所属的目标类别的概率分布值。最后根据非极大值抑制(NMS)得到最终的边界框。
2. One-stage 常见算法
![](https://i-blog.csdnimg.cn/blog_migrate/2538adb96dde507249b5945d496362c6.png)