1、分类模型的分类头

  1. 定义与作用:分类头(Classification Head)是分类模型的一个关键组件。它位于模型的最后部分,其主要作用是将模型前面提取到的特征转化为类别概率分布。例如,在一个图像分类模型中,前面的卷积神经网络层(如 ResNet 等)会提取图像的各种特征,而分类头则会根据这些特征来判断图像属于各个类别的可能性。
  2. 常见的结构类型
    • 全连接层(Fully - Connected Layers)
      •  这是最常见的分类头结构之一。全连接层中的神经元与前一层的所有神经元都有连接。假设模型提取的特征向量长度为,而类别数为,全连接层可以将维的输入特征向量通过一系列的线性变换(,其中是输入向量,是权重矩阵,是偏置向量,是输出向量)转换为维的向量,这个向量的每个元素可以经过激活函数(如 Softmax)处理后表示对应类别的概率。
      • 例如,在一个简单的手写数字识别模型中,经过卷积层和池化层后,特征图被展平为一个长度为的特征向量。如果要识别数字这个类别(),全连接层会将这个维的向量转换为维向量,再经过 Softmax 激活函数得到每个数字的概率。
    • 卷积层(Convolutional Layers)作为分类头
      • 在一些基于卷积神经网络的分类模型中,尤其是对于具有空间结构信息的任务,如医学图像分类等,最后可以使用卷积层作为分类头。与全连接层不同,卷积层通过卷积核在特征图上滑动进行计算。
      • 例如,对于一个三维医学图像分类任务(如区分脑部肿瘤的不同类型),最后几层卷积层可以逐步缩小特征图的尺寸,同时增加通道数,提取更高级别的特征。最后一个卷积层的输出可以通过全局平均池化(Global Average Pooling)操作将每个通道的特征值平均化为一个标量,这些标量组成的向量再经过 Softmax 等激活函数来得到类别概率。
    • 基于注意力机制(Attention - based)的分类头
      • 注意力机制可以让模型在分类时聚焦于输入特征的不同部分。在分类头中引入注意力机制,可以动态地调整不同特征的权重。
      • 以文本分类为例,假设已经通过词嵌入和循环神经网络(如 LSTM)提取了文本的特征向量序列。注意力机制分类头可以计算每个特征向量(对应文本中的每个词)的注意力权重,然后将这些加权后的特征向量求和,得到一个综合的特征向量,再通过全连接层和 Softmax 激活函数得到类别概率。这样可以使模型更加关注文本中与类别判断更相关的词汇。
  3. 训练与参数优化
    • 分类头的参数(如全连接层的权重和偏置)通常是和整个模型一起训练的。在训练过程中,通过最小化损失函数(如交叉熵损失函数)来调整参数。
    • 交叉熵损失函数,其中是真实类别标签(one - hot 编码形式,即真实类别对应的位置为,其他位置为),是分类头输出的类别概率。在训练时,反向传播算法会根据损失函数对分类头的参数进行梯度计算,然后更新参数,使得模型输出的类别概率更接近真实标签。

