目标检测20年(一)

今天看的文献是《Object Detection in 20 Years: A Survey》,非常经典的一篇目标检测文献,希望通过这篇文章学习到目标检测的基础方法并提供一些创新思想。

论文链接:1905.05055


目录

一、摘要

1.1 原文

1.2 翻译

二、介绍

三、目标检测二十年发展

3.1 目标检测发展路线图

3.1.1 里程碑1

3.1.1.1 Viola Jones Detectors

3.1.1.2 HOG Detector

3.1.1.3 DPM

3.1.2 里程碑2

3.1.2.1 RCNN

3.1.2.2 SPPNet

3.1.2.2 Fast RCNN

3.1.2.3 Faster RCNN

3.1.2.4 FPN

3.1.3 里程碑3

3.1.3.1 YOLO

3.1.3.2 SSD

3.1.3.3 RetinaNet 

3.1.3.4 CornerNet

3.1.3.5 CenterNet

3.1.3.6 DETR


一、摘要

1.1 原文

Object detection, as of one the most fundamental and challenging problems in computer vision, has received great attention in recent years. Over the past two decades, we have seen a rapid technological evolution of object detection and its profound impact on the entire computer vision field. If we consider today’s object detection technique as a revolution driven by deep learning, then back in the 1990s, we would see the ingenious thinking and long-term perspective design of early computer vision. This paper extensively reviews this fast-moving research field in the light of technical evolution, spanning over a quarter-century’s time (from the 1990s to 2022). A number of topics have been covered in this paper, including the milestone detectors in history, detection datasets, metrics, fundamental building blocks of the detection system, speed-up techniques, and the recent state-of-the-art detection methods.

1.2 翻译

目标检测作为计算机视觉中最基本、最具挑战性的问题之一,近年来受到了广泛的关注。在过去的二十年里,我们看到了物体检测技术的快速发展及其对整个计算机视觉领域的深远影响。如果我们认为今天的物体检测技术是一场由深度学习推动的革命,那么回到20世纪90年代,我们会看到早期计算机视觉的巧妙思维和长期视角设计。本文从技术发展的角度广泛回顾了这一快速发展的研究领域,跨越了四分之一个世纪的时间(从20世纪90年代到2022年)。本文涵盖了许多主题,包括历史上的里程碑检测器,检测数据集,度量,检测系统的基本构建块,加速技术以及最新的最先进的检测方法。

二、介绍

目标检测的目标是开发计算模型和技术,解决这样两个问题:目标是什么?目标在哪里?(其实就是分类和定位)

目标检测是实例分割、图像字幕、目标跟踪等视觉任务的基础。深度学习的发展也让目标检测取得了巨大的进步,现在目标检测已经广泛应用于许多现实场景如自动驾驶、机器人视觉和视频监控等。下图展示了过去二十年里与“目标检测”相关刊物的出版:

我们可以看到从1998年起刊物出版量逐步提升,2018年后增长幅度明显增加,且直到2021年都在持续增长。

不同检测任务的目标和条件不同导致任务难度有所不同,除了常见挑战如不同视角、光照和不同类物体变化之外,还有包括但不限于物体旋转、尺度变化、精确定位、密集和遮挡目标检测和检测速度的提升等。

本文的目的就是向读者展示相关技术的演变,令读者能够掌握基本概念并找到潜在未来方向,而忽略技术细节。

三、目标检测二十年发展

这个部分主要回顾目标检测历史发展,包括里程碑、数据集、指标和关键技术演变。

3.1 目标检测发展路线图

在前两个世纪,人们普遍认为目标检测经过了两个历史时期:传统目标检测时期(2014年以前)和基于深度学习的检测(2014年以后),如下图展示:

我们可以看到,2014年之前我们采用的是传统目标检测方法如VJ Det、HOG Det和DPM这些,在2014年出现了RCNN、YOLO、SSD这些以深度学习框架为主流的算法。并且深度学习的算法主要分为两类:单阶段检测和双阶段检测。

下面我们将以出现时间和性能为主要指引,重点突出背后的技术所在,如下图所示:

3.1.1 里程碑1

此时主要是传统的检测器。其实我们回顾早期20世纪90年代的检测技术,也是会觉得是视觉的巧妙设计和长期的视角。大多数早期检测算法都是基于手工特征的,由于缺乏有效图像表示,人们不得不设计复杂的特征表示和各种加速的方法。

3.1.1.1 Viola Jones Detectors

