目标检测之单步检测(Single Shot detectors)

前言

像RCNN,fast RCNN,faster RCNN,这类检测方法都需要先通过一些方法得到候选区域,然后对这些候选区使用高质量的分类器进行分类。这类方法的检测准确率比较高但是计算开销非常大,不利于实时检测和嵌入式等设备。
另一类方法是将提取候选区和进行分类这两个任务融合到一个网络中。既不使用预定义的box也不使用候选区生成网络来进行寻找目标物体。而是通过一些的卷积核来对卷积网络得到的特征来计算类别分数和位置偏差。

利用卷积神经网络进行区域定位

利用卷积神经网络来进行的分类任务中,通常网络结构最后都有一个全连接层来计算属于各个类别的概率值。例如对于输入为640×480像素的三通道图像,经过多个卷积层池化层以后得到13x18×2048通道的特征图,相当于把原图“划分”(并不严谨)成13×18的小区块(cell)。

原来的图像由640×480像素压缩到13×18cell,每个cell代表了原图的大范围的区域,我们可以在检测目标物体是否在cell内出现。另外每个cell的信息由2048维的向量表示,因此图像信息并没有丢失太多(除非使用较多的池化层)。
对于每个cell,你可以想象使用1×1卷积层(关于1×1卷积,你可以看这里)来对每个cell进行分类(前景还是后景),同样你也可以连接上其他的卷积层或全连接层来预测Bounding box的坐标:(x,y,w,h),这样你就可以在一个过程中得到类别评分和位置的预测值。
可能有人认为这个过程就是简单的把原图像直接划分为几个网格,这样想就错了。这个过程虽然是用少数的几个cell来代表整张图像,但是cell的特征维度很高,而且cell之间会有一些重叠并非平铺的。在训练的时候,我们还需要对真实的标注和虚拟的cell之间进行一系列的匹配。

如何得到bounding box

可能一开始会让人理解困难的是检测网络是如何将cells物体实际的bounding box,以下是一些使用单步检测策略的目标检测方法:

  1. SSD:Uses different activation maps (multiple-scales) for prediction of classes and bounding boxes
  2. YOLO: Uses a single activation map for prediction of classes and bounding boxes
  3. R-FCN(Region based Fully-Convolution Neural Networks): Like Faster Rcnn (400ms), but faster (170ms) due to less computation per box also it's Fully Convolutional (No FC layer)

使用多尺度有助于实现更高的mAP(mean average precision),能更好的对不同大小的目标进行检测。
这类方法使用的策略总结:

  1. 训练一个卷积神经网络作为bounding box的回归器和目标物体的分类器。
  2. 通常,它们的损失函数更复杂,因为它必须实现多个任务(是否存在目标物体、分类、回归)
  3. 从多个层总结激活结果,然后使用全连接层或特殊的卷积层(工作过程和全连接层类似)来实现分类和确定位置。
  4. 在预测期间,使用算法例如非极大值抑制来过滤围绕相同对象的多个框。
  5. 在训练时,使用IoU来表示预测值和真实标签值之间的差距大小。

这类单步检测网络,都会有许多的互相重叠的cell,这些cell有不同的空间位置,尺度,这些cell被称为“anchors”(有时也被称作“priors”,“default boxes”)。