2、目标检测的检测头

  1. 定义与作用
    • 检测头(Detection Head)是目标检测模型的重要组成部分。它的主要作用是在模型提取的特征基础上,预测目标的位置和类别信息。在目标检测任务中,不仅要知道图像中有哪些目标类别,还要确定这些目标在图像中的位置,检测头就是完成这个关键任务的部分。
  2. 常见的结构类型
    • 基于锚框(Anchor - based)的检测头
      • 原理:锚框是预先定义的一系列具有不同尺度和长宽比的矩形框。检测头会预测每个锚框内是否包含目标,如果包含目标,还会预测目标相对于锚框的位置偏移量以及目标的类别。例如在 Faster R - CNN 模型中,区域建议网络(RPN)会生成大量的锚框,这些锚框在特征图上滑动。检测头会为每个锚框输出一个分数,表示该锚框包含目标的概率,同时输出边界框回归参数,用于调整锚框的位置和大小以更准确地定位目标。
      • 示例:假设在一个交通场景的目标检测任务中,对于车辆检测,预先定义了多种尺度(如小、中、大)和长宽比(如 1:1、2:1、3:1)的锚框。当一张包含车辆的图像输入模型后,检测头会判断每个锚框是否包含车辆,对于包含车辆的锚框,进一步调整其位置和大小,使其更紧密地包围车辆,并预测车辆的类别(如轿车、SUV 等)。
    • 无锚框(Anchor - free)的检测头
      • 原理:不依赖预先定义的锚框,而是直接预测目标的中心位置或者角点等几何信息以及类别。例如,在 CenterNet 模型中,检测头会预测目标的中心位置和尺寸。它将目标检测问题转换为一个关键点估计问题,通过预测目标的中心关键点来定位目标,同时预测目标的尺寸等信息。
      • 示例:在行人检测任务中,检测头会在特征图上寻找可能是行人中心的点,一旦找到这样的点,就会预测以这个点为中心的行人的宽度和高度等尺寸信息,以及行人这个类别。这种方式可以避免锚框带来的一些复杂计算,如锚框与真实目标的匹配问题等。
    • 多尺度检测头
      • 原理:由于目标在图像中可能具有不同的尺度大小,多尺度检测头可以在不同尺度的特征图上进行检测。一般是通过对不同深度的卷积层输出的特征图进行检测。深层的特征图具有较高的语义信息但分辨率较低,适合检测大目标;浅层的特征图分辨率较高但语义信息相对较弱,适合检测小目标。
      • 示例:在一些复杂的工业检测场景中,可能同时存在微小的零件和大型的设备。多尺度检测头可以在高分辨率的浅层特征图上检测微小零件的位置和类别,在低分辨率的深层特征图上检测大型设备的位置和类别,从而有效地检测出图像中的各种目标。
  3. 训练与参数优化
    • 检测头的训练通常需要结合位置损失和类别损失。位置损失用于衡量预测的目标位置(如边界框坐标)与真实位置之间的差异,类别损失用于衡量预测的目标类别与真实类别之间的差异。
    • 常用的位置损失函数有均方误差(MSE)、SmoothL1损失等。类别损失函数常用的是交叉熵损失函数。通过最小化这些损失函数的组合(如 L=Lloc+LclsL=Lloc​+Lcls​)来优化检测头的参数,使得检测头能够更准确地预测目标的位置和类别。

3、图像分割的分割头

  1. 定义与作用

    • 图像分割的分割头是图像分割模型中的关键部分,它负责将图像的特征表示转换为分割结果。其主要目的是对图像中的每个像素进行分类,确定每个像素属于哪个语义类别,例如在医学图像分割中,区分图像中的肿瘤组织、正常组织和其他器官组织等;在自动驾驶场景的图像分割中,划分出道路、车辆、行人、建筑物等不同的类别。
  2. 常见的结构类型

    • 全卷积网络(FCN)式分割头
      • 原理:全卷积网络摒弃了传统分类网络中的全连接层,采用卷积层来处理特征图,使得网络可以接受任意尺寸的输入图像,并输出与输入图像尺寸相对应的分割结果。分割头通过一系列的卷积和反卷积(转置卷积)操作来实现像素级别的分类。反卷积层用于上采样,将低分辨率的特征图逐步恢复到原始图像的尺寸大小,同时在这个过程中结合不同层次的特征来细化分割结果。
      • 示例:在语义分割城市街景图像时,FCN 分割头从骨干网络(如 VGG 等)获取特征图,经过反卷积层逐步将特征图放大。在这个过程中,它会融合来自不同深度卷积层的特征,例如,融合浅层的细节特征(如路边的纹理)和深层的语义特征(如建筑物的类别特征),从而能够准确地对每个像素进行分类,比如将像素划分为道路、建筑物、车辆、行人等类别。
    • 基于 Transformer 的分割头
      • 原理:Transformer 架构在自然语言处理领域取得巨大成功后,也被引入到图像分割中。在这种分割头中,通过自注意力机制(self - attention)来处理图像特征。自注意力机制可以让模型关注图像中的不同区域,根据像素之间的关系动态地分配权重,从而更好地理解图像的语义信息。然后通过多层的 Transformer 块来进一步提炼特征,最后通过一个分类层(如线性层)将特征转换为像素级别的类别预测。
      • 示例:在医学图像分割,如分割脑部 MRI 图像时,基于 Transformer 的分割头可以捕捉脑部不同组织之间的长距离依赖关系。例如,它能够关注到相隔较远但在语义上相关的脑部区域,像将病变区域与周围正常组织之间的关系通过注意力机制更好地表示出来,最终准确地分割出病变组织、白质、灰质等不同的区域。
    • 双线性池化(Bilinear Pooling)分割头
      • 原理:双线性池化用于融合两种不同特征空间的信息,以生成更具判别力的特征表示用于分割。它首先从两个不同的路径获取特征,通常是从骨干网络的不同层或者不同的卷积分支,然后通过双线性操作(如外积)将这两个特征进行融合。这种融合后的特征能够综合考虑不同层次的细节和语义信息,最后通过一个分类器对融合后的特征进行像素级别的分类。
      • 示例:在对遥感图像进行土地覆盖类型分割时,双线性池化分割头可以从一个路径获取图像的纹理特征,从另一个路径获取图像的光谱特征。通过双线性池化将这两种特征融合,能够更有效地利用遥感图像的多源信息,从而更准确地将像素划分为森林、农田、水体、城市建筑等不同的土地覆盖类型。
  3. 训练与参数优化

    • 图像分割分割头的训练通常使用像素级别的交叉熵损失函数。对于每个像素,计算预测类别概率与真实类别标签之间的交叉熵损失,然后将所有像素的损失求和得到总的损失。例如,对于一个具有个像素和个类别的图像分割任务,交叉熵损失函数可以表示为,其中是第个像素的真实类别标签(如果像素属于第类,则,否则),是分割头预测的第个像素属于第类的概率。
    • 此外,为了提高分割的准确性,还可以采用一些辅助的损失函数,如边界损失(用于加强分割边界的准确性)、多尺度损失(考虑不同尺度下的分割性能)等。通过反向传播算法,根据这些损失函数来调整分割头的参数,使得分割结果更接近真实的图像分割情况。

