本文包含 MPII箍邮、COCO 和 AI Challenger(AIC) 數(shù)據(jù)集的下載、標(biāo)注格式和測(cè)試指南,以及論文里常見(jiàn)的“將 AIC 作為 extra data 刷 COCO 結(jié)果”的操作指南。
原文:2D多人姿態(tài)估計(jì)入門(mén)指南(0):數(shù)據(jù)集使用指南(內(nèi)含 AI Challenger/AIC 下載與使用指南)
1. MPII 數(shù)據(jù)集
1.1 下載
圖片:前往 MPII官網(wǎng) 下載
標(biāo)注:MPII 原始的標(biāo)注數(shù)據(jù)是 matlab 格式的,HRNet 將其轉(zhuǎn)換到了 json 格式的標(biāo)注數(shù)據(jù) [OneDrive, GoogleDrive]该抒,這也是論文中常用的標(biāo)注。
1.2 標(biāo)注格式
[{ "joints_vis": [1, ···], "joints": [[x1,y1], ···], "image": "000003072.jpg", "scale": 1.946961, "center": [754.0, 335.0] }, ···]
MPII 的標(biāo)注文件是一個(gè)列表顶燕,每一項(xiàng)代表一個(gè)人體以及該人體的標(biāo)注凑保,以下是每一項(xiàng)人體標(biāo)注的內(nèi)容解析
joints_vis: 長(zhǎng)度16,0 不可見(jiàn), 1 可見(jiàn)
joints: 特征點(diǎn)坐標(biāo)割岛,共16個(gè)特征點(diǎn)愉适,長(zhǎng)度2*16,index與特征點(diǎn)對(duì)應(yīng)關(guān)系如下
0 - r ankle, 1 - r knee, 2 - r hip, 3 - l hip, 4 - l knee, 5 - l ankle, 6 - pelvis, 7 - thorax, 8 - upper neck, 9 - head top, 10 - r wrist, 11 - r elbow, 12 - r shoulder, 13 - l shoulder, 14 - l elbow, 15 - l wrist
image: 圖片文件名
scale 和 center: MPII 人體框 bbox 是正方形的癣漆,center 代表 bbox 的中心维咸,scale*200 為正方形的邊長(zhǎng),這也是為什么 MPII 數(shù)據(jù)集上模型的輸入也都是正方形居多。
1.3 測(cè)試
Predictions should emailed to [eldar at mpi-inf.mpg.de]. At most four submissions for the same approach are allowed. Any two submissions must be 72 hours apart.
關(guān)于 MPII test 集的測(cè)試方法 ······ 就比較迷癌蓖,之前某段時(shí)間釋放出了 test 集上的標(biāo)注數(shù)據(jù)瞬哼,但是現(xiàn)在官網(wǎng)又恢復(fù)接收預(yù)測(cè)結(jié)果了,可能是管理者換屆或者在躺平與不躺平之間掙扎 emm
2. COCO 數(shù)據(jù)集
2.1 下載
圖片與標(biāo)注數(shù)據(jù)在 COCO官網(wǎng) 均提供下載
2.2 標(biāo)注格式
COCO 的標(biāo)注中包含 4 個(gè)部分/字段租副,"info" 描述數(shù)據(jù)集坐慰,"licenses" 描述圖片來(lái)源,"images" 和 "annotations" 是主體部分
"images" 部分是一個(gè)列表用僧,每一項(xiàng)是一張圖片的基本信息與圖片 ID结胀,ID是為了方便 annotation 回溯對(duì)應(yīng)圖片,該部分格式如下:
[{
"license": 3,
"file_name": "000000017905.jpg",
"coco_url": "http://images.cocodataset.org/val2017/000000017905.jpg",
"height": 640,
"width": 480,
"date_captured": "2013-11-16 18:01:33",
"flickr_url": "http://farm1.staticflickr.com/44/173771776_53b9c22bb6_z.jpg",
"id": 17905
}, ···]
id: 圖片 ID责循,對(duì)應(yīng) annotation 中的 image_id
"annotations" 部分是一個(gè)列表糟港,每一項(xiàng)是一個(gè)對(duì)象(人體、汽車(chē)等等)的一條標(biāo)注院仿,該部分格式如下:
"segmentations": "num_keypoints": 17 "area": "iscrowd": "keypoints": [x1,y1,vis1, ···], "image_id": 17905, "bbox": [81.27, 229.19, 119.39, 364.68], "category_id": 1, "id": 2157397
keypoints: 特征點(diǎn)坐標(biāo)與可見(jiàn)性秸抚,相當(dāng)于 MPII 的 joints+joints_vis,共17個(gè)個(gè)特征點(diǎn)歹垫,長(zhǎng)度3*17剥汤。可見(jiàn)性對(duì)應(yīng)關(guān)系為 { 0: "不可見(jiàn)", 1: "遮擋", 2: "可見(jiàn)" }排惨。index與特征點(diǎn)對(duì)應(yīng)關(guān)系如下
0: "nose", 1: "left_eye", 2: "right_eye", 3: "left_ear", 4: "right_ear", 5: "left_shoulder", 6: "right_shoulder", 7: "left_elbow", 8: "right_elbow", 9: "left_wrist", 10: "right_wrist", 11: "left_hip", 12: "right_hip", 13: "left_knee", 14: "right_knee", 15: "left_ankle", 16: "right_ankle"
image_id: 圖片 ID
bbox: [l, t, w, h] 格式的 bounding box
category_id: 標(biāo)注對(duì)象的類(lèi)別吭敢,如果是 1 則是人體,選入姿態(tài)估計(jì)任務(wù)的數(shù)據(jù)
id: 每一條標(biāo)注數(shù)據(jù)的ID
2.3 測(cè)試
可以在 Codalab-COCO Keypoint Challenge 在線(xiàn)提交暮芭,提交時(shí)有以下幾點(diǎn)需要注意:
在 test-dev2017 上提交時(shí)省有,要先將預(yù)測(cè)坐標(biāo)截?cái)嘀列?shù)點(diǎn)后 2 位,否則預(yù)測(cè)結(jié)果文件會(huì)過(guò)大
提交時(shí)要將預(yù)測(cè)結(jié)果文件打包成 zip 壓縮文件谴麦,直接上傳 json 文件會(huì)報(bào)錯(cuò)
如果需要在榜單上顯示隊(duì)伍/機(jī)構(gòu)名稱(chēng),則先建立隊(duì)伍伸头,然后在提交時(shí)填入隊(duì)伍名稱(chēng)匾效。
3. AI Challenger(AIC) 數(shù)據(jù)集
3.1 下載
AIC 官網(wǎng)已經(jīng)關(guān)閉,本人通過(guò)不懈尋找發(fā)現(xiàn)了民間隱藏的副本恤磷,這里先分享百度網(wǎng)盤(pán)面哼,鏈接見(jiàn)知乎文末,阿里云盤(pán)還在上傳中扫步。
3.2 標(biāo)注格式
原始的標(biāo)注數(shù)據(jù)格式缺少說(shuō)明魔策,我們這里使用 mmpose 轉(zhuǎn)換后的 aic_annotations,轉(zhuǎn)換后 json 字段格式與 COCO相同河胎,可以參見(jiàn) COCO的標(biāo)注格式闯袒。
轉(zhuǎn)換后的 AIC 標(biāo)注格式與 COCO 不同的是 ["annotations"]["keypoints"] 字段,包括特征點(diǎn)個(gè)數(shù)與“index與特征點(diǎn)對(duì)應(yīng)關(guān)系”是不同的。AIC 共14個(gè)個(gè)特征點(diǎn)政敢,長(zhǎng)度3*14其徙,可見(jiàn)性對(duì)應(yīng)關(guān)系與COCO相同。index與特征點(diǎn)對(duì)應(yīng)關(guān)系如下:
{ 0: "right shoulder", 1: "right elbow", 2: "right wrist", 3: "left shoulder", 4: "left elbow", 5: "left wrist", 6: "right hip", 7: "right knee", 8: "right ankle", 9: "left hip", 10: "left knee", 11: "left ankle", 12: "head tops" 13: "upper neck" }
3.3 轉(zhuǎn)換為 COCO 標(biāo)注格式
AIC 數(shù)據(jù)集在論文主要以 "extra data" 的形式出現(xiàn)喷户,因此最重要的是 “如何利用 AIC 數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練唾那,提升 COCO 數(shù)據(jù)集上的結(jié)果”。有兩種思路褪尝,一是在 AIC 數(shù)據(jù)集上先訓(xùn)練闹获,然后在 COCO train2017 數(shù)據(jù)集上訓(xùn)練;另一種思路是合并 AIC 和 COCO train2017 數(shù)據(jù)集河哑。因?yàn)閮蓚€(gè)數(shù)據(jù)集 "keypoints" 中特征點(diǎn)個(gè)數(shù)與“index與特征點(diǎn)對(duì)應(yīng)關(guān)系”是不同的避诽,不管哪種思路,我們都需要將 AIC "keypoints" 內(nèi)容轉(zhuǎn)換為 COCO 格式灾馒。
這里放上 aic2coco標(biāo)注格式轉(zhuǎn)換代碼茎用,其中的核心操作包括以下:
keypoints 下標(biāo)轉(zhuǎn)換
aic2coco = [6, 8, 10, 5, 7, 9, 12, 14, 16, 11, 13, 15, -1, -1]
coco2aic = [-1, -1, -1, -1, -1, 3, 0, 4, 1, 5, 2, 9, 6, 10, 7, 11, 8]
for j in range(5, 17):
aic_idx = coco2aic[j]
aic_train['annotations'][i]['keypoints'][3j] = aic_keypoints[3aic_idx]
aic_train['annotations'][i]['keypoints'][3j+1] = aic_keypoints[3aic_idx+1]
aic_train['annotations'][i]['keypoints'][3j+2] = aic_keypoints[3aic_idx+2]
如果要合并 AIC 和 COCO 的數(shù)據(jù),還需要注意 image_id (圖片ID) 和 id (標(biāo)注ID) 轉(zhuǎn)換睬罗,防止和 COCO 標(biāo)注文件中的 id 相同轨功。
aic_train['annotations'][i]['image_id'] += 600000
aic_train['annotations'][i]['id'] += 900100582000
4. 最后
AIC 數(shù)據(jù)鏈接請(qǐng)查看知乎原文,內(nèi)含已經(jīng)轉(zhuǎn)換到 COCO 17 keypoints 格式的標(biāo)注文件
碼字不易容达,歡迎點(diǎn)贊古涧、收藏和評(píng)論~
最后祝同樣研究人體姿態(tài)估計(jì)任務(wù)的小伙伴科研順利~