2001年,Viola和Jones首次实现不受任何限制的人脸实时检测。同等检测精度下,速度比其他算法快数十倍甚至数百倍。VJ检测器通过滑动窗口:即通过图像中可能的位置和比例,检测某窗口是否包含人脸。主要采用三种技术实现:“积分图像”、“特征选择”和“级联检测”。

3.1.1.2 HOG Detector

2005年,Dala和Triggs提出定向梯度直方图特征(Histogram of Oriented Gradients,HOG)描述符。这是一种对尺度不变特征变换和形状上下文的重要改进。HOG主要用来进行行人检测,通常是保持检测窗口大小不变的情况下,对输入图像进行多次缩放实现。其一直是许多计算机视觉应用的基础。

3.1.1.3 DPM

可变性零件模型(Deformable Part-based Model,DPM)是传统目标检测方法的缩影,最初由Felzenszwalb在2008年提出,属于HOG的一种延伸。其采用的是“分而治之”的思想,训练可以认为是一种合适的分解目标的方法,而推理则是对不同目标部分的检测合集。例如,检测汽车可以分解为检测车窗、车身和车轮。这又被成为“明星模型”,也是F等人提出的。之后,Girshick将该模型扩展到“混合模型”,以处理变化更大的物体。现在许多检测器都受到该模型的影响,如混合模型、硬负挖掘、边界框回归、上下文启动等。

3.1.2 里程碑2

基于卷积神经网络(CNN)的两阶段检测器。随着手工特征性能饱和,目标检测在2010年达到聘平缓期,直到2012年卷积神经网络的诞生。Girshick等人率先提出了带有CNN特征的区域(RCNN),那时之后目标检测发展迅速。基于深度学习的检测算法分为单阶段和双阶段,前者将框架为“一步完成”,后者将其作为“粗-精”的过程。

3.1.2.1 RCNN

RCNN(Region with CNN )首先通过选择性搜索提取一组对象建议(即候选框),然后将每个建议重新缩放成固定大小的图像,并输入在ImageNet上预训练的CNN模型加以提取特征。最后使用线性支持向量机(SVM)分类器预测区域内物体并识别类别。尽管RCNN取得了显著性能提升,但也有明显缺点:大量重叠区域上进行冗余特征计算导致速度较慢。SPPNet解决了该问题。

3.1.2.2 SPPNet

2014年He等人提出空间金字塔池化网络(Spatial Pyramid Pooling Network,SPPNet),引入了空间金字塔池化层,使CNN生成固定长度表示。输入图像只需要计算一次特征映射,然后生成任意区域的固定长度表示用于训练检测器,避免重复计算卷积特征。SPPNet比RCNN快20倍以上。但仍存在一定缺点:训练多阶段,只对全连接层进行微调,忽略之前的层。Fast RCNN解决了这些问题。

3.1.2.2 Fast RCNN

2015年Girshick提出Fast RCNN。该检测器能够在相同网络配置下同时训练检测器和边界框回归器。尽管其速度比RCNN快200倍以上,但仍存在缺陷:速度受到建议区域的限制。

3.1.2.3 Faster RCNN

2015年Ren等人提出了Faster RCNN。Faster RCNN引入了区域建议网络(Region Proposal Network,RPN),使得几乎没有成本的区域建议成为可能。从R-CNN到Faster RCNN,目标检测系统的大多数独立的模块都已经集成到一个统一的端到端学习框架中。尽管如此,后续检测阶段仍存计算冗余。

3.1.2.4 FPN

2017年,Lin等人提出FPN(Feature Pyramid Networks)。FPN开发出一种具有横向连接的自顶向下架构,用在所有尺度上构建高级语义。目前FPN已成为大多数最新检测器基本组成部分。

3.1.3 里程碑3

此部分主要是基于CNN的单阶段检测器。大多数两阶段检测器遵循从粗到精的处理范式,粗的使努力提高召回能力,精的是在粗的检测基础上细化定位,强调区分能力。工程中很少使用两阶段检测器,相反单阶段可以一步推理中检索所有对象,适用于移动设备,在密集和小物体方面性能收到影响。

3.1.3.1 YOLO

Joseph等人在2015年提出YOLO(You Only Look Once)yolo将单个神经网络应用与整个图像,将图像划分为多个区域,同时预测每个预取边界框和概率,检测速度大大提升,但精度有下降。YOLOv7引入动态标签分配和模型结构重新参数化等优化结构,速度和精度更优。

3.1.3.2 SSD

Liu等人于2015年提出SSD(Single Shot MultiBox Detector)。主要引入多参考点和多分辨率检测技术,显著提高对小目标的检测精度。SSD可以检测网络不同层的不同规模目标,其余检测器只能在顶层预测。

3.1.3.3 RetinaNet 

单阶段探测器检测精度一直落后于两阶段,2017年Lin等人提出了RetinaNet,密集检测训练过程中遇到的极端前景-背景类不平衡是主要问题。于是,他们引入新的损失函数:焦点损失(Focal Loss)重塑标准交叉熵损失,使检测器在训练过程中更多的关注难分类、错误分类的例子。

3.1.3.4 CornerNet

Law等人为解决锚框需要提供分类、回归参考等而建立大量参考框路径的问题抛弃了以前的范式,提出CornerNet,该算法将任务视为关键点的预测,获取关键点后,利用额外的嵌入信息对角落点进行解耦和重新分组,形成边界框。

3.1.3.5 CenterNet

Zhou等人于2019年提出CenterNet。它还是遵循基于关键点的检测范例,但消除了代价高昂的后处理,例如基于组的关键点分配和NMS,从而形成完全端到端的检测网络。

3.1.3.6 DETR

Transformers影响了整个深度学习领域,它抛弃了传统卷积算子,转而采用注意力单独计算,以客服CNN的局限性,获得全局尺度感受野,2020年Carion提出DETR,将目标检测视为一个集合预测的问题,并提出一个端到端的变压器检测网络。

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

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

相关文章

AI Agent开发大全第八课-Stable Diffusion 3的本地安装全步骤

前言 就像我们前面几课所述,本系列是一门体系化的教学,它不像网上很多个别存在的单篇博客走“吃快餐”模式,而是从扎实的基础来带领大家一步步迈向AI开发高手。所以我们的AI课程设置是相当全面的,除了有牢固的基础知识外还有外面互联网上也搜不到的生产级实战。 前面讲过…

Hadoop集群搭建(hdfs、yarn)

Hadoop 是 Apache 软件基金会旗下的一个开源项目,是用于处理大数据的分布式系统基础架构,被广泛应用于大数据存储、处理和分析等场景。 一、核心组件 1、Hadoop 分布式文件系统(HDFS) 具有高容错性,能在低成本硬件上…

数据结构——顺序栈seq_stack

前言:大家好😍,本文主要介绍了数据结构——顺序栈 目录 一、概念 1.1 顺序栈的基本概念 1.2 顺序栈的存储结构 二、基本操作 2.1 结构体定义 2.2 初始化 2.3 判空 2.4 判满 2.5 扩容 2.6 插入 入栈 2.7 删除 出栈 2.8 获取栈顶元…

数据结构初阶-二叉树的应用

1.单值二叉树 题目链接:https://leetcode.cn/problems/univalued-binary-tree/description/ 题目思路:我们把根结点与左孩子和右孩子进行比较,只有左右子树都是单值二叉树的时候才为单值二叉树。但是我们需要先返回的是false,最…

【网络层协议】NAT技术内网穿透

IP地址数量限制 我们知道,IP地址(IPv4)是一个4字节32位的整数,那么一共只有2^32也就是接近43亿个IP地址,而TCP/IP协议栈规定,每台主机只能有一个IP地址,这就意味着,一共只有不到43亿…

快速入手-基于Django的mysql配置(三)

Django开发操作数据库更简单,内部提供了ORM框架。比如mysql,旧版本用pymysql对比较多,新的版本采用mysqlclient。 1、安装mysql模块 pip install mysqlclient 2、Django的ORM主要做了两件事 (1)CRUD数据库中的表&am…

ETL:数据清洗、规范化和聚合的重要性

在当今这个数据呈爆炸式增长的时代,数据已成为企业最为宝贵的资产之一。然而,数据的海量增长也伴随着诸多问题,如数据来源多样、结构复杂以及质量问题等,这些问题严重阻碍了数据的有效处理与深度分析。在此背景下,ETL&…

【leetcode hot 100 208】实现Trie(前缀树)

解法一:字典树 Trie,又称前缀树或字典树,是一棵有根树,其每个节点包含以下字段: 指向子节点的指针数组 children。对于本题而言,数组长度为 26,即小写英文字母的数量。此时 children[0] 对应小…

PyTorch生成式人工智能实战:从零打造创意引擎

PyTorch生成式人工智能实战:从零打造创意引擎 0. 前言1. 生成式人工智能1.1 生成式人工智能简介1.2 生成式人工智能技术 2. Python 与 PyTorch2.1 Python 编程语言2.2 PyTorch 深度学习库 3. 生成对抗网络3.1 生成对抗网络概述3.2 生成对抗网络应用 4. Transformer4…