1、目标检测

RCNN系列

selective search  cnn  SVN  roi pooling, RPN, roi align

RCNN 系列对比总结

模型

主要创新点 速度 精度 缺点
RCNN Selective Search + CNN 提取特征 重复计算,速度慢
Fast RCNN ROI Pooling + 单一网络完成检测 依赖 Selective Search
Faster RCNN 引入 RPN,替代 Selective Search 更快 对小目标检测效果一般
Mask RCNN 增加分割分支,ROI Align 提高精度 较快 很高 计算复杂度更高

YOLO系列

1. YOLO 系列模型概述

版本 主要改进点 速度 精度 应用场景
YOLOv1 单一卷积网络直接预测边界框和类别。 较高 基础目标检测
YOLOv2 引入批归一化、锚点机制(Anchor Boxes)和多尺度训练。 较快 更高 多目标场景
YOLOv3 添加多尺度特征金字塔、改用 Darknet-53 骨干网络,支持更多类检测。 小目标检测
YOLOv4 增加了 CSPNet、Mish 激活函数等改进,并综合使用了多种优化技术。 较快 更高 实时检测
YOLOv5 高效实现,支持导出多种格式(ONNX, TensorRT),便于部署。 更快 工业应用
YOLOv6 专注于工业场景优化,加入更高效的检测头和轻量化模块。 工业检测
YOLOv7 提出动态标签分配和模糊标签分配策略,进一步优化检测性能。 较快 多样化任务
YOLOv8 模型更加轻量化,支持检测、分割、关键点任务,进一步提高精度和部署性能。 很高 多任务检测

2、YOLO 系列对比总结

版本 主要特点 模型大小 FPS (1080Ti) mAP@50
YOLOv1 单步检测,速度快 58 MB 45 63%
YOLOv2 锚点机制,多尺度训练 193 MB 40 78%
YOLOv3 特征金字塔,Darknet-53 236 MB 30 80%
YOLOv4 CSPNet,优化技术集成 244 MB 35 89%
YOLOv5 高效实现,多平台支持 14 MB (s) 140 (s) 92%
YOLOv6 工业优化,轻量化设计 17 MB (s) 150 (s) 92%
YOLOv7 动态标签分配,多任务支持 20 MB (s) 160 (s) 94%
YOLOv8 轻量化,多任务(分割、关键点) 18 MB (s) 170 (s) 95%

