Revert "约束预测框互不重叠"(eba533a、9439cbb)

去掉强制非重叠:detect.py 不再给 DetectionValidator.postprocess 打补丁,
配置里移除 train.max_overlap 与 agnostic_nms,可视化脚本恢复为直接使用模型原始输出,
engine/detection 里的 suppress_overlaps / filter_overlapping_outputs 一并移除。

约束会把 mAP50 从 0.555 压到 0.483(precision 0.536->0.612),代价是按置信度抑制时
高分错框会压掉本可命中的低分框。需要时用 git revert 这次提交即可取回。

按类别分目录的可视化产出结构(36fff98)保留。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Shaun Zhou
2026-09-18 15:34:13 +08:00
co-authored by Claude Opus 5
parent 36fff984b7
commit 154677032f
5 changed files with 5 additions and 273 deletions
-7
View File
@@ -48,13 +48,6 @@ train:
hsv_s: 0.3
hsv_v: 0.3
# 真值里一处缺陷只有一个框、零重叠(实测 11211 张图、151 张多框图,重叠为 0),
# 所以验证时也把预测约束成互不重叠:早停与 best.pt 的选择才和最终推理一致。
# 负数=不约束。注意这不是 ultralytics 的参数,由 detect.py 自己实现。
max_overlap: 0.0
# 端到端头的 top-k 每个 anchor 只取一个类别,压掉同一处缺陷被两个类别各框一次
agnostic_nms: true
plots: true # results.png / PR 曲线 / 混淆矩阵 / val_batch 预测图
save_period: -1