这幅图片解释了构成直观的解释关于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在相似的物体上产生较差的表现,因为他们可能没有仔所有特征图中出现。增加输入图像分辨率能缓解问题但不能完全解决。
*

理解SSD多盒-实时目标检测相关推荐

  1. DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《我要打篮球》视频段进行实时目标检测

    DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对<我要打篮球>视频段进行实时目标检测 目录 输出结果 设计思路 核心代码 相关文章 成功解决AttributeError ...

  2. 基于改进SSD算法的小目标检测与应用

    人工智能技术与咨询 点击蓝字 · 关注我们 来源:< 计算机科学与应用> ,作者刘洋等 关键词: SSD:深度学习:小目标检测 摘要: 摘要: 针对通用目标检测方法在复杂环境下检测小目标时 ...

  3. YOLO-LITE:专门面向CPU的实时目标检测

    点击我爱计算机视觉标星,更快获取CVML新技术 现在的实时目标检测算法,比如YOLO.SSD在GPU上已经可以跑的很快了,比如YOLOv2可以在GPU上跑到224fps,但在便携式笔记本甚至手机终端, ...

  4. 【全文翻译】YOLOv1:统一的实时目标检测

    YOLO:统一的实时目标检测 摘 要 我们提出了YOLO,一种新的目标检测方法.以前的目标检测工作使用分类器来执行检测.相反,我们是将目标检测框架看作是一个从空间上分割边界框和相关的类别概率的回归问题 ...

  5. MXNet的Faster R-CNN(基于区域提议网络的实时目标检测)《9》

    MXNet的Faster R-CNN(基于区域提议网络的实时目标检测)<1>:论文源地址,克隆MXNet版本的源码,安装环境与测试,以及对下载的源码的每个目录做什么用的,做个解释. MXN ...

  6. YOLOv7详解:实时目标检测新标杆 | Chien-Yao Wang团队与Alexey团队倾力打造

    论文地址:https://arxiv.org/abs/2207.02696 代码地址:https://github.com/WongKinYiu/yolov7 权重: https://pan.baid ...

  7. 使用SlimYOLOv3框架实现实时目标检测

    1. 介绍 人类可以在几毫秒内在我们的视线中挑选出物体.事实上,你现在就环顾四周,你将观察到周围环境并快速检测到存在的物体,并且把目光回到我们这篇文章来.大概需要多长时间? 这就是实时目标检测.如果我 ...

  8. Yolo:实时目标检测实战(下)

    Yolo:实时目标检测实战(下) YOLO:Real-Time Object Detection After a few minutes, this script will generate all ...

  9. Yolo:实时目标检测实战(上)

    Yolo:实时目标检测实战(上) YOLO:Real-Time Object Detection 你只看一次(YOLO)是一个最先进的实时物体检测系统.在帕斯卡泰坦X上,它以每秒30帧的速度处理图像, ...

最新文章

  1. 如何用php实现分页效果
  2. 邮件服务器SMTP概述
  3. framework层和native层实现联网控制(iptable方式)
  4. 如何保留linux中yum安装后的rpm软件包
  5. Traveling on the Axis (The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online)
  6. lucene的数据类型
  7. linux启动管理,Linux启动管理 详述
  8. 深入浅出聊聊Kubernetes存储(二):搞定持久化存储
  9. pb通过对象名称调用对象_信号线名称自动关联Simulink信号对象
  10. ambari 搭建hadoop大数据平台系列4-配置ambari-server
  11. 数组的最长递减子序列java_47.创新工场: 求一个数组的最长递减子序列 | 学步园...
  12. 三大检索工具(SCI、EI、ISTP)
  13. DeeCamp 2019 Exam A 纪实
  14. 如何利用 HBuilderX 制作图文混排的网页
  15. PLS-00103: Encountered the symbol “DECLARE“
  16. C++11新特性,推荐使用emplace_back()替换push_back()的原因
  17. 三十九、如何单独发布jar包
  18. 境外上市,一个绝非遥不可及的梦想!
  19. Fc=70M,Fs=102.4M,B=40M的线性调频信号Matlab实现
  20. mysql 当前时间减指定时间_Mysql从日期值减去5分钟

热门文章

  1. 40vf什么意思_变频器的VF模式是什么意思?VF什么意思
  2. Oracle 实验7 存储过程
  3. linux中写如空格参数,Vim中Tab与空格缩进
  4. php数据库连接程序,常用的数据库连接程序
  5. 传感器工作原理_光电式速度传感器的工作原理
  6. oracle输出一天所有秒数,Oracle函数通过秒数或分钟数获取时间段
  7. science量子计算机,第一快讯|《Science》量子计算机被证明超越了经典计算机
  8. [Day30] DBUtils和连接池
  9. 1.C#基础之简介(完成)
  10. php json_encode小数精度丢失的问题