vue中上传接口file表单提交二进制文件流

1.使用elementui上传组件 要做一个选择文件后&#xff0c;先不上传&#xff0c;等最后点击确定后&#xff0c;把file二进制流及附加参数一起提交上去。 首先使用elementui中的上传组件&#xff0c;设置auto-uploadfalse&#xff0c;也就是选择文件后不立刻上传。 <el-uplo…

深入解析 Java Stream API:筛选根节点的优雅实现!!!

&#x1f680; 深入解析 Java Stream API&#xff1a;筛选根节点的优雅实现 &#x1f527; 大家好&#xff01;&#x1f44b; 今天我们来聊聊 Java 8 中一个非常常见的操作&#xff1a;使用 Stream API 从 List 中筛选出特定条件的元素。&#x1f389; 具体来说&#xff0c;我…

推荐1款简洁、小巧的实用收音机软件,支持手机和电脑

聊一聊 没想到现在还有人喜欢听广播。 我一直以为听广播必须要用那种小广播机才可以。 原来手机或电脑上也是可以的。 今天给大家分享一款可以在电脑和手机上听广播的软件。 软件介绍 龙卷风收音机 电台广播收音机分电脑和手机两个版本。 电脑端无需安装&#xff0c;下载…

金桔网桥路由版3

上一集我们讲到了二层云交换机&#xff0c;我把在云上搭建的桥接模式的VPN服务器称为二层云交换机。 那么现在我家到办公室的网络结构就变成这样的&#xff0c; 这样的好处就是我的电视盒子通过网线看电视&#xff0c;走的是OpenWrt路由器通过二层云交换机由办公室的OpenWrt路由…

常见中间件漏洞攻略-Tomcat篇

一、 CVE-2017-12615-Tomcat put方法任意文件写入漏洞 第一步&#xff1a;开启靶场 第二步&#xff1a;在首页抓取数据包&#xff0c;并发送到重放器 第三步&#xff1a;先上传尝试一个1.txt进行测试 第四步&#xff1a;上传后门程序 第五步&#xff1a;使用哥斯拉连接 二、后…

计算机复试面试

数据库 1.设计过程/设计步骤 1.需求分析&#xff1a;明确客户需求&#xff0c;确定系统边界&#xff0c;生成数据字典 2.概念结构设计&#xff1a;将用户需求抽象为概念模型&#xff0c;绘制e-r图 3.逻辑结构设计&#xff1a;将e-r图转化为dbms相符合的逻辑结构&#xff0c;db…

【零基础学python】python基础语法(一)

前言&#xff1a;Python 是当今最受欢迎的编程语言之一&#xff0c;其广泛应用于 人工智能、数据科学、Web 开发、自动化 等多个领域。它以 简洁的语法、强大的标准库 和 跨平台兼容性 深受开发者喜爱。作为 机器学习和大数据的首选语言&#xff0c;Python 在学术研究、金融分析…

数据类设计_图片类设计之8_自由图形类设计_(前端架构)

前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 前面的内容都是矩阵图形类,现在讨论自由图形类设计 矩阵图形类和自由图形类的差别 左图为矩阵图形类对象,右图为自由图形类对象.矩阵图形类对象单独占据一个矩…

【学习记录】大模型微调之使用 LLaMA-Factory 微调 Qwen系列大模型,可以用自己的数据训练

一、LoRA微调的基本原理 1、基本概念 LoRA&#xff08;Low-Rank Adaptation&#xff09;是一种用于大模型微调的技术&#xff0c;通过引入低秩矩阵来减少微调时的参数量。在预训练的模型中&#xff0c;LoRA通过添加两个小矩阵B和A来近似原始的大矩阵ΔW&#xff0c;从而减少需…

绿盟CSSP靶场-将已有虚拟机创建为新镜像作为新虚拟机模板

将部署了自定义软件的虚拟机&#xff0c;【保持镜像】将这个在运的虚拟机存为一个新的镜像。 为了保证上传的镜像是完整的&#xff0c;勾选【全量镜像】。 等待镜像上传完成&#xff0c;可以看到刚刚上传的镜像&#xff0c;状态也为已上传。 将镜像从私有改为共享&#xff0c;…

VMWare Ubuntu 详细安装教程

VMWare Ubuntu 详细安装教程 一、下载安装VMware二、下载 Ubuntu 镜像文件三、安装 Ubuntu四、开启虚拟机 一、下载安装VMware 官网下载地址https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion知乎大佬的博客原文&#xff0c;含下载地址https://zhua…