目标检测近5年发展历程概述(转)

目标检测近5年发展历程概述,从R-CNN到RFBNet(2013--2018)(转)

【时间】2018.09.24

【题目】目标检测近5年发展历程概述,从R-CNN到RFBNet(2013--2018)

目录

概述

一、目标检测相关背景

1.1 目标检测的类别

1 .2 目标检测遇到的主要难题

1.3 过去二十年的进展

二、 框架

2.1框架发展历程

2.2一些里程碑式的框架

三、基础性子问题

3.1 基于 DCNN 的目标表示

3.2 形境建模

3.3 检测提议 (detection proposal)方法

3.4  训练策略和处理类别不平衡问题

四、数据集和表现评估

4.1用于目标识别的常用数据库

4.2常用指标汇总

五、总结


概述

    今天,看到了《Deep Learning for Generic Object Detection: A Survey》这一篇论文, 对用于一般目标检测的深度学习技术进行了全面系统的总结。本文是对论文的相关内容的梗概,希望以此作为自己在目标识别方面的学习历程和方向的指引。本文主要作为各种相关知识的索引,如若想要了解相关细节,请阅读原文,或者通过此索引获得关键词,再进行相关内容的搜索。

论文链接:https://arxiv.org/abs/1809.02165

  此外,来自首尔国立大学的 Lee hoseong 在近期开源了「deep learning object detection」GitHub 项目,正是参考该论文开发的。项目链接是: https://github.com/hoya012/deep_learning_object_detection#2014

 

一、目标检测相关背景

1.1 目标检测的类别

一般目标检测(即一般目标类别检测)也被称为目标类别检测 [240] 或目标分类检测,其定义如下。给定一张图像,确定其中是否存在多个预定义类别的任何目标实例;如果存在,就返回每个实例的空间位置和覆盖范围。

图3、与通用目标检测相关的识别问题(A)图像级对象分类,(B)包围框级通用对象检测,(C)像素级语义分割,(D)实例级语义分割。

1 .2 目标检测遇到的主要难题

图5。同一类图像的外观随成像条件的变化而变化(a-g)。一个对象类(H)的含义有一个惊人的变化。相反,(I)中的四幅图像看起来非常相似,但实际上是来自四种不同的对象类别。来自ImageNet[179]和Coco女士[129]的图像。

1.3 过去二十年的进展

图2、目标检测和识别的里程碑,包括特征表示 [37, 42, 79, 109, 114, 139, 140, 166, 191, 194, 200, 213, 215]、检测框架 [56, 65, 183, 209, 213] 和数据集 [53, 129, 179]。在 2012 年之前,主导方法都还是人工设计的特征。我们看到,随着 Krizhevsky et al. [109] 为图像分类开发出了 DCNN,2012 年迎来了转折。这里列出的大多数方法都得到了大量引用并至少赢得了一个 ICCV 或 CVPR 的主要奖项。详见 2.3 节。

 

 

二、 框架

2.1框架发展历程

在这一节,我们会回顾一般目标检测领域在深度学习进入这一领域后出现的里程碑检测框架,如图 6 所示, 详细情况总结在表 10 中(请看原论文最后一页)。整体而言,这些检测器可以分为两大主要类别:

1. 两级式检测框架,包含一个用于区域提议的预处理步骤,使得整体流程是两级式的。

2. 单级式检测框架,即无区域提议的框架,这是一种单独提出的方法,不会将检测提议分开,使得整个流程是单级式的。

图 6:一般目标检测的里程碑,基于第一个 arXiv 版本的时间点

2.2一些里程碑式的框架

 

图 7:里程碑检测框架 RCNN [65, 67] 的细节图示

 

图 8:用于一般目标检测的领先框架的高层面示意图。表 10 总结了这些方法的特性。

 

三、基础性子问题

3.1 基于 DCNN 的目标表示

作为任何测器的主要组件之一,优良的特征表示在目标检测中至关重要。

          

 

