人体骨骼关键点检测
数据说明
训练集
组织方不提供统一的训练集,参赛者可以使用任意训练数据,比如 COCO(keypoints-2018),也可以使用自己构建的数据库。
测试集:
图片格式:文件夹body_keypoint_test
中测试图片后缀为.jpg
,分辨率不唯一。
测试数据集:单人
标注:人物的全部人体骨骼关键点共有17个,编号顺序如表所示,依次为
0/Pelvis | 1/R-hip | 2/R-knee | 3/R-ankle |
4/L-hip | 5/L-hip | 6/L-ankle | 7/Thorax |
8/Neck | 9/Head | 10/Head top | 11/L-shoulder |
12/L-elbow | 13/L-wrist | 14/R-shoulder | 15/R-elbow |
16/R-wrist |
每个人体骨骼关键点可见状态规定:=1;=1.5;其他15个关键点=2
三个标注的可视化例子如下图所示:
图2
图3
结果提交说明
运行环境
Ubuntu 16.04
GTX1080Ti 11GB
pyotrch=0.4.1/tensorflow=1.4.0
可执行文件
把需要的包写在requirements.txt,根据选手提供的requirements.txt在服务器上安装好项目的依赖包,再运行python test.py --data_dir xxxxxxx(测试集数据目录)
返回结果应为一个json
文件(keypoint_result.json
),格式如数据输出部分所示。并保存到目录下的./keypoint_result
文件夹中。
数据输入
根据上面给定的测试集说明,请选手在实现中自己定义数据的输入,通过--data_dir
定义的数据路径实现数据的读入。
例如:
给定test.py
,应能够在服务器运行环境中按如下格式顺利运行:
python test.py --data_dir xxxxxxxx(测试集数据目录)
数据输出
选手在测试集返回的结果应为JSON文件,格式如下:
[
{
"image_id": "4783.jpg",
"bbox":[128.35,96.02,585.85,1077.02]
"keypoint_annotations":
[341.21,554.72,1,273,558.31,2,283.77,809.61,2,276.59,1032.19,2,409.42,551.13,2,413.01,806.02,2,452.5,1039.37,2,337.62,370.433,1.5,337.62,242.39,2,343.005,170.59,2,348.39,98.79,2,434.55,278.29,2,556.61,360.86,2,463.27,461.38,2,233.51,278.29,2,165.3,403.94,2,201.2,263.93,2 ]
}
...
]
其中image_id
字段为图片名,bbox
字段为bounding box左上角坐标(x,y)、bounding box右下角坐标(x,y),keypoint_annotations
字段为若干长度为51的数列,人体骨骼关键点的编号顺序依次为:{0-Pelvis 1-Rhip 2-Rkne 3-Rank 4Lhip 5-Lkne 6-Lank 7-Thorax 8-Neck 9-Head 10-Headtop 11-Lsho 12-Lelb 13-Lwri 14-Rsho 15-Relb 16-Rwri}
。未检测出的人体骨骼关键点可用(0,0,0)代替。
评价标准
主要评估指标为平均精度均值 mAP(mean average precision):
AP(平均精度)计算公式如下:
其中,Object Keypoint Similarity (OKS) 为对象关键点相似度:
OKS 公式中,,为对象尺度,为一个控制衰减的按键控制常数,表示实际真值的可见性标记。
提交方式
参赛队伍需将整个项目打包为学校名称+参赛队伍名称+课题名.zip。通过大赛官方邮箱进行提交(TOP@iconos.tech)。每支队伍每周最多提交两次。