理解SSD多盒-实时目标检测

这里写图片描述
这幅图片解释了构成直观的解释关于SSD多盒目标检测技术。
自从AlexNet在2012年ILSVRC比赛中对于图像识别任务打败传统计算机视觉方法后给研究界带来风暴。在计算机视觉领域,传统神经网络在图像分类表现出色,包含分类图片,给定类别集合(例如猫,狗)使用网络来决定图像中呈现的最可信的类别。现在,深度学习网络比人类在图像分类表现更好。然而我们作为人类在观察和交互世界时可以比分类图像任务做的更多。我们也定位和分类各个成分在我们的视觉中。这些是更复杂的任务。
1 The Region-Convolutional Neural Network(R-CNN)
研究员开发RCNN来处理目标检测任务,定位和分类。广泛地说,一个R-CNN是一种特别类型的CNN其能够定位和检测物体在图像中:输出是一系列bounding box集合,很接近的匹配每个检测的物体,也对于每个检测的物体输出类别。在RCNN之后发展了Fast-RCNN , Faster-RCNN,每一次提升是使用更快的网络完成实时目标检测。但是上述网络仍然遗留一下问题:
a) 训练数据是不实用的并且太长
b) 训练要经历多个阶段(例如训练region proposal 和 分类器)
c) 网络在推论时太慢了(也就是当处理非训练数据时)
幸运的是,现在新的技术出现来解决RCNN的瓶颈,能够实时目标检测。最有名的是YOLO(you only look once)和SSD multiBox(Single Shot Detector).在本文中,我们将讨论SSD。
2 Single Shot MultiBox Detector
SSD论文在2016年11月放出并达到当前最好的表现和精度对于目标检测任务,74% mAP 每秒59帧在标准数据集PascalVOC和COCO。为了更好理解SSD,我们从解释这个架构的名字来由开始:
* Single shot:这意味着物体定位和分类任务在单次网络传播中完成
* MultiBox:这是对于bounding box回归技术的名称
* Detector: 网络是一个物体检测器,并能分类这些检测的物体

3 架构
这里写图片描述
当你看上述图是,SSD的架构建立在一个VGG-16架构上,但抛弃了全连接层。使用VGG-16作为基网络的原因是因为其在高质量图像分类任务和它对于问题的流行性的高表现,迁移学习能帮助提高结果。而不是原始的VGG全连接层,一系列辅助卷积层(从conv6)被增加,因此能够在多尺度提取特征并逐渐减少输入的大小到每个接下来的层。这里写图片描述

4MultiBox
SSD的bounding box 回归技术受Szegedy的工作关于Multibox影响, 一种对于快速类别不可知的bounding box坐标提议方法。在MultiBox工作中使用Inception 风格的卷积网络。1*1 卷积帮助降维当维度的数量下降时(但是宽和高保持不变)
这里写图片描述
MultiBox的损失函数也结合两个重要组成:
1. 置信度损失:这度量多大置信度关于计算的Bounding box的物体性。分类的交叉熵被用来计算该损失。
2. 定位损失:这度量了网络预测的Bounding box和真实的box距离多远,这里使用L2范数。
关于损失的表达:multibox_loss = confidence_loss +alpha * location_loss.
alpha平衡定位损失的贡献。目标是找到最优减少损失函数的参数值,因此让预测值距离真实值更近。

5 multi-box 先验和IOU
在Bounding box 生成的周围逻辑旋转更复杂。在Multibox中,研究员创造了我们称为先验(或者角点在Faster-RCNN),就是提前就算,固定尺寸的bounding boxes很接近原始真实boxes的分布。事实上这些先验以他们的在并集率的交集集合选出(Intersection over Union ratio IOU, 有时也称Jaccard 索引)大于0.5阈值的。因此MultiBox使用先验开始作为预测并尝试去回归更接近真实值的bounding box

这里写图片描述
最后架构包含11个先验每个特征图单元(8*8, 6*6, 4*4, 3*3, 2*2)和只有一个1*1 的特征图,导致最后每张图片有1420个先验,因此增强在多尺度下输入图像的鲁棒收敛,来检测多种大小的物体。
最后MultiBox 只保留了前K个预测,其中有最小的定位和置信度损失。

6 SSD 提升
返回到SSD,一些调整增加去使网络更有能力去定位和分类物体。
固定先验:不像MultiBox, 每个特征图单元关联一系列默认不同维度和方面比例的Bounding box。这些先验是手动选择,然而在MultiBox,他们被选择因为他们的IOU关于真实值超过了0.5。在理论上应该允许SSD去泛化到任何输入类型,不要求一个预训练阶段对于先验生成。例如假设我们有数b个默认的bounding box在每个特征图单元上,c个类别取分类,在一个给定特征图大小为f = m * n , SSD应该计算f(b+c)的值对于这个特征图。
定位损失:SSD使用平滑的L1范数来计算定位损失。没有L2范数精确,但也很高效并给SSD更多空间对于调整,它没有试图为在bounding box预测的像素级最好。
分类:MultiBox在分类任务表现差,然而SSD表现好。因此对于每个预测的bounding box,一系列c个类别预测被计算。

Training & Running SSD
数据集
Pascal VOC和COCO是较好的开始点。
默认的bounding boxes
推荐去计算一系列变化的bounding boxes, 在不同尺度和方面比率来确保捕获绝大多数的物体。SSD论文中每个特征图有6个bounding boxes。
特征图
特征图(也就是卷积块的结果)是在不同尺度下图像中显著特征的表达。因此在多种特征图中跑MultiBox增加了最终检测定位和分类的物体的似然。
7 Hard Negative Mining
在训练汇总,大多数bounding box只有较低的IOU并因此被认为是负训练样本,我们可能最终使用不成比例的负样本数在训练中。因此不是使用所有负预测,而是保持一定负样本到正样本的比例为3:1。需要保持负样本的原因是因为网络也需要学习和被更清晰的告知什么组成了一个不正确的检测。
这里写图片描述

8 数据增强
SSD作者声称数据增强很重要来教会网络变得更鲁棒对于输入不同物体大小。他们生成额外的训练样本具有不同的IOU比例包含原始图像块和随机块。并且,每个图像也随机水平旋转以0.5的概率,隐藏确保潜在物体出现在左和右具有相似的似然。

9 非最大抑制(Non-Maximun Suppression)
在SSD的一次前向传输在推断是生成的大量boxes,有必要减少大量的Bounding box通过应用NMS技术:boxes具有一个置信度阈值少于cf(例如0.01) 和IOU少于lt(例如0.45)会被抛弃,只要前N个预测保留。这确保了只有最可能的预测被保留,噪音被移除。

10 额外知识
以下几点观察:
* 许多默认的boxes具有更精确的检测,尽管这影响速度降低
* 在多层用MultiBox导致更好的预测,由于检测器在多分辨率中检测特征
* 80%的时间花在基VGG-16网络,这意味有一个更快的相同精度的网络 SSD的表现会更好。
* SSD 混淆相似类别的物体。这可能因为定位对于多类别是共享的
* SSD-500(最搞分辨率使用512*512输入图像)完成最好mAP 在PascalVOC2007 为76.8%,帧率为22
* SSD在相似的物体上产生较差的表现,因为他们可能没有仔所有特征图中出现。增加输入图像分辨率能缓解问题但不能完全解决。
*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值