You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YOLOv4中filters数量设置为(classes + 5)*3的原因是什么

YOLOv4配置项filters = (classes + 5) * 3的规则说明

首先纠正你对系数3的误解:这个3不是对应3个YOLO检测层,而是单个检测层上每个网格单元绑定的3个不同尺度的先验锚框(anchor)。YOLOv4的3个检测层是独立输出预测结果的,每个检测层前的最后一层卷积都要单独设置这个filters值,和检测层的总数量没有关系。

classes + 5是单个锚框需要输出的所有预测值的总数量,拆分逻辑如下:

  • 固定数值5对应每个锚框必须输出的5个基础参数:
    • 2个中心坐标偏移量x、y:表示预测框中心点相对于当前所属网格单元左上角的位置偏移
    • 2个宽高缩放值w、h:表示预测框相对于匹配的先验锚框的宽高缩放比例
    • 1个目标置信度(objectness score):表示当前锚框范围内存在待检测目标的概率,用来后续过滤无效负样本
  • 动态值classes对应你训练任务的待检测总类别数:这部分输出的是类别条件概率,也就是当确定框内存在目标时,该目标属于每一个类别的概率,有多少个检测类别就对应多少个输出值。

整体计算逻辑很简单:每个网格点对应3个锚框,每个锚框要输出5 + classes个预测结果,所以每个网格点总共要输出(classes + 5) * 3个值,卷积层的filters数必须和这个输出通道数完全匹配,不然会出现维度不匹配的运行错误。
你参考的英文结构示意图只标注了网络模块的连接关系,没有拆解检测头的输出通道维度构成,找不到对应解释是正常的。

内容的提问来源于stack exchange,提问作者ChengYao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 12:31:10