卷积网络应用于目标检测算法

卓晴      2022-02-16     533

关键词:

简 介: 目标检测算法作为计算机视觉领域最基本且最具挑战性的任务之一,一直处于研究的热门领域。近年来,随着深度学习和卷积神经网络的兴起,传统的目标检测算法的性能已不能满足现今的指标要求而被基于卷积网络的目标检测算法所取代。本文在对传统目标检测算法简单介绍的基础上,重点介绍了卷积神经网络的一阶段和两阶段目标检测算法,并在最后给出了目标检测未来发展方向的预测和展望。

关键词 目标检测深度学习卷积神经网络

引 言 目 录
Contents
传统算法 深度学习 LeNet 2AlexNet 3VGGNet ResNet Inception 6其他卷积网络 二阶段目标检测 R-CNN SPPNet Fast R-CNN FasterR-CNN Mask R-CNN 6TridentNet 基于回归算法 1YOLO 2其他算法 总结与展望 参考文献

 

§01   言


  标检测是计算机视觉和数字图像处理的一大热门方向,其应用广泛,在自动驾驶、视频监控、工业检测、故障分析与处理等诸多领域都有其身影,通过对计算机视觉的研究也大大减小了人力资源的消耗以及人工检测的错误率。因此,目标检测作为计算机视觉中最基本的任务自然也就成为了近年来研究的热点。

  从 2006年以来, BengioHinton等人引领了深度神经网络的浪潮,大量相关论文被发表。最早出现的卷积神经网络是 LeNet[1]网络,这个网络虽然很小,却包含了卷积网络所有的基本模块,即卷积层、池化层、全连接层,是其他深度学习模型的基础。但深度神经网络得到人们的广泛关注是在 2012年,在这一年 Hinton课题组首次参加 ImageNet图像识别比赛,并通过构建的 AlexNet[2] CNN网络取得冠军。 2015年, He等人通过构建残差网络 (ResidualNetwork, ResNet[3])使得网络的深度被大幅扩展,甚至到达了 1000层,由此深度学习取得了迅猛的发展。

  深度学习是利用多层计算模型来学习数据的特征,即数据的抽象表示,目前该技术已广泛应用于计算机视觉领域等模式识别的问题上。目标检测既是计算机视觉的基础任务之一,同时也是视频监控技术的基础任务。由于图像中的目标姿态、色彩、亮度、饱和度、分辨率、天气和场景的多变性和复杂性,对目标的检测、跟踪、动作识别、行为表述等任务在今天依旧是一项非常具有挑战性的课题,存在很大的提升潜力和发展空间。但是,从目前的理论研究和工程实现来看,基于卷积神经网络的目标检测算法相较于传统算法,已经在各方面取得了非常大的提升,几乎已经完全代替了传统的目标检测算法。

 

§02 统算法


  统的目标检测算法一般分为三个阶段,即区域选择、特征提取和分类。下面对三个阶段分别进行介绍和分析。

  • 区域选择:对目标位置进行定位。设置不同的尺度和长宽比,然后采用滑动窗口的策略对整幅图像进行遍历。这种穷举法的缺点显而易见,即产生了大量冗余窗口,时间复杂度极高,同时大大影响了后续的特征提取和分类预测的速度和性能。
  • 特征提取:通常采用人工提取的策略,即手工设计特征提取算法对目标进行识别。由于场景多变性和目标姿态多样性,甚至光照变化引起的图像色彩和饱和度的变化都会使得人工设计的特征提取算法很难具有较强的泛用性,并且设计此算法也需要具有丰富的工程经验。此阶段常用的特征有 SIFT[4]、HOG[5]等。
  • 分类:根据特征提取得到的特征对目标进行分类,分类器主要有 SVM、 AdaBoost等。分类结果的好坏直接决定于第二步提取特征的准确和置信度。

  综上所述,传统检测算法滑动窗口策略的时间复杂度较高,特征提取器鲁棒性和泛用性不够强,因而其不能满足当下目标检测的要求。

 

§03 度学习


  统的特征提取是采用手工设计特征提取器的方法,一般基于一些统计规律和设计者本人的先验知识,不能完全提取出原始图像的信息,因而具有较弱的泛化性能和鲁棒性。卷积神经网络通过学习的方法来自动提取图像更深层次的结构和特征,是一类专门用来处理图像数据的网络结构。卷积网络增加了局部感受野、稀疏权重和参数共享的概念,使得其具有一定的平移和尺度的不变性,更加适合图像这种二维结构的数据的学习。下面将对近年来提出的经典卷积模型进行简要介绍。

