ILSVC检测评测准备实战:ImageNet_Utils gt_det真值生成工具详解
【免费下载链接】ImageNet_Utils:arrow_double_down: Utils to help download images by id, crop bounding box, label images, etc.项目地址: https://gitcode.com/gh_mirrors/im/ImageNet_Utils
ImageNet_Utils是面向图像检测评测的一站式工具包,其中的 detection_eval_tools/gt_det.py 脚本(gt_det 真值生成工具)可以帮你为 ILSVC 检测评测一键准备 ground truth(真值):自动汇总标注文件与图片、生成图片 ID 列表和元数据,省去手动整理的繁琐工作。
🎯 gt_det 是什么:ILSVC 检测评测真值准备工具
gt_det 的定位非常明确:帮助使用者为 ILSVC(ImageNet Large Scale Visual Recognition Challenge)检测结果评测准备真值数据。它会自动完成以下四件事:
| 输出文件 | 内容说明 |
|---|---|
dst/annotations/ | 从标注目录递归收集并复制的全部 XML 标注文件 |
dst/images/ | 与标注一一对应的图片文件 |
dst/ids.txt | 图片 ID 列表(从 1 开始编号,方便 MATLAB 脚本使用) |
dst/meta.mat | 类别元数据(WNID、类别名、描述) |
这些产物正是 ImageNet 官方检测评测开发包(devkit)所要求的标准格式,详见 detection_eval_tools/README.md。
🚀 快速上手:安装与环境准备
一键克隆仓库
git clone https://gitcode.com/gh_mirrors/im/ImageNet_Utils依赖环境
gt_det 依赖numpy与scipy(用于生成.mat元数据文件),其余工具如 downloadutils.py 下载图片时还需要注册 ImageNet 账号。建议提前执行:
pip install numpy scipy pillow💡 提示:运行前可参考项目根目录 README.md 了解各模块功能与使用顺序。
📦 gt_det 命令用法与参数详解
标准调用格式如下:
$ ./gt_det.py dst_dir -p ann_dir img_dir labelMap.txt structure.xml各参数含义一目了然:
dst_dir:输出目录,gt_det 会把标注、图片、ids.txt、meta.mat全部写到这里;-p ann_dir img_dir labelMap.txt structure.xml:四个输入路径,其中structure.xml是可选的ImageNet 结构文件(参考 detection_eval_tools/structure_released.xml);- 若省略
-p参数,gt_det 会读取上次运行保存的.pdet配置(见 detection_eval_tools/gt_det.py#L93-L106),方便重复执行。
labelMap.txt 怎么写
labelMap.txt负责把整数标签映射到类别名称,每行一条记录,两种风格均可:
20 n03781787 15 n00007846 9 n03002096或者直接使用可读名称:
20 tvmonitor 15 person 9 chairgt_det 会读取该文件找出最大标签号,并据此构建meta.mat中的synsets数组(WNID / name / description 三列),核心逻辑见 detection_eval_tools/gt_det.py#L58-L74。
🔍 进阶:reorder_meta.py 元数据重排序
如果你的评测集类别顺序与meta.mat不一致,可用 detection_eval_tools/reorder_meta.py 按指定顺序重排元数据:
$ python reorder_meta.py src.mat order.txt dst.matorder.txt中按期望顺序列出 WNID,例如:
n03781787 n00007846 n03002096若src.mat中缺少某个 WNID,可加上--padding参数用空项补齐,避免评测脚本因标签错位而失败。脚本最后还会自动校验顺序是否一致,校验失败会直接报错退出。
🧩 真值准备全流程:从标注到评测
gt_det 不是孤立的脚本,它依赖上游工具产出的标注 XML,完整工作流如下:
- 下载数据:用 downloadutils.py 按 WNID 下载图片与边界框标注;
- 标注图片:通过 labelImgGUI/ 目录下的图形界面工具框选目标并生成标注 XML(如上图所示),或在 detection_eval_tools/ 中复用已有标注;
- 裁剪验证:用 bbox_helper.py 按标注 XML 裁剪边界框图片,直观核对标注质量;
- 生成真值:运行 gt_det 一键生成评测所需的全部真值文件;
- (可选)格式转换:如需 Dlib 格式的检测框,可用 boxesCvtPascaltoDlib.py 将 Pascal 格式标注(参考 demo/pascalBoxes/2008_004649.xml)转换为 Dlib 格式。
❓ 常见问题
Q:运行 gt_det 提示 "Please specify paths."?未指定-p参数且找不到上次保存的.pdet配置文件。补齐四个路径参数即可。
Q:图片与标注对不上导致ids.txt为空?gt_det 通过文件名(去掉扩展名的图片 ID)匹配标注与图片,请确保ann_dir与img_dir中同名文件齐全。
Q:structure.xml 从哪里来?它是 ImageNet 的类别结构文件,仓库内附有 detection_eval_tools/structure_released.xml 可作参考,该参数可省略。
✅ 总结
gt_det 真值生成工具把 ILSVC 检测评测中最枯燥的准备工作自动化了:一个命令完成标注汇总、图片匹配、ID 列表与元数据生成四大任务,配合 detection_eval_tools/ 中的 reorder_meta.py,能覆盖绝大多数检测评测的真值准备场景。对于刚接触 ImageNet 评测的新手,建议按照本文"下载 → 标注 → 裁剪验证 → 生成真值"的流程走一遍,即可快速上手。
【免费下载链接】ImageNet_Utils:arrow_double_down: Utils to help download images by id, crop bounding box, label images, etc.项目地址: https://gitcode.com/gh_mirrors/im/ImageNet_Utils
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考