本文提出了一个有效且快速的目标检测器,该目标检测器得速度可以达到200+fps,在Pascal VOC-2007上的mAP比Tiny-Yolo-v2高出14。

本文从以下三个方面对网络进行改进。

  • 网络结构  Network architecture
  • 损失函数  Loss function
  • 训练数据  Training data

网络结构

网络结构如下图:

f17ae279f77d32d9778707288bfa806e.png

  • Dense feature map with stacking。从前面的层merge feature map会提高网络性能。
  • Deep but narrow。网络最后几层,使用1x1卷积来增加网络的深度。

损失函数

知识蒸馏方法的总体框架如下:

96b52630b6336ba54ba24fc9b63449be.png

Objectness scaled Distillation

YOLO目标检测中,每个cell位于最后一层的feature map中,每个cell会预测N个bounding boxes,N表示anchor的数量。因此最后一层的feature map的数量为N*(K+5),其中K是预测的类别数量,5表示4个bbox坐标和1个objectness value。对于每个cell中的每个anchor box,网络会预测bbox的坐标,objectness value(定义为ground truth box与预测的box的IOU)和对应类别的概率。因此,YOLO的loss由3个部分组成,分别为 regression loss, objectness loss, classification loss,公式如下:

f898c80bfc9f5a6b402550b2adc1d2a8.png

由于YOLO最后输出的预测结果中包含大量的background,对于标准的知识蒸馏方法来说,student network会学习大量的teacher network预测的背景bbox,而这些teacher network预测背景的bbox都是没有用的,因此会造成student network学习大量没有用的信息。为了避免这个问题,作者提出 objectness scaled function。具体思路为 只有当teacher network的objectness value高时,才学习bounding box坐标和class probabilities。
因此 objectness部分的损失函数如下:

6a4965cfd3abbc1de7f2f225bfef999f.png

对于classification部分的loss如下,称为 objectness scaled classification function,即在原来公式的基础上,乘上了一个系数,该系数即为objectness value。

d3e8a90ff5a17404cd0ec8cf1e7c04cd.png

对于 bounding box坐标的loss同理,公式如下:

c99636c256cf6feb3be5b38e93735878.png

因此,总体的损失函数如下:

6734600a258a8e42b89bfd88efcb2fad.png

Feature Map-NMS

实际情况中,网络大量的cell和anchor都会预测同一个物体,因此,当我们利用知识蒸馏训练时,当teacher network将信息迁移到student network时,高度重合的检测区域对应的feature map会使得反向传播时,对应于同一个 object class and dimensions,梯度会变得很大,从而导致网络过拟合。
为了解决这个问题,作者提出 Feature Map-NMS (FM-NMS)。具体思想是如果在K * K邻域的cell中,多个候选框都对应同一个类别,那么这很可能是同一个物体。因此,我们只选择objectness值最高的那个候选框。另外,我们会将对应同一类别的其他候选框在最后一层的feature map中的 class probabilities置为0。因此,只有objectness值最大的那个才会对student network产生影响。

Effectiveness of data

增加更多的标注数据或者未标注的数据,都会提高模型的性能。对于增加标注数据,训练方法与之前的一致;对应增加未标注的数据,我们利用teacher network的输出作为soft label,利用知识蒸馏方法进行训练(只计算teacher network部分的损失,不计算ground truth部分的损失)。

结果

下面是知识蒸馏的实验结果:

da4fda94c91a3274592c2a34f79a1013.png

下图是本文提出的方法与其他网络在速度和精度上的对比图:

9d83067bfb51f1a2f6fb7d5425aff48e.png

相关链接:
https://blog.csdn.net/u014380165/article/details/80467007

