本文提出了一个有效且快速的目标检测器,该目标检测器得速度可以达到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. fiddler近期用到的一些新功能

    一,AutoResponder导出导入 将AutoResponder中的规则全部选中,右键选择 Export All,可以导出成rule.farx文件 导入时选择Add Rule右边的Import按钮 ...

  2. java-jdk动态代理生成的代理类源码

    import com.zkn.newlearn.gof.proxyhandler.PersonInter; import java.lang.reflect.InvocationHandler; im ...

  3. 对于Vue的v-if 和 v-showi

    V-if   : 1. 是条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当的被销毁和重建. 2. 是惰性的,如果初始渲染条件为假,则什么都不做,直到条件第一次变为真的时候,开开始渲染 ...

  4. centos7常用命令

    系统命令 shutdown -h now # 关机 shutdown -r now # 重启 reboot # 重启 systemctl status firewalld # 查看防火墙状态 syst ...

  5. vue列表拖拽组件 vue-dragging

    安装 $ npm install awe-dnd --save 应用 在main.js中,通过Vue.use导入插件 import VueDND from 'awe-dnd' Vue.use(VueD ...

  6. 前端的UI框架

    iView 框架 使用场景 iView 主要适合大中型中后台产品,比如某产品的运营平台.数据监控平台.管理平台等,从工程配置.到样式布局,甚至后面规划的业务套件,是一整套的解决方案,所以它可能不太适合 ...

  7. Linux安装中文字体_宋体

    E&T: CentOS_7.4 64位; mswfonts.tar.xz; Xftp5; Xshell5; 最近在完成合同电子签署时,合同的中文参数在服务器出现中文乱码问题, 编码一致且正确, ...

  8. 学习笔记CB014:TensorFlow seq2seq模型步步进阶

    神经网络.<Make Your Own Neural Network>,用非常通俗易懂描述讲解人工神经网络原理用代码实现,试验效果非常好. 循环神经网络和LSTM.Christopher ...

  9. 0. General-purpose tools (通用工具 8个)

    http://en.wikipedia.org/wiki/Netcat这个简单的实用程序通过TCP或UDP网络连接读写数据. 它被设计为一个可靠的后端工具,可以直接或轻松地使用其他程序和脚本驱动. 同 ...

  10. 网页真机调试之Browsersync简介

    以前的调试方式 修改完项目文件(html.js.css等)后保存,在浏览器刷新页面查看修改后的效果 本地开启一个 tomcat 服务,修改文件后保存刷新页面,移动端或其他 pc 则需要输入 ip + ...