深圳Yolo 视觉
深圳
立即加入
词汇表

特征金字塔网络(FPN)

了解特征金字塔网络 (FPN) 如何在YOLO11 和现代 CV 系统中实现多尺度物体检测,提高大小物体的检测精度。

特征金字塔网络(FPN)是一种用于计算机视觉(CV)的专用架构。 计算机视觉(CV)领域 用于提升 不同尺度下物体的检测效果。作为现代物体检测架构中的关键组件, 物体检测架构,旨在突破传统检测器难以识别微小物体的局限。通过从单分辨率输入图像生成 多尺度特征金字塔,FPN使模型能够detect 高精度detect 大型结构 与微小细节。该架构通常位于 骨干网络 (负责特征提取)与 检测头 (负责预测 类别与边界框)之间,有效增强传递至最终层的语义信息。

理解FPN架构

全局特征网络(FPN)的主要目标是利用卷积神经网络(CNN)固有的多尺度金字塔式层级结构 卷积神经网络(CNN)的固有多尺度金字塔式层级结构 同时降低分别处理多个图像尺度所产生的计算成本。该架构包含三条处理视觉数据的主路径:

  1. 自下而上路径:这是骨干网络的正向传播计算,例如 残差网络(ResNet)。随着图像在各层间传递,空间分辨率逐渐降低(图像尺寸缩小),而 语义价值(图像内容的上下文信息)则持续增强。
  2. 自上而下通路:该阶段通过对空间分辨率较低但语义强度更强的特征图进行上采样,从而幻化出更高分辨率的特征。 特征图 进行上采样,从而恢复自下而上过程中丢失的空间细节。
  3. 侧向连接:这些连接将自上而下路径的超采样特征图与自下而上路径的对应特征图进行融合。这种融合将高级语义上下文与低级纹理及边缘信息相结合,显著提升了 精度。原始 FPN研究论文 展示了该技术如何 在标准基准测试中取得最先进成果。

在现代人工智能中的重要性

在FPN出现之前,目标检测器通常只能在两种方案中择一:要么仅使用最顶层(适用于大型目标,但对小型目标效果不佳),要么处理图像金字塔(速度慢且计算成本高)。FPN提供了"两全其美"的解决方案。这种能力对于 实时推理,使 YOLO26YOLO11 在保持高帧率的同时 精准识别仅占据屏幕几个像素的物体。

实际应用

处理多尺度数据的能力使 FPN 成为各行各业不可或缺的工具,这些行业依赖于 人工智能(AI).

  • 自动驾驶车辆:自动驾驶系统必须同时track 附近的track 车辆与远处的交通信号灯或行人。 全局感知网络(FPNs)使感知层能够在同一推理过程中处理这些元素,确保安全决策 即时完成。领先数据集如 Waymo公开数据集 常用于训练这类多尺度感知能力。
  • 医学影像分析:在诊断成像中,识别异常需要跨尺度的精准性。肿瘤可能是大型肿块,也可能是微小的早期结节。假阳性率(FPNs)增强 影像分割模型 模型 在放射学中的应用,助力临床医师在X光和MRI扫描中detect 不同尺寸的detect 这在 放射学人工智能期刊

FPN与BiFPN及PANet的比较

虽然全局特征网络(FPN)彻底革新了特征提取领域,但新一代架构已对这一概念进行了进一步优化。

  • 双向特征金字塔网络(BiFPN):应用于高效检测器(EfficientDet),该网络引入可学习权重以学习不同输入特征的重要性, 并在现有自上而下的路径基础上添加自下而上的路径。
  • PANet(路径聚合网络):常用于YOLO ,该网络在FPN结构中添加了额外的自下而上的路径,以缩短低级特征的信息传递路径,从而进一步提升定位精度。
  • Ultralytics YOLO :现代迭代模型如YOLO26采用这些聚合网络的高级变体,以最大化速度与 平均精度均值 (mAP)之间。

实施实例

深度学习库和Ultralytics 在内部处理了特征金字塔网络的复杂性。以下示例演示了如何加载一个利用特征金字塔结构进行detect 模型。

from ultralytics import YOLO

# Load the YOLO26 model, which utilizes an advanced feature pyramid architecture
# The 'n' suffix stands for nano, a lightweight version of the model
model = YOLO("yolo26n.pt")

# Run inference on an image to detect objects ranging from small to large
# The model internally uses its FPN neck to aggregate features at multiple scales
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Display the resulting bounding boxes and class labels
results[0].show()

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入