目标检测之单步检测(Single Shot detectors)的更多相关文章

  1. 【计算机视觉】目标检测之ECCV2016 - SSD Single Shot MultiBox Detector

    本文转载自: http://www.cnblogs.com/lillylin/p/6207292.html SSD论文阅读(Wei Liu--[ECCV2016]SSD Single Shot Mul ...

  2. SSD: Single Shot MultiBox Detector论文阅读摘要

    论文链接: https://arxiv.org/pdf/1512.02325.pdf 代码下载: https://github.com/weiliu89/caffe/tree/ssd Abstract ...

  3. 目标检测--SSD: Single Shot MultiBox Detector(2015)

    SSD: Single Shot MultiBox Detector 作者: Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, ...

  4. 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU

    摘要:本文解读了<Gaussian Bounding Boxes and Probabilistic Intersection-over-Union for Object Detection&g ...

  5. SSD: Single Shot MultiBoxDetector英文论文翻译

    SSD英文论文翻译 SSD: Single Shot MultiBoxDetector 2017.12.08    摘要:我们提出了一种使用单个深层神经网络检测图像中对象的方法.我们的方法,名为SSD ...

  6. 翻译SSD论文(Single Shot MultiBox Detector)

    转自http://lib.csdn.net/article/deeplearning/53059 作者:Ai_Smith 本文翻译而来,如有侵权,请联系博主删除.未经博主允许,请勿转载.每晚泡脚,闲来 ...

  7. SSD(Single Shot MultiBox Detector)的安装配置和运行

    下文图文介绍转自watersink的博文SSD(Single Shot MultiBox Detector)不得不说的那些事. 该方法出自2016年的一篇ECCV的oral paper,SSD: Si ...

  8. SSD: Single Shot MultiBox Detector

    By Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexande ...

  9. SSD(single shot multibox detector)

    SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法,截至目前是主要的检测框架之一,相比Faster RCNN有明显的速 ...

随机推荐

  1. netcore 自动生成Dockerfile的坑

    简介   之前采用shell脚本+dockerfile的方式构建项目,后来发现有Docker在17.05版本之后有多阶段构建方式,该文主要记录了netcore采用dockerfile构建遇到的坑. 原 ...

  2. vue项目使用v-charts的柱形图的各种样式和数据配置

    找了很多网上关于v-charts的柱形图使用,我发现我一模一样的配置就是没有效果,我原来是按需引入的, import VeHistogram from 'v-charts/lib/histogram' ...

  3. @Configuration结合@Bean实现对象的配置

    @Configuration结合@Bean实现对象的配置 前提:最近项目中需要做支付接口,支付宝以及微信支付,本文并不介绍如何写支付接口,而是通过这个示例讲解配置应该怎么写,项目中使用的是Kotlin ...

  4. JVM之对象

    几乎所有对象都是在堆中分配内存的,这次来讲讲java的对象. 对象的创建主要分为以下几步: 首先,查看类是否装载.当JVM读取到new指令的时候,会拿着符号描述去方法区寻找它所属的类,如果未查找到,则 ...

  5. Windows安装EMQ服务器(mqtt)

    先去EMQ官网下载安装包 https://www.emqx.io/downloads#broker 注意:此处一定不能下错成企业版的,不然EMQ会由于缺少企业license无法启动服务 解压到任意路径 ...

  6. 手算CRC及其实现

    前言: 这篇文章主要讲的是如何手算CRC以及运用CRC,更侧重方法的步骤,对原理方面不做探讨. 方法也是按照我个人理解的来,所以并不专业~ 一些搬过来的代码我也修改了一下下 如果想了解原理的可参考资料 ...

  7. TieredMergePolicy

    setFloorSegmentMB多少MB一个层级,在此区间的segment分为一个floor. setMaxMergeAtOnce一次merge多少个segment. setSegmentsPerT ...

  8. 正则表达式grep命令

    grep命令 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查:打印匹配到的行. 模式::由正则表达式字符及文本字符所编写的过滤条件 语法:grep [OPTIONS] PATTE ...

  9. 优化webpack构建时间的小技巧

    在之前工作的地方,我们一直使用webpck去构建.但是,经过长达四年的更新迭代,每个人都在同一个项目中做了不同的操作和更新,这导致我们生产构建时间达到了惊人的一分半,watch模式的rebuild也达 ...

  10. 图解kubernetes scheduler基于map/reduce无锁设计的优选计算

    优选阶段通过分离计算对象来实现多个node和多种算法的并行计算,并且通过基于二级索引来设计最终的存储结果,从而达到整个计算过程中的无锁设计,同时为了保证分配的随机性,针对同等优先级的采用了随机的方式来 ...