3.1 LeNet

  LeNet20世纪九十年代由 Yan LeCun提出,主要用来进行手写字符的识别和分类,它的实现确立了卷积网络的基本结构——卷积层、池化层、激活函数层和全连接层。由于提出年代久远,当时计算机硬件性能较低,并且缺乏大规模的训练数据,因此 LeNet网络在处理复杂问题时的效果并不理想。

3.2AlexNet

  AlexNet[2]是 2012年 ImageNet竞赛冠军获得者 Hinton和他的学生 Alex Krizhevsky设计的,包含了几个比较新的技术点,也首次在 CNN中成功应用了 ReLU、Dropout和 LRN,同时使用了 GPU进行算法加速。 AlexNet把 CNN的基本原理应用到了很宽很深的网络中,其主要用到的新技术总结如下:

  (1)使用 ReLU代替 Sigmoid作为 CNN的激活函数,解决了 Sigmoid在网络较深时的梯度消失问题。
  (2)训练时使用 Dropout机制随机忽略一部分神经元,以及数据增强 (data augmentation)机制,避免了模型过拟合,提高模型的泛化能力。
  (3)采用最大池化 (max pooling),避免平均池化 (average pooling)的模糊化效果,提升了特征的丰富性。
  (4)提出 LRN层,对局部神经元的活动创建竞争机制,增强了模型的泛化能力。
  (5)使用 CUDA加速深度卷积网络的训练,利用 GPU强大的并行计算能力,处理神经网络训练时大量的矩阵运算,极大的减小了模型的训练周期。

3.3VGGNet

  VGGNet[6]由牛津大学计算机视觉组合和 Google DeepMind公司研究员于 2014年合作研发的卷积网络,获得了 ILSVRC2014年比赛的亚军和定位项目的冠军。该模型全部使用 3*3卷积核来进行特征提取,并证明了模型深度越深、参数越多,其提取特征的能力越强,效果越好。

3.4 ResNet

  何凯明等人于 2015年提出 ResNet[3]残差网络,解决了卷积网络随着深度的增加会越来越慢难以训练的问题。当网络的深度逐渐变大时,梯度消失现象愈加明显,计算复杂度也快速上升,残差学习则有效地解决了这些问题。残差模型的核心思想是引入“ shortcut”实现卷积层的跳跃式连接 (skip connection),模型如图 1

▲ 图3.4.1 残差模型

  左图是普通的卷积块,右图是添加了 shortcut的残差块。

