2.1 目标检测简介

news/2024/7/1 14:02:37

目录

  • 2.1 目标检测简介[^1]
      • 2.1.1 传统的目标检测方法
      • 2.1.2 深度学习时代的目标检测

2.1 目标检测简介1

目标检测是另一项非常重要的计算机视觉任务,图像分类的目的是辨别图片中所包含的主体对象是什么,而目标检测的目标是检测图像中某对象的位置所在。简单的说,图像分类任务解决的是 What 问题,而目标检测的任务是 What + Where,这是一项非常基础且具有很大挑战性的计算机视觉任务,也是实例分割、图像解说、目标跟踪等许多下游任务的基础。目标检测根据其开发应用场景可分为通用目标检测和特定目标检测,前者主要模拟人类视觉感知,以区别不同目标对象,后者诸如行人检测、人脸检测,主要应用于某一特定场景。在本系列中,我们主要关注前者,即通用目标检测。

【图 1】

上图是目标检测近 20 年来的具有里程碑意义的一些重要工作或模型的提出,在 2012 年 AlexNet 网络提出之前,目标检测算法大多是基于人工精心设计的特征构建的,而在 2012 年 CNN 架构复燃之后,以深度学习为代表的相关技术利用强大的特征提取能力以及软硬件的加速方法逐步取代过去手工特征构建时代,将目标检测任务推向了一个新高度。

2.1.1 传统的目标检测方法

在 2001 年由 P. Viola 和 M. Jones 提出的维奥拉-琼斯(Viola-Jones)目标检测框架是第一种可以实时处理并给出很好物体检测率的目标检测方法,该方法的论文于 2011 年 CVPR 会议上被评为龙格-希金斯奖。但是该框架主要用于解决人脸检测方面。其主要架构组成包括特征类型的选择及优化、AdaBoost 学习算法以及级联架构的设计。

方向梯度直方图(HOG)特征描述最初是由 N. Dalal 和 B.Triggs 在2005年提出的。HOG 可以被认为是对尺度不变特征变换(sift)和当时形状上下文(shape contexts)的重要改进。但与它们的不同点是:HOG 检测器是在一个网格密集的大小统一的细胞单上计算,而且为了提高性能,还采用了重叠的局部对比度归一化技术。该方法最初主要应用在静态图像中的行人检测上,但在后来,他们也被应用在影片中的行人检测,以及静态图像中的车辆和常见动物的检测。多年来,HOG检测器一直是许多目标检测器和各种计算机视觉应用的重要基础。

基于可变形部件模型(Deformable parts -based Model, DPM) DPM 可以认为是传统对象检测方法的巅峰。作为 HOG 检测器的扩展,DPM 最初是由 P. Felzenszwalb 于 2008 年提出,之后 R. Girshick 又进行了各种改进和提升。DPM遵循“分而治之”的检测思想,训练可以简单地看作是学习一种正确的分解对象的方法,推理可以看作是对不同对象部分的描述的集合。例如,检测“汽车”的问题可以看作是检测它的窗口、车身和车轮。虽然目前的对象检测器在检测精度上已经远远超过了 DPM,但其中很多仍然深受其有价值的见解的影响,如混合模型、难例挖掘、边界框回归等。

2.1.2 深度学习时代的目标检测

2012年,AlexNet 网络的成功,使得 CNN 再次回到人们的视野,开启了深度学习在 CV 领域的霸主时代。CNN 较传统方法,其最大的优势在于 CNN 层级特征提取器具有更强的鲁棒性。R. Girshick 等人在 2014 年提出了 RCNN 目标检测方法,自此目标检测开始以前所未有的速度发展。在深度学习时代,根据目标检测技术实现过程,可以大致将其分为两类: “两个阶段检测” 和 “一个阶段检测”,前者将检测框架视为一个“由粗到精”的过程,而后者将检测框架视为“一步完成”。

两个阶段的目标检测算法

RCNN 架构设计思路是首先通过选择搜索算法提取一组目标候选框。然后,将每个候选框选择的图像重新调整为固定的大小,并将其输入到 CNN 分类模型中,以提取特征。最后,利用线性 SVM 分类器对每个区域内的目标进行预测。Fast-RCNN 在此基础上改变搜索算法和特征提取的顺序以减少计算量,但其检测速度仍然受到目标搜索算法的限制。2015年,S. Ren 等人在 Fast RCNN 之后不久就提出了 Faster RCNN 检测器。Faster RCNN是第一个端到端的,也是第一个接近实时的深度学习检测器。其主要贡献是引入了区域候选网络(RPN),大大解决了目标搜索的计算量。从 R-CNN 到 Faster RCNN,一个目标检测系统的大部分独立块,如候选区域检测、特征提取、边框回归等,都逐渐集成到一个统一的端到端学习框架中。

虽然Faster RCNN突破了 Fast RCNN的速度瓶颈,但是在后续的检测阶段仍然存在计算冗余。2017年, T.-Y.Lin 等人基于 Faster RCNN提出了特征金字塔网络(FPN)。在 FPN 之前,大多数基于深度学习的检测器只在网络的顶层进行检测。虽然 CNN 较深层的特征有利于分类识别,但不利于目标的定位。为此,在 FPN 中开发了一个具有横向连接的自顶向下体系结构,用于在所有级别上构建高级语义。由于 CNN 通过前向传播自然形成了一个特征金字塔,所以 FPN 在检测具有多种尺度的目标时显示出了很大的进步。FPN 现在已经成为许多最新探测器的构建模块。

