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

Feature Maps

特征图是滤波器在图像上滑动时产生的响应网格,用于显示其中模式出现的位置。涵盖计算方式、形状和可视化。

特征图是卷积神经网络(CNN)某一层中一个滤波器的输出:一个二维数值网格,用于记录该滤波器的模式在输入各个位置上出现的强度。具有 64 个滤波器的卷积层会生成 64 张特征图,并将它们堆叠为形状为通道数 × 高度 × 宽度的张量;该张量会成为下一层的输入。早期层的特征图突出显示边缘、颜色和纹理,深层特征图则会响应物体部件和完整物体。激活图是它的同义词;一层中堆叠后的整个张量通常也称为该层的特征图。

特征图的计算方法#

滤波器(也称卷积核)是一个小型网格,由学习得到的模型权重组成;每个输入通道通常对应一个 3×3 的网格。卷积会让它在输入上滑动,并在每个位置将重叠值逐元素相乘后求和,再加上偏置,得到一个输出数值。较大的输出值表示输入在该位置与滤波器的模式相匹配。输出的高度和宽度由输入尺寸、卷积核尺寸 k、填充 p 和步幅 s 决定,公式为 floor((input + 2p - k) / s) + 1;因此,步幅为 1 时,使用填充 1 的 3×3 卷积核会保持尺寸不变,而步幅为 2 时尺寸会减半。

下面的代码片段将垂直边缘卷积核应用于一张左侧较暗、右侧较亮的小图像。

import torch
import torch.nn.functional as F

# 一张 8x8 灰度图像:左半部分较暗,右半部分较亮,因此只有一条垂直边缘
image = torch.zeros(1, 1, 8, 8)
image[..., 4:] = 1.0

# 一个用于检测垂直边缘的 3x3 Sobel 卷积核
kernel = torch.tensor([[-1.0, 0.0, 1.0], [-2.0, 0.0, 2.0], [-1.0, 0.0, 1.0]]).view(1, 1, 3, 3)

# 将卷积核在图像上滑动,生成特征图
feature_map = F.conv2d(image, kernel)

print(feature_map.shape)
print(feature_map[0, 0, 0])

它会输出 torch.Size([1, 1, 6, 6]) 和 tensor([0., 0., 4., 4., 0., 0.])。不使用填充时,8×8 图像会生成 6×6 特征图(8 − 3 + 1 = 6),且只有卷积核跨越边缘的两列非零。训练后的 CNN 会学习许多类似这个 Sobel 卷积核的第一层滤波器,以及针对颜色和纹理的滤波器。

网络中的特征图#

数据在 CNN 中传递时,特征图的高度和宽度通常会缩小,通道数则会增加。每次下采样都会使分辨率减半,而深层特征图中的每个位置都会汇总原始图像中更大的感受野。检测器会保留多个深度的特征图,因为这种权衡有利也有弊:对于 640×640 图像,步幅为 8 的特征图是 80×80 网格,精细程度足以定位小物体;步幅为 32 的特征图是 20×20 网格,每个网格单元都能看到足够大的图像区域来识别大型物体。特征金字塔网络(FPN)会融合这些不同深度的特征图,让每个尺度都兼具精确位置和高级语义;生成这些特征图的主干网络是模型的主要特征提取阶段。

  • 滤波器:滤波器包含学习得到的权重,特征图则是将权重应用于一个输入后得到的结果。每个图像中的一个滤波器会生成一张特征图。
  • 激活函数:在卷积后逐元素应用于特征图的函数,例如 ReLU。激活前后都存在特征图,分别对应预激活值和后激活值。
  • 嵌入向量:嵌入向量通常是通过池化或展平特征图得到的一维向量,它保留图像包含的内容,但丢弃位置信息。嵌入向量可用于相似性搜索和聚类;而需要位置信息的任务(例如语义分割)则使用空间特征图。
  • 显著图: 显著图是一张热力图,用于解释一次预测,通常根据特征图及其梯度计算得出。

检查和可视化特征图#

将单个通道绘制成灰度图,可以看出每个滤波器会对什么产生响应。第一层的特征图看起来像经过边缘滤波的照片副本,而深层特征图则是在物体部件上呈现的粗略斑块。在 PyTorch 中,通过 register_forward_hook 注册的前向钩子,可以在推理期间捕获任意层的特征图。深层有数百个通道,因此可解释人工智能工具通常会将它们浓缩成一张热力图。Grad-CAM 根据类别分数的平均梯度为后期特征图的每个通道加权,再将通道求和,从而突出对预测起作用的图像区域。在 nano YOLO26 模型中,640×640 图像到达检测头时会变成三张特征图,尺寸分别为 64×80×80、128×40×40 和 256×20×20;使用 visualize=True 进行预测会保存一张 _cam.jpg LayerCAM 叠加图,该图根据每个位置相对于各预测类别的正梯度为这些特征图加权。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 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 的未来!

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