发表时间:2013
发表作者:(Google)Szegedy C, Toshev A, Erhan D
发表刊物/会议:Advances in Neural Information Processing Systems(NIPS)

本文实现了一种利用DNN来做目标检测的方法。当时,CNN等深度学习在识别上面做的还挺好,但是在目标检测上面没有特别突出的结果。本文中作者把目标检测看做一个回归问题,回归目标窗口(BoundingBox)的位置,寻找一张图片当中目标类别和目标出现的位置。
作者在ImageNet CNN(见下图)基础上构建网络模型。ImageNet CNN共7层,前5层为卷积+Relu层(其中3层包含Max Pooling),后2层为全连接层。本文将ImageNet CNN的最后一层(Softmax Classifer)替换成了Regression Layer。

ImageNet CNN

首先,作者制定了一个基于DNN的回归方法,它的输出是对象Bounding Boxes的二值masks;其次,利用一个简单的Bounding Boxes从这些masks中推理提取出检测对象;最后,在全图以及少数修剪后的大图上进行调整,从而提高定位的精度。下图是基于DNNs进行对象检测的原理图(Figure 1)以及微调步骤图(Figure 2)。

基于DNNs进行对象检测

Regression Layer生成对象的Binary Mask \(DNN(x; \theta)\in \Bbb R^N\),其中$\theta$是模型的参数,\(N\) 是对象的像素总数。由于模型的输出维度固定,因此假设模型所预测的输出大小为$ N=d×d$ 。对于Resized后,符合模型输入的图片,经模型得到的Binary Masks结果包含一个或多个对象,然后规定属于对象中的Binary Mask的值为1,否则为0。
通过最小化每张图片$x$ 的Binary Mask与Ground Truth mask \(m∈[0,1]N\) 差值的 \(L_2\) 范式对模型进行训练,Loss Funciton 如下所示:

\[
min_{\ \theta} \sum_{(x, y) \in \theta} \Vert (Diag(m) + \lambda I)^{1 \over 2} (DNN(x; \theta)-m)\Vert ^2 _2
\]

其中$D$是图片训练集,这些图片包含Bounding Boxed Objects,而图片中的Bounding Boxed Objects被表征为Binary Masks。
从损失函数的形式可以看出,它具有非凸性,则求解最优值将得不到保证。通常,可以利用Varying Weights对Loss Function进行Regularize。对于绝大多数Objects的尺寸相对于整个图片来说比较小,从而使得模型容易将平凡解(指尺寸比较小的Objects)容易被忽略掉。为了避免这个问题,Loss Function利用参数 \(λ∈R^+\) 来调整模型中的权重值,模型的输出若为与Ground Truth Mask对应的非零值,则增加输出的Weight。若所选择的参数 \(λ\) 比较小,则具有Groundtruth value 0的输出上的误差被惩罚的强度将小于Groundtruth value1的误差,因此即使模型输出的Masks属于Objects的强度比较弱,也能促使模型预测其为非零值。在本论文的实现中,作者设计模型的输入是$ 225×225$ 而输出的Binary Mask是 \(d×d\),其中 \(d=24\)。
论文主要对三个具有挑战性的问题进行分析和解决。第一,模型输出的单个Object Mask无法有效地对相互靠近的歧义Objects进行对象检测;第二,由于模型输出大小的限制,所生成的Obinary Mask的尺寸相对于原始图片显得及其小,譬如: $400×400$, \(d=24\),那么每个输出对应到原始图片的单元大小大约为$16×16 $,故无法精确地对对象进行定位,而在原始图片更小的时候,难度将更大;第三,受输入是整张图片的影响,尺寸比较小的Objects对Input Neurons的影响很小,从而使得识别变得困难。

参考:
bolg

Paper Reading:Deep Neural Networks for Object Detection的更多相关文章

  1. Paper Reading:Deep Neural Networks for YouTube Recommendations

    论文:Deep Neural Networks for YouTube Recommendations 发表时间:2016 发表作者:(Google)Paul Covington, Jay Adams ...

  2. Deep Neural Networks for Object Detection(翻译)

    0 - Abstract 深度神经网络(DNNs)最近在图像分类任务上表现出了突出的性能.在这篇文章中,我们进一步深入探究使用DNNs进行目标检测的问题,这个问题不仅需要对物体进行分类,并且还需要对各 ...

  3. Coursera, Deep Learning 4, Convolutional Neural Networks, week3, Object detection

    学习目标 Understand the challenges of Object Localization, Object Detection and Landmark Finding Underst ...

  4. On Explainability of Deep Neural Networks

    On Explainability of Deep Neural Networks « Learning F# Functional Data Structures and Algorithms is ...

  5. 目标检测--Scalable Object Detection using Deep Neural Networks(CVPR 2014)

    Scalable Object Detection using Deep Neural Networks 作者: Dumitru Erhan, Christian Szegedy, Alexander ...

  6. Paper Reading: Relation Networks for Object Detection

    Relation Networks for Object Detection笔记  写在前面:关于这篇论文的背景知识,请参考我前面的两篇随笔(<关于目标检测>和<关于注意力机制> ...

  7. Must Know Tips/Tricks in Deep Neural Networks

    Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei)   Deep Neural Networks, especially C ...

  8. Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei)

    http://lamda.nju.edu.cn/weixs/project/CNNTricks/CNNTricks.html Deep Neural Networks, especially Conv ...

  9. (转)Understanding, generalisation, and transfer learning in deep neural networks

    Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017   Thi ...

随机推荐

  1. Reactor系列(三)创建Flux,Mono(续)

    创建Mono 视频讲解:https://www.bilibili.com/video/av78944069/ FluxMonoTestCase.java package com.example.rea ...

  2. JavaSE基础(十)--Java中的基本数据类型转换

    Java中的基本数据类型转换 说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间 ...

  3. oauth2中org.springframework.security.core.userdetails.User无法转换为封装的AuthorizationInfoBean

    用springboot + oauth2 + redis搭建了一个项目,创建一个自定义的AuthorizationInfoBean继承org.springframework.security.core ...

  4. IO-file 01 名称或路径

    package com.bwie.io; import java.io.File; /** * 名称或路径 * [getName:名称 * getPath * getAbsolutePath:绝对路径 ...

  5. 常用的API

    API (application programming Interface)应用程序编程接口 java 是字典 Scanner类的功能可以实现从键盘输入到程序当中. 引用类型的一般使用步骤 ·1导包 ...

  6. poj3304(叉积判断直线和线段相交)

    题目链接:https://vjudge.net/problem/POJ-3304 题意:求是否能找到一条直线,使得n条线段在该直线的投影有公共点. 思路: 如果存在这样的直线,那么在公共投影点作直线的 ...

  7. 你除了在客户端上会使用Cookie,还能使用哪些可以作为数据缓存呢?

    问题如标题,直奔主题.介绍下另两种缓存. 1.sessionStorage.localStorage localStorage: 是一种你不主动清除它,它会一直将存储数据存储在客户端的存储方式,即使你 ...

  8. # Ubuntu子系统安装配置

    目录 Ubuntu子系统安装配置 安装配置 终端美化 卸载 和win10之间的交互 Ubuntu子系统安装配置 亲测启动速度毫秒之间 安装配置 系统升级到一周年正式版及以上(1607) 依次在 设置 ...

  9. Photon Server 实现注册与登录(一) --- Hibernate整合到项目中

    本系列实现目的:基于Photon Server实现注册于登录 一.拷贝Nbibernate项目的文件到MyGamerServer项目中. 二.数据库新建表,结构如下 三.修改文件名和配置 (1).将拷 ...

  10. Zookeeper快速开始

    具体部署流程: #下载 wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/current/apache-zookeeper-3.5. ...