SSD,Center Net
- SSD并不像Yolo一样满地开花,比较像一个孤岛。虽然在初期有比较惊艳的表现,但是在发育上明显落后Yolo,被人家甩飞了,但是毕竟也是目标检测元老级的人物,还是需要在学习笔记上留下它的身影才可以。

-
上图是SSD的网络结构图,从图上可以知道,BBox的输出是多尺度的,每一层的feature map都有输出。不像之后的Yolo,只有固定的输出层有输出。在SSD里面,低层预测小目标,高层预测大目标。
-
设置的anchor数量还是比较多的,所以对不同大小的目标检测效果比较好。前面我们知道了SSD提取的是anchor对应区域的特征,实际训练的时候还需要知道每个anchor的分类和回归的label,如何确定呢?SSD通过anchor与groundtruth匹配来确定label。
-
对于anchor的一些问题:在Yolo里面没有整理,在这里可以整理一下:
-
- 为什么要设置anchor:
- 通过设计anchor,能够使得特征图与特定大小的目标进行相应。
-
- 为什么同一个检测层可以设置不同大小的anchor:
- 有效感受野理论说明,每一层实际响应的区域其实是有效感受野区域,而且这个感受野区域在训练的过程中会发生变化(比如不同数据集影响等)。正是由于有效感受野能够随着训练过程发生变化,具有自适应性,所以可以在同一个检测层设置不同大小的anchor,到时候直接通过网络来选择到底哪个anchor的响应更好。
-
- 为什么可以在同一个特征图上设置多个anchor检测到不同尺度的目标:
- 分类和回归使用的是同一个特征图,但是不同通道的卷积核学习到的那块区域是有不同的特征的,所以不同通道对应的anchor能够监测到不同尺度的目标。
-
- anchor本身不参与网络的实际训练,anchor影响的是classification和regression分支如何作用。测试的时候anchor就像滑动窗口一样,在图像中滑动,对每个anchor做分类和回归得到最终的结果。
-
SSD里面用到了难样本挖掘的方法,这个可以注意一下。对loss比较大的样本和分类错误的样本加比较大的权重,进行特别关照。
SSD缺点:
- 对小物体检测效果一般,作者认为小目标在高层没有足够信息。
- 对小目标检测的改进可以通过下面几个方面考虑:增大输入尺寸,使用更低的特征图做检测,或者用FPN。其实检测和分割都会用到这种方法。
- anchor的设置可以和Yolo差不多,通过聚类的方式找到比较是和的anchor大小。
Center Net:
-
其实anchor还是有很多缺点的,它的缺点可以总结如下:
-
- 需要根据不同数据集进行设置,泛化能力比较差,不太好设置
- 会增大运算量,产生很多的数据冗余,最终要进行NMS等后处理才能够选出合适的结果
- 正负样本不均衡严重,要应用focal loss等平衡正负样本的方法
-
我们知道YoloV1也是anchor free的网路,只不过效果比较不好。这个center net是论文里面没有center net的那一篇文章的center net。它主要有以下重点知识:
-
center net又快有准,直接把物体当成点去检测,只检测物体的中心点。它把卷积神经网络乐高化了。把它变成backbone -> link -> function head这三个结构,backbone可以随便改,link只管承上启下,function head可以自己加。具体如下图所示:

-
我们可以大致看看backbone用了啥:

本文深入探讨了SSD(Single Shot MultiBox Detector)和CenterNet两种目标检测算法。SSD以其多尺度预测和难样本挖掘策略在初期展现出优异性能,但对小目标检测效果一般。相比之下,CenterNet摒弃了anchor,通过预测物体中心点及大小实现快速精确检测。CenterNet采用点云回归和高斯核软化中心坐标,解决了量化误差问题。两者的优缺点和改进方向为后续目标检测研究提供了思路。
最低0.47元/天 解锁文章
1004





