☰
CityPersons数据集完全指南:PATH-ViTB行人检测评测背后的标准基准 [特殊字符]
2026/10/17 19:24:29 网站建设 项目流程

【免费下载链接】PATH-ViTB

项目地址:https://ai.gitcode.com/OpenGVLab/PATH-ViTB
点击查看免费下载

如果你正在研究行人属性识别(Pedestrian Attribute Recognition),CityPersons 几乎绕不开——它是 PATH-ViTB 这类模型做行人检测与属性识别评测时采用的标准基准数据集。本文带你快速吃透 CityPersons 的来源、标注体系、官方数据划分与评测方法,并带你读懂 PATH-ViTB 仓库里两个模型检查点的命名细节。


1️⃣ CityPersons 是什么?

CityPersons 是专为**行人属性识别(PAV, Pedestrian Attribute with Verification)**任务设计的基准数据集,由 INRIA Person 行人检测数据集中裁剪而来。与原始 INRIA 数据集只提供边界框和遮挡等级不同,CityPersons 为每个行人实例都标注了:

  • ✅17 个行人属性:年龄、体型、上衣颜色、下装颜色、鞋的颜色等
  • ✅5 个场景标签:背景类型(如建筑、车辆、自然等)

💡 为什么需要它?做行人属性识别时,你必须知道"框里的人长什么样"。CityPersons 就是给行人框"加上了描述标签"的那份标准数据。

数据集规模一览

项目规模
图像总数3,753 张
行人实例总数28,335 个
训练集100 张图像
测试集251 张图像(含 1,500 个行人)
属性类别数17
场景类别数5

注意一个细节:训练集图像少但行人多,测试集固定为 1,500 个行人。这也是为什么该数据集的评测指标通常以这 1,500 个测试行人实例为分母来统计。

2️⃣ 17 个属性 + 5 个场景:标注体系详解

CityPersons 的属性标注覆盖三个层面,新手理解这三层就能看懂大部分 PAVR 论文:

属性三个层面

  1. 外观属性:上衣颜色(上装红/蓝/绿/黄/灰/黑/白等)、下装颜色、鞋的颜色
  2. 形态属性:性别、年龄(儿童/成人/老人)、体型(瘦/胖)、是否背包、是否打伞、是否拿包
  3. 场景属性:背景场景(5 类)

每个行人实例的标注可以理解为"一个属性向量":比如「成人 / 男性 / 上装蓝色 / 下装黑色 / 场景为车辆背景」,评测时预测向量和标注向量逐位对比。

3️⃣ 官方数据划分与使用约定

CityPersons 沿用了 INRIA Person 的训练/测试图像划分(train_3k / test_3k 的裁剪结果):

  • 📁训练:100 张图像,用于训练模型
  • 📁测试:251 张图像中的1,500 个行人实例,作为固定评测集

⚠️ 新手最常踩的坑:测试集不是"251 张图里全部行人",而是官方标注文件中选定的 1,500 个实例。自己随意框人再评测,分数会和论文对不上。

使用时建议遵循两个约定:

  1. 只在官方标注行人实例上计算指标,保证可比性
  2. 属性标签使用官方 17 类词表,不要私自合并或增删类别

4️⃣ 评测指标:AP 与 mAP 怎么看

PAVR 任务的标准评测流程是"先检测、再认属性",指标分两级:

  • 属性级 AP:对每一个属性(如"上装蓝色"),把"预测该属性为真且行人框置信度达标"当作正样本计算 AP(Average Precision)
  • mAP:对 17 个属性(或含场景标签)的 AP 取平均,是论文里最常报的主指标

理解要点:

  • 检测不准 → 行人框都错了,属性 AP 自然上不去,这就是行人检测精度与属性识别表现强相关的原因
  • 遮挡严重的小行人 → 是拉低 mAP 的主力,很多模型会专门针对小目标做优化

5️⃣ PATH-ViTB:两个检查点文件名里的"评测密码" 🔍

