检测头节点分析总结
1. Bounding Box 头 (cv2) - 回归头部
-
/model.23/cv2.0/cv2.0.2/Conv_output_0: [1, 64, 80, 80]
-
/model.23/cv2.1/cv2.1.2/Conv_output_0: [1, 64, 40, 40]
-
/model.23/cv2.2/cv2.2.2/Conv_output_0: [1, 64, 20, 20]
作用: 输出边界框回归参数,64个通道对应4个坐标×16个DFL(Distribution Focal Loss)bins,用于精确的边界框定位。
2. 分类头 (cv3) - 类别预测头部 7类
-
/model.23/cv3.0/cv3.0.2/Conv_output_0: [1, 7, 80, 80]
-
/model.23/cv3.1/cv3.1.2/Conv_output_0: [1, 7, 40, 40]
-
/model.23/cv3.2/cv3.2.2/Conv_output_0: [1, 7, 20, 20]
作用: 输出7个类别的概率分数,每个空间位置对应7个类别的置信度。
3. 分割头 (cv4) - 掩码系数头部
-
/model.23/cv4.0/cv4.0.2/Conv_output_0: [1, 32, 80, 80]
-
/model.23/cv4.1/cv4.1.2/Conv_output_0: [1, 32, 40, 40]
-
/model.23/cv4.2/cv4.2.2/Conv_output_0: [1, 32, 20, 20]
作用: 输出32个掩码系数,用于生成实例分割掩码,这三个不同尺度的输出会被合并。
数据流向:
- cv2和cv3头 → 通过Concat操作合并到最终的output0输出
-
cv2输出经过DFL处理链(Reshape→Transpose→Softmax→Conv→Slice→数学运算)→最终bbox坐标
-
cv3输出经过Sigmoid激活→最终类别概率
-
cv4头 → 经过Reshape和Concat操作形成掩码系数 → 存储在output0的最后32个通道中
-
独立的分割路径 → 通过proto网络分支生成output1
-
来源:来自主干网络的特征
-
处理:Conv→ReLU→ConvTranspose(上采样)→Conv→ReLU→Conv→ReLU
-
输出:[1, 32, 160, 160] → 直接作为output1输出
多尺度检测策略:
-
Scale 0 (大物体): 80×80网格,适合检测较大目标
-
Scale 1 (中物体): 40×40网格,适合检测中等目标
-
Scale 2 (小物体): 20×20网格,适合检测较小目标
| 特征层 | 典型输入尺寸(以640×640图为例) | 主要任务 |
|---|---|---|
| P3 | [1, 128, 80, 80] | 检测小目标(<32×32像素) |
| P4 | [1, 256, 40, 40] | 检测中等目标(32--96像素) |
| P5 | [1, 512, 20, 20] | 检测大目标(>96像素) |
对应的rknn模型图:
