论文学习-深度学习目标检测2014至201901综述-Deep Learning for Generic Object Detection A Survey

 发表于 2019-02-14 |  更新于 2019-05-15 |  分类于 目标检测 |  阅读次数: 23

 本文字数: 3.3k

博客:blog.shinelee.me | 博客园 | CSDN

[toc]

写在前面

paper:https://arxiv.org/abs/1809.02165
github:https://github.com/hoya012/deep_learning_object_detection,A paper list of object detection using deep learning

这篇综述对深度学习目标检测2014至201901取得的进展进行了总结,包括:

More than 250 key contributions are included in this survey, covering many aspects of generic object detection research: leading detection frameworks and fundamental subprob-lems including object feature representationobject proposal generationcontext information modeling and training strategiesevaluation issuesspecifically benchmark datasetsevaluation metrics, and state of the art performance.

本文的主要目的在于摘录paper中的一些重要图表和结论,作为系统学习的索引,不做详细的展开。

下面两张图来自github,分别为paper list和performance table,红色为作者认为必读的paper。

目标检测DCNN paper list
performance table

目标检测任务与挑战

目标检测任务的输入是一张图像,输出是图像中的物体位置和类别,如下图所示,位置可通过Bounding Box描述,也可描述为像素的集合。

通用目标检测任务
为了确定图片中物体的位置和类别,要面临很多挑战,一个好的检测器要做到定位准确分类准确还要效率高,需要对光照、形变、尺度、视角、尺寸、姿态、遮挡、模糊、噪声等情况鲁棒,需要能容忍可能存在的较大的类内差异,又能区分开较小的类间差异,同时还要保证高效。
目标检测任务的挑战
目标检测任务的挑战

目标检测方法汇总

在2012年前,目标检测方法主要是人工特征工程+分类器,2012年后主要是基于DCNN的方法,如下图所示:

目标检测Milestones
DCNN目标检测

目标检测的框架可以分成2类:

  1. Two stage detection framework:含region proposal,先获取ROI,然后对ROI进行识别和回归bounding box,以RCNN系列方法为代表。
  2. One stage detection framework:不含region proposal,将全图grid化,对每个grid进行识别和回归,以YOLO系列方法为代表。

Pipeline对比与演化如下:

目标检测方法Pipeline对比与演化
主干网络、检测框架设计、大规模高质量的数据集是决定检测性能的3个最重要的因素,决定了学到特征的好坏以及特征使用的好坏。

基础子问题

这一节谈论的重点包括:基于DCNN的特征表示、候选区生成、上下文信息、训练策略等。

基于DCNN的特征表示

主干网络(network backbone)

ILSVRC(ImageNet Large Scale Visual Recognition Competition)极大促进了DCNN architecture的改进,在计算机视觉的各种任务中,往往将这些经典网络作为主干网络(backbone),再在其上做各种文章,常用在目标检测任务中的DCNN architectures如下:

DCNN architectures

Methods For Improving Object Representation

物体在图像中的尺寸是未知的,图片中的不同物体尺寸也可能是不同的,而DCNN越深层的感受野越大,因此只在某一层上进行预测显然是难以达到最优的,一个自然的想法是利用不同层提取到的信息进行预测,称之为multiscale object detection,可分成3类:

  1. Detecting with combined features of multiple CNN layers
  2. Detecting at multiple CNN layers;
  3. Combinations of the above two methods

直接看图比较直观:

ION和HyperNet
RFB 与 ZIP
尝试对几何变形进行建模也是改善Object Representation的一个方向,方法包括结合Deformable Part based Models (DPMs)的方法、Deformable Convolutional Networks (DCN)方法等。
改善DCNN特征表示的方法

Context Modeling

上下文信息可以分为3类:

  1. Semantic context: The likelihood of an object to be found in some scenes but not in others;
  2. Spatial context: The likelihood of finding an object in some position and not others with respect to other objects in the scene;
  3. Scale context: Objects have a limited set of sizes relative to other objects in the scene.

DCNN通过学习不同抽象层级的特征可能已经隐式地使用了contextual information,因此目前的state-of-art目标检测方法并没有显式地利用contextual information,但近来也有一些显式利用contextual information的DCNN方法,可分为2类:Global context和Local context。

context information

Local Context
感觉可以在某种程度上看成是数据层面的集成学习。

Detection Proposal Methods

Two stage detection framework需要生成ROI。

生成ROI的方法,可以分为Bounding Box Proposal MethodsObject Segment Proposal Methods,前者回归出Bounding Box来描述ROI,后者通过分割得到像素集合来描述ROI。

object proposal methods
Region Proposal Network

Other Special Issues

通过data augmentation tricks(数据增广)可以得到更鲁棒的特征表示,可以看成是数据层面上的集成学习,考虑到物体尺度可大可小的问题,scaling是使用最多的数据增广方法。

