AlexNet

2012 年,AlexNet[4]的出现让全世界见 证了卷积神经网络(Convolutional Neural Networks, CNN)的强大特征学习能力,传统的手工设计特征方 式逐渐被取代,目标检测也随之进入深度学习时代。

以下来源:Title:目标检测综述:从传统方法到深度学习
目标检测要求高准确率的分类,还需要精确的位置预测。先进的深度学习模型如区域卷积神经网络(R-CNN)及其变种(如 Fast R-CNN、FasterR-CNN、YOLO和 SSD等),不仅显著提高了检测的准确性,也极大提升了处理速度和效率。面临的挑战:特别是在处理复杂场景中的遮挡问题、提高小目标的检测率以及减少误检和漏检的准确性方面。

目标检测算法可以分为两大类:
1、双阶段检测器,首先生成潜在目标区域再进行分类和边界框回归。
2、单阶段检测器,则在一个步骤中同时预测类别和边界框,提供了更快的检测速度。

非极大值抑制(NMS)
三大主要方法:
1)贪婪选择,
2)边界框聚合,核心理念在于将多个重叠的边界框融合或聚合成一个最终的检测结果
3)NMS 学习 ,核心理念是将NMS视为一个滤波器,用于对所有原始检测进行重新评分并 将 NMS 作为网络的一部分进行端到端的训练。

双阶段检测算法

RCNN

RCNN通过结合区域提议CNN显著提高了物体检测的准确性.
慢的原因:卷积特征重复计算量太大(每张图片的预选框区域【约2000个】都会计算CNN特征)

SPP-Net

SPP-Net主要用于解决传统CNN无法处理不同尺寸输入图像的限制。
SPP-Net 的核心特性是其空间金字塔池化(SPP)层,该层位于卷积层之后,全连接层之前。SPP层通过在不同尺度上对特征图进行区域划分和池化操作(如最大池化),生成固定长度的特征向量,允许模型接受任意尺寸的输入图像。但是带来了网络设计的复杂性增加以及计算负担的提升。
两大改进
1、直接输入整图,所有区域共享卷积计算
先卷积得到特征图,再在特征图中进行选框。
2、引入空间金字塔池化
在特征图上按1x1, 2x2,4x4 三种方式划分块Bin,得到21个Bin,每个Bin内使用Max pooling 得到特征拼接在一起。
继承了R-CNN的剩余问题:
1、需要存储大量特征
2、复杂的多阶段训练
3、训练时间还是长(25.5h)
Fine-tune微调(16)+特征提取(5.5)+SVM/Bbox训练(4)
新问题:
SPP层之前的所有卷积层参数不能fine tune

Fast R-CNN

改进:
所有层都可以fine tune(使用了ROI,即只用了4x4这一种方式进行金字塔池化)
多任务损失

Faster R-CNN

Faster R-CNN = Fast R-CNN + RPN
Faster R-CNN这种模型是 R-CNN和 Fast R-CNN技术的继承者,主要通过区域提议网络来优化对象检测流程。
RPN是一种全卷积网络,可以实时从输入图像的深度特征图中生成对象的候选区域。这些候选区域后续通过更详细的网络结构进行精确的对象分类和边界框回归。
流程:
1、在 Faster R-CNN中,一旦 RPN生成了区域提议,这些提议就被送入下一个阶段的网络——一个Fast R-CNN检测器。
2、该检测器使用一个叫做RoI(Region of Interest)池化层的技术来从每个提议中提取固定大小的特征图。
3、这些特征图接着被用于确定提议中是否存在对象,并对其类别进行分类,同时调整提议的边界框以更精确地框定对象。
这一整合流程使得 Faster R-CNN能够以一种端到端的方式进行训练,提高了模型的学习效率和检测准确性。
Faster R-CNN缺陷:在处理小目标和复杂场景时仍面临挑战。

R-FCN

