Tic商业评论

关注微信公众号【站长自定义模块】,定时推送前沿、专业、深度的商业资讯。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

SSD目标检测:用于实时处理的Single Shot检测器

0
回复
7533
查看
[复制链接]
已绑定手机

49

主题

4

回帖

1244

积分

管理员

积分
1244
QQ
来源: 2021-6-5 11:28:00 显示全部楼层 |阅读模式
10.jpg
      SSD Object detection
SSD是为实时目标检测而设计的. Faster R-CNN使用区域提案网络创建边界框,并利用这些框对对象进行分类。虽然它被认为是最精度与速度的开端,但整个过程以每秒7帧的速度运行.远低于实时处理的需求。SSD通过消除对区域提案网络的需求来加快这一过程。为了恢复下降的准确性,SSD应用了一些改进,包括多尺度功能和默认框。这些改进使得SSD能够更快地使用分辨率较低的图像来匹配Faster R-CNN的准确度,从而进一步提高了速度。通过下面的比较,它达到了实时处理的速度,甚至超过了Faster R-CNN的精度。(精度被测量为平均精度:预测的精度。) 10.jpg


SSD
SSD目标检测由两部分组成:
  • 提取特征图,以及
  • 应用卷积滤波器检测物体

10.jpg
SSD使用VGG 16提取特征图。然后,它使用Conv 4_3层检测对象。为了举例说明,我们绘制的Conv_4_3在空间上为8×8(应为38×38)。对于每个单元格(也称为位置),它进行4个对象预测。
10.jpg
左:原始图像。右:每个cell预测4个。

每个预测由一个边界框和每个类的21个scores组成(一个额外的类即groundtruth),我们选择最高的分数作为有界对象的类。Conv_4_3作出了38×38×4的预测:每个cell预测4个,而不考虑特征图的深度。正如预期的那样,许多预测没有包含任何对象。SSD保留一个类“0”来表示它没有对象
10.jpg
进行包含边界框和置信度scores的多个预测被称为多框(Multibox)。

SSD不使用委托区域提案网络。相反,它解析了一个非常简单的方法。它使用小卷积滤波器计算位置和类分数。在提取特征图后,SSD对每个单元采用3×3卷积滤波器进行预测。(这些过滤器像常规CNN滤波器一样计算结果。)每个过滤器输出25个通道:每个类别的21个分数加上一个边界框(稍后在边界框上的详细信息)。
10.jpg

例如,在Conv_4_3中,我们使用4个3×3滤波器将512个输入通道映射到25个输出通道。
10.jpg


多尺度特征图的检测
10.jpg

首先,我们描述了SSD如何从单个层检测对象。实际上,它使用多层(多尺度特征映射)来独立地检测对象.随着CNN空间维数的逐渐减少,特征图的分辨率也随之降低。SSD使用低分辨率层来检测大比例尺对象。例如,4×4特征映射用于大比例尺对象。
10.jpg
低分辨率特征图(右)检测大尺寸对象.

SSD在VGG 16之后又增加了6个辅助卷积层。其中五个将被添加到目标检测中。在其中的三个层中,我们做了6个预测,而不是4个。总共,SSD使用6个层进行了8732个预测。
10.jpg
多尺度特征图显着提高了精度.这是不同数量的特征映射层用于对象检测,从而使准确度增加。
10.jpg


默认boundary box

默认的边界框相当于Faster R-CNN中的锚。
如何预测边界框?就像深度学习一样,我们可以从随机预测开始,用梯度下降来优化模型。然而,在最初的训练中,该模型可能会相互竞争,以确定哪些形状(行人或汽车)要优化哪些目标。实验结果表明,早期训练可能非常不稳定。下面的边界框预测对于一个类别很好,但对其他类别则不起作用。我们希望我们的初步预测是多样化的,而不是相似的。
10.jpg
如果预测不是多样的,那么模型就无法实现。

如果我们预测涵盖更多的形状,如下面的一个,我们的模型可以检测到更多的对象类型。这种训练更容易,更稳定。
10.jpg

在现实生活中,边界框没有任意形状和大小.汽车形状相似,行人的纵横比约为0.41。在自主驾驶的Kitti数据集中,边界框的宽度和高度分布是高度聚类的。
10.jpg

从概念上讲,ground truth边界框可以划分为集群,每个集群由默认边界框(集群的质心)表示。因此,我们可以根据这些默认框开始预测,而不是进行随机预测。
10.jpg

为了保持低复杂度,默认的框是预先手动选择的,以涵盖广泛的对象。SSD还将默认框保持在最小(4或6),每个默认框有一个预测。现在,边界框预测与每个单元格(∆Cx、∆Cy、∆w、∆h)上的默认边界框(Cx、Cy、∆w、∆h)无关,即每个单元格的中心(CX、Cy)、宽度和高度的偏移(差)。
对于每个功能映射层,它共享以相应单元格为中心的默认框集。但是不同的层使用不同的默认框集来定制不同分辨率的对象检测。下面的4个绿色框说明了4个默认边界框。
10.jpg

选择default boundary boxes

10.jpg
默认边界框是手动选择的。SSD为每个特征映射层定义一个缩放值。从左侧开始,Conv 4_3检测最小标度为0.2(有时为0.1)的对象,然后线性地增加到最右边的0.9。结合标度值和目标高宽比,我们计算默认框的宽度和高度。对于进行6个预测的层,SSD从5个目标纵横比开始:1、2、3、1/2和1/3。然后计算默认框的宽度和高度如下:
10.jpg
纵横比=1

YOLO使用训练数据集上的k均值聚类来确定那些默认的边界框。


匹配策略
SSD预测分为正匹配和负匹配。SSD只使用正匹配来计算本地化成本(边框的失配)。如果对应的默认边框(而不是预测的边界框)的IOU大于0.5,则匹配为正。否则,为负。(IOU,联合上方的交点,是两个区域的相交面积与连接区域之间的比率。)
10.jpg

the ground truth object (blue) and 3 default boundary boxes (green).

我们将讨论简化为3个默认框。只有默认框1和2(不是3)有大于0.5的IOU,上面的ground truth框(蓝色框)。所以只有方框1和2是正匹配。一旦我们确定了正匹配,我们就使用相应的预测边界框来计算成本。这种匹配策略很好地划分了预测所负责的ground truth的形状。

这种匹配策略更倾向每个预测预测更接近相应默认框的形状。因此,我们的预测在训练中更加多样化和更稳定。
save.jpg


Default box 2 has IoU greater than 0.5 with the ground truth.




多尺度特征图和默认边框
下面是一个示例,说明SSD如何结合多尺度特征映射和默认边界框来检测不同尺度和纵横比的对象。下面的狗匹配4×4特征映射层中的一个默认框(红色),而在高分辨率8×8特征映射中不匹配任何默认框。在两个默认框(蓝色)中,只有8×8特征映射层才能检测到较小的cat。
save.jpg

高分辨率特征图负责探测小物体.第一层的目标检测卷积4_3的空间维数为38×38,与输入图像相比有很大的缩减。因此,与其他检测方法相比,SSD对小目标的检测效果通常较差。我们可以通过使用更高分辨率的图像来缓解这一问题。
save.jpg


Loss function 损失函数



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
电话咨询: 135xxxxxxx
关注微信