representative methods for training strategies and class imbalance handling

Datasets and Performance Evaluation

popular databases for object recognition

example images
Statistics of commonly used object detection datasets
metrics
以上。

zz深度学习目标检测2014至201901综述的更多相关文章

  1. 论文学习-深度学习目标检测2014至201901综述-Deep Learning for Generic Object Detection A Survey

    目录 写在前面 目标检测任务与挑战 目标检测方法汇总 基础子问题 基于DCNN的特征表示 主干网络(network backbone) Methods For Improving Object Rep ...

  2. (转)深度学习目标检测指标mAP

    深度学习目标检测指标mAP https://github.com/rafaelpadilla/Object-Detection-Metrics 参考上面github链接中的readme,有详细描述

  3. 深度学习 目标检测算法 SSD 论文简介

    深度学习 目标检测算法 SSD 论文简介 一.论文简介: ECCV-2016 Paper:https://arxiv.org/pdf/1512.02325v5.pdf  Slides:http://w ...

  4. 深度学习目标检测综述推荐之 Xiaogang Wang ISBA 2015

    一.INTRODUCTION部分 (1)先根据时间轴讲了历史 (2)常见的基础模型 (3)讲了深度学习的优势 那就是feature learning,而不用人工划分的feature engineeri ...

  5. 基于候选区域的深度学习目标检测算法R-CNN,Fast R-CNN,Faster R-CNN

    参考文献 [1]Rich feature hierarchies for accurate object detection and semantic segmentation [2]Fast R-C ...

  6. 深度学习目标检测:RCNN,Fast,Faster,YOLO,SSD比较

    转载出处:http://blog.csdn.net/ikerpeng/article/details/54316814 知乎的图可以放大,更清晰,链接:https://www.zhihu.com/qu ...

  7. 利用 ImageAI 在 COCO 上学习目标检测

    ImageAI是一个python库,旨在使开发人员能够使用简单的几行代码构建具有包含深度学习和计算机视觉功能的应用程序和系统. 这个 AI Commons 项目https://commons.spec ...

  8. 深度剖析目标检测算法YOLOV4

    深度剖析目标检测算法YOLOV4 目录 简述 yolo 的发展历程 介绍 yolov3 算法原理 介绍 yolov4 算法原理(相比于 yolov3,有哪些改进点) YOLOV4 源代码日志解读 yo ...

  9. 行人重识别(ReID) ——基于深度学习的行人重识别研究综述

    转自:https://zhuanlan.zhihu.com/p/31921944 前言:行人重识别(Person Re-identification)也称行人再识别,本文简称为ReID,是利用计算机视 ...

随机推荐

  1. vim跳到最后和最前

    1.跳到尾部和首部 :0或:1跳到文件第一行 :$跳到文件最后一行

  2. hex2pcap

    #include <stdlib.h> #include <stdio.h> #include <string.h> typedef struct { unsign ...

  3. iOS Workflow 分享 - Create QR Code

    上次我分享了一个 Scan QR Code 的 Workflow,这次我分享一个正好相反的.如果我要分享一个 URL(或者是一段非常短的文本)给别人,我就可以用这个 Workflow 来生成 QR C ...

  4. 原生js实现append()方法

    一.在使用jquery时,append() 方法在被选元素的结尾(仍然在内部)插入指定内容 使用方法:$(selector).append(content),content为必需的.规定要插入的内容( ...

  5. LeetCode 232:用栈实现队列 Implement Queue using Stacks

    题目: 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部. pop() -- 从队列首部移除元素. peek() -- 返回队列首部的元素. empty() -- 返回队列是 ...

  6. kali渗透综合靶机(四)--node1靶机

    kali渗透综合靶机(四)--node1靶机 靶机下载地址::https://download.vulnhub.com/node/Node.ova 一.主机发现 1.netdiscover -i et ...

  7. golang io中io.go解读

    目录 1. 整体大纲 2. 接口 读 写 关闭 寻址 3. 函数 读 写 复制 4. 结构体 SectionReader LimitedReader teeReader 5. 备注 根据golang ...

  8. The connection string name is missing for the MySqlSiteMapProvider

    在ASP.NET-WebForm程序中,添加SiteMapPath控件时出现问题,如下图所示: 解决办法:找到上图源文件指向的machine.config配置文件,将siteMap节点注释即可.

  9. asp.net面试题总结1(未完待续。。。。)

    1.MVC中的TempData\ViewBag\ViewData区别? 答:页面对象传值,有这三种对象可以传. Temp:临时的 Bag:袋子 (1)  TempData  保存在Session中,C ...

  10. c++和java的一些debug方法

    就上面那个绿色的小瓢虫,点了就进了debug模式. 好尴尬啊,就说一句话. 而且,要加断点,不然就一下debug完了.