R-FCN基于 FasterRCNN的架构进行优化,结构如图所示。
R-FCN的训练和检测流程包括利用基础卷积网络提取特征,通过区域提议网络生成目标区域,以及使用得分图进行类别判断和位置精调。

FPN网络特别适用于对象检测和语义分割任务,尤其是在处理不同尺寸的对象时表现出色。

FPN的主要创新在于它构建了一个多级特征金字塔,该金字塔能够有效地结合不同层级的特征,提供丰富的语义信息和细节信息,从而提高模型的识别能力。

FPN的架构包括自底向上的特征提取和自顶向下的特征融合两个主要部分。在自底向上的过程中,模型通过常规的卷积网络从输入图像中逐层抽取特征,形成一系列的特征图,这些特征图随着网络层级的加深而逐渐减小尺寸同时增加深度。达到顶层后,FPN通过自顶向下的路径引入横向连接,使用上采样技术将高层的精细特征向低层传递,与原有的浅层特征相结合,实现了多尺度特征的融合。

OverFeat 的架构采用了类似于 AlexNet 的结构,但进行了一些关键的改进和调整以适应多任务处理。

单阶段检测算法

YOLO系列

SSD
SSD的设计目标是在单次前向传递中同时预测对象的类别和位置,实现快速且准确的检测。

YOLO (You Only Look Once)是一种基于回归思想的 one-stage 检测算法,是把检测问题转化为一个基于 深度学习的回归问题,使用神经网络对检测到的对象执行边界框的分类和预测。

yolov1

需求1:如何实现图像中多个目标的检测?
将图片设置为16个区域,每个区域用1个(c,x,y,w,h)去负责

c代表的是此区域包含目标的概率
需求2:同一个区域中包含多个目标怎么办?
2个类,one-hot就是【0,1】【1,0】

主干网络:darknet

创新点:把检测当作回归问题,用一个网络输出位置和类别,是 one-stage 的。
优点:回归问题流程较为简单,故检测速度较快 [4];与 FastR-CNN 相比,YOLO 预测背景出错的次数少了 一半,可以减少背景错误;训练集和测试集类型不同时,YOLO 的检测速度和精度较好,且应用于新领域也很 少出现崩溃的情况,较为稳定 [5]。
局限性:一个单元格只能预测两个框和一个类别,这种空间约束限制了预测的数量;识别物体位置精准 性差;YOLOv1 能够识别目标的上限为 49,因此 YOLOv1 不利于识别密集型目标和小目标,所以在较小的物 体和物体密集的场景中性能相对较差。

yolov2

创新点:YOLOv2 中,开发者通过批处理规范化、应用高分辨率分类网络、使用锚框预测边界框、多尺度 训练等方法提高检测性能;使用尺寸簇作为定位框来预测边界框;提出新的分类模型 Darknet-19,使用批归一 化稳定训练,提升了检测速度;提出 ImageNet 和 COCO 数据集的结合方法、对分类和检测数据进行联合训练 的方法,扩大了检测类别的数量,训练后的模型称为 YOLO9000。
优点:YOLOv1 的基础上提高了预测精度、速度、识别物体数目,每张图像的预测框由 98 个提升到超过 1000 个;通过使用更深层的卷积神经网络提高了准确性;YOLOv2 可以检测不同的对象类别多达 9000 种,并 且可以在各种图像尺寸下进行检测,在速度和精度之间的权衡很好。
局限性:YOLOv2 使用锚框来预测边界框,精度有小幅度下降。

YOLOv3

创新点:YOLOv3 的特征提取器使用 Darknet-53 网络结构来代替 Darknet-19 网络结构,利用特征金字塔 网络结构实现了多尺度检测。
优点:YOLOv3 头的空间金字塔池化和路径聚合网络(PAN),为单帧中的多个物体检测提供了最佳的速 度和准确性;应用 Darknet-53 网络结构,浮点运算更少,速度更高。
局限性:使用锚框 x、y 偏移预测,降低了模型稳定度;使用线性预测而不是逻辑预测,导致 mAP 下降两点。

