深度篇——目标检测史(五) 细说 SSD 目标检测

返回主目录

返回 目标检测史 目录

上一章:深度篇——目标检测史(四) 细说 从 Fast R-CNN 到 Faster R-CNN 目标检测

下一章:深度篇——目标检测史(六) 细说 YOLO-V3目标检测

论文地址:《SSD: Single Shot MultiBox Detector》

本小节,细说 SSD 目标检测,下一小节细说 YOLO-V3目标检测

六. SSD (Single Shot MultiBox Detector, SSD) 单点多盒检测器 目标检测 (2016 年)

1. 2016 年 11 月底发布的 SSD 论文,在目标检测任务的性能和精度方面突破了新记录。mAP (mean Average Precision, mAP) 得分超过了 74%,对于代表数据集 如 pascal VOC 和 COCO 能达到每秒 59 帧 的速度。为了更好的理解 SSD,对这个架构的名称理解:

   (1). Single Shot 单点

       单点,这意味着目标定位和分类任务是在网络的单词转发中完成的。

   (2). MultiBox 多盒

      这是 Szegedy 等人开发的一种 bounding boxes 回归技术的名称。MultiBox 是一种快速的类无关的 bounding boxes 坐标建议方法,在 MultiBox 的工作中使用了 inception-style 的卷积网络。MultiBox 的结构类似如下的结构图形:

      在 MultiBox 的损失函数中包括两个关键的部分:

      ①. confidence_loss:

          这部分衡量网络对计算出的边框为目标的信心程度,即为前景或背景和 c 类的概率 \large (c_{1}, c_{2}, ......, c_{p}),使用分类交叉熵计算 loss。与 Faster R-CNN 的 RPN confidence loss 类似。

      ②. location_loss:

           这个指标衡量网络预测的边界与训练数据中真实的边界的误差,使用 \large smooth_{L_{1}} 范数来计算位置损失。虽然它不像 \large smooth_{L_{2}} 那么精确,但它仍然非常有效,并为 SSD 提供了更多的操作空间,因为它并没有试图在它的 bounding boxes 预测中做到 “像素完美”。 

      整体损失函数如下:

        \LARGE L(x, c, l, g) = \frac{1}{N} (L_{conf}(x, c) + \alpha L_{loc}(x, l, g))

       \large L_{conf}(x, c) = - \sum_{i \in Pos}^{N} x_{ij}^{p} log(\hat{c}_{i}^{p}) - \sum_{i \in Neg} log(\hat{c}_{i}^{0})            \large where \;\; \hat{c}_{i}^{p} = \frac{exp(c_{i}^{p})}{\sum_{p} exp(c_{i}^{p})}

       \large L_{loc} (x, l, g) = \sum_{i \in Pos}^{N} \sum_{m \in \{ cx, cy, w, h\}} x_{ij}^{k} smooth_{L_{1}} (l_{i}^{m} - \hat{g}_{j}^{m})

          \large \hat{g}_{j}^{cx} = \frac{g_{j}^{cx} - d_{i}^{cx}}{d_{i}^{w}}

          \large \hat{g}_{j}^{cy} = \frac{g_{j}^{cy} - d_{i}^{cy}}{d_{i}^{h}}

          \large \hat{g}_{j}^{w} = log (\frac{g_{j}^{w}}{d_{i}^{w}})

           \large \hat{g}_{j}^{h} = log (\frac{g_{j}^{h}}{d_{i}^{h}})

           \large x_{ij}^{p} 表示 第 \large i 个默认框 与 第 \large j 个 ground truth box 匹配的 \large p 类 概率,\large x_{ij}^{p} = \{1, 0\},即前景和背景的概率,前景概率为 1,背景概率为 0。

           \large g 则为 ground truth box,

            \large l 为 预测的 box

           \large d 为 默认的 bounding box,而 \large (cx, cy) 为 默认 bounding box 的中心点,\large w, h 分别为 bounding box 的宽和高

            \large c 表示 \large c 类别,即 多分类 中的 类别。

            \large Pos 表示正样本,\large Neg 表示负样本

 