PATH-ViTB 仓库直接给出了在 CityPersons 上评测所用的行人检测模型权重。虽然仓库文件很少,但检查点的文件名本身就是配置摘要,值得逐段拆解。

仓库核心文件清单:

  • README.md
  • v100_32g_vitbase_size224_lr1e3_stepLRx3_bmp1_adafactor_wd01_clip05_layerdecay075_lpe_peddet_citypersons_LSA_reduct8_tbn1_heads2_gate1_peddetShareDecoder_exp3_setting_SharePosEmbed.pth(约 343 MB)
  • vitlarge_size224_lr5e4_stepLRx3_bmp1_adafactor_clip05_wd01_layerdecay08_lpe_LSA_reduct8_tbn1_heads2_gate1_peddetDPR02_peddetShareDecoder_exp3_setting_SharePosEmbed.pth(约 1.16 GB)

📌 两个.pth文件较大(约 343 MB / 1.16 GB),仓库通过 Git LFS 管理二进制权重,见 .gitattributes。

从 ViT-Base 检查点名拆解配置

以较小的那个文件为例,分段翻译一下:

片段含义
v100_32g硬件环境:V100 GPU,显存 32G 预算
vitbase主干为 ViT-Base
size224输入分辨率 224×224
lr1e3/stepLRx3初始学习率 1e-3,按步长调度降为 1/3
adafactor使用 Adafactor 优化器
wd01权重衰减 0.1
clip05梯度裁剪 0.5
layerdecay075层衰减系数 0.75
lpe/LSA/tbn1位置编码与注意力相关变体配置
heads2/gate1注意力头数 2,门控结构 ×1
peddet包含行人检测(pedestrian detection)头
peddet_citypersons明确在 CityPersons 评测设定下训练的检测模型
peddetShareDecoder检测与属性分支共享 decoder
SharePosEmbed共享位置编码

两个检查点的定位

  • ViT-Base + CityPersons:文件名直接带peddet_citypersons,是面向 CityPersons 标准评测的检测配置,体量小(约 343 MB),适合先跑通评测流程
  • ViT-Large + DPR02:更大的主干(约 1.16 GB),带peddetDPR02配置,通常用于追求更高精度的实验

给新手的路径建议:先用 Base 版本把"检测 → 属性预测 → 指标统计"的完整流水线跑通,理解每一步输入输出,再换 Large 版本对比 mAP 变化。

6️⃣ 上手步骤:从拿到权重到跑通评测 🚀

  1. 拉取仓库(含 Git LFS 权重):
git clone https://gitcode.com/OpenGVLab/PATH-ViTB cd PATH-ViTB git lfs install git lfs pull
  1. 准备数据:下载 CityPersons 数据与官方 train/test 划分、属性标注词表
  2. 加载检查点:按上面的文件说明选择 Base 或 Large 权重
  3. 跑检测:在测试图像上输出行人框与置信度
  4. 预测属性:对每个行人框预测 17 类属性
  5. 统计指标:只在官方 1,500 个测试实例上计算属性 AP 与 mAP

7️⃣ 新手常见误区清单 🧯

误区正确做法
用测试集里全部行人评测只统计官方指定的 1,500 个实例
自定义属性词表严格使用官方 17 类词表
只报 mAP 不报 AP同时给出属性级 AP,便于定位短板
忽视小目标行人关注遮挡/小行人子集,这是精度瓶颈
以为权重文件能直接推理.pth只是权重,需要配套的模型结构与代码加载

写在最后

CityPersons 的价值在于"统一标尺":17 个属性、5 个场景、固定的 1,500 个测试行人实例,让不同模型(如 PATH-ViTB 提供的这两个检查点)的行人检测与属性识别结果可以横向比较。先理解标注体系和数据划分,再动手调参,你会少走很多弯路。祝评测顺利,mAP 稳步上涨!📈

【免费下载链接】PATH-ViTB

项目地址:https://ai.gitcode.com/OpenGVLab/PATH-ViTB
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询