YOLOv4

创 新 点:YOLOv4 通过创建一个 CNN 来 解 决 现 代 神 经 网 络 不 能 实 时 工 作、需 要 大 量 的 GPU 来 进行小批量的训练的问题,使 CNN 在传统 GPU 上实时运行,只需用一个传统 GPU 进行训练。使用 SelfAdversarialTraining(SAT)等多种技术进行数据增强;选用 CSPDarknet-53 为主干网络。在基础网络部分, YOLOv4 的整体架构与 YOLOv3 大致相同,但对各个子结构都进行了改进 [3]。
优点:YOLOv4 使用传统 GPU 就可以训练快速和准确的目标检测器;选用 CSPDarknet-53 为主干网络, 在保持高推理速度的同时仍具有较高精度;YOLOv4 在 COCO 数据集上的平均精度(AP)和帧率精度(FPS) 分别提高了 10% 和 12%[8]。
局限性:需要较高的计算资源:Yolov4 基于服务器进行检测,在嵌入式硬件设备中,不支持部分算法公 式;对小目标检测效果以及密集目标的检测效果不佳。

YOLOv5

创新点:融合了轻量级网络结构 GSConv,减小了模型的复杂程度。 优点:YOLOv5:2020 年,YOLOv5 发布。这个版本由 Ultralytics 开发,采用了一种轻量级的网络结构。 YOLOv5 的特点是快速、准确,支持实时目标检测和轻量级部署。
局限性:需要较高的计算资源:与 YOLOv4 相同,不适合嵌入式设备或者计算资源有限的环境;对小目标 检测效果不佳;对噪声和遮挡物的处理效果不佳:在处理噪声和遮挡物时可能会出现漏检的情况;与 YOLOv4 相比,YOLOv5 模型较大,这可能会对某些应用的资源需求造成限制。
1、网络结构

yolov5结果分析

1、混淆矩阵:混淆矩阵显示了分类模型的在进行预测时会对哪一部分产生混淆。它不仅可以让我们了解分类模型所犯的错误,更重要的是可以了解哪些错误类型正在发生。

图解:

2、性能评估指标

1)正确率(accuracy)
正确率是我们最常见的评价指标,这个很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好;
数学公式: $ accuracy = \frac{TP+TN}{TP+TN+FP+FN} $

2)错误率(error rate)
错误率则与正确率相反,描述被分类器错分的比例,error rate = (FP+FN)/(P+N),对某一个实例来说,分对与分错是互斥事件,所以accuracy =1 - error rate;

3)灵敏度(sensitive)
sensitive = TP/P,表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力;

4)特效度(specificity)
specificity = TN/N,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力;

5)精度(precision)
精度是精确性的度量,表示被分为正例的示例中实际为正例的比例,
数学公式: $ P = \frac{TP}{TP+FP} $

6)召回率(recall)
召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitive,可以看到召回率与灵敏度是一样的。
数学公式: $$R = frac{TP}{TP+FN}$$

3、F1-Score
F1分数(F1-score)是分类问题的一个衡量指标。一些多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0。
数学公式: $ F1 = \frac{2PR}{P+R} $
YOLOv6
创新点:Yolov6 引入了一些新的技术来优化 YOLOv5 的性能,包括 PAN(PathAggregationNetwork)和 SAM(SpatialAttentionModule)等特征提取模块,以及一些新的数据增强方法和训练策略;设计了一个高效的 可重新参数化的主干——EfficientRep。
优点:相对于 YOLOv5 来说,Yolov6 在速度、准确率和效率等方面都有所提升 [9-10]。
局限性:在识别更小的物体时,精确度略有下降 [11]。

posted on 2024-09-21 18:35  erdong911  阅读(14)  评论(0编辑  收藏  举报