关于Amazon PersonPath22数据集det_rcnn.txt注释格式的技术问询
解决PersonPath22数据集注释转COCO后边界框不匹配问题
先把注释格式的细节抠准
你猜的格式框架没问题,但有几个容易踩坑的点:
- 第一个字段
<frame>是浮点型(比如示例里的1.0),转COCO时要转成整数,对应视频的帧序号(从1开始计数) - 第二个
-1.0是目标ID的占位符——因为det_rcnn.txt是模型检测结果,不是跟踪标注,所以这个字段固定为-1,不影响边界框转换 - 核心问题:bbox坐标的分辨率匹配
示例里的x_min是1053.817,如果你的图像实际宽度不到1000,那肯定是坐标体系错了。大概率是你混淆了「绝对像素值」和「基于基准分辨率的归一化后值」:
PersonPath22部分视频可能用了基准分辨率(比如1920×1080)做标注,实际图像是缩放后的版本,这时候你需要把注释里的bbox值按比例换算到当前图像的分辨率。
修正转换逻辑的实操步骤
- 验证单帧匹配度:
- 随便拿一张视频帧图像,用PIL或OpenCV读取它的实际宽高:
img_w, img_h = Image.open("视频帧路径").size - 拆分对应det_rcnn.txt里的该行数据,得到
x_min=1053.817, y_min=198.082, w=106.621, h=275.427 - 如果x_min超过图像宽度,就找该视频的基准分辨率(比如查看数据集说明里的原始采集分辨率),用「注释值 ÷ 基准分辨率 × 实际图像分辨率」来换算bbox
- 随便拿一张视频帧图像,用PIL或OpenCV读取它的实际宽高:
- 对齐COCO格式要求:
COCO的bbox格式是[x_min, y_min, width, height],必须是当前图像的绝对像素值,不能用归一化值或其他基准下的数值。
关于gluon-cv格式的澄清
gluon-cv的检测/跟踪标注格式确实是<frame>,<id>,<x_min>,<y_min>,<width>,<height>,<score>,<x>,<y>,<z>,但这里的坐标是对应原始帧的绝对像素值。你说的“对应另一图像文件夹”,应该是指train目录下有不同分辨率的子文件夹,要确保det_rcnn.txt和它所属的视频帧图像是一一对应的,别跨文件夹匹配。
内容的提问来源于stack exchange,提问作者Grace Guo
相关产品推荐
相关产品推荐

