昨天深夜调试一个产线缺陷检测项目时遇到了典型场景:单个YOLOv11模型在光照变化时漏检率突然飙升。测试集上mAP明明有89.2%,实际场景中某些角度下直接掉到70%边缘。这种“实验室王者,现场青铜”的落差,咱们搞工程的人都懂——是时候祭出模型融合这个大招了。
为什么单个模型会“翻车”
模型融合不是玄学,本质是统计学上的方差-偏差权衡。单个模型就像一位专业医生,可能擅长看X光片但看不懂CT。YOLOv11虽然做了大量优化,但训练数据分布、anchor设置、backbone特征提取倾向都会让模型产生不同的“盲区”。我遇到过两个指标相近的模型:一个对小目标敏感但误检高,另一个对大目标稳定却漏检小物体。把它们组合起来,往往能互相补位。
实战中的三种融合策略
投票融合法(最稳妥的起点)
defweighted_box_fusion(detections_list,weights=None,iou_thr