图像目标检测

简介: 目标检测是光学遥感图像解译中的核心问题,在情报侦察、目标监视、灾害救援等领域均具有广泛应用。

     图像目标检测的目的是完成分类和定位任务,即用边界框来标识输入图像中的相关目标,并在边界框附近给出学习到的目标类别名称和精度[7]。检测的精度以置信度分数的形式表示,分数越高,表示检测结果的精确度越高,越值得信赖;反之,则越低。在下图中给出了图像目标检测的结果示例图,蓝色框定位了图像中人的位置,其上方的“person”表示矩形框内的目标类别,0.80、0.87 分别表示框出的目标属于识别出的类别的概率,即置信度分数,红色框圈出的目标为“tie”的概率是 0.78,由于目标遮挡等问题出现了漏检情况,未检测出站在右边的人所戴的领带。由图可知,目标检测的过程存在很多干扰因素,如物体数量的不确定性,因拍摄角度等原因导致的遮挡、模糊和姿态等问题均会给检测带来挑战。

%VJ204I0GZ[$E0SI`IS9LM2.png

     目前,基于深度学习的目标检测算法有两个主要的分支:第一个分支是基于候选区域(Region  Proposal)的 R-CNN 系列算法,包括 R-CNN(Region-based Convolution Neural Networks)、SPPNet(Spatial Pyramid Pooling Network)、Fast R-CNN、Faster R-CNN、R-FCN(Region-based Fully Convolutional Network)等。这些算法通过卷积神经网络提取图像特征,使用区域提取网络给出图像待检测目标的候选框,用带卷积的检测头对候选框中的目标进行分类从而完成检测,称为 two-stage 检测器,此类方法准确度高,但速度缓慢。另一个分支是直接在网络中提取特征,将目标定位转化为边框回归问题,一次性完成定位与分类任务,包括 YOLOv1(You Only Look Once)、SSD(Single Shot MultiBox Detector)等算法,称为 one-stage 检测器,此类算法速度快,但是准确性偏低。

     2014 年,Ross  Girshick 大神在论文[8]中提出了全新的目标检测算法 R-CNN,其在数据集 VOC2007 上的验证指标 mAP 值,比当时传统的方法 DPM(Deformable parts  models)的结果高 25%左右。首先对输入图像使用选择搜索算法(SelectiveSearch),产生大小不同的 2000 个候选区域图;将这 2000 张图像缩放到 227x227的尺寸,每张候选图输入卷积神经网络后都会产生一个 4096 维的特征向量,处理完所有候选图后会生成 20004096 的特征矩阵;然后用由 20 个 SVM 组成的权值矩阵对此特征矩阵进行矩阵的乘法运算,输出 2000x20 的概率矩阵,每一行代表一个候选框归于每个目标类别的概率;概率矩阵的每一列使用非极大值抑制算法删除多余的候选框,保留图中该类别得分最高的某些候选框。最后通过边界框回归调整候选框的位置和大小,获取最后的结果。R-CNN 训练过程繁琐,测试一张图像用时约 53 秒,用选择搜索算法提取候选框用时 2 秒。而同一张图像的候选框之间存在大量的重叠部分,导致重复的对某些区域进行复杂的卷积操作,浪费计算资源。

   2015 年,Ross  Girshick 在会议 International  Conference  on  Computer  Vision (ICCV)上提出了 R-CNN 的增强版本 Fast  R-CNN。为解决重复对某些区域进行复杂卷积运算的拖慢速度的问题,调整了选择搜索算法与 CNN 网络的位置,即先使用卷积神经网络提取整张输入图像的特征,再将选择搜索算法生成的候选框投影到特征图上获得相应的候选特征图。使用 RoI(Regoin of Interesting)技术将每个候选特征图的尺寸缩放到 77 的大小,再利用全连接层将特征图进行展平处理得到预测结果。与 R-CNN 相比不用限制输入图像的大小,训练时间快 9 倍,测试推理时间快 213 倍,在 Pascal VOC 数据集上的 mAP 指标值从 62%提升到了 66%。算法的不足之处是继续使用比较耗时的选择搜索算法来预测目标候选区域,限制了速度提升的效果。

     此后不久,Ross Girshick 又研究出了速度更快的版本 Faster R-CNN,其推理速度在 GPU 上达到 5FPS,在 ILSVRC2015 和 COCO2015 竞赛中获得多个比赛项目的第一名。Faster R-CNN 删除了繁杂的选择搜索方法,转用可以和目标检测网络共享卷积参数的 RPN(Region Proposal Network)网络直接处理输入图像,生成质量较高的目标候选区域图,其数目也从原有的 2000 个左右减少为 300 个。此法的思想是将特征提取和目标检测网络整合为一体,全部使用神经网络完成,实现来了端到端的学习模型。如下图 展示了 Faster R-CNN 算法的关键过程。

2NH4[MJZ@NG[23EO7[~)D5W.png

    在 ILSVRC2015 图像分类和物体识别项目中,Microsoft Research 的 4 位学者受 Highway  Network 思想的启发提出了新的卷积神经网络——残差网络(Residual Network, ResNet),以其优秀的性能表现获得了当年的冠军。残差网络由多个包含跳层连接的残差块构筑而成,解决了在深度神经网络中增加深度而带来的梯度消失问题,使得今后的网络可以通过适当的增加深度来提高准确率。

     代季峰的团队针对 Faster R-CNN 检测速度慢的问题于提出了 R-FCN。R-FCN属于全卷积神经网络,它使用了最新的残差网络(Residual Network, ResNet),通过跳跃连接获得深层网络和浅层网络的特征,来提高检测的准确度。R-FCN 引入了 FCN(Fully Convolutional Network)使得整个网络可以共享参数,减少计算量以加速检测,并提出敏感位置得分图(position-sensitive score map)的概念,调和图像的平移变换性和平移不变性的矛盾。论文中使用 101 层 ResNet 的神经网络结构作为主干网络(backbone),在 PASCAL VOC2007 数据集上进行实验,性能指标 mAP值达到了 83.6%,同时每张图像的测试速度降低到了 170ms,比 Faster R-CNN 快2.5-20 倍。

      因为在目标检测最基本的现实应用形式中需要追求实时的效果,所以必须进一步提高目标检测的速度。2015 年,Joseph Redmon 提出了一种 one-staged 的算法模型 YOLO,实现了自动驾驶等前沿技术的实时检测效果。YOLO 算法:设图像的大小为 32•S×32•S,将其送入可以进行 32 倍下采样的卷积神经网络,得到的特征图大小为 S×S,再将图像划分为 S×S 的网格单元(grid cells),如果 Ground Truth 中的一个对象的中心落在某网格单元中,则该网格单元将负责检测该对象。下图展示了 YOLO 算法处理一张图像的简单过程。

]]{1GTH6YVFUICG4@5_VQ$A.png

    上图中的左图表示输入图像被分成了 S×S 的小栅格,分割后的图像分两路处理,并且两路分支同时进行。第一个分支生成预测框(bounding boxes)并产生置信度(confidence score),YOLO 为每一个栅格固定 B 个预测框,预测框是基于栅格中心点产生的,预测框的中心点坐标、宽高和一个目标性得分(objectness score)来表示对应的预测框信息,所以最终的预测结果是一个 S×S×(B×5+C)的张量,其中 C 表示数据集的目标种类数。原文中的 B=2,意思是有两个预选框,C=20,表示有 20 种类别,S=7。第二个分支生成类概率图(class probability map),负责预测每个单元的 C 个条件概率值,预测的结果一样是放在 S×S×(B×5+C)的张量中。总而言之,每个网格单元可以预测多个矩形框,但只负责预测一类物体及其概率值。

   在 YOLO 框架的基础上,Joseph Redmon 受到 Network In Network的启发提出了 YOLO v2,基础的特征提取网络为 Darknet-19,引入了 anchor 机制和 BN(Batch Normalization)层,采用多尺度训练方式,提高网络模型的检测精度。2018 年,Joseph  Redmon 等人在 Darknet-19 的基础上设计了更深的特征提取网络Darknet-53,单独对每个类别进行逻辑回归(Logistic Regression),在 3 个不同的尺度上进行预测,提高模型的精度,即 YOLOv3算法模型。在 Joseph Redmon 宣布退出计算机视觉的研究后,又陆续出现了实时对象检测模型 YOLOv4和推理速度较快的 YOLOv5。


相关文章
|
2月前
|
机器学习/深度学习 并行计算 PyTorch
图像检测【YOLOv5】——深度学习
Anaconda的安装配置:(Anaconda是一个开源的Python发行版本,包括Conda、Python以及很多安装好的工具包,比如:numpy,pandas等,其中conda是一个开源包和环境管理器,可以用于在同一个电脑上安装不同版本的软件包,并且可以在不同环境之间切换,是深度学习的必备平台。) 一.Anaconda安装配置. 1.首先进入官网:https://repo.anaconda.com,选择View All Installers. 2.打开看到的界面是Anaconda的所以安装包版本,Anaconda3就代表是Python3版本,后面跟的是发行日期,我选择了最近的2022
68 28
|
6月前
|
人工智能 数据可视化 vr&ar
TripoSR:一个图像到3D生成模型,你get到了嘛!
TripoSR:一个图像到3D生成模型,你get到了嘛!
110 1
|
机器学习/深度学习 算法 数据库
图像识别2:图像多分类实验
图像识别2:图像多分类实验
72 0
|
机器学习/深度学习 固态存储 算法
目标检测之TextBoxes++
翻译:《 TextBoxes++: A Single-Shot Oriented Scene Text Detector》
|
机器学习/深度学习 算法 自动驾驶
目标检测之TextSnake
翻译:《TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes》
108 0
|
机器学习/深度学习 存储 编解码
Resnet图像识别入门—— 图像的色彩空间
了解 图像的色彩空间会让你对像素有更多的认识。
Resnet图像识别入门—— 图像的色彩空间
|
机器学习/深度学习 Ubuntu 机器人
【D435i深度相机YOLO V5结合实现目标检测】
【D435i深度相机YOLO V5结合实现目标检测】
1389 0
|
计算机视觉
计算机视觉 - 图像相似度
计算机视觉 - 图像相似度
241 0
|
机器学习/深度学习 算法 数据可视化
详细解读SSPNet| 小目标检测该如何进行改进?
详细解读SSPNet| 小目标检测该如何进行改进?
233 0
|
算法 计算机视觉
图像分割—基于区域的图像分割
图像分割—基于区域的图像分割