本文提出了一个有效且快速的目标检测器,该目标检测器得速度可以达到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. less--入门

    Less(Learner Style Sheets)是向后兼容css扩展语言. 变量(Variables) @width: 10px; @height: @width + 10px; header{ ...

  2. SSH配置

    什么是SSH: SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH ...

  3. 2019年4月zstu月赛A: 我不会做

    问题 A: 我不会做 时间限制: 1 Sec  内存限制: 128 MB 题目描述 众所周知,duxing201606就是plw. 然而已经9102年了,plw仍旧没有npy.plw非常难过,于是他打 ...

  4. [工作积累] UE4 并行渲染的同步 - Sync between FParallelCommandListSet & FRHICommandListImmediate calls

    UE4 的渲染分为两个模式1.编辑器是同步绘制的 2.游戏里是FParallelCommandListSet并行派发的. mesh渲染也分两类,static mesh 使用TStaticMeshDra ...

  5. Python实例之抓取HTML中的数据并保存为TXT

    本实例实现了抓取捧腹网中存储于html中的笑话数据(非JSON数据) 通过浏览器相关工具发现捧腹网笑话页面的数据存储在HTML页面而非json数据中,因此可以直接使用soup.select()方法来抓 ...

  6. java8_api_xml

    xml处理-1    解析xml的两种方式    DOM主要接口介绍    使用DOM解析XML        解析(parse)是指读入一个文件,确认其有正确的格式,然后将其分解成各种元素,使开发者 ...

  7. Java面试问题汇总

    转一些面试经验 刚看到下面这份面试清单,从个人的开发面试经历看,里面总结的大部分内容还是很不错的.年后想跳槽的朋友可以选取里面的问题准备一下. GitHub上的面试总结帖 Interview-Note ...

  8. 我发起并创立了一个 Javascript 前端库 开源项目 jWebForm

    在线演示地址: ( 在线演示 云平台 由 Kooboo 提供  https://www.kooboo.com/ ) 按钮:      http://iwebform.kgeking.kooboo.si ...

  9. zabbix之 orabbix模板监控oracle

    一.Orabbix简介 Orabbix是设计用来为zabbix监控Oracle的数据库的插件,它提供多层次的监控,包括可用性和服务器性能的指标.它提供了从众多Oracle实例采集的有效机制,进而提供此 ...

  10. 16.1 解决SecureCRT的Home+End+Del不好用使用方法

    有些时候 securecrt 的快捷键 与我们使用习惯不一致时,可以自己动手修改下映射文件. SecureCRT菜单 :工具→键映射编辑器,在弹出的键盘中点击“home”,会弹出一个窗口,在“发送字符 ...