2. SSD 结构图 (SSD 有两个 loss: loc_loss, conf_loss)

 

3. SSD 体系结构抛弃了全连接层,增加了一组辅助的卷积层来替代全连接层,从而能够在多尺度上提取特征,并逐步减小后续的每个输入的大小。

 

4. classification 

    classification 为 SSD 的目标分类器。对于 location 给出的 k 个 bounding boxes,需要对每个 bounding box 计算 c 类分数 和 相对于原始默认框形状的 4 个偏移量(即 坐标)。所以,它在 feature maps 中的一个 location 的总共是 (c + 4) * k 大小的 filters,同理,对于 m * n 大小的 feature maps,则是 (c + 4) * k * m * n 大小的filters。

 

5. SSD 的改进

   (1). 默认 bounding boxes

        建议配置一组不同大小和纵横比的默认 bounding boxes,以确保能够捕获大多数的目标。在 SSD 论文中,每个 feature maps 单元格大约有 6 个 bounding boxes。

   (2). 固定先验 (如 anchors、bounding boxes)

        在 SSD 中,每个 feature maps 单元格都与一组不同尺度和纵横比的默认 bounding boxes 相关联。这些先验是手动(但小心地) 选择的,在 MultiBox 中之所以选择它们,因为它们相对于 ground truth boxes 的 IOU 值超过 0.5。

   (3). 先验和 IOU

        在 MultiBox 中,研究人员创建的先验(如 anchors),是预先计算并固定大小的 bounding boxes,并与原始的 ground truth boxes 的分布密切匹配。事实上,这些先验选择的是 IOU 大小 0.5 的集合。然而在现实中,IOU 为 0.5 仍然不够好,但是它为 bounding boxes 回归提供了一个强大的起点。这比用随机坐标预测要好得多。因此,MultiBox 以先验作为预测的开始,并试图回归到更接近 ground truth boxes。

   (4). Hard Negative Mining 硬性负采样

        在训练时,有许多较低 IOU 的 bounding boxes 被视为负样本。在训练集中,可能会存在大量的负样本。因此,建议将负样本和正样本之间的比例保持在 3:1 左右来替代使用所有的负样本来做预测。需要保留负样本的原因,是因为网络需要学习并明确地被告知什么构成不正确的检测。

 

6. SSD 小结

   (1). 更多的默认框可以得到更精确的检测,尽管这会影响速度(如 Faster R-CNN 就使用了 9 个默认 的 anchor boxes)

   (2). 由于检测器运行在多个分辨率的特征闪,因此在多层上使用 MultiBox 也可以获得更好的检测效果。

   (3). SSD 论文中,80% 的时间是花在基于 VGG16 的网络上,这意味着在衣蛾更快,同样准确的网络,SSD 的性能将会更好(如 ResNet)

   (4). SSD 将目标与类似的类别混淆,这可能是因为多个类别位置共享(如 c1 类 与 c2 类 的框位置非常相似,基本重叠或包含,这时,预测 c1 和 c2 的时候,就容易混淆)

   (5). SSD500 (输入图像最高使用 512 x 512 分辨率) 在 pascal VOC2007 以牺牲速度为代价,获得最好的准确率为 76.8% 的 mAP,此时的速度下降到 22 帧 每秒。而 SSD300 的准确率在 74.3% 的 mAP,59 帧 每秒,是一个更好的权衡。 

   (6). SSD 在处理较小的目标时,性能并不怎么好,因为小目标可能无法出现在所有的  feature maps 上(因为降采样)。增加输入图像的分辨率可以缓解这一问题,但并不能完全解决这个问题。

                  

回主目录

返回 目标检测史 目录

上一章:深度篇——目标检测史(四) 细说 从 Fast R-CNN 到 Faster R-CNN 目标检测

下一章:深度篇——目标检测史(六) 细说 YOLO-V3目标检测

发布了63 篇原创文章 · 获赞 16 · 访问量 5982

猜你喜欢

转载自blog.csdn.net/qq_38299170/article/details/104470653