表 2:常用于一般目标检测的 DCNN 架构。对于 #Paras 和 #Layers 的统计数据,我们没有考虑最后的 FC 预测层。「Test Error」一列给出了在 ImageNet1000 上的 Top 5 分类测试误差。解释:OverFeat(准确的模型)、DenseNet201(Growth Rate 32, DenseNet-BC)以及 ResNeXt50(32*4d)。

       

表 3:在改进用于一般目标检测的 DCNN 特征表示中的表征方法的特性总结。详细讨论参见 4.1.2 节。缩写:Selective Search(SS)、EdgeBoxes(EB)、InceptionResNet(IRN)。mAP@IoU=0.5 时,在 VOC07、VOC12 和 COCO 上报告的检测结果;另一列在 COCO 上的结果是在一个新指标 mAP@IoU=[0.5 : 0.05 : 0.95] 上报告的,这是在从 0.5 到 0.95(写成 [0.5:0.95])的不同 IoU 阈值上平均求取 mAP。训练数据:07 表示 VOC2007 trainval,12 表示 VOC2012 trainval,07+12 表示 VOC07 和 VOC12 trainval 的并集,07++12 表示 VOC07 trainval、VOC07 test 和 VOC12 trainval 的并集,07++12+CO 表示 VOC07 trainval、VOC07 test、VOC12 trainval 和 COCO trainval 的并集。COCO 检测结果是在 COCO2015 Test-Dev 上报告的,只有 MPN [233] 除外,其结果基于 COCO2015 Test-Standard。

 

3.2 形境建模

在物理世界中,视觉目标通常会出现在特定的环境中,并且通常与其它相关目标共同存在,而且有强大的心理学证据 [13, 9] 表明形境在人类目标识别中发挥着关键性的作用。形境大致可分为这三大类 [13, 59]:

1. 形义形境:目标出现在某些场景而非其它场景中的可能性;

2. 空间形境:在场景中目标与其它物体存在某些位置关系而非其它位置关系的可能性;

3. 尺寸形境:在场景中目标相对其它物体所存在的尺寸限制。

表 4:使用了形境信息的检测器汇总,类似表 3

图 13:能探索局部周围形境特征的代表性方法:MRCNN [62]、GBDNet [235, 236]、ACCNN [123] 和 CoupleNet [251],参见表 4

3.3 检测提议 (detection proposal)方法

检测提议(detection proposal)通常被用作一个预处理步骤,以通过限制需要检测器评估的区域的数量来降低计算的复杂性。一个优良的检测提议应当具备以下特点:

1. 高召回率,只使用少量提议就可以实现;

2. 提议尽可能准确地匹配目标;

3. 高效率。

表 5:使用 DCNN 的目标提议方法汇总。蓝色数字表示目标提议的数量。除非另有说明,在 COCO 上的检测结果都使用了 mAP@IoU[0.5, 0.95]。

 

图 14:[175] 中提出的区域提议网络(RPN)图示

3.4  训练策略和处理类别不平衡问题

四、数据集和表现评估

4.1用于目标识别的常用数据库

 

表 7:用于目标识别的常用数据库

图15、常用数据库的一些例子

4.2常用指标汇总

表 9:用于评估目标检测器的常用指标汇总

五、总结

一般目标检测是计算机视觉领域内一个重要且有挑战性的问题,并且已经得到了相当大的关注。尽管过去几年取得了巨大的成功(比如检测准确度从 ILSVRC2013 的 23% 显著提升至了 ILSVRC2017 的 73%),但当前最佳方法的表现与人类水平仍有巨大差距,尤其是在开放世界学习任务上。还有很多研究工作有待完成,我们可以看到研究者的关注重点主要集中在以下八个领域:

1. 开放世界学习( Open World Learning)

2. 更好更高效的检测框架(Better and More Efficient Detection Frameworks)

3. 紧凑高效的深度 CNN 特征(CompactandEfficientDeepCNNFeatures)

4. 稳健的目标表征(RobustObjectRepresentations)

5. 形境推理( Context Reasoning)

6. 目标实例分割( Object Instance Segmentation)

