fix(detect): 切片统计的口径
原先把"有一边小于 160"记为填充、否则记为裁剪,但 400x100 这种既要横向裁剪 又要纵向填充,会被算成纯填充。改成两个独立计数并说明可同时发生。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
474b7b50a0
commit
23562448ba
+13
-6
@@ -138,7 +138,11 @@ def main() -> int:
|
||||
label_file = label_path_for(source)
|
||||
boxes = parse_label(label_file.read_text(encoding="utf-8")) if label_file.exists() else []
|
||||
tiles = plan_tiles(width, height, args.size, args.overlap)
|
||||
sizes_seen["填充" if width < args.size or height < args.size else "裁剪"] += 1
|
||||
# 两者可以同时发生:400x100 的图既要横向裁剪又要纵向填充
|
||||
if width < args.size or height < args.size:
|
||||
sizes_seen["需要填充"] += 1
|
||||
if width > args.size or height > args.size:
|
||||
sizes_seen["需要裁剪"] += 1
|
||||
stats["源图"] += 1
|
||||
|
||||
positives, empties = [], []
|
||||
@@ -180,9 +184,12 @@ def main() -> int:
|
||||
logger.info("处理 [%d] 已产出 %d 片", stats["源图"], stats["产出片"])
|
||||
|
||||
logger.info(
|
||||
"源图 %d(其中 %d 张靠镜像填充、%d 张需裁剪)-> 片 %d(有框 %d,空 %d,丢弃空片 %d)",
|
||||
stats["源图"], sizes_seen["填充"], sizes_seen["裁剪"], stats["产出片"],
|
||||
stats["有框片"], stats["空片"], stats["丢弃的空片"],
|
||||
"源图 %d(%d 张有维度不足需镜像填充,%d 张有维度超出需裁剪,两者可同时发生)",
|
||||
stats["源图"], sizes_seen["需要填充"], sizes_seen["需要裁剪"],
|
||||
)
|
||||
logger.info(
|
||||
"产出片 %d(有框 %d,空 %d;另按配额丢弃空片 %d)",
|
||||
stats["产出片"], stats["有框片"], stats["空片"], stats["丢弃的空片"],
|
||||
)
|
||||
logger.info("逐类框数: %s", dict(sorted(per_class.items())))
|
||||
|
||||
@@ -205,8 +212,8 @@ def main() -> int:
|
||||
"min_visibility": args.min_visibility,
|
||||
"max_empty_ratio": args.max_empty_ratio, "seed": args.seed,
|
||||
"counts": dict(stats), "per_class_boxes": dict(per_class),
|
||||
"source_images_padded": sizes_seen["填充"],
|
||||
"source_images_cropped": sizes_seen["裁剪"],
|
||||
"source_images_padded": sizes_seen["需要填充"],
|
||||
"source_images_cropped": sizes_seen["需要裁剪"],
|
||||
},
|
||||
ensure_ascii=False, indent=2,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user