3. YOLO 系列关键改进

YOLOv1: 单步检测

        将检测视为回归问题,通过单一网络直接预测边界框和类别。局限性:对小目标检测效果较差,且定位精度不足。

YOLOv2: 增强检测能力

        锚点机制:引入 Anchor Boxes,适配多样化目标尺寸。多尺度训练:支持不同分辨率的输入,提高模型鲁棒性。批归一化:稳定训练过程,改善收敛性能。

YOLOv3: 特征金字塔

        多尺度特征融合:支持不同层级特征的目标检测,适应小目标检测。Darknet-53 骨干网络:更深的网络提高了特征提取能力。分类器调整:使用 Logits 而非 Softmax,更适合多标签检测。

YOLOv4: 综合优化

        CSPNet:减少重复计算,提升速度和精度。Mish 激活函数:提升梯度流动效果。多种优化策略:包括 Mosaic 数据增强、DropBlock 正则化。

YOLOv5: 实用性增强

        代码开源,支持多种导出格式。提供从 Nano 到 X 的多种模型尺寸,适应不同设备的需求。

YOLOv6, YOLOv7, YOLOv8: 效率与精度并重

        引入动态标签分配、模糊标签机制等,提高复杂场景的检测能力。加强轻量化设计,支持边缘设备实时检测。

4. YOLO 系列应用场景

  1. 视频监控: 实时目标检测,识别行人、车辆等。
  2. 无人驾驶: 目标检测、障碍物识别。
  3. 工业质检: 缺陷检测、生产线实时监控。
  4. 医疗影像: 病灶检测、器官定位。
  5. 边缘计算: 部署于嵌入式设备进行轻量化检测。

经典的目标检测模型:

  1. R-CNN系列(Region-based Convolutional Neural Networks)

    • R-CNN:通过选择性搜索提取候选区域,然后利用卷积神经网络(CNN)对每个区域进行分类和边界框回归。
    • Fast R-CNN:在R-CNN的基础上改进,共享卷积计算,引入ROI池化层,提高了效率。
    • Faster R-CNN:引入区域建议网络(Region Proposal Network, RPN),实现了端到端的训练方式,提高了速度和准确性。
  2. YOLO(You Only Look Once)系列

    • YOLOv1:提出了一种单次检测模型,将目标检测作为一个回归问题来解决,速度快,但准确性相对较低。
    • YOLOv2 (Darknet-19):引入了批量归一化和高分辨率的预测,提高了模型的准确性。
    • YOLOv3:引入了多尺度预测和更深的网络结构,进一步提升了性能。
    • YOLOv4:结合了多种优化技术,包括网络结构优化、数据增强等,是目前速度和准确性都较好的模型之一。
  3. SSD(Single Shot MultiBox Detector)

    • 通过在不同尺度的特征图上进行预测,能够检测不同大小的目标,速度快,准确性较好。
  4. RetinaNet

    • 由Facebook AI Research提出,使用了一种新的损失函数Focal Loss,特别适用于类别不平衡的数据集。
  5. DEtection TRansformer(DETR)

    • 完全基于Transformer架构,将目标检测视为一个集合预测问题,不依赖于区域提议网络,但在训练和推理时速度较慢。
  6. Corner Proposal Network (Corner Proposal Network)

    • 通过预测目标的四个角来确定边界框,这种方法在某些情况下可以提供更精确的定位。
  7. CenterNet

    • 将目标检测问题转化为一个关键点定位问题,通过预测目标的中心点和目标的宽度和高度来确定边界框。
  8. FCOS (Fully Convolutional One-Stage Object Detection)

    • 一个无锚点(anchor-free)的单阶段目标检测器,直接在全卷积网络的特征图上预测目标的类别、位置和大小。

2、图像分割

图像分割(Image Segmentation)是计算机视觉中的一项重要任务,旨在将图像分成多个有意义的区域,通常是为了识别图像中的不同对象、结构或语义部分。与目标检测不同,图像分割不仅需要识别物体,还需要精确地分割出物体的边界。以下是一些经典的图像分割模型及其特点:

1. FCN (Fully Convolutional Network)

FCN 是最早用于图像分割的深度学习模型之一,它通过完全卷积的方式(即使用卷积层代替全连接层),将输入图像转换为与输入图像大小相同的分割图。

  • 关键思想:FCN 将传统的卷积神经网络(CNN)结构中的全连接层替换为卷积层,使得模型能够处理任意尺寸的输入图像。通过使用上采样(反卷积层或转置卷积层),FCN 可以将低分辨率的特征图恢复到原始图像的分辨率,从而实现像素级的分类。

  • 优缺点

    • 优点:模型简单,易于实现;适用于语义分割任务,能够输出与原始图像大小一致的分割图。
    • 缺点:精度较低,特别是在细节和边界的处理上相对粗糙。

2. U-Net (2015)

U-Net 是一种经典的医学图像分割模型,最初用于细胞图像的语义分割。U-Net 的关键特点是其对称的编码器-解码器结构,具有强大的上下文捕捉能力,并且能够进行精细的像素级分割。

  • 关键思想:U-Net 使用了一个 编码器-解码器 结构,其中编码器提取图像的低级特征,解码器逐步恢复空间分辨率。通过在解码器阶段与编码器阶段的相应层之间使用 跳跃连接(skip connections),U-Net 能够保留高分辨率的信息,从而获得更精确的边界。

  • 优缺点

    • 优点:在医学图像分割任务中表现优秀,能够处理图像中的小物体和细节;跳跃连接使得模型在处理边界时更加精细。
    • 缺点:计算量较大,需要大量的训练数据。

3. SegNet (2015)

SegNet 是一个基于卷积神经网络的图像分割模型,采用了编码器-解码器架构,特别适用于低分辨率的图像分割任务。

  • 关键思想:SegNet 的架构类似于 U-Net,但它的解码器使用了 最大池化索引(max-pooling indices),使得解码过程能更好地恢复空间信息。编码器和解码器之间的跳跃连接是通过传递最大池化索引来实现的,而不是直接传递特征图。

  • 优缺点

    • 优点:最大池化索引的使用使得解码过程更加高效,并且在恢复空间分辨率时减少了计算负担。
    • 缺点:对于某些细节的恢复可能不如 U-Net 准确,尤其是在边界处理上。

4. DeepLab 系列

4.1 DeepLabv1 (2015)

DeepLab 是 Google 提出的一个系列分割模型,最初的版本(DeepLabv1)使用了 空洞卷积(dilated convolution) 来扩大卷积核的感受野,从而捕获更大范围的上下文信息。

  • 关键思想:DeepLabv1 通过引入空洞卷积,使得网络在不增加参数量的情况下获得了更大的感受野。此外,DeepLabv1 还使用了 条件随机场(CRF) 来进一步精细化边界,从而提高分割精度。

  • 优缺点

    • 优点:在语义分割任务中具有较好的表现,能够有效地捕捉图像的上下文信息。
    • 缺点:在细节和边界的处理上相对较弱。
4.2 DeepLabv2 (2016)

DeepLabv2 对原始的 DeepLabv1 进行了改进,进一步提高了性能。

  • 关键思想:DeepLabv2 引入了 空洞卷积的多尺度特征(Atrous Spatial Pyramid Pooling, ASPP),以在不同尺度上提取特征,从而增强了网络的上下文捕捉能力。

  • 优缺点

    • 优点:相比于 v1,DeepLabv2 的表现更好,特别是在处理多尺度对象时具有优势。
    • 缺点:相较于一些轻量级模型,计算复杂度较高。
4.3 DeepLabv3 & DeepLabv3+ (2017, 2018)

DeepLabv3DeepLabv3+ 是 DeepLab 系列的更高级版本,它们在性能和精度上有显著提升。

  • 关键思想:DeepLabv3 进一步优化了 ASPP 模块,并且在 DeepLabv3+ 中,使用了一个 编码器-解码器结构(类似 U-Net),进一步提高了分割精度,特别是在处理边界和细节时表现优秀。

  • 优缺点

    • 优点:DeepLabv3+ 在大多数语义分割任务中都具有非常高的精度,尤其在边界处理和多尺度特征提取方面表现出色。
    • 缺点:计算量较大,训练和推理速度较慢。

5. Mask R-CNN (2017)

Mask R-CNN 是从 Faster R-CNN 演变而来的,它不仅能够进行目标检测,还能同时为每个目标生成像素级的分割掩膜。

  • 关键思想:Mask R-CNN 基于 Faster R-CNN,在 RoI Pooling 层后添加了一个分支,用于生成每个候选框的二值掩膜。这样,每个目标的边界可以被精确地分割出来。它使用了 RoIAlign(一种改进的 RoI Pooling 技术)来避免在空间量化时产生不精确的定位。

  • 优缺点

    • 优点:Mask R-CNN 在同时完成目标检测和图像分割任务时,精度较高,尤其在实例分割(Instance Segmentation)任务中表现突出。
    • 缺点:计算量大,速度较慢,尤其在高分辨率图像上。

6. PSPNet (Pyramid Scene Parsing Network, 2017)

PSPNet 通过引入 金字塔场景解析(Pyramid Scene Parsing) 技术,结合多尺度的信息来进行语义分割。

  • 关键思想:PSPNet 使用了一个 全局池化模块,对图像进行不同尺度的分割,并将各个尺度的特征融合在一起,从而获得更全面的上下文信息。

  • 优缺点

    • 优点:通过多尺度融合,PSPNet 能够捕捉到更全面的上下文信息,从而提高精度。
    • 缺点:计算复杂度较高,训练时需要大量的计算资源。

7. HRNet (High-Resolution Network, 2019)

HRNet 是一个针对高分辨率图像的分割模型,它在整个网络中保持高分辨率的特征图,并通过多个分支进行多尺度特征的融合。

  • 关键思想:HRNet 通过保持高分辨率的特征图,并且通过不同分支进行特征融合,从而能够捕捉到更丰富的上下文信息和细节。

  • 优缺点

    • 优点:在高分辨率图像分割任务中具有出色的性能,能够更好地捕捉到细节。
    • 缺点:需要大量的计算资源和内存,训练和推理速度较慢。

8. TransUNet (2021)

TransUNet 结合了 Transformer 和 U-Net,用于医学图像分割。

  • 关键思想:TransUNet 在传统的 U-Net 编码器中引入了 Transformer 结构,以增强全局上下文建模能力,并使用 Transformer 来优化长距离依赖关系。

  • 优缺点

    • 优点:在医学图像分割任务中,尤其是在细节分割方面,表现非常优秀。
    • 缺点:训练和推理速度较慢,需要大量的计算资源。

9、其它一些模型

  1. PSPNet (Pyramid Scene Parsing Network)

    • PSPNet 通过全局金字塔池化模块捕获全局上下文信息,用于提高图像分割的性能。
  2. RefineNet

    • RefineNet 通过多尺度融合和逐步细化的方式,提高了分割的精度和鲁棒性。
  3. HRNet (High-Resolution Network)

    • HRNet 通过多尺度的并行路径和深度监督,保持了高分辨率的特征图,适合于需要精细边界的分割任务。
  4. Transformer-based Models

    • 随着 Transformer 架构在自然语言处理领域的成功,它也被应用于图像分割任务。例如,Vision Transformer (ViT) 和 DeiT 等模型被调整用于图像分割任务。
  5. SETR (Vision Transformer with Shallow Tails)

    • SETR 是一种基于 Vision Transformer 的端到端的图像分割模型,它通过自注意力机制捕获全局依赖关系。
  6. Swin Transformer

    • Swin Transformer 是一种基于 Transformer 的层次结构模型,它在图像分类任务上取得了优异的性能,也被扩展用于图像分割。
  7. U^2-Net (Unified Perceptual Parsing for Scene Understanding)

    • U^2-Net 结合了编码器-解码器结构和注意力机制,用于多任务学习,包括图像分割。
  8. GCN-based Models

    • 图卷积网络(GCN)也被用于图像分割任务,特别是在处理图结构数据时,如细胞分割。
  9. OneFormer

    • OneFormer 是一个统一的模型,它将分割、目标检测和姿态估计任务集成在一起,通过一个单一的前向传播解决多个视觉任务。

更多推荐