7. 弱监督或无监督学习() Weakly Supervised or Unsupervised Learning)

8. 三维目标检测(3D Object Detection)

转载于:https://www.cnblogs.com/ciao/articles/10892921.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Leetcode][第39题][JAVA][组合总和][回溯][dfs][剪枝]

【问题描述】[中等] 【解答思路】 1. 回溯 import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.List;public class Solution {public List<List<Integer>> combinationSum(int[] candidates, int target) {int …

Depth-first Search深度优先搜索专题7

834 Sum of Distances in Tree 思路&#xff1a;一颗无向的树有N个节点&#xff0c;分别标记为0,1,2,…N-1&#xff0c;有若干条边。结果返回每个节点到其他节点的路径和。 以上面这棵树为例。从节点0到其他点的路径查找过程是&#xff1a;节点0有两条边分别到达子节点1和子节…

[Leetcode][第216题][JAVA][数组之和3][回溯]

【问题描述】[中等] 【解答思路】 回溯 剪树枝 当和超过n 或 个数超过k 1. 正向求和 优化前 class Solution {public List<List<Integer>> ans new LinkedList();public List<List<Integer>> combinationSum3(int k, int n) {dfs(0,k,0,n,1,new L…

第十三期:你不想错过的那些JSON工具

网上有许多出色的免费工具用于JSON格式化、验证、编辑以及转换成其他格式&#xff0c;可供开发人员选择。 作者&#xff1a;布加迪 JSON(JavaScript对象标注)是一种流行的轻量级数据交换格式&#xff0c;在网络上已很常见。 众所周知&#xff0c;JSON让开发人员易于使用&#…

java jvm学习

在并发编程中&#xff0c;多个线程之间采取什么机制进行通信&#xff08;信息交换&#xff09;&#xff0c;什么机制进行数据的同步&#xff1f; 在Java语言中&#xff0c;采用的是共享内存模型来实现多线程之间的信息交换和数据同步的。 线程之间通过共享程序公共的状态&#…

Breadth-first Search(广度优先搜索)专题1

广度优先搜索的定义 广度优先搜索BFS类似于树的层次遍历算法。基本思想是&#xff1a;首先访问顶点v&#xff0c;然后由v出发&#xff0c;依次访问v的各个未被访问过的顶点w1,w2,w3…wn。然后再访问wi(wi是w1,w2,w3…wn中的一个)未被访问过的邻接点。以此类推&#xff0c;直到所…

[Leetcode][第40题][JAVA][数组总和2][回溯][剪枝]

【问题描述】[中等] 【解答思路】 1. 减法 import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; import java.util.Deque; import java.util.List;public class Solution {public List<List<Integer>> combinationSum2(int[] can…

Breadth-first Search(广度优先搜索)专题2

743. Network Delay Time 输入&#xff1a;int[][] times times[i] new int[]{v,u,w} 表示从节点v到节点u需要时间w。注意这里是有向图。    int N 节点总数。    int k 起始节点 输出&#xff1a;从节点k到其他各个节点的最短路径和。如果有一个节点不能达到则返回-1。 …

负载均衡—几种常见算法

什么是负载均衡&#xff1f; 当一台服务器的性能达到极限时&#xff0c;我们可以使用服务器集群来提高网站的整体性能。那么&#xff0c;在服务器集群中&#xff0c;需要有一台服务器充当调度者的角色&#xff0c;用户的所有请求都会首先由它接收&#xff0c;调度者再根据每台服…

[Leetcode][第79题][JAVA][单词搜索][DFS][回溯]

【问题描述】[中等] 【解答思路】 1. DFS繁琐版本 class Solution {public boolean exist(char[][] board, String word) {boolean flag false;int row board.length;int col board[0].length;boolean[][] used new boolean[row][col];for (int i 0; i <row ; i) {for …

【Breadth-first Search 】513. Find Bottom Left Tree Value

输入&#xff1a;一颗二叉树 输出&#xff1a;这颗树的最下面一层最左边的节点值。 分析&#xff1a; 用BFS的思路解决最直观。读每一层&#xff0c;在每一层记录第一个元素的值。在队列中第一层&#xff1a;1&#xff1b;第二层&#xff1a;2&#xff0c;3&#xff1b;第三层…

Java:这是一份全面 详细的 Synchronized关键字 学习指南

前言 在Java中&#xff0c;有一个常被忽略 但 非常重要的关键字Synchronized今天&#xff0c;我将详细讲解 Java关键字Synchronized的所有知识&#xff0c;希望你们会喜欢目录 1. 定义 Java中的1个关键字 2. 作用 保证同一时刻最多只有1个线程执行 被Synchronized修饰的方法…

[Leetcode][第404题][JAVA][左叶子之和][DFS][BFS]

【问题描述】[简单] 【解答思路】 1. DFS 递进思想 一步一步递进 /先序遍历求所有节点值之和 public int sumOfTrees(TreeNode root) {if (root null) {return 0;}int leave root.val;int left sumOfTrees(root.left);int right sumOfTrees(root.right);return left ri…

第十四期: 拥有7000多万店铺和10多亿件商品的微店如何打造AI系统?

AI技术对于电商至关重要&#xff0c;但AI的实践门槛很高&#xff0c;对于创业公司尤其如此。那么电商创业公司如何打造AI系统?如何利用AI解决实际问题? 作者&#xff1a;夏剑 AI技术对于电商至关重要&#xff0c;但AI的实践门槛很高&#xff0c;对于创业公司尤其如此。那么电…

【数据结构与算法】【算法思想】位图

位图BitMap 算法 public class BitMap { // Java中char类型占16bit&#xff0c;也即是2个字节private char[] bytes;private int nbits;//nbits 总容量public BitMap(int nbits) {this.nbits nbits;this.bytes new char[nbits/161];}//长度16 k/16 定位某一段 k%16定位段中某…

【Breadth-first Search 】专题3

529 Minesweeper 输入&#xff1a;一个二维矩阵&#xff0c;一些修改规则。  如果点到一个隐藏的地雷M&#xff0c;把它改为X&#xff0c;游戏结束  如果点到一个E&#xff0c;且其周围8邻接的范围没有地雷&#xff0c;那么应该把8邻接的范围的格子全部翻开为E  如果翻开的…

第十五期:一个用户至少“值”100美元,美国最“贵”数据法案CCPA明年初实行!

还在急于应对欧洲GDPR&#xff08;General Data Protection Regulation&#xff0c;通用数据保护条例&#xff09;&#xff1f;那你就OUT了&#xff01; 作者&#xff1a;文摘菌 大数据文摘出品 作者&#xff1a;刘俊寰 还在急于应对欧洲GDPR(General Data Protection Regul…

【数据结构与算法】【算法思想】【推荐系统】向量空间

背景知识 欧几里得的距离公式 推荐系统方法 应用 如何实现一个简单的音乐推荐系统&#xff1f; 1. 基于相似用户做推荐 找到跟你口味偏好相似的用户&#xff0c;把他们爱听的歌曲推荐给你&#xff1b; 2. 基于相似歌曲做推荐 找出跟你喜爱的歌曲特征相似的歌曲&#x…

第十六期:AWS 瘫痪:DNS 被 DDoS 攻击了 15 个小时

AWS警告客户&#xff0c;分布式攻击严重阻碍网络连接&#xff0c;殃及众多网站和应用软件&#xff0c;云巨头AWS遭到攻击后&#xff0c;今天其部分系统实际上断。网。 作者&#xff1a;佚名来源|2019-10-23 15:17 AWS警告客户&#xff0c;分布式攻击严重阻碍网络连接&#xff…

Spring Security在标准登录表单中添加一个额外的字段

概述 在本文中&#xff0c;我们将通过向标准登录表单添加额外字段来实现Spring Security的自定义身份验证方案。 我们将重点关注两种不同的方法&#xff0c;以展示框架的多功能性以及我们可以使用它的灵活方式。 我们的第一种方法是一个简单的解决方案&#xff0c;专注于重用现…