3.5 Inception

  2014年 Christian等提出了 Inception[7-8]系列。

  (1Inception-v1:提出卷积核并行合并 (Bottleneck Layer),使得在同一层
  可以提取不同的特征。网络中每一层都能学习到“稀疏”或“不稀疏”的特征,既增加了网络的宽度,也增加了网络对尺度的适应性。同时,通过 deep concat在每个 block后合成特征,获得非线性属性。按照这样的结构来增加网络的深度,虽然可以提升性能,但是还面临计算量大(参数多)的问题。
  (2Inception-v2:使用 BN层,将每一层的输出都规范化到一个 N(0,1)的正态分布,同时使用 1*nn*1这种非对称的卷积来代替 n*n的对称卷积,既降低网络的参数,又增加了网络的深度。
  (3Inception-v3:采用并行的降维结构。
  (4Inception-v4:将原来卷积、池化的顺次连接(网络的前几层)替换为 stem模块,来获得更深的网络结构。
  (5Inception-ResNet-v2:结合了 Inception模块可以在同一层上获得稀疏或非稀疏的特征和 ResNet模块既可以加速训练,还可以防止梯度弥散两者的优势。

  最终, Inception系列网络对图像识别的错误率对比如表 1。表 1 Inception系列模型性能对比 [8]

3.6其他卷积网络

  (1DenseNet[9]使用前馈和反馈的形式将每一层连接到另一层,建立了层与层之间的稠密连接,可以有效环节梯度消失、增强特征传播和重用。
  (2Andrew2017年提出 MobileNet-v1[10]模型,大幅减小了模型参数和运算量。
  (3Li2019年提出 SKNet[11]模型,允许每个神经元根据输入信息的多个尺度来自适应地调整其接受区域的大小。

▲ 图3.6.1 Inception系列模型性能对比

 

§04 阶段目标检测


4.1 R-CNN

  R-CNN的全称是 Region-CNN,是第一个成功将深度学习应用到目标检测上的算法。 R-CNN在提取特征时,将传统的特征 (SIFTHOG特征等 )换成了深度卷积网络提取的特征,解决了窗口冗余问题,提高了网络对外抗干扰能力。但模型需要生成 2000个候选区域,较为耗时,并且图像的裁剪或拉伸会导致图像信息的丢失 [13]R-CNN框架结构如图 2

▲ 图4.1.1 R-CNN框架结构

4.2 SPPNet

``SPP-Net[14]于 2015年由何凯明提出,是一种可以不用考虑图像大小,输出图像固定长度网络结构,并且可以做到在图像变形情况下表现稳定。

SPP-Net的主要思想是输入整张图像,提取出整张图像的特征图,然后利用空间关系从整张图像的特征图中,在 spatialpyramid poolinglayer提取各个 region proposal的特征。相比于 R-CNN提取 2000个 proposal,SPP-net只需要将整个图扔进去获取特征,这样操作速度提升了 100倍左右 [14]。

▲ 图4.2.1 SPP-NET框架结构

4.3 Fast R-CNN

Fast R-CNN[15]2015年由 Girshick等提出,主要有两大贡献:
1)实现大部分 end-to-end训练( proposal阶段除外):所有的特征都暂存在显存中,就不需要额外的磁盘空。
2)提出 ROIRegion of Interest)池化层,相当于单层 SPPLayer。不同的是 SPPpooling成多个固定尺度, ROIpooling到单个固定的尺度,如图 4

▲ 图4.3.1 Fast R-CNN框架

Fast R-CNN使用了多任务损失,使得训练速度在同等条件下比 R-CNN快 8倍。

4.4 FasterR-CNN

Faster R-CNN[16]2016年由 Ren等提出。在结构上, Faster R-CNN已经将特征抽取、 proposal提取、 boundingboxregressionclassification都整合在了一个网络中,使得综合性能有较大提高,在检测速度方面尤为明显,真正实现了端到端,其框架结构如图 5

▲ 图4.4.1 Fast R-CNN框架

Faster R-CNN的不足之处在于 ROI池化层生成的每个特征向量需要经过多个全连接层,这大大增加了计算复杂度和时间复杂度,并且其对小目标检测的效果不是很好。

4.5 Mask R-CNN

MaskR-CNN[17]由 He等人于 2017年提出,结合了 Faster R-CNN和 FCN的思想,在一个网络中同时做目标检测和实例分割。 MaskR-CNN的多尺度的特征提取能力得到加强,对小目标物体识别的正确率有了改进,但并没有解决时间复杂度的问题,计算起来不能满足实时监测应用的要求。

4.6TridentNet

TridentNet[18]Li等人于 2019年提出。该网络首次提出感受野对目标检测任务中不同 scale大小物体的影响,提出了适应于多尺度的目标检测框架。同时,使用参数共享的方法,提出了训练时 3branch,测试时只使用其中一个 branch,这样保证推断时不会有额外参数和计算量的增加。整个模型成功地解决了目标检测中尺度不变的问题,但是并没有提高检测速度。其框架结构如图 6

▲ 图4.6.1 TridentNet框架结构

 

§05 于回归算法


5.1YOLO

基于回归的目标检测算法省略了候选区域的生成阶段,直接将特这提取、目标分类以及目标回归在同一个卷积神经网络中实现

第06课:cnn在机器视觉中的应用——目标检测

在上一节课中,我们介绍了卷积神经网络发展的历史以及图像分类的应用。本节课的内容将在上一节课的基础上,为大家介绍机器视觉中另一类经典案例——目标检测。本节课核心内容包括:卷积神经网络的应用:图像目标检测... 查看详情

人脸检测—retinanetface

...于检测目标,然后通过调整得到目标边界框。深度可分离卷积好处就是可以减少参数数量,从而降低运算的成本。经常出现在一些轻量级的网络结构(这些网络结构适合于移动设备或者嵌入式设备),深度可分离卷积是由DW(depthwise)... 查看详情

目标检测算法经典论文回顾(一)

...aper.pdf针对问题:从Alexnet提出后,作者等人思考如何利用卷积网络来完成检测任务,即输入一张图,实现图上目标的定位(目标在哪)和分类(目标是什么)两个目标,并最终完成了RCNN网络模型。创新点:RCNN提出时,检测网络... 查看详情

卷积神经网络--目标检测

...测(包含多目标检测)。1.ObjectLocalization原始图片经过CONV卷积层后,Softmax层输出4x1向量,分别是:注意,classlabel也可能是概率。上述四个向量分别对应pedestrain,car,motorcycle和background四类。对于目标定位和目标检测问题,其模... 查看详情

fasterr-cnn:使用rpn实时目标检测

...物体在候选区域的可能性还是比较大的。然后对这些区域卷积,找到目标物体,虽然大多数区域都是无用的。与寻找几乎个区域比起来,这种方法要高效的多。FastR-CNN,不在原始图像生成备选区域,而是先整张图片通过卷积网络... 查看详情

目标检测算法-mrcnn

...ationmapsMoudle这个模块中将原始的输入图像,经过一系列的卷积操作输出featuremap,这部分可以使用各种经典的网络结构,这部分就是提取原始图像的特征信息。二.RegionAdaptationModule这部分就是给定一个Region和网络输出的featuremap。... 查看详情

卷积神经网络----目标检测

一、分类、定位和检测简单来说,分类、定位和检测的区别如下:分类:是什么?定位:在哪里?是什么?(单个目标)检测:在哪里?分别是什么?(多个目标)   (1)目标分类(2)目标定位(3)目标检测二、目标定位:... 查看详情

深度剖析目标检测算法yolov4

...志解读    yolo 发展历程  采用卷积神经的目标检测算法大致可以分为两个流派, 查看详情

yolo算法是指啥?

...特点YOLO将对象检测重新定义为一个回归问题。它将单个卷积神经网络(CNN)应用于整个图像,将图像分成网格,并预测每个网格的类概率和边界框。该算法还可以预测边界框中存在对象的概率。如果一个对象的中心落在一个网格单... 查看详情

特征点检测目标检测交并比非最大值抑制锚框yolo算法候选区域

...部特征,假设选定64个特征点。然后将人脸图片送进卷积网络中训练,网络输出为:这64个特征点的位置+是否有人脸标记(0或1)。2.目标检测(objectdetection)目标检测包括定位和分类两步。比如下图想检测汽车,假... 查看详情

特征点检测目标检测交并比非最大值抑制锚框yolo算法候选区域

...部特征,假设选定64个特征点。然后将人脸图片送进卷积网络中训练,网络输出为:这64个特征点的位置+是否有人脸标记(0或1)。2.目标检测(objectdetection)目标检测包括定位和分类两步。比如下图想检测汽车,假... 查看详情

全卷积目标检测:fcos

全卷积目标检测:FCOSFCOS:FullyConvolutionalOne-StageObjectDetection原文链接:https://arxiv.org/abs/1904.01355代码链接:https://github.com/tianzhi0549/FCOS/摘要本文提出了一种完全卷积的一级目标检测器(FCOS),以模拟语义分割,以逐像素预测的方式... 查看详情

目标检测算法综述

...由算法(algorithm)生成一系列作为样本的候选框,再通过卷积神经网络进行样本(Sample)分类。常见的算法有R-CNN、Fast R-CNN、Faster R-CNN等等。基于候选区域(Region Proposal)的,如R-CNN、SPP-net、FastR-CNN、FasterR-CNN、R-FCN... 查看详情

使用caffe完成图像目标检测和caffe全卷积网络

一、【用Python学习Caffe】2.使用Caffe完成图像目标检测标签: pythoncaffe深度学习目标检测ssd2017-06-2222:08 207人阅读 评论(0) 收藏 举报 分类:机器学习(22)  深度学习(12) 版权声明:本文为博主原... 查看详情

fasterr-cnn学习

...这个工作中,我们引入一个区域候选网络将全图片的卷积特征与检测网络进 查看详情

卷积神经网络(cnn)/目标检测领域相关名词解释

卷积神经网络(CNN)/目标检测领域相关名词解释//2022.1.13日下午15:44开始总结ROIPooling解释:ROI Pooling的过程就是将大小不同的区域proposals(一堆矩形候选框框)转换为同样大小的区域。详细说明:在Fa... 查看详情

自动驾驶感知算法实战4——目标检测网络详解(r-cnnfastr-cnnyolossd等)

...测模型2.1.1R-CNN:R-CNN系列的开山之作小结2.1.2FastR-CNN:共享卷积运算小结2.1.3FasterR-CNN:两阶段模型的深度化小结2.2单阶段(1-stag 查看详情

自动驾驶感知算法实战4——目标检测网络详解(r-cnnfastr-cnnyolossd等)

...测模型2.1.1R-CNN:R-CNN系列的开山之作小结2.1.2FastR-CNN:共享卷积运算小结2.1.3FasterR-CNN:两阶段模型的深度化小结2.2单阶段(1-stage)检测模型2.2.1YOLO小结 查看详情