feat(boxes): generate_boxes.py 的 --target 默认改为 label
框的类别应该来自人工归类(图片所在目录),分类模型只负责定位。原先默认 predicted, 框的类别取模型 top1 预测,模型分错的图会把错误类别写进标签:boxes_shap 那次预测与 目录一致率 0.9915,约 95 张图的类别因此是错的。 两种取值只在预测与目录不一致的图上有区别,其余图解释的是同一个 logit、框完全相同。 --target predicted 仍保留。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7dd0f89d18
commit
32e56cb230
@@ -30,7 +30,9 @@ images/ 与 labels/ 的对应关系符合本仓库的 YOLO 约定(datasets/yol
|
||||
所以 `FilmDefectDataset` 能直接读。
|
||||
|
||||
默认对**全量**数据生成;`--limit` / `--per-class` 只用于快速试参数。
|
||||
热力图默认针对模型的 **top1 预测类别**;`--target label` 可改用图片所在目录的标注类别。
|
||||
热力图与框的类别默认取**图片所在目录的人工标注类别**(`--target label`):类别的真值是人工归类,
|
||||
分类模型只负责回答"为什么是这个类",也就是框在哪里。`--target predicted` 改用模型的 top1 预测,
|
||||
这时模型分错的图,框的类别也会跟着错。
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
@@ -132,8 +134,8 @@ def parse_args() -> argparse.Namespace:
|
||||
parser.add_argument("--set", nargs="*", default=[], metavar="KEY=VALUE")
|
||||
parser.add_argument("--device", default=None)
|
||||
parser.add_argument(
|
||||
"--target", choices=("predicted", "label"), default="predicted",
|
||||
help="热力图针对哪个类别:predicted=模型 top1 预测(默认),label=图片所在目录",
|
||||
"--target", choices=("predicted", "label"), default="label",
|
||||
help="热力图与框针对哪个类别:label=图片所在目录的人工标注(默认),predicted=模型 top1 预测",
|
||||
)
|
||||
|
||||
parser.add_argument("--threshold", type=float, default=0.4, help="热力图阈值(相对最大值)")
|
||||
|
||||
Reference in New Issue
Block a user