Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Convolutional Neural Network (CNN)

卷积神经网络(CNN)通过共享的滑动滤波器学习图像特征。介绍其层、特性、关键模型,以及 CNN 与 ViT 的比较。

卷积神经网络 (CNN) 是一种深度学习架构,它使用可学习的小型滤波器处理网格状数据,最常见的是图像;这些滤波器会在输入上滑动。每个滤波器在所有位置重复使用相同的权重,因此 CNN 能够识别图像中任意位置的边缘或车轮等模式,同时使用的参数远少于全连接网络。层层堆叠会形成特征层级:浅层提取边缘和纹理,深层则提取物体部件和完整物体。自 AlexNet 于 2012 年赢得 ImageNet 挑战赛以来,CNN 推动了大部分计算机视觉进展;如今,它们仍是边缘硬件实时视觉中最常见的选择。

CNN 的工作原理#

CNN 会分阶段重复使用几种层类型,每个阶段的分辨率都比前一个阶段低:

  • 卷积层:每层都会将一组可学习的滤波器(通常为 3×3)沿输入的高和宽滑动。每个滤波器生成输出特征图的一个通道,因此包含 64 个滤波器的层会输出 64 个通道。
  • 归一化和激活:批归一化会在训练期间使每层的输出保持在稳定范围内;ReLU 或 SiLU 等非线性激活函数则让堆叠的层能够表示不止一种线性变换。ReLU和 SiLU都是常见的激活函数。
  • 下采样:最大池化或步幅为 2 的卷积会将高和宽减半,从而扩大后续层的感受野并减少计算量。许多现代架构主要使用步幅卷积进行下采样。
  • 头部:对于图像分类,全局平均池化会将最终每个通道缩减为一个数值,全连接层再将这些数值映射为类别分数。检测和分割模型会将此头部替换为预测边界框或逐像素掩码的层。

CNN 的关键特性#

三个特性解释了为什么卷积适用于图像。局部连接意味着每个输出只取决于输入的一个小邻域,这与相邻像素之间的高度相关性相吻合。权重共享意味着一个滤波器可用于整张图像,因此无论输入大小如何,参数数量都保持不变。平移等变性意味着输入平移时特征图也会平移相同的距离,因此在一个角落学到的模式可以在任何位置识别;池化层还会进一步增强模型对小幅平移的容忍度。这些特性共同构成了 CNN 的归纳偏置,也就是让 CNN 能够用比Transformer更少的图像进行学习的内在假设。

下面的 PyTorch代码片段将卷积层与应用于同一张 224×224 RGB 图像的全连接层进行比较。

import torch
from torch import nn

image = torch.randn(1, 3, 224, 224)

# 64 learnable 3x3 filters, each reused at every position of the RGB image
conv = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, padding=1)

# A fully connected layer mapping the same flattened image to only 64 numbers
dense = nn.Linear(3 * 224 * 224, 64)

conv_params = sum(p.numel() for p in conv.parameters())
dense_params = sum(p.numel() for p in dense.parameters())
print(f"Conv2d: output {tuple(conv(image).shape)}, {conv_params:,} parameters")
print(f"Linear: output {tuple(dense(image.flatten(1)).shape)}, {dense_params:,} parameters")

它会输出 Conv2d: output (1, 64, 224, 224), 1,792 parameters 和 Linear: output (1, 64), 9,633,856 parameters。通过权重共享,卷积层仅用 1,792 个参数就能生成 64 张全分辨率特征图;而全连接层需要多出 5,376 倍的参数,却只能输出 64 个数值。

CNN 代表性架构#

  • LeNet-5 (1998):Yann LeCun 开发的手写数字识别网络确立了卷积层与池化层交替出现、后接全连接层的架构模式;该网络曾用于商业银行支票识别。
  • AlexNet (2012):该网络使用两块 GPU 进行训练,并采用 ReLU 激活和 dropout;它以 15.3% 的 top-5 测试错误率赢得 ILSVRC 2012 挑战赛,第二名的错误率为 26.2%。
  • VGG (2014):该架构证明,将小型 3×3 卷积堆叠至 16 到 19 层权重层,能显著提高 ImageNet 准确率。
  • ResNet (2015):残差连接使深达 152 层的网络也能训练,ResNet 集成模型赢得了 ILSVRC 2015。
  • U-Net (2015):这是一种带有跳跃连接的编码器-解码器 CNN,后来成为生物医学图像分割的标准架构。
  • ConvNeXt (2022):它是在 ResNet 中融入 Transformer 时代的设计选择后形成的架构,ImageNet top-1 准确率达到 87.8%,在 COCO 检测任务上优于 Swin Transformer。

CNN 的应用场景#

  • 目标检测:单阶段 CNN 检测器只需一次前向传播,就能发现并分类物体,速度足以支持摄像头、手机和嵌入式开发板上的视频处理。
  • 医学图像分析:U-Net 风格的 CNN 会在 CT 和 MRI 扫描中分割器官、肿瘤和病灶,这类任务需要对每个像素进行分类。
  • 姿态估计:CNN 会预测人体关键点,用于体育分析、人机工程学和健身应用。
  • 图像以外的信号:一维卷积可处理音频波形和传感器时间序列,二维 CNN 则可在语音识别中对频谱图进行分类。

CNN 与视觉 Transformer 的比较#

视觉 Transformer (ViT)会将图像拆分为图块,并通过自注意力让每个图块与其他所有图块建立关联,因此从第一层起就能获得全局上下文。不过,它较弱的归纳偏置也有代价:只用 ImageNet 训练时,最初的 ViT 表现不及规模相近的 ResNet;只有先在 1,400 万到 3 亿张图像上预训练后,它才能与 ResNet 持平或胜过 ResNet。注意力的计算成本还会随图块数量的平方增长,使高分辨率输入代价高昂;卷积的成本则只随像素数量线性增长。因此,许多当前模型会将二者结合起来:在高分辨率下保留卷积阶段,并在特征图较小时加入注意力。YOLO26采用了这种模式:Conv 块(卷积、批归一化和 SiLU)与 C3k2 块承担大部分计算,多头自注意力则只作用于步幅为 32 的特征图;对于 640×640 图像,该特征图是 20×20 网格。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来