一个阶段的目标检测算法

2015 年由 R.Joseph 等人提出的 YOLO(You Only Look Once) 算法是深度学习时代的第一个单阶段检测器。从它的名字可以看出,作者完全抛弃了之前的 “候选区域检测+验证” 的检测范式。相反该网络将图像分成多个区域,并同时为每个区域预测边界框和概率。后来 R. Joseph 在 YOLO 的基础上进行了一系列改进,提出了其 V2 和 V3 版本,在保持很高检测速度的同时进一步提高了检测精度。虽然 YOLO 的检测速度有了很大的提高,但是与两阶段检测器相比,它的定位精度有所下降,特别是对于一些小目标。

2015 年,由 W.Liu 等人提出的 SSD(Single Shot MultiBox Detector) 算法是深度学习时代的第二种单阶段检测器。SSD 的主要贡献是引入了多参考和多分辨率检测技术,这显著提高了单阶段探测器的检测精度,特别是对于一些较小的目标。SSD在检测速度和准确度上都有优势。SSD 与以往任何检测器的主要区别在于,前者可以在网络的不同层上检测到 5 个不同尺度的目标,而后者只在其顶层运行检测。

2017年,T.-Y.Lin 等人发现了单阶段检测器速度快、结构简单,但多年来一直落后于两阶段检测器的精度的原因后,提出了RetinaNet,他们声称,这种原因主要是在密集探测器训练过程中所遇到的极端的前-后级不平衡。为此,他们在 RetinaNet 中引入了一个新的损失函数 “focal损失”,通过对标准交叉熵损失的重构,使检测器在训练过程中更加关注难分类的样本。Focal 损失使得单级检测器在保持很高的检测速度的同时,可以达到与两级探测器相当的精度。

【图 2】

上图是近年来一些著名的目标检测框架在各类主流开源数据集上取得的成果。明显可以看到,在 2014 年以后,深度学习方法在目标检测领域的发展非常迅速,其检测指标的提升速度相当惊人,为了更好的学习该领域的相关知识及跟进深度学习在该领域的发展,本系列文章将以《CNN 与目标检测》为题重点对深度学习阶段的目标检测技术进行讲解。


  1. Object Detection in 20 Years: A Survey ↩︎


http://www.niftyadmin.cn/n/3657480.html

相关文章

从HTTP状态 301,302,200 来看页面跳转

301和302 Http状态有啥区别?301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently Moved), 302 redirect: 302 代表暂时性转移(Temporarily…

3.1 EGBIS

目录3.1 EGBIS3.1.1 算法基础概念3.1.2 EGBIS 算法3.1.3 算法应用参考资料3.1 EGBIS 在本章内容中,我们将介绍基于图的高效图像分割(Efficient Graph-Based Image Segmentation, EGBIS)算法,该算法是基于图的贪婪聚合算法&#x…

推荐阅读《Applications = Code + Markup》

最近在通过一边动手做一个智能客户端的WPF应用,一边在学习WPF技术。 WPF技术跟之前的Windows Form应用两者给我的感觉是:这两个技术是一个非常大的跨越。很多Windows Form的心得,想法,思想在WPF中都不再有用了。 我最近几年学习新…

2.2 Selective Search

目录2.2 Selective Search2.2.1 算法设计原则2.2.2 层次聚合2.2.3 多元化采样策略参考资料2.2 Selective Search 在目标检测任务中,我们不仅需要判断出图像中包含的对象类别,还需要检测出目标所在位置,理论上图片任何位置都可能存在任意尺度…

Html Encode时的单引号的替换

我们在Html Encode 时候&#xff0c;需要把单引号、双引号"&#xff0c;尖括号<> 作替换。 在替换单引号的时候&#xff0c;我们有两个选择&#xff1a; 1、替换成 2、替换成 如果你使用的是IE浏览器&#xff0c;你会看到第一种替换方式不可用。 但是你如果用的是…

2.3 OverFeat

目录2.3 OverFeat2.3.1 任务与评估指标2.3.2 OverFeat 模型设计2.3.3 多尺度分类2.3.4、OverFeat 视图参考文献2.3 OverFeat OverFeat 是 ILSVRC2013 中目标定位任务的冠军&#xff0c;它提出了一种集成式框架&#xff0c;将图像分类、目标定位以及目标检测三种任务的学习过程…

ViewState 解码工具

每天都能收到不少的“无效的视图状态”这样的错误报告。今天突然想知道如果我只能看到ViewState的信息&#xff0c;即源文件中类似如下的这些信息时候&#xff0c;我是否能分析出ViewState中到底存在了那些信息。 结果发现了一个现成的解码工具&#xff0c;这个工具可以在如下地…

两个Cookie类

.Net 提供了两个Cookie类: System.Web.HttpCookie 类 和 System.Net.Cookie 类 对应的有两个Cookie 集合类 System.Web.HttpCookieCollection 类 和 System.Net.CookieCollection 类 我们一般来理解他们的区别就是下面简单的一句&#xff1a; System.Web 命名空间下的是给服务器…