[论文阅读]Object detection at 200 Frames Per Second的更多相关文章

  1. (转)Awesome Object Detection

    Awesome Object Detection 2018-08-10 09:30:40 This blog is copied from: https://github.com/amusi/awes ...

  2. 论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline

    论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline  如上图所示,本文旨在解决一个问题:给定一张图像, ...

  3. 论文阅读 | FCOS: Fully Convolutional One-Stage Object Detection

    论文阅读——FCOS: Fully Convolutional One-Stage Object Detection 概述 目前anchor-free大热,从DenseBoxes到CornerNet. ...

  4. 论文阅读(Chenyi Chen——【ACCV2016】R-CNN for Small Object Detection)

    Chenyi Chen--[ACCV2016]R-CNN for Small Object Detection 目录 作者和相关链接 方法概括 创新点和贡献 方法细节 实验结果 总结与收获点 参考文献 ...

  5. 论文阅读笔记五十五:DenseBox: Unifying Landmark Localization with End to End Object Detection(CVPR2015)

    论文原址:https://arxiv.org/abs/1509.04874 github:https://github.com/CaptainEven/DenseBox 摘要 本文先提出了一个问题:如 ...

  6. 论文阅读笔记五十三:Libra R-CNN: Towards Balanced Learning for Object Detection(CVPR2019)

    论文原址:https://arxiv.org/pdf/1904.02701.pdf github:https://github.com/OceanPang/Libra_R-CNN 摘要 相比模型的结构 ...

  7. 论文阅读笔记五十二:CornerNet-Lite: Efficient Keypoint Based Object Detection(CVPR2019)

    论文原址:https://arxiv.org/pdf/1904.08900.pdf github:https://github.com/princeton-vl/CornerNet-Lite 摘要 基 ...

  8. 论文阅读笔记五十一:CenterNet: Keypoint Triplets for Object Detection(CVPR2019)

    论文链接:https://arxiv.org/abs/1904.08189 github:https://github.com/Duankaiwen/CenterNet 摘要 目标检测中,基于关键点的 ...

  9. 论文阅读笔记四十八:Bounding Box Regression with Uncertainty for Accurate Object Detection(CVPR2019)

    论文原址:https://arxiv.org/pdf/1809.08545.pdf github:https://github.com/yihui-he/KL-Loss 摘要 大规模的目标检测数据集在 ...

随机推荐

  1. reset()方法的使用、jq下面reset()的正确使用方法

    reset()是 原生js的的方法,所有浏览器都支持,而且必须是form元素包括下的表单元素,但是JQuery中没有reset方法, 效果图:  错误用法: 正确用法: js用法: document. ...

  2. Css新增内容

    css3新增属性 可节省设计时间的属性 border-color:控制边框的颜色,并且有更大的灵活性,可以产生渐变效果 border-image:控制边框图像 border-radius:能产生类似圆 ...

  3. js ·节点的知识点

    1. DOM document object model (1) 节点树状图 Document>documentElement>body>tagname 2. 我们常用的节点类型 元 ...

  4. 添加本地jar包到maven仓库

    mvn install:install-file -Dfile=D:\video-lib\log4j-.jar -DgroupId=video -DartifactId=log4j -Dversion ...

  5. P2820 局域网

    GOOD NIGHT 诸位,这是最小生成树的模板(掌声) 最小生成树 以下是题目链接:FOR——MIKU 代码如下 /* 并查集可以解决最小生成树的问题 因为并查集可以完成高效的合并 但是,以下代码依 ...

  6. CMDB-实例

    目录规划 bin ------> 启动文件 lib -------> 常见的库文件 src ------> 采集的核心代码 conf ----> 配置目录 log ------ ...

  7. 使用数据泵expdp、impdp备份和还原oracle数据库

    前面我已经整理过EXP 和 IMP备份和还原Oracle数据库的方法 今天我们只讲使用数据泵 expdp 和impdp的方法,有的同学会问他们有什么差别呢? EXP和IMP是客户端工具程序,它们既可以 ...

  8. consul & registrator & consul-template 使用

    consul & registrator & consul-template 使用 参考这里的文章: https://www.jianshu.com/p/a4c04a3eeb57 do ...

  9. 【缓存算法】FIFO,LFU,LRU

    一.FIFO算法 FIFO(First in First out),先进先出.其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么这个原则在很多地方都会用到呢 ...

  10. 深度系统 deepin 15.9 关闭桌面

    深度系统 deepin 15.9 关闭桌面 由于特别的原因,关闭深度的桌面. sudo systemctl disable lightdm 如果需要在命令模式进入桌面可以使用以下命令. sudo se ...