diff --git a/README.md b/README.md
index 648838963a..644ea97b74 100644
--- a/README.md
+++ b/README.md
@@ -91,6 +91,7 @@ Supported [datasets](https://mmpose.readthedocs.io/en/latest/datasets.html):
- [x] [COCO](https://mmpose.readthedocs.io/en/latest/papers/datasets.html#coco-eccv-2014) \[[homepage](http://cocodataset.org/)\] (ECCV'2014)
- [x] [COCO-WholeBody](https://mmpose.readthedocs.io/en/latest/papers/datasets.html#coco-wholebody-eccv-2020) \[[homepage](https://github.com/jin-s13/COCO-WholeBody/)\] (ECCV'2020)
+- [x] [Halpe](https://mmpose.readthedocs.io/en/latest/papers/datasets.html#halpe-cvpr-2020) \[[homepage](https://github.com/Fang-Haoshu/Halpe-FullBody/)\] (CVPR'2020)
- [x] [MPII](https://mmpose.readthedocs.io/en/latest/papers/datasets.html#mpii-cvpr-2014) \[[homepage](http://human-pose.mpi-inf.mpg.de/)\] (CVPR'2014)
- [x] [MPII-TRB](https://mmpose.readthedocs.io/en/latest/papers/datasets.html#mpii-trb-iccv-2019) \[[homepage](https://github.com/kennymckormick/Triplet-Representation-of-human-Body)\] (ICCV'2019)
- [x] [AI Challenger](https://mmpose.readthedocs.io/en/latest/papers/datasets.html#ai-challenger-arxiv-2017) \[[homepage](https://github.com/AIChallenger/AI_Challenger_2017)\] (ArXiv'2017)
diff --git a/README_CN.md b/README_CN.md
index bb267b0d13..9ab5e68edf 100644
--- a/README_CN.md
+++ b/README_CN.md
@@ -91,6 +91,7 @@ https://user-images.githubusercontent.com/15977946/124654387-0fd3c500-ded1-11eb-
- [x] [COCO](https://mmpose.readthedocs.io/zh_CN/latest/papers/datasets.html#coco-eccv-2014) \[[homepage](http://cocodataset.org/)\] (ECCV'2014)
- [x] [COCO-WholeBody](https://mmpose.readthedocs.io/zh_CN/latest/papers/datasets.html#coco-wholebody-eccv-2020) \[[homepage](https://github.com/jin-s13/COCO-WholeBody/)\] (ECCV'2020)
+- [x] [Halpe](https://mmpose.readthedocs.io/en/latest/papers/datasets.html#halpe-cvpr-2020) \[[homepage](https://github.com/Fang-Haoshu/Halpe-FullBody/)\] (CVPR'2020)
- [x] [MPII](https://mmpose.readthedocs.io/zh_CN/latest/papers/datasets.html#mpii-cvpr-2014) \[[homepage](http://human-pose.mpi-inf.mpg.de/)\] (CVPR'2014)
- [x] [MPII-TRB](https://mmpose.readthedocs.io/zh_CN/latest/papers/datasets.html#mpii-trb-iccv-2019) \[[homepage](https://github.com/kennymckormick/Triplet-Representation-of-human-Body)\] (ICCV'2019)
- [x] [AI Challenger](https://mmpose.readthedocs.io/zh_CN/latest/papers/datasets.html#ai-challenger-arxiv-2017) \[[homepage](https://github.com/AIChallenger/AI_Challenger_2017)\] (ArXiv'2017)
diff --git a/configs/_base_/datasets/halpe.py b/configs/_base_/datasets/halpe.py
new file mode 100644
index 0000000000..1385fe81dc
--- /dev/null
+++ b/configs/_base_/datasets/halpe.py
@@ -0,0 +1,1157 @@
+dataset_info = dict(
+ dataset_name='halpe',
+ paper_info=dict(
+ author='Li, Yong-Lu and Xu, Liang and Liu, Xinpeng and Huang, Xijie'
+ ' and Xu, Yue and Wang, Shiyi and Fang, Hao-Shu'
+ ' and Ma, Ze and Chen, Mingyang and Lu, Cewu',
+ title='PaStaNet: Toward Human Activity Knowledge Engine',
+ container='CVPR',
+ year='2020',
+ homepage='https://github.com/Fang-Haoshu/Halpe-FullBody/',
+ ),
+ keypoint_info={
+ 0:
+ dict(name='nose', id=0, color=[51, 153, 255], type='upper', swap=''),
+ 1:
+ dict(
+ name='left_eye',
+ id=1,
+ color=[51, 153, 255],
+ type='upper',
+ swap='right_eye'),
+ 2:
+ dict(
+ name='right_eye',
+ id=2,
+ color=[51, 153, 255],
+ type='upper',
+ swap='left_eye'),
+ 3:
+ dict(
+ name='left_ear',
+ id=3,
+ color=[51, 153, 255],
+ type='upper',
+ swap='right_ear'),
+ 4:
+ dict(
+ name='right_ear',
+ id=4,
+ color=[51, 153, 255],
+ type='upper',
+ swap='left_ear'),
+ 5:
+ dict(
+ name='left_shoulder',
+ id=5,
+ color=[0, 255, 0],
+ type='upper',
+ swap='right_shoulder'),
+ 6:
+ dict(
+ name='right_shoulder',
+ id=6,
+ color=[255, 128, 0],
+ type='upper',
+ swap='left_shoulder'),
+ 7:
+ dict(
+ name='left_elbow',
+ id=7,
+ color=[0, 255, 0],
+ type='upper',
+ swap='right_elbow'),
+ 8:
+ dict(
+ name='right_elbow',
+ id=8,
+ color=[255, 128, 0],
+ type='upper',
+ swap='left_elbow'),
+ 9:
+ dict(
+ name='left_wrist',
+ id=9,
+ color=[0, 255, 0],
+ type='upper',
+ swap='right_wrist'),
+ 10:
+ dict(
+ name='right_wrist',
+ id=10,
+ color=[255, 128, 0],
+ type='upper',
+ swap='left_wrist'),
+ 11:
+ dict(
+ name='left_hip',
+ id=11,
+ color=[0, 255, 0],
+ type='lower',
+ swap='right_hip'),
+ 12:
+ dict(
+ name='right_hip',
+ id=12,
+ color=[255, 128, 0],
+ type='lower',
+ swap='left_hip'),
+ 13:
+ dict(
+ name='left_knee',
+ id=13,
+ color=[0, 255, 0],
+ type='lower',
+ swap='right_knee'),
+ 14:
+ dict(
+ name='right_knee',
+ id=14,
+ color=[255, 128, 0],
+ type='lower',
+ swap='left_knee'),
+ 15:
+ dict(
+ name='left_ankle',
+ id=15,
+ color=[0, 255, 0],
+ type='lower',
+ swap='right_ankle'),
+ 16:
+ dict(
+ name='right_ankle',
+ id=16,
+ color=[255, 128, 0],
+ type='lower',
+ swap='left_ankle'),
+ 17:
+ dict(name='head', id=17, color=[255, 128, 0], type='upper', swap=''),
+ 18:
+ dict(name='neck', id=18, color=[255, 128, 0], type='upper', swap=''),
+ 19:
+ dict(name='hip', id=19, color=[255, 128, 0], type='lower', swap=''),
+ 20:
+ dict(
+ name='left_big_toe',
+ id=20,
+ color=[255, 128, 0],
+ type='lower',
+ swap='right_big_toe'),
+ 21:
+ dict(
+ name='right_big_toe',
+ id=21,
+ color=[255, 128, 0],
+ type='lower',
+ swap='left_big_toe'),
+ 22:
+ dict(
+ name='left_small_toe',
+ id=22,
+ color=[255, 128, 0],
+ type='lower',
+ swap='right_small_toe'),
+ 23:
+ dict(
+ name='right_small_toe',
+ id=23,
+ color=[255, 128, 0],
+ type='lower',
+ swap='left_small_toe'),
+ 24:
+ dict(
+ name='left_heel',
+ id=24,
+ color=[255, 128, 0],
+ type='lower',
+ swap='right_heel'),
+ 25:
+ dict(
+ name='right_heel',
+ id=25,
+ color=[255, 128, 0],
+ type='lower',
+ swap='left_heel'),
+ 26:
+ dict(
+ name='face-0',
+ id=26,
+ color=[255, 255, 255],
+ type='',
+ swap='face-16'),
+ 27:
+ dict(
+ name='face-1',
+ id=27,
+ color=[255, 255, 255],
+ type='',
+ swap='face-15'),
+ 28:
+ dict(
+ name='face-2',
+ id=28,
+ color=[255, 255, 255],
+ type='',
+ swap='face-14'),
+ 29:
+ dict(
+ name='face-3',
+ id=29,
+ color=[255, 255, 255],
+ type='',
+ swap='face-13'),
+ 30:
+ dict(
+ name='face-4',
+ id=30,
+ color=[255, 255, 255],
+ type='',
+ swap='face-12'),
+ 31:
+ dict(
+ name='face-5',
+ id=31,
+ color=[255, 255, 255],
+ type='',
+ swap='face-11'),
+ 32:
+ dict(
+ name='face-6',
+ id=32,
+ color=[255, 255, 255],
+ type='',
+ swap='face-10'),
+ 33:
+ dict(
+ name='face-7',
+ id=33,
+ color=[255, 255, 255],
+ type='',
+ swap='face-9'),
+ 34:
+ dict(name='face-8', id=34, color=[255, 255, 255], type='', swap=''),
+ 35:
+ dict(
+ name='face-9',
+ id=35,
+ color=[255, 255, 255],
+ type='',
+ swap='face-7'),
+ 36:
+ dict(
+ name='face-10',
+ id=36,
+ color=[255, 255, 255],
+ type='',
+ swap='face-6'),
+ 37:
+ dict(
+ name='face-11',
+ id=37,
+ color=[255, 255, 255],
+ type='',
+ swap='face-5'),
+ 38:
+ dict(
+ name='face-12',
+ id=38,
+ color=[255, 255, 255],
+ type='',
+ swap='face-4'),
+ 39:
+ dict(
+ name='face-13',
+ id=39,
+ color=[255, 255, 255],
+ type='',
+ swap='face-3'),
+ 40:
+ dict(
+ name='face-14',
+ id=40,
+ color=[255, 255, 255],
+ type='',
+ swap='face-2'),
+ 41:
+ dict(
+ name='face-15',
+ id=41,
+ color=[255, 255, 255],
+ type='',
+ swap='face-1'),
+ 42:
+ dict(
+ name='face-16',
+ id=42,
+ color=[255, 255, 255],
+ type='',
+ swap='face-0'),
+ 43:
+ dict(
+ name='face-17',
+ id=43,
+ color=[255, 255, 255],
+ type='',
+ swap='face-26'),
+ 44:
+ dict(
+ name='face-18',
+ id=44,
+ color=[255, 255, 255],
+ type='',
+ swap='face-25'),
+ 45:
+ dict(
+ name='face-19',
+ id=45,
+ color=[255, 255, 255],
+ type='',
+ swap='face-24'),
+ 46:
+ dict(
+ name='face-20',
+ id=46,
+ color=[255, 255, 255],
+ type='',
+ swap='face-23'),
+ 47:
+ dict(
+ name='face-21',
+ id=47,
+ color=[255, 255, 255],
+ type='',
+ swap='face-22'),
+ 48:
+ dict(
+ name='face-22',
+ id=48,
+ color=[255, 255, 255],
+ type='',
+ swap='face-21'),
+ 49:
+ dict(
+ name='face-23',
+ id=49,
+ color=[255, 255, 255],
+ type='',
+ swap='face-20'),
+ 50:
+ dict(
+ name='face-24',
+ id=50,
+ color=[255, 255, 255],
+ type='',
+ swap='face-19'),
+ 51:
+ dict(
+ name='face-25',
+ id=51,
+ color=[255, 255, 255],
+ type='',
+ swap='face-18'),
+ 52:
+ dict(
+ name='face-26',
+ id=52,
+ color=[255, 255, 255],
+ type='',
+ swap='face-17'),
+ 53:
+ dict(name='face-27', id=53, color=[255, 255, 255], type='', swap=''),
+ 54:
+ dict(name='face-28', id=54, color=[255, 255, 255], type='', swap=''),
+ 55:
+ dict(name='face-29', id=55, color=[255, 255, 255], type='', swap=''),
+ 56:
+ dict(name='face-30', id=56, color=[255, 255, 255], type='', swap=''),
+ 57:
+ dict(
+ name='face-31',
+ id=57,
+ color=[255, 255, 255],
+ type='',
+ swap='face-35'),
+ 58:
+ dict(
+ name='face-32',
+ id=58,
+ color=[255, 255, 255],
+ type='',
+ swap='face-34'),
+ 59:
+ dict(name='face-33', id=59, color=[255, 255, 255], type='', swap=''),
+ 60:
+ dict(
+ name='face-34',
+ id=60,
+ color=[255, 255, 255],
+ type='',
+ swap='face-32'),
+ 61:
+ dict(
+ name='face-35',
+ id=61,
+ color=[255, 255, 255],
+ type='',
+ swap='face-31'),
+ 62:
+ dict(
+ name='face-36',
+ id=62,
+ color=[255, 255, 255],
+ type='',
+ swap='face-45'),
+ 63:
+ dict(
+ name='face-37',
+ id=63,
+ color=[255, 255, 255],
+ type='',
+ swap='face-44'),
+ 64:
+ dict(
+ name='face-38',
+ id=64,
+ color=[255, 255, 255],
+ type='',
+ swap='face-43'),
+ 65:
+ dict(
+ name='face-39',
+ id=65,
+ color=[255, 255, 255],
+ type='',
+ swap='face-42'),
+ 66:
+ dict(
+ name='face-40',
+ id=66,
+ color=[255, 255, 255],
+ type='',
+ swap='face-47'),
+ 67:
+ dict(
+ name='face-41',
+ id=67,
+ color=[255, 255, 255],
+ type='',
+ swap='face-46'),
+ 68:
+ dict(
+ name='face-42',
+ id=68,
+ color=[255, 255, 255],
+ type='',
+ swap='face-39'),
+ 69:
+ dict(
+ name='face-43',
+ id=69,
+ color=[255, 255, 255],
+ type='',
+ swap='face-38'),
+ 70:
+ dict(
+ name='face-44',
+ id=70,
+ color=[255, 255, 255],
+ type='',
+ swap='face-37'),
+ 71:
+ dict(
+ name='face-45',
+ id=71,
+ color=[255, 255, 255],
+ type='',
+ swap='face-36'),
+ 72:
+ dict(
+ name='face-46',
+ id=72,
+ color=[255, 255, 255],
+ type='',
+ swap='face-41'),
+ 73:
+ dict(
+ name='face-47',
+ id=73,
+ color=[255, 255, 255],
+ type='',
+ swap='face-40'),
+ 74:
+ dict(
+ name='face-48',
+ id=74,
+ color=[255, 255, 255],
+ type='',
+ swap='face-54'),
+ 75:
+ dict(
+ name='face-49',
+ id=75,
+ color=[255, 255, 255],
+ type='',
+ swap='face-53'),
+ 76:
+ dict(
+ name='face-50',
+ id=76,
+ color=[255, 255, 255],
+ type='',
+ swap='face-52'),
+ 77:
+ dict(name='face-51', id=77, color=[255, 255, 255], type='', swap=''),
+ 78:
+ dict(
+ name='face-52',
+ id=78,
+ color=[255, 255, 255],
+ type='',
+ swap='face-50'),
+ 79:
+ dict(
+ name='face-53',
+ id=79,
+ color=[255, 255, 255],
+ type='',
+ swap='face-49'),
+ 80:
+ dict(
+ name='face-54',
+ id=80,
+ color=[255, 255, 255],
+ type='',
+ swap='face-48'),
+ 81:
+ dict(
+ name='face-55',
+ id=81,
+ color=[255, 255, 255],
+ type='',
+ swap='face-59'),
+ 82:
+ dict(
+ name='face-56',
+ id=82,
+ color=[255, 255, 255],
+ type='',
+ swap='face-58'),
+ 83:
+ dict(name='face-57', id=83, color=[255, 255, 255], type='', swap=''),
+ 84:
+ dict(
+ name='face-58',
+ id=84,
+ color=[255, 255, 255],
+ type='',
+ swap='face-56'),
+ 85:
+ dict(
+ name='face-59',
+ id=85,
+ color=[255, 255, 255],
+ type='',
+ swap='face-55'),
+ 86:
+ dict(
+ name='face-60',
+ id=86,
+ color=[255, 255, 255],
+ type='',
+ swap='face-64'),
+ 87:
+ dict(
+ name='face-61',
+ id=87,
+ color=[255, 255, 255],
+ type='',
+ swap='face-63'),
+ 88:
+ dict(name='face-62', id=88, color=[255, 255, 255], type='', swap=''),
+ 89:
+ dict(
+ name='face-63',
+ id=89,
+ color=[255, 255, 255],
+ type='',
+ swap='face-61'),
+ 90:
+ dict(
+ name='face-64',
+ id=90,
+ color=[255, 255, 255],
+ type='',
+ swap='face-60'),
+ 91:
+ dict(
+ name='face-65',
+ id=91,
+ color=[255, 255, 255],
+ type='',
+ swap='face-67'),
+ 92:
+ dict(name='face-66', id=92, color=[255, 255, 255], type='', swap=''),
+ 93:
+ dict(
+ name='face-67',
+ id=93,
+ color=[255, 255, 255],
+ type='',
+ swap='face-65'),
+ 94:
+ dict(
+ name='left_hand_root',
+ id=94,
+ color=[255, 255, 255],
+ type='',
+ swap='right_hand_root'),
+ 95:
+ dict(
+ name='left_thumb1',
+ id=95,
+ color=[255, 128, 0],
+ type='',
+ swap='right_thumb1'),
+ 96:
+ dict(
+ name='left_thumb2',
+ id=96,
+ color=[255, 128, 0],
+ type='',
+ swap='right_thumb2'),
+ 97:
+ dict(
+ name='left_thumb3',
+ id=97,
+ color=[255, 128, 0],
+ type='',
+ swap='right_thumb3'),
+ 98:
+ dict(
+ name='left_thumb4',
+ id=98,
+ color=[255, 128, 0],
+ type='',
+ swap='right_thumb4'),
+ 99:
+ dict(
+ name='left_forefinger1',
+ id=99,
+ color=[255, 153, 255],
+ type='',
+ swap='right_forefinger1'),
+ 100:
+ dict(
+ name='left_forefinger2',
+ id=100,
+ color=[255, 153, 255],
+ type='',
+ swap='right_forefinger2'),
+ 101:
+ dict(
+ name='left_forefinger3',
+ id=101,
+ color=[255, 153, 255],
+ type='',
+ swap='right_forefinger3'),
+ 102:
+ dict(
+ name='left_forefinger4',
+ id=102,
+ color=[255, 153, 255],
+ type='',
+ swap='right_forefinger4'),
+ 103:
+ dict(
+ name='left_middle_finger1',
+ id=103,
+ color=[102, 178, 255],
+ type='',
+ swap='right_middle_finger1'),
+ 104:
+ dict(
+ name='left_middle_finger2',
+ id=104,
+ color=[102, 178, 255],
+ type='',
+ swap='right_middle_finger2'),
+ 105:
+ dict(
+ name='left_middle_finger3',
+ id=105,
+ color=[102, 178, 255],
+ type='',
+ swap='right_middle_finger3'),
+ 106:
+ dict(
+ name='left_middle_finger4',
+ id=106,
+ color=[102, 178, 255],
+ type='',
+ swap='right_middle_finger4'),
+ 107:
+ dict(
+ name='left_ring_finger1',
+ id=107,
+ color=[255, 51, 51],
+ type='',
+ swap='right_ring_finger1'),
+ 108:
+ dict(
+ name='left_ring_finger2',
+ id=108,
+ color=[255, 51, 51],
+ type='',
+ swap='right_ring_finger2'),
+ 109:
+ dict(
+ name='left_ring_finger3',
+ id=109,
+ color=[255, 51, 51],
+ type='',
+ swap='right_ring_finger3'),
+ 110:
+ dict(
+ name='left_ring_finger4',
+ id=110,
+ color=[255, 51, 51],
+ type='',
+ swap='right_ring_finger4'),
+ 111:
+ dict(
+ name='left_pinky_finger1',
+ id=111,
+ color=[0, 255, 0],
+ type='',
+ swap='right_pinky_finger1'),
+ 112:
+ dict(
+ name='left_pinky_finger2',
+ id=112,
+ color=[0, 255, 0],
+ type='',
+ swap='right_pinky_finger2'),
+ 113:
+ dict(
+ name='left_pinky_finger3',
+ id=113,
+ color=[0, 255, 0],
+ type='',
+ swap='right_pinky_finger3'),
+ 114:
+ dict(
+ name='left_pinky_finger4',
+ id=114,
+ color=[0, 255, 0],
+ type='',
+ swap='right_pinky_finger4'),
+ 115:
+ dict(
+ name='right_hand_root',
+ id=115,
+ color=[255, 255, 255],
+ type='',
+ swap='left_hand_root'),
+ 116:
+ dict(
+ name='right_thumb1',
+ id=116,
+ color=[255, 128, 0],
+ type='',
+ swap='left_thumb1'),
+ 117:
+ dict(
+ name='right_thumb2',
+ id=117,
+ color=[255, 128, 0],
+ type='',
+ swap='left_thumb2'),
+ 118:
+ dict(
+ name='right_thumb3',
+ id=118,
+ color=[255, 128, 0],
+ type='',
+ swap='left_thumb3'),
+ 119:
+ dict(
+ name='right_thumb4',
+ id=119,
+ color=[255, 128, 0],
+ type='',
+ swap='left_thumb4'),
+ 120:
+ dict(
+ name='right_forefinger1',
+ id=120,
+ color=[255, 153, 255],
+ type='',
+ swap='left_forefinger1'),
+ 121:
+ dict(
+ name='right_forefinger2',
+ id=121,
+ color=[255, 153, 255],
+ type='',
+ swap='left_forefinger2'),
+ 122:
+ dict(
+ name='right_forefinger3',
+ id=122,
+ color=[255, 153, 255],
+ type='',
+ swap='left_forefinger3'),
+ 123:
+ dict(
+ name='right_forefinger4',
+ id=123,
+ color=[255, 153, 255],
+ type='',
+ swap='left_forefinger4'),
+ 124:
+ dict(
+ name='right_middle_finger1',
+ id=124,
+ color=[102, 178, 255],
+ type='',
+ swap='left_middle_finger1'),
+ 125:
+ dict(
+ name='right_middle_finger2',
+ id=125,
+ color=[102, 178, 255],
+ type='',
+ swap='left_middle_finger2'),
+ 126:
+ dict(
+ name='right_middle_finger3',
+ id=126,
+ color=[102, 178, 255],
+ type='',
+ swap='left_middle_finger3'),
+ 127:
+ dict(
+ name='right_middle_finger4',
+ id=127,
+ color=[102, 178, 255],
+ type='',
+ swap='left_middle_finger4'),
+ 128:
+ dict(
+ name='right_ring_finger1',
+ id=128,
+ color=[255, 51, 51],
+ type='',
+ swap='left_ring_finger1'),
+ 129:
+ dict(
+ name='right_ring_finger2',
+ id=129,
+ color=[255, 51, 51],
+ type='',
+ swap='left_ring_finger2'),
+ 130:
+ dict(
+ name='right_ring_finger3',
+ id=130,
+ color=[255, 51, 51],
+ type='',
+ swap='left_ring_finger3'),
+ 131:
+ dict(
+ name='right_ring_finger4',
+ id=131,
+ color=[255, 51, 51],
+ type='',
+ swap='left_ring_finger4'),
+ 132:
+ dict(
+ name='right_pinky_finger1',
+ id=132,
+ color=[0, 255, 0],
+ type='',
+ swap='left_pinky_finger1'),
+ 133:
+ dict(
+ name='right_pinky_finger2',
+ id=133,
+ color=[0, 255, 0],
+ type='',
+ swap='left_pinky_finger2'),
+ 134:
+ dict(
+ name='right_pinky_finger3',
+ id=134,
+ color=[0, 255, 0],
+ type='',
+ swap='left_pinky_finger3'),
+ 135:
+ dict(
+ name='right_pinky_finger4',
+ id=135,
+ color=[0, 255, 0],
+ type='',
+ swap='left_pinky_finger4')
+ },
+ skeleton_info={
+ 0:
+ dict(link=('left_ankle', 'left_knee'), id=0, color=[0, 255, 0]),
+ 1:
+ dict(link=('left_knee', 'left_hip'), id=1, color=[0, 255, 0]),
+ 2:
+ dict(link=('left_hip', 'hip'), id=2, color=[0, 255, 0]),
+ 3:
+ dict(link=('right_ankle', 'right_knee'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('right_knee', 'right_hip'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('right_hip', 'hip'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('head', 'neck'), id=6, color=[51, 153, 255]),
+ 7:
+ dict(link=('neck', 'hip'), id=7, color=[51, 153, 255]),
+ 8:
+ dict(link=('neck', 'left_shoulder'), id=8, color=[0, 255, 0]),
+ 9:
+ dict(link=('left_shoulder', 'left_elbow'), id=9, color=[0, 255, 0]),
+ 10:
+ dict(link=('left_elbow', 'left_wrist'), id=10, color=[0, 255, 0]),
+ 11:
+ dict(link=('neck', 'right_shoulder'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(
+ link=('right_shoulder', 'right_elbow'), id=12, color=[255, 128,
+ 0]),
+ 13:
+ dict(link=('right_elbow', 'right_wrist'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('left_eye', 'right_eye'), id=14, color=[51, 153, 255]),
+ 15:
+ dict(link=('nose', 'left_eye'), id=15, color=[51, 153, 255]),
+ 16:
+ dict(link=('nose', 'right_eye'), id=16, color=[51, 153, 255]),
+ 17:
+ dict(link=('left_eye', 'left_ear'), id=17, color=[51, 153, 255]),
+ 18:
+ dict(link=('right_eye', 'right_ear'), id=18, color=[51, 153, 255]),
+ 19:
+ dict(link=('left_ear', 'left_shoulder'), id=19, color=[51, 153, 255]),
+ 20:
+ dict(
+ link=('right_ear', 'right_shoulder'), id=20, color=[51, 153, 255]),
+ 21:
+ dict(link=('left_ankle', 'left_big_toe'), id=21, color=[0, 255, 0]),
+ 22:
+ dict(link=('left_ankle', 'left_small_toe'), id=22, color=[0, 255, 0]),
+ 23:
+ dict(link=('left_ankle', 'left_heel'), id=23, color=[0, 255, 0]),
+ 24:
+ dict(
+ link=('right_ankle', 'right_big_toe'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(
+ link=('right_ankle', 'right_small_toe'),
+ id=25,
+ color=[255, 128, 0]),
+ 26:
+ dict(link=('right_ankle', 'right_heel'), id=26, color=[255, 128, 0]),
+ 27:
+ dict(link=('left_wrist', 'left_thumb1'), id=27, color=[255, 128, 0]),
+ 28:
+ dict(link=('left_thumb1', 'left_thumb2'), id=28, color=[255, 128, 0]),
+ 29:
+ dict(link=('left_thumb2', 'left_thumb3'), id=29, color=[255, 128, 0]),
+ 30:
+ dict(link=('left_thumb3', 'left_thumb4'), id=30, color=[255, 128, 0]),
+ 31:
+ dict(
+ link=('left_wrist', 'left_forefinger1'),
+ id=31,
+ color=[255, 153, 255]),
+ 32:
+ dict(
+ link=('left_forefinger1', 'left_forefinger2'),
+ id=32,
+ color=[255, 153, 255]),
+ 33:
+ dict(
+ link=('left_forefinger2', 'left_forefinger3'),
+ id=33,
+ color=[255, 153, 255]),
+ 34:
+ dict(
+ link=('left_forefinger3', 'left_forefinger4'),
+ id=34,
+ color=[255, 153, 255]),
+ 35:
+ dict(
+ link=('left_wrist', 'left_middle_finger1'),
+ id=35,
+ color=[102, 178, 255]),
+ 36:
+ dict(
+ link=('left_middle_finger1', 'left_middle_finger2'),
+ id=36,
+ color=[102, 178, 255]),
+ 37:
+ dict(
+ link=('left_middle_finger2', 'left_middle_finger3'),
+ id=37,
+ color=[102, 178, 255]),
+ 38:
+ dict(
+ link=('left_middle_finger3', 'left_middle_finger4'),
+ id=38,
+ color=[102, 178, 255]),
+ 39:
+ dict(
+ link=('left_wrist', 'left_ring_finger1'),
+ id=39,
+ color=[255, 51, 51]),
+ 40:
+ dict(
+ link=('left_ring_finger1', 'left_ring_finger2'),
+ id=40,
+ color=[255, 51, 51]),
+ 41:
+ dict(
+ link=('left_ring_finger2', 'left_ring_finger3'),
+ id=41,
+ color=[255, 51, 51]),
+ 42:
+ dict(
+ link=('left_ring_finger3', 'left_ring_finger4'),
+ id=42,
+ color=[255, 51, 51]),
+ 43:
+ dict(
+ link=('left_wrist', 'left_pinky_finger1'),
+ id=43,
+ color=[0, 255, 0]),
+ 44:
+ dict(
+ link=('left_pinky_finger1', 'left_pinky_finger2'),
+ id=44,
+ color=[0, 255, 0]),
+ 45:
+ dict(
+ link=('left_pinky_finger2', 'left_pinky_finger3'),
+ id=45,
+ color=[0, 255, 0]),
+ 46:
+ dict(
+ link=('left_pinky_finger3', 'left_pinky_finger4'),
+ id=46,
+ color=[0, 255, 0]),
+ 47:
+ dict(link=('right_wrist', 'right_thumb1'), id=47, color=[255, 128, 0]),
+ 48:
+ dict(
+ link=('right_thumb1', 'right_thumb2'), id=48, color=[255, 128, 0]),
+ 49:
+ dict(
+ link=('right_thumb2', 'right_thumb3'), id=49, color=[255, 128, 0]),
+ 50:
+ dict(
+ link=('right_thumb3', 'right_thumb4'), id=50, color=[255, 128, 0]),
+ 51:
+ dict(
+ link=('right_wrist', 'right_forefinger1'),
+ id=51,
+ color=[255, 153, 255]),
+ 52:
+ dict(
+ link=('right_forefinger1', 'right_forefinger2'),
+ id=52,
+ color=[255, 153, 255]),
+ 53:
+ dict(
+ link=('right_forefinger2', 'right_forefinger3'),
+ id=53,
+ color=[255, 153, 255]),
+ 54:
+ dict(
+ link=('right_forefinger3', 'right_forefinger4'),
+ id=54,
+ color=[255, 153, 255]),
+ 55:
+ dict(
+ link=('right_wrist', 'right_middle_finger1'),
+ id=55,
+ color=[102, 178, 255]),
+ 56:
+ dict(
+ link=('right_middle_finger1', 'right_middle_finger2'),
+ id=56,
+ color=[102, 178, 255]),
+ 57:
+ dict(
+ link=('right_middle_finger2', 'right_middle_finger3'),
+ id=57,
+ color=[102, 178, 255]),
+ 58:
+ dict(
+ link=('right_middle_finger3', 'right_middle_finger4'),
+ id=58,
+ color=[102, 178, 255]),
+ 59:
+ dict(
+ link=('right_wrist', 'right_ring_finger1'),
+ id=59,
+ color=[255, 51, 51]),
+ 60:
+ dict(
+ link=('right_ring_finger1', 'right_ring_finger2'),
+ id=60,
+ color=[255, 51, 51]),
+ 61:
+ dict(
+ link=('right_ring_finger2', 'right_ring_finger3'),
+ id=61,
+ color=[255, 51, 51]),
+ 62:
+ dict(
+ link=('right_ring_finger3', 'right_ring_finger4'),
+ id=62,
+ color=[255, 51, 51]),
+ 63:
+ dict(
+ link=('right_wrist', 'right_pinky_finger1'),
+ id=63,
+ color=[0, 255, 0]),
+ 64:
+ dict(
+ link=('right_pinky_finger1', 'right_pinky_finger2'),
+ id=64,
+ color=[0, 255, 0]),
+ 65:
+ dict(
+ link=('right_pinky_finger2', 'right_pinky_finger3'),
+ id=65,
+ color=[0, 255, 0]),
+ 66:
+ dict(
+ link=('right_pinky_finger3', 'right_pinky_finger4'),
+ id=66,
+ color=[0, 255, 0])
+ },
+ joint_weights=[1.] * 136,
+
+ # 'https://github.com/Fang-Haoshu/Halpe-FullBody/blob/master/'
+ # 'HalpeCOCOAPI/PythonAPI/halpecocotools/cocoeval.py#L245'
+ sigmas=[
+ 0.026, 0.025, 0.025, 0.035, 0.035, 0.079, 0.079, 0.072, 0.072, 0.062,
+ 0.062, 0.107, 0.107, 0.087, 0.087, 0.089, 0.089, 0.08, 0.08, 0.08,
+ 0.089, 0.089, 0.089, 0.089, 0.089, 0.089, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015,
+ 0.015, 0.015, 0.015, 0.015, 0.015, 0.015
+ ])
diff --git a/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_dark_halpe.md b/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_dark_halpe.md
new file mode 100644
index 0000000000..1b22b4b53d
--- /dev/null
+++ b/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_dark_halpe.md
@@ -0,0 +1,57 @@
+
+
+
+HRNet (CVPR'2019)
+
+```bibtex
+@inproceedings{sun2019deep,
+ title={Deep high-resolution representation learning for human pose estimation},
+ author={Sun, Ke and Xiao, Bin and Liu, Dong and Wang, Jingdong},
+ booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
+ pages={5693--5703},
+ year={2019}
+}
+```
+
+
+
+
+
+
+DarkPose (CVPR'2020)
+
+```bibtex
+@inproceedings{zhang2020distribution,
+ title={Distribution-aware coordinate representation for human pose estimation},
+ author={Zhang, Feng and Zhu, Xiatian and Dai, Hanbin and Ye, Mao and Zhu, Ce},
+ booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
+ pages={7093--7102},
+ year={2020}
+}
+```
+
+
+
+
+
+
+Halpe (CVPR'2020)
+
+```bibtex
+@inproceedings{li2020pastanet,
+ title={PaStaNet: Toward Human Activity Knowledge Engine},
+ author={Li, Yong-Lu and Xu, Liang and Liu, Xinpeng and Huang, Xijie and Xu, Yue and Wang, Shiyi and Fang, Hao-Shu and Ma, Ze and Chen, Mingyang and Lu, Cewu},
+ booktitle={CVPR},
+ year={2020}
+}
+```
+
+
+
+Results on Halpe v1.0 val with detector having human AP of 56.4 on COCO val2017 dataset
+
+| Arch | Input Size | Whole AP | Whole AR | ckpt | log |
+| :---- | :--------: | :------: |:-------: |:------: | :------: |
+| [pose_hrnet_w48_dark+](/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_w48_halpe_384x288_dark_plus.py) | 384x288 | 0.531 | 0.642 | [ckpt](https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w48_halpe_384x288_dark_plus-d13c2588_20211021.pth) | [log](https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w48_halpe_384x288_dark_plus_20211021.log.json) |
+
+Note: `+` means the model is first pre-trained on original COCO dataset, and then fine-tuned on Halpe dataset. We find this will lead to better performance.
diff --git a/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_dark_halpe.yml b/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_dark_halpe.yml
new file mode 100644
index 0000000000..3319c2a4e6
--- /dev/null
+++ b/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_dark_halpe.yml
@@ -0,0 +1,23 @@
+Collections:
+- Metadata:
+ Architecture:
+ - HRNet
+ - DarkPose
+ Name: Wholebody 2D Keypoint topdown_heatmap halpe
+ Paper:
+ Title: Distribution-aware coordinate representation for human pose estimation
+ URL: http://openaccess.thecvf.com/content_CVPR_2020/html/Zhang_Distribution-Aware_Coordinate_Representation_for_Human_Pose_Estimation_CVPR_2020_paper.html
+ README: configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_dark_halpe.md
+Models:
+- Config: configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_w48_halpe_384x288_dark_plus.py
+ In Collection: Wholebody 2D Keypoint topdown_heatmap halpe
+ Metadata:
+ Training Data: Halpe
+ Name: topdown_heatmap_hrnet_w48_halpe_384x288_dark_plus
+ Results:
+ - Dataset: Halpe
+ Metrics:
+ Whole AP: 0.531
+ Whole AR: 0.642
+ Task: Wholebody 2D Keypoint
+ Weights: https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w48_halpe_384x288_dark_plus-d13c2588_20211021.pth
diff --git a/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_w32_halpe_256x192.py b/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_w32_halpe_256x192.py
new file mode 100644
index 0000000000..090f6c0c3c
--- /dev/null
+++ b/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_w32_halpe_256x192.py
@@ -0,0 +1,174 @@
+_base_ = ['../../../../_base_/datasets/halpe.py']
+log_level = 'INFO'
+load_from = None
+resume_from = None
+dist_params = dict(backend='nccl')
+workflow = [('train', 1)]
+checkpoint_config = dict(interval=10)
+evaluation = dict(interval=10, metric='mAP', save_best='AP')
+
+optimizer = dict(
+ type='Adam',
+ lr=5e-4,
+)
+optimizer_config = dict(grad_clip=None)
+# learning policy
+lr_config = dict(
+ policy='step',
+ warmup='linear',
+ warmup_iters=500,
+ warmup_ratio=0.001,
+ step=[170, 200])
+total_epochs = 210
+log_config = dict(
+ interval=50,
+ hooks=[
+ dict(type='TextLoggerHook'),
+ # dict(type='TensorboardLoggerHook')
+ ])
+
+channel_cfg = dict(
+ num_output_channels=136,
+ dataset_joints=136,
+ dataset_channel=[
+ list(range(136)),
+ ],
+ inference_channel=list(range(136)))
+
+# model settings
+model = dict(
+ type='TopDown',
+ pretrained='https://download.openmmlab.com/mmpose/'
+ 'pretrain_models/hrnet_w32-36af842e.pth',
+ backbone=dict(
+ type='HRNet',
+ in_channels=3,
+ extra=dict(
+ stage1=dict(
+ num_modules=1,
+ num_branches=1,
+ block='BOTTLENECK',
+ num_blocks=(4, ),
+ num_channels=(64, )),
+ stage2=dict(
+ num_modules=1,
+ num_branches=2,
+ block='BASIC',
+ num_blocks=(4, 4),
+ num_channels=(32, 64)),
+ stage3=dict(
+ num_modules=4,
+ num_branches=3,
+ block='BASIC',
+ num_blocks=(4, 4, 4),
+ num_channels=(32, 64, 128)),
+ stage4=dict(
+ num_modules=3,
+ num_branches=4,
+ block='BASIC',
+ num_blocks=(4, 4, 4, 4),
+ num_channels=(32, 64, 128, 256))),
+ ),
+ keypoint_head=dict(
+ type='TopdownHeatmapSimpleHead',
+ in_channels=32,
+ out_channels=channel_cfg['num_output_channels'],
+ num_deconv_layers=0,
+ extra=dict(final_conv_kernel=1, ),
+ loss_keypoint=dict(type='JointsMSELoss', use_target_weight=True)),
+ train_cfg=dict(),
+ test_cfg=dict(
+ flip_test=True,
+ post_process='default',
+ shift_heatmap=True,
+ modulate_kernel=11))
+
+data_cfg = dict(
+ image_size=[192, 256],
+ heatmap_size=[48, 64],
+ num_output_channels=channel_cfg['num_output_channels'],
+ num_joints=channel_cfg['dataset_joints'],
+ dataset_channel=channel_cfg['dataset_channel'],
+ inference_channel=channel_cfg['inference_channel'],
+ soft_nms=False,
+ nms_thr=1.0,
+ oks_thr=0.9,
+ vis_thr=0.2,
+ use_gt_bbox=False,
+ det_bbox_thr=0.0,
+ bbox_file='data/coco/person_detection_results/'
+ 'COCO_val2017_detections_AP_H_56_person.json',
+)
+
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='TopDownRandomFlip', flip_prob=0.5),
+ dict(
+ type='TopDownHalfBodyTransform',
+ num_joints_half_body=8,
+ prob_half_body=0.3),
+ dict(
+ type='TopDownGetRandomScaleRotation', rot_factor=40, scale_factor=0.5),
+ dict(type='TopDownAffine'),
+ dict(type='ToTensor'),
+ dict(
+ type='NormalizeTensor',
+ mean=[0.485, 0.456, 0.406],
+ std=[0.229, 0.224, 0.225]),
+ dict(type='TopDownGenerateTarget', sigma=2),
+ dict(
+ type='Collect',
+ keys=['img', 'target', 'target_weight'],
+ meta_keys=[
+ 'image_file', 'joints_3d', 'joints_3d_visible', 'center', 'scale',
+ 'rotation', 'bbox_score', 'flip_pairs'
+ ]),
+]
+
+val_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='TopDownAffine'),
+ dict(type='ToTensor'),
+ dict(
+ type='NormalizeTensor',
+ mean=[0.485, 0.456, 0.406],
+ std=[0.229, 0.224, 0.225]),
+ dict(
+ type='Collect',
+ keys=['img'],
+ meta_keys=[
+ 'image_file', 'center', 'scale', 'rotation', 'bbox_score',
+ 'flip_pairs'
+ ]),
+]
+
+test_pipeline = val_pipeline
+
+data_root = 'data/halpe'
+data = dict(
+ samples_per_gpu=64,
+ workers_per_gpu=2,
+ val_dataloader=dict(samples_per_gpu=32),
+ test_dataloader=dict(samples_per_gpu=32),
+ train=dict(
+ type='TopDownHalpeDataset',
+ ann_file=f'{data_root}/annotations/halpe_train_v1.json',
+ img_prefix=f'{data_root}/hico_20160224_det/images/train2015/',
+ data_cfg=data_cfg,
+ pipeline=train_pipeline,
+ dataset_info={{_base_.dataset_info}}),
+ val=dict(
+ type='TopDownHalpeDataset',
+ ann_file=f'{data_root}/annotations/halpe_val_v1.json',
+ img_prefix=f'{data_root}/val2017/',
+ data_cfg=data_cfg,
+ pipeline=val_pipeline,
+ dataset_info={{_base_.dataset_info}}),
+ test=dict(
+ type='TopDownHalpeDataset',
+ ann_file=f'{data_root}/annotations/halpe_val_v1.json',
+ img_prefix=f'{data_root}/val2017/',
+ data_cfg=data_cfg,
+ pipeline=val_pipeline,
+ dataset_info={{_base_.dataset_info}}),
+)
diff --git a/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_w48_halpe_384x288_dark_plus.py b/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_w48_halpe_384x288_dark_plus.py
new file mode 100644
index 0000000000..d2698ef0f8
--- /dev/null
+++ b/configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_w48_halpe_384x288_dark_plus.py
@@ -0,0 +1,173 @@
+_base_ = ['../../../../_base_/datasets/halpe.py']
+log_level = 'INFO'
+load_from = 'https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w48_coco_384x288_dark-741844ba_20200812.pth' # noqa: E501
+resume_from = None
+dist_params = dict(backend='nccl')
+workflow = [('train', 1)]
+checkpoint_config = dict(interval=10)
+evaluation = dict(interval=10, metric='mAP', save_best='AP')
+
+optimizer = dict(
+ type='Adam',
+ lr=5e-4,
+)
+optimizer_config = dict(grad_clip=None)
+# learning policy
+lr_config = dict(
+ policy='step',
+ warmup='linear',
+ warmup_iters=500,
+ warmup_ratio=0.001,
+ step=[170, 200])
+total_epochs = 210
+log_config = dict(
+ interval=50,
+ hooks=[
+ dict(type='TextLoggerHook'),
+ # dict(type='TensorboardLoggerHook')
+ ])
+
+channel_cfg = dict(
+ num_output_channels=136,
+ dataset_joints=136,
+ dataset_channel=[
+ list(range(136)),
+ ],
+ inference_channel=list(range(136)))
+
+# model settings
+model = dict(
+ type='TopDown',
+ pretrained=None,
+ backbone=dict(
+ type='HRNet',
+ in_channels=3,
+ extra=dict(
+ stage1=dict(
+ num_modules=1,
+ num_branches=1,
+ block='BOTTLENECK',
+ num_blocks=(4, ),
+ num_channels=(64, )),
+ stage2=dict(
+ num_modules=1,
+ num_branches=2,
+ block='BASIC',
+ num_blocks=(4, 4),
+ num_channels=(48, 96)),
+ stage3=dict(
+ num_modules=4,
+ num_branches=3,
+ block='BASIC',
+ num_blocks=(4, 4, 4),
+ num_channels=(48, 96, 192)),
+ stage4=dict(
+ num_modules=3,
+ num_branches=4,
+ block='BASIC',
+ num_blocks=(4, 4, 4, 4),
+ num_channels=(48, 96, 192, 384))),
+ ),
+ keypoint_head=dict(
+ type='TopdownHeatmapSimpleHead',
+ in_channels=48,
+ out_channels=channel_cfg['num_output_channels'],
+ num_deconv_layers=0,
+ extra=dict(final_conv_kernel=1, ),
+ loss_keypoint=dict(type='JointsMSELoss', use_target_weight=True)),
+ train_cfg=dict(),
+ test_cfg=dict(
+ flip_test=True,
+ post_process='unbiased',
+ shift_heatmap=True,
+ modulate_kernel=17))
+
+data_cfg = dict(
+ image_size=[288, 384],
+ heatmap_size=[72, 96],
+ num_output_channels=channel_cfg['num_output_channels'],
+ num_joints=channel_cfg['dataset_joints'],
+ dataset_channel=channel_cfg['dataset_channel'],
+ inference_channel=channel_cfg['inference_channel'],
+ soft_nms=False,
+ nms_thr=1.0,
+ oks_thr=0.9,
+ vis_thr=0.2,
+ use_gt_bbox=False,
+ det_bbox_thr=0.0,
+ bbox_file='data/coco/person_detection_results/'
+ 'COCO_val2017_detections_AP_H_56_person.json',
+)
+
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='TopDownRandomFlip', flip_prob=0.5),
+ dict(
+ type='TopDownHalfBodyTransform',
+ num_joints_half_body=8,
+ prob_half_body=0.3),
+ dict(
+ type='TopDownGetRandomScaleRotation', rot_factor=40, scale_factor=0.5),
+ dict(type='TopDownAffine'),
+ dict(type='ToTensor'),
+ dict(
+ type='NormalizeTensor',
+ mean=[0.485, 0.456, 0.406],
+ std=[0.229, 0.224, 0.225]),
+ dict(type='TopDownGenerateTarget', sigma=3, unbiased_encoding=True),
+ dict(
+ type='Collect',
+ keys=['img', 'target', 'target_weight'],
+ meta_keys=[
+ 'image_file', 'joints_3d', 'joints_3d_visible', 'center', 'scale',
+ 'rotation', 'bbox_score', 'flip_pairs'
+ ]),
+]
+
+val_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='TopDownAffine'),
+ dict(type='ToTensor'),
+ dict(
+ type='NormalizeTensor',
+ mean=[0.485, 0.456, 0.406],
+ std=[0.229, 0.224, 0.225]),
+ dict(
+ type='Collect',
+ keys=['img'],
+ meta_keys=[
+ 'image_file', 'center', 'scale', 'rotation', 'bbox_score',
+ 'flip_pairs'
+ ]),
+]
+
+test_pipeline = val_pipeline
+
+data_root = 'data/halpe'
+data = dict(
+ samples_per_gpu=32,
+ workers_per_gpu=2,
+ val_dataloader=dict(samples_per_gpu=32),
+ test_dataloader=dict(samples_per_gpu=32),
+ train=dict(
+ type='TopDownHalpeDataset',
+ ann_file=f'{data_root}/annotations/halpe_train_v1.json',
+ img_prefix=f'{data_root}/hico_20160224_det/images/train2015/',
+ data_cfg=data_cfg,
+ pipeline=train_pipeline,
+ dataset_info={{_base_.dataset_info}}),
+ val=dict(
+ type='TopDownHalpeDataset',
+ ann_file=f'{data_root}/annotations/halpe_val_v1.json',
+ img_prefix=f'{data_root}/val2017/',
+ data_cfg=data_cfg,
+ pipeline=val_pipeline,
+ dataset_info={{_base_.dataset_info}}),
+ test=dict(
+ type='TopDownHalpeDataset',
+ ann_file=f'{data_root}/annotations/halpe_val_v1.json',
+ img_prefix=f'{data_root}/val2017/',
+ data_cfg=data_cfg,
+ pipeline=val_pipeline,
+ dataset_info={{_base_.dataset_info}}),
+)
diff --git a/docs/papers/datasets/halpe.md b/docs/papers/datasets/halpe.md
new file mode 100644
index 0000000000..f71793fdbd
--- /dev/null
+++ b/docs/papers/datasets/halpe.md
@@ -0,0 +1,17 @@
+# PaStaNet: Toward Human Activity Knowledge Engine
+
+
+
+
+Halpe (CVPR'2020)
+
+```bibtex
+@inproceedings{li2020pastanet,
+ title={PaStaNet: Toward Human Activity Knowledge Engine},
+ author={Li, Yong-Lu and Xu, Liang and Liu, Xinpeng and Huang, Xijie and Xu, Yue and Wang, Shiyi and Fang, Hao-Shu and Ma, Ze and Chen, Mingyang and Lu, Cewu},
+ booktitle={CVPR},
+ year={2020}
+}
+```
+
+
diff --git a/docs/tasks/2d_wholebody_keypoint.md b/docs/tasks/2d_wholebody_keypoint.md
index 3a3d47a7ef..e3d573ffbd 100644
--- a/docs/tasks/2d_wholebody_keypoint.md
+++ b/docs/tasks/2d_wholebody_keypoint.md
@@ -6,6 +6,7 @@ If your folder structure is different, you may need to change the corresponding
MMPose supported datasets:
- [COCO-WholeBody](#coco-wholebody) \[ [Homepage](https://github.com/jin-s13/COCO-WholeBody/) \]
+- [Halpe](#halpe) \[ [Homepage](https://github.com/Fang-Haoshu/Halpe-FullBody/) \]
## COCO-WholeBody
@@ -60,3 +61,65 @@ mmpose
Please also install the latest version of [Extended COCO API](https://github.com/jin-s13/xtcocoapi) (version>=1.5) to support COCO-WholeBody evaluation:
`pip install xtcocotools`
+
+## Halpe
+
+
+
+
+Halpe (CVPR'2020)
+
+```bibtex
+@inproceedings{li2020pastanet,
+ title={PaStaNet: Toward Human Activity Knowledge Engine},
+ author={Li, Yong-Lu and Xu, Liang and Liu, Xinpeng and Huang, Xijie and Xu, Yue and Wang, Shiyi and Fang, Hao-Shu and Ma, Ze and Chen, Mingyang and Lu, Cewu},
+ booktitle={CVPR},
+ year={2020}
+}
+```
+
+
+
+For [Halpe](https://github.com/Fang-Haoshu/Halpe-FullBody/) dataset, please download images and annotations from [Halpe download](https://github.com/Fang-Haoshu/Halpe-FullBody).
+The images of the training set are from [HICO-Det](https://drive.google.com/open?id=1QZcJmGVlF9f4h-XLWe9Gkmnmj2z1gSnk) and those of the validation set are from [COCO](http://images.cocodataset.org/zips/val2017.zip).
+Download person detection result of COCO val2017 from [OneDrive](https://1drv.ms/f/s!AhIXJn_J-blWzzDXoz5BeFl8sWM-) or [GoogleDrive](https://drive.google.com/drive/folders/1fRUDNUDxe9fjqcRZ2bnF_TKMlO0nB_dk?usp=sharing).
+Download and extract them under $MMPOSE/data, and make them look like this:
+
+```text
+mmpose
+├── mmpose
+├── docs
+├── tests
+├── tools
+├── configs
+`── data
+ │── halpe
+ │-- annotations
+ │ │-- halpe_train_v1.json
+ │ |-- halpe_val_v1.json
+ |-- person_detection_results
+ | |-- COCO_val2017_detections_AP_H_56_person.json
+ │-- hico_20160224_det
+ │ │-- anno_bbox.mat
+ │ │-- anno.mat
+ │ │-- README
+ │ │-- images
+ │ │ │-- train2015
+ │ │ │ │-- HICO_train2015_00000001.jpg
+ │ │ │ │-- HICO_train2015_00000002.jpg
+ │ │ │ │-- HICO_train2015_00000003.jpg
+ │ │ │ │-- ...
+ │ │ │-- test2015
+ │ │-- tools
+ │ │-- ...
+ `-- val2017
+ │-- 000000000139.jpg
+ │-- 000000000285.jpg
+ │-- 000000000632.jpg
+ │-- ...
+
+```
+
+Please also install the latest version of [Extended COCO API](https://github.com/jin-s13/xtcocoapi) (version>=1.5) to support Halpe evaluation:
+
+`pip install xtcocotools`
diff --git a/mmpose/datasets/datasets/__init__.py b/mmpose/datasets/datasets/__init__.py
index 6f54e7a466..2833ab8785 100644
--- a/mmpose/datasets/datasets/__init__.py
+++ b/mmpose/datasets/datasets/__init__.py
@@ -18,10 +18,10 @@
MoshDataset)
from .top_down import (TopDownAicDataset, TopDownCocoDataset,
TopDownCocoWholeBodyDataset, TopDownCrowdPoseDataset,
- TopDownH36MDataset, TopDownJhmdbDataset,
- TopDownMhpDataset, TopDownMpiiDataset,
- TopDownMpiiTrbDataset, TopDownOCHumanDataset,
- TopDownPoseTrack18Dataset)
+ TopDownH36MDataset, TopDownHalpeDataset,
+ TopDownJhmdbDataset, TopDownMhpDataset,
+ TopDownMpiiDataset, TopDownMpiiTrbDataset,
+ TopDownOCHumanDataset, TopDownPoseTrack18Dataset)
__all__ = [
'TopDownCocoDataset', 'BottomUpCocoDataset', 'BottomUpMhpDataset',
@@ -38,5 +38,6 @@
'FaceWFLWDataset', 'FaceCOFWDataset', 'FaceCocoWholeBodyDataset',
'Body3DH36MDataset', 'AnimalHorse10Dataset', 'AnimalMacaqueDataset',
'AnimalFlyDataset', 'AnimalLocustDataset', 'AnimalZebraDataset',
- 'AnimalATRWDataset', 'AnimalPoseDataset', 'TopDownH36MDataset'
+ 'AnimalATRWDataset', 'AnimalPoseDataset', 'TopDownH36MDataset',
+ 'TopDownHalpeDataset'
]
diff --git a/mmpose/datasets/datasets/top_down/__init__.py b/mmpose/datasets/datasets/top_down/__init__.py
index 72b99d4a8b..3228d070f2 100644
--- a/mmpose/datasets/datasets/top_down/__init__.py
+++ b/mmpose/datasets/datasets/top_down/__init__.py
@@ -4,6 +4,7 @@
from .topdown_coco_wholebody_dataset import TopDownCocoWholeBodyDataset
from .topdown_crowdpose_dataset import TopDownCrowdPoseDataset
from .topdown_h36m_dataset import TopDownH36MDataset
+from .topdown_halpe_dataset import TopDownHalpeDataset
from .topdown_jhmdb_dataset import TopDownJhmdbDataset
from .topdown_mhp_dataset import TopDownMhpDataset
from .topdown_mpii_dataset import TopDownMpiiDataset
@@ -15,5 +16,6 @@
'TopDownAicDataset', 'TopDownCocoDataset', 'TopDownCocoWholeBodyDataset',
'TopDownCrowdPoseDataset', 'TopDownMpiiDataset', 'TopDownMpiiTrbDataset',
'TopDownOCHumanDataset', 'TopDownPoseTrack18Dataset',
- 'TopDownJhmdbDataset', 'TopDownMhpDataset', 'TopDownH36MDataset'
+ 'TopDownJhmdbDataset', 'TopDownMhpDataset', 'TopDownH36MDataset',
+ 'TopDownHalpeDataset'
]
diff --git a/mmpose/datasets/datasets/top_down/topdown_coco_wholebody_dataset.py b/mmpose/datasets/datasets/top_down/topdown_coco_wholebody_dataset.py
index ab3b10aa6e..126a0ce77a 100644
--- a/mmpose/datasets/datasets/top_down/topdown_coco_wholebody_dataset.py
+++ b/mmpose/datasets/datasets/top_down/topdown_coco_wholebody_dataset.py
@@ -105,6 +105,8 @@ def _load_coco_keypoint_annotation_kernel(self, img_id):
# sanitize bboxes
valid_objs = []
for obj in objs:
+ if 'bbox' not in obj:
+ continue
x, y, w, h = obj['bbox']
x1 = max(0, x)
y1 = max(0, y)
@@ -118,6 +120,8 @@ def _load_coco_keypoint_annotation_kernel(self, img_id):
rec = []
bbox_id = 0
for obj in objs:
+ if 'keypoints' not in obj:
+ continue
if max(obj['keypoints']) == 0:
continue
joints_3d = np.zeros((num_joints, 3), dtype=np.float32)
diff --git a/mmpose/datasets/datasets/top_down/topdown_halpe_dataset.py b/mmpose/datasets/datasets/top_down/topdown_halpe_dataset.py
new file mode 100644
index 0000000000..96267a10a1
--- /dev/null
+++ b/mmpose/datasets/datasets/top_down/topdown_halpe_dataset.py
@@ -0,0 +1,76 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import warnings
+
+from mmcv import Config
+
+from ...builder import DATASETS
+from .topdown_coco_dataset import TopDownCocoDataset
+
+
+@DATASETS.register_module()
+class TopDownHalpeDataset(TopDownCocoDataset):
+ """HalpeDataset for top-down pose estimation.
+
+ 'https://github.com/Fang-Haoshu/Halpe-FullBody'
+
+ The dataset loads raw features and apply specified transforms
+ to return a dict containing the image tensors and other information.
+
+ In total, we have 136 keypoints for wholebody pose estimation.
+
+ Halpe keypoint indexes::
+ 0-19: 20 body keypoints
+ 20-25: 6 foot keypoints
+ 26-93: 68 face keypoints
+ 94-135: 42 hand keypoints
+
+ Args:
+ ann_file (str): Path to the annotation file.
+ img_prefix (str): Path to a directory where images are held.
+ Default: None.
+ data_cfg (dict): config
+ pipeline (list[dict | callable]): A sequence of data transforms.
+ dataset_info (DatasetInfo): A class containing all dataset info.
+ test_mode (bool): Store True when building test or
+ validation dataset. Default: False.
+ """
+
+ def __init__(self,
+ ann_file,
+ img_prefix,
+ data_cfg,
+ pipeline,
+ dataset_info=None,
+ test_mode=False):
+
+ if dataset_info is None:
+ warnings.warn(
+ 'dataset_info is missing. '
+ 'Check https://github.com/open-mmlab/mmpose/pull/663 '
+ 'for details.', DeprecationWarning)
+ cfg = Config.fromfile('configs/_base_/datasets/halpe.py')
+ dataset_info = cfg._cfg_dict['dataset_info']
+
+ super(TopDownCocoDataset, self).__init__(
+ ann_file,
+ img_prefix,
+ data_cfg,
+ pipeline,
+ dataset_info=dataset_info,
+ test_mode=test_mode)
+
+ self.use_gt_bbox = data_cfg['use_gt_bbox']
+ self.bbox_file = data_cfg['bbox_file']
+ self.det_bbox_thr = data_cfg.get('det_bbox_thr', 0.0)
+ self.use_nms = data_cfg.get('use_nms', True)
+ self.soft_nms = data_cfg['soft_nms']
+ self.nms_thr = data_cfg['nms_thr']
+ self.oks_thr = data_cfg['oks_thr']
+ self.vis_thr = data_cfg['vis_thr']
+
+ self.ann_info['use_different_joint_weights'] = False
+
+ self.db = self._get_db()
+
+ print(f'=> num_images: {self.num_images}')
+ print(f'=> load {len(self.db)} samples')
diff --git a/model-index.yml b/model-index.yml
index 1214ea4ce7..4fa7aaf012 100644
--- a/model-index.yml
+++ b/model-index.yml
@@ -127,3 +127,4 @@ Import:
- configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/coco-wholebody/hrnet_coco-wholebody.yml
- configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/coco-wholebody/hrnet_dark_coco-wholebody.yml
- configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/coco-wholebody/resnet_coco-wholebody.yml
+- configs/wholebody/2d_kpt_sview_rgb_img/topdown_heatmap/halpe/hrnet_dark_halpe.yml
diff --git a/tests/data/halpe/test_halpe.json b/tests/data/halpe/test_halpe.json
new file mode 100644
index 0000000000..85b9e9d607
--- /dev/null
+++ b/tests/data/halpe/test_halpe.json
@@ -0,0 +1,5991 @@
+{
+ "categories": [
+ {
+ "supercategory": "person",
+ "id": 1,
+ "name": "person",
+ "keypoints": [],
+ "skeleton": []
+ }
+ ],
+ "images": [
+ {
+ "license": 4,
+ "file_name": "000000000785.jpg",
+ "coco_url": "http://images.cocodataset.org/val2017/000000000785.jpg",
+ "height": 425,
+ "width": 640,
+ "date_captured": "2013-11-19 21:22:42",
+ "flickr_url": "http://farm8.staticflickr.com/7015/6795644157_f019453ae7_z.jpg",
+ "id": 785
+ },
+ {
+ "license": 3,
+ "file_name": "000000040083.jpg",
+ "coco_url": "http://images.cocodataset.org/val2017/000000040083.jpg",
+ "height": 333,
+ "width": 500,
+ "date_captured": "2013-11-18 03:30:24",
+ "flickr_url": "http://farm1.staticflickr.com/116/254881838_e21c6d17b8_z.jpg",
+ "id": 40083
+ },
+ {
+ "license": 1,
+ "file_name": "000000196141.jpg",
+ "coco_url": "http://images.cocodataset.org/val2017/000000196141.jpg",
+ "height": 429,
+ "width": 640,
+ "date_captured": "2013-11-22 22:37:15",
+ "flickr_url": "http://farm4.staticflickr.com/3310/3611902235_57d4ae496d_z.jpg",
+ "id": 196141
+ },
+ {
+ "license": 3,
+ "file_name": "000000197388.jpg",
+ "coco_url": "http://images.cocodataset.org/val2017/000000197388.jpg",
+ "height": 392,
+ "width": 640,
+ "date_captured": "2013-11-19 20:10:37",
+ "flickr_url": "http://farm9.staticflickr.com/8375/8507321836_5b8b13188f_z.jpg",
+ "id": 197388
+ }
+ ],
+ "annotations": [
+ {
+ "num_keypoints": 17,
+ "area": 27789.11055,
+ "iscrowd": 0,
+ "keypoints": [
+ 367,
+ 81,
+ 2,
+ 374,
+ 73,
+ 2,
+ 360,
+ 75,
+ 2,
+ 386,
+ 78,
+ 2,
+ 356,
+ 81,
+ 2,
+ 399,
+ 108,
+ 2,
+ 358,
+ 129,
+ 2,
+ 433,
+ 142,
+ 2,
+ 341,
+ 159,
+ 2,
+ 449,
+ 165,
+ 2,
+ 309,
+ 178,
+ 2,
+ 424,
+ 203,
+ 2,
+ 393,
+ 214,
+ 2,
+ 429,
+ 294,
+ 2,
+ 367,
+ 273,
+ 2,
+ 466,
+ 362,
+ 2,
+ 396,
+ 341,
+ 2,
+ 370,
+ 52,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 431,
+ 378,
+ 2,
+ 364,
+ 366,
+ 2,
+ 437,
+ 383,
+ 2,
+ 358,
+ 361,
+ 2,
+ 488,
+ 372,
+ 2,
+ 414,
+ 353,
+ 2,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 382.0,
+ 88.0,
+ 0.0,
+ 384.0,
+ 85.0,
+ 0.0,
+ 386.0,
+ 80.0,
+ 0.0,
+ 386.0,
+ 76.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 367.0,
+ 76.0,
+ 0.0,
+ 367.0,
+ 79.0,
+ 0.0,
+ 367.0,
+ 81.0,
+ 0.0,
+ 364.0,
+ 83.0,
+ 0.0,
+ 366.0,
+ 83.0,
+ 0.0,
+ 367.0,
+ 84.0,
+ 0.0,
+ 369.0,
+ 83.0,
+ 0.0,
+ 371.0,
+ 83.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 363.0,
+ 88.0,
+ 0.0,
+ 364.0,
+ 86.0,
+ 0.0,
+ 366.0,
+ 86.0,
+ 0.0,
+ 368.0,
+ 86.0,
+ 0.0,
+ 369.0,
+ 86.0,
+ 0.0,
+ 372.0,
+ 86.0,
+ 0.0,
+ 376.0,
+ 86.0,
+ 0.0,
+ 373.0,
+ 89.0,
+ 0.0,
+ 371.0,
+ 90.0,
+ 0.0,
+ 368.0,
+ 90.0,
+ 0.0,
+ 366.0,
+ 90.0,
+ 0.0,
+ 364.0,
+ 89.0,
+ 0.0,
+ 364.0,
+ 88.0,
+ 0.0,
+ 366.0,
+ 87.0,
+ 0.0,
+ 368.0,
+ 87.0,
+ 0.0,
+ 370.0,
+ 87.0,
+ 0.0,
+ 375.0,
+ 87.0,
+ 0.0,
+ 370.0,
+ 89.0,
+ 0.0,
+ 368.0,
+ 89.0,
+ 0.0,
+ 367.0,
+ 89.0,
+ 0.0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 435,
+ 172,
+ 2,
+ 441,
+ 178,
+ 2,
+ 442,
+ 160,
+ 2,
+ 444,
+ 170,
+ 2,
+ 444,
+ 173,
+ 2,
+ 444,
+ 178,
+ 2,
+ 447,
+ 161,
+ 2,
+ 448,
+ 170,
+ 2,
+ 448,
+ 174,
+ 2,
+ 448,
+ 180,
+ 2,
+ 453,
+ 161,
+ 2,
+ 453,
+ 170,
+ 2,
+ 452,
+ 176,
+ 2,
+ 453,
+ 181,
+ 2,
+ 459,
+ 163,
+ 2,
+ 459,
+ 171,
+ 2,
+ 458,
+ 176,
+ 2,
+ 456,
+ 182,
+ 2,
+ 306,
+ 188,
+ 2,
+ 302,
+ 181,
+ 2,
+ 298,
+ 179,
+ 2,
+ 293,
+ 183,
+ 2,
+ 290,
+ 188,
+ 2,
+ 291,
+ 174,
+ 2,
+ 285,
+ 180,
+ 2,
+ 285,
+ 185,
+ 2,
+ 290,
+ 189,
+ 2,
+ 283,
+ 177,
+ 2,
+ 282,
+ 185,
+ 2,
+ 285,
+ 190,
+ 2,
+ 290,
+ 194,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 785,
+ "bbox": [
+ 280.79,
+ 44.73,
+ 218.7,
+ 346.68
+ ],
+ "category_id": 1,
+ "id": 442619
+ },
+ {
+ "num_keypoints": 14,
+ "area": 11025.219,
+ "iscrowd": 0,
+ "keypoints": [
+ 99,
+ 144,
+ 2,
+ 104,
+ 141,
+ 2,
+ 96,
+ 137,
+ 2,
+ 0,
+ 0,
+ 0,
+ 78,
+ 133,
+ 2,
+ 56,
+ 161,
+ 2,
+ 81,
+ 162,
+ 2,
+ 0,
+ 0,
+ 0,
+ 103,
+ 208,
+ 2,
+ 116,
+ 204,
+ 2,
+ 0,
+ 0,
+ 0,
+ 57,
+ 246,
+ 1,
+ 82,
+ 259,
+ 1,
+ 137,
+ 219,
+ 2,
+ 138,
+ 247,
+ 2,
+ 177,
+ 256,
+ 2,
+ 158,
+ 296,
+ 1,
+ 106,
+ 120,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 207,
+ 256,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 184,
+ 272,
+ 2,
+ 0,
+ 0,
+ 0,
+ 82,
+ 130,
+ 2,
+ 80,
+ 134,
+ 2,
+ 80,
+ 139,
+ 2,
+ 80,
+ 143,
+ 2,
+ 81,
+ 147,
+ 2,
+ 82,
+ 151,
+ 2,
+ 85,
+ 154,
+ 2,
+ 88,
+ 156,
+ 2,
+ 92,
+ 158,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 94,
+ 131,
+ 2,
+ 97,
+ 131,
+ 2,
+ 98,
+ 131,
+ 2,
+ 100,
+ 133,
+ 2,
+ 101,
+ 134,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 101,
+ 139,
+ 2,
+ 100,
+ 142,
+ 2,
+ 99,
+ 144,
+ 2,
+ 98,
+ 146,
+ 2,
+ 96,
+ 147,
+ 2,
+ 97,
+ 147,
+ 2,
+ 98,
+ 148,
+ 2,
+ 99,
+ 148,
+ 2,
+ 99,
+ 148,
+ 2,
+ 93,
+ 137,
+ 2,
+ 95,
+ 136,
+ 2,
+ 97,
+ 136,
+ 2,
+ 97,
+ 138,
+ 2,
+ 96,
+ 138,
+ 2,
+ 95,
+ 138,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 89,
+ 149,
+ 2,
+ 92,
+ 149,
+ 2,
+ 95,
+ 150,
+ 2,
+ 96,
+ 150,
+ 2,
+ 97,
+ 151,
+ 2,
+ 97,
+ 152,
+ 2,
+ 97,
+ 153,
+ 2,
+ 96,
+ 153,
+ 2,
+ 96,
+ 153,
+ 2,
+ 94,
+ 153,
+ 2,
+ 93,
+ 153,
+ 2,
+ 91,
+ 151,
+ 2,
+ 90,
+ 149,
+ 2,
+ 95,
+ 150,
+ 2,
+ 96,
+ 151,
+ 2,
+ 97,
+ 151,
+ 2,
+ 97,
+ 153,
+ 2,
+ 96,
+ 153,
+ 2,
+ 94,
+ 153,
+ 2,
+ 94,
+ 152,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 118,
+ 198,
+ 2,
+ 113,
+ 197,
+ 2,
+ 109,
+ 197,
+ 2,
+ 0,
+ 0,
+ 0,
+ 118,
+ 202,
+ 2,
+ 111,
+ 201,
+ 2,
+ 106,
+ 201,
+ 2,
+ 0,
+ 0,
+ 0,
+ 117,
+ 206,
+ 2,
+ 111,
+ 205,
+ 2,
+ 108,
+ 205,
+ 2,
+ 104,
+ 203,
+ 2,
+ 116,
+ 209,
+ 2,
+ 110,
+ 209,
+ 2,
+ 107,
+ 208,
+ 2,
+ 104,
+ 206,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 40083,
+ "bbox": [
+ 38.08,
+ 110.95,
+ 174.71,
+ 174.71
+ ],
+ "category_id": 1,
+ "id": 198196
+ },
+ {
+ "num_keypoints": 15,
+ "area": 10171.9544,
+ "iscrowd": 0,
+ "keypoints": [
+ 343,
+ 164,
+ 2,
+ 348,
+ 160,
+ 2,
+ 340,
+ 160,
+ 2,
+ 359,
+ 163,
+ 2,
+ 332,
+ 164,
+ 2,
+ 370,
+ 189,
+ 2,
+ 334,
+ 190,
+ 2,
+ 358,
+ 236,
+ 2,
+ 348,
+ 234,
+ 2,
+ 339,
+ 270,
+ 2,
+ 330,
+ 262,
+ 2,
+ 378,
+ 262,
+ 2,
+ 343,
+ 254,
+ 2,
+ 338,
+ 280,
+ 2,
+ 283,
+ 272,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 343,
+ 143,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 332.3577977797564,
+ 162.3496914134306,
+ 2.0,
+ 332.8988608117197,
+ 165.6187214570887,
+ 2.0,
+ 333.63467933804384,
+ 168.74800139782477,
+ 2.0,
+ 334.44826124602673,
+ 171.62306650199142,
+ 2.0,
+ 335.45694729674096,
+ 174.28548183067173,
+ 2.0,
+ 336.96602223714194,
+ 176.06009946336934,
+ 2.0,
+ 339.1693873087565,
+ 177.1661381740196,
+ 2.0,
+ 342.3967300714231,
+ 178.20855305989585,
+ 2.0,
+ 346.46408769196154,
+ 178.59725353764554,
+ 2.0,
+ 349.8700014600567,
+ 177.54131727031634,
+ 2.0,
+ 352.5932256960401,
+ 176.49227677887563,
+ 2.0,
+ 354.83135782877605,
+ 175.44453310499006,
+ 2.0,
+ 356.3679296755323,
+ 173.84137070599724,
+ 2.0,
+ 357.0065454221239,
+ 171.40940037147672,
+ 2.0,
+ 357.534409347235,
+ 168.54578019684436,
+ 2.0,
+ 357.7505070106656,
+ 165.60219732546338,
+ 2.0,
+ 357.9972831576478,
+ 162.53520322313494,
+ 2.0,
+ 334.98978292427813,
+ 157.50515154670268,
+ 2.0,
+ 336.268189015108,
+ 155.9984682569317,
+ 2.0,
+ 338.20047804888554,
+ 155.20954518037684,
+ 2.0,
+ 339.8509974460976,
+ 155.23421301748238,
+ 2.0,
+ 341.352836967917,
+ 155.51378012264476,
+ 2.0,
+ 347.8451109044692,
+ 155.22197044222963,
+ 2.0,
+ 349.3337133669386,
+ 154.8293061798694,
+ 2.0,
+ 351.12965129777496,
+ 154.6547285491345,
+ 2.0,
+ 353.1635732613358,
+ 155.35309825224036,
+ 2.0,
+ 354.5697377522786,
+ 156.92000379375384,
+ 2.0,
+ 344.713427734375,
+ 159.3260030409869,
+ 2.0,
+ 344.74998306573605,
+ 161.3128111596201,
+ 2.0,
+ 344.9170358096852,
+ 163.04858473235487,
+ 2.0,
+ 344.9786475088082,
+ 164.92118542241116,
+ 2.0,
+ 342.8344047097599,
+ 167.29107576258042,
+ 2.0,
+ 343.73243414186965,
+ 167.34131457758886,
+ 2.0,
+ 345.013671875,
+ 167.60332833084405,
+ 2.0,
+ 345.8795548981311,
+ 167.26825794893153,
+ 2.0,
+ 346.9039867326325,
+ 167.04604671702666,
+ 2.0,
+ 337.4534390917011,
+ 160.08626361921722,
+ 2.0,
+ 338.55446807262945,
+ 159.17182970233992,
+ 2.0,
+ 340.002108854406,
+ 159.25801017611636,
+ 2.0,
+ 341.49895665785846,
+ 160.03499301087624,
+ 2.0,
+ 340.23350459080115,
+ 160.5913200228822,
+ 2.0,
+ 338.5602124083276,
+ 160.56629581825405,
+ 2.0,
+ 347.86048488242955,
+ 159.88770386938955,
+ 2.0,
+ 349.3879867254519,
+ 159.04122164857154,
+ 2.0,
+ 350.88049507889093,
+ 158.927533976237,
+ 2.0,
+ 352.11961969113815,
+ 159.93540822945388,
+ 2.0,
+ 350.849705954159,
+ 160.3235902374866,
+ 2.0,
+ 349.1870314654182,
+ 160.32544540704464,
+ 2.0,
+ 340.80742998310166,
+ 172.02484322342218,
+ 2.0,
+ 342.28591649672563,
+ 170.90962129480698,
+ 2.0,
+ 344.0934833302217,
+ 170.10430531221277,
+ 2.0,
+ 345.1530334472656,
+ 170.32844890519684,
+ 2.0,
+ 345.8770950616575,
+ 170.0848247453278,
+ 2.0,
+ 347.8689553653493,
+ 170.66106716978783,
+ 2.0,
+ 349.58350770239736,
+ 171.62832581763175,
+ 2.0,
+ 348.09330994849114,
+ 172.68533762015548,
+ 2.0,
+ 346.88256608551626,
+ 173.17178057502298,
+ 2.0,
+ 345.6372661515778,
+ 173.27078642003676,
+ 2.0,
+ 343.9210619159773,
+ 173.28780972349878,
+ 2.0,
+ 342.63790340049593,
+ 172.8480547736673,
+ 2.0,
+ 341.26428671444165,
+ 171.89147685929842,
+ 2.0,
+ 343.8292683320887,
+ 171.36270207423792,
+ 2.0,
+ 345.2252255308862,
+ 171.2339672013825,
+ 2.0,
+ 346.42121037501914,
+ 171.26879086961932,
+ 2.0,
+ 349.3406477385876,
+ 171.65391995299098,
+ 2.0,
+ 346.50171341241577,
+ 171.7467015883502,
+ 2.0,
+ 345.33072832892924,
+ 171.8389222986558,
+ 2.0,
+ 343.8844602697036,
+ 171.8535089231005,
+ 2.0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 40083,
+ "bbox": [
+ 257.76,
+ 139.06,
+ 140.05,
+ 154.21
+ ],
+ "category_id": 1,
+ "id": 230195
+ },
+ {
+ "num_keypoints": 0,
+ "area": 491.2669,
+ "iscrowd": 0,
+ "keypoints": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 40083,
+ "bbox": [
+ 275.17,
+ 126.5,
+ 10.69,
+ 68.26
+ ],
+ "category_id": 1,
+ "id": 1202706
+ },
+ {
+ "num_keypoints": 15,
+ "area": 17123.92955,
+ "iscrowd": 0,
+ "keypoints": [
+ 297,
+ 111,
+ 2,
+ 299,
+ 106,
+ 2,
+ 0,
+ 0,
+ 0,
+ 314,
+ 108,
+ 2,
+ 0,
+ 0,
+ 0,
+ 329,
+ 141,
+ 2,
+ 346,
+ 125,
+ 2,
+ 295,
+ 164,
+ 2,
+ 323,
+ 130,
+ 2,
+ 266,
+ 155,
+ 2,
+ 279,
+ 143,
+ 2,
+ 329,
+ 225,
+ 2,
+ 331,
+ 221,
+ 2,
+ 327,
+ 298,
+ 2,
+ 283,
+ 269,
+ 2,
+ 398,
+ 327,
+ 2,
+ 288,
+ 349,
+ 2,
+ 309,
+ 78,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 399,
+ 363,
+ 2,
+ 261,
+ 361,
+ 2,
+ 402,
+ 360,
+ 2,
+ 254,
+ 359,
+ 2,
+ 408,
+ 327,
+ 2,
+ 296,
+ 358,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 308,
+ 121,
+ 2,
+ 310,
+ 119,
+ 2,
+ 311,
+ 117,
+ 2,
+ 312,
+ 115,
+ 2,
+ 313,
+ 112,
+ 2,
+ 313,
+ 110,
+ 2,
+ 314,
+ 108,
+ 2,
+ 313,
+ 105,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 298,
+ 101,
+ 2,
+ 300,
+ 101,
+ 2,
+ 302,
+ 101,
+ 2,
+ 303,
+ 101,
+ 2,
+ 305,
+ 103,
+ 2,
+ 297,
+ 104,
+ 2,
+ 297,
+ 106,
+ 2,
+ 296,
+ 109,
+ 2,
+ 296,
+ 111,
+ 2,
+ 299,
+ 111,
+ 2,
+ 300,
+ 111,
+ 2,
+ 298,
+ 112,
+ 2,
+ 299,
+ 112,
+ 2,
+ 300,
+ 112,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 298,
+ 104,
+ 2,
+ 300,
+ 103,
+ 2,
+ 302,
+ 104,
+ 2,
+ 304,
+ 106,
+ 2,
+ 302,
+ 106,
+ 2,
+ 300,
+ 106,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 264,
+ 156,
+ 2,
+ 263,
+ 147,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 253,
+ 149,
+ 2,
+ 248,
+ 147,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 253,
+ 154,
+ 2,
+ 245,
+ 155,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 251,
+ 157,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 252,
+ 160,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 276,
+ 146,
+ 2,
+ 270,
+ 150,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 268,
+ 139,
+ 2,
+ 262,
+ 145,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 196141,
+ "bbox": [
+ 247.76,
+ 74.23,
+ 169.67,
+ 300.78
+ ],
+ "category_id": 1,
+ "id": 460541
+ },
+ {
+ "num_keypoints": 15,
+ "area": 2789.0208,
+ "iscrowd": 0,
+ "keypoints": [
+ 589,
+ 113,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 595,
+ 112,
+ 1,
+ 584,
+ 110,
+ 2,
+ 598,
+ 123,
+ 2,
+ 579,
+ 119,
+ 2,
+ 594,
+ 141,
+ 2,
+ 570,
+ 137,
+ 2,
+ 576,
+ 135,
+ 2,
+ 585,
+ 139,
+ 2,
+ 590,
+ 157,
+ 2,
+ 574,
+ 156,
+ 2,
+ 589,
+ 192,
+ 2,
+ 565,
+ 189,
+ 1,
+ 587,
+ 222,
+ 1,
+ 557,
+ 219,
+ 1,
+ 589,
+ 102,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 584,
+ 111,
+ 2,
+ 584,
+ 112,
+ 2,
+ 584,
+ 113,
+ 2,
+ 584,
+ 115,
+ 2,
+ 585,
+ 116,
+ 2,
+ 586,
+ 117,
+ 2,
+ 587,
+ 118,
+ 2,
+ 588,
+ 119,
+ 2,
+ 589,
+ 119,
+ 2,
+ 591,
+ 119,
+ 2,
+ 592,
+ 118,
+ 2,
+ 593,
+ 117,
+ 2,
+ 593,
+ 116,
+ 2,
+ 594,
+ 115,
+ 2,
+ 594,
+ 113,
+ 2,
+ 594,
+ 112,
+ 2,
+ 594,
+ 110,
+ 2,
+ 584,
+ 108,
+ 2,
+ 585,
+ 108,
+ 2,
+ 587,
+ 108,
+ 2,
+ 588,
+ 108,
+ 2,
+ 589,
+ 108,
+ 2,
+ 591,
+ 109,
+ 2,
+ 592,
+ 108,
+ 2,
+ 593,
+ 108,
+ 2,
+ 593,
+ 109,
+ 2,
+ 594,
+ 109,
+ 2,
+ 589,
+ 110,
+ 2,
+ 589,
+ 111,
+ 2,
+ 589,
+ 112,
+ 2,
+ 589,
+ 112,
+ 2,
+ 588,
+ 113,
+ 2,
+ 589,
+ 113,
+ 2,
+ 589,
+ 113,
+ 2,
+ 590,
+ 113,
+ 2,
+ 590,
+ 113,
+ 2,
+ 585,
+ 110,
+ 2,
+ 586,
+ 109,
+ 2,
+ 587,
+ 109,
+ 2,
+ 588,
+ 110,
+ 2,
+ 587,
+ 110,
+ 2,
+ 586,
+ 110,
+ 2,
+ 590,
+ 110,
+ 2,
+ 591,
+ 109,
+ 2,
+ 592,
+ 109,
+ 2,
+ 594,
+ 110,
+ 2,
+ 592,
+ 110,
+ 2,
+ 591,
+ 110,
+ 2,
+ 587,
+ 115,
+ 2,
+ 588,
+ 115,
+ 2,
+ 589,
+ 114,
+ 2,
+ 589,
+ 114,
+ 2,
+ 590,
+ 114,
+ 2,
+ 591,
+ 115,
+ 2,
+ 591,
+ 115,
+ 2,
+ 591,
+ 115,
+ 2,
+ 590,
+ 116,
+ 2,
+ 589,
+ 116,
+ 2,
+ 589,
+ 116,
+ 2,
+ 588,
+ 116,
+ 2,
+ 587,
+ 115,
+ 2,
+ 589,
+ 115,
+ 2,
+ 589,
+ 115,
+ 2,
+ 590,
+ 115,
+ 2,
+ 591,
+ 115,
+ 2,
+ 590,
+ 116,
+ 2,
+ 589,
+ 116,
+ 2,
+ 589,
+ 116,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 196141,
+ "bbox": [
+ 555.57,
+ 99.84,
+ 48.32,
+ 113.05
+ ],
+ "category_id": 1,
+ "id": 488308
+ },
+ {
+ "num_keypoints": 0,
+ "area": 285.7906,
+ "iscrowd": 0,
+ "keypoints": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 196141,
+ "bbox": [
+ 440.85,
+ 73.13,
+ 16.79,
+ 32.45
+ ],
+ "category_id": 1,
+ "id": 508900
+ },
+ {
+ "num_keypoints": 12,
+ "area": 21608.94075,
+ "iscrowd": 0,
+ "keypoints": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 552,
+ 234,
+ 2,
+ 0,
+ 0,
+ 0,
+ 531,
+ 262,
+ 2,
+ 600,
+ 283,
+ 2,
+ 480,
+ 260,
+ 2,
+ 622,
+ 336,
+ 2,
+ 466,
+ 242,
+ 2,
+ 0,
+ 0,
+ 0,
+ 546,
+ 365,
+ 2,
+ 592,
+ 371,
+ 2,
+ 470,
+ 351,
+ 2,
+ 551,
+ 330,
+ 2,
+ 519,
+ 394,
+ 2,
+ 589,
+ 391,
+ 2,
+ 575,
+ 211,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 498,
+ 408,
+ 2,
+ 0,
+ 0,
+ 0,
+ 534,
+ 395,
+ 2,
+ 587,
+ 401,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 196141,
+ "bbox": [
+ 453.77,
+ 206.81,
+ 177.23,
+ 210.87
+ ],
+ "category_id": 1,
+ "id": 1717641
+ },
+ {
+ "num_keypoints": 17,
+ "area": 1870.14015,
+ "iscrowd": 0,
+ "keypoints": [
+ 48,
+ 79,
+ 2,
+ 50,
+ 77,
+ 2,
+ 46,
+ 77,
+ 2,
+ 54,
+ 78,
+ 2,
+ 45,
+ 78,
+ 2,
+ 57,
+ 90,
+ 2,
+ 42,
+ 90,
+ 2,
+ 63,
+ 103,
+ 2,
+ 42,
+ 105,
+ 2,
+ 56,
+ 113,
+ 2,
+ 49,
+ 112,
+ 2,
+ 55,
+ 117,
+ 2,
+ 44,
+ 117,
+ 2,
+ 55,
+ 140,
+ 2,
+ 47,
+ 140,
+ 2,
+ 56,
+ 160,
+ 2,
+ 49,
+ 159,
+ 2,
+ 47,
+ 71,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 196141,
+ "bbox": [
+ 36.12,
+ 67.59,
+ 30.41,
+ 96.08
+ ],
+ "category_id": 1,
+ "id": 1724673
+ },
+ {
+ "num_keypoints": 16,
+ "area": 14250.29385,
+ "iscrowd": 0,
+ "keypoints": [
+ 334,
+ 135,
+ 2,
+ 340,
+ 129,
+ 2,
+ 331,
+ 129,
+ 2,
+ 0,
+ 0,
+ 0,
+ 319,
+ 123,
+ 2,
+ 340,
+ 146,
+ 2,
+ 292,
+ 133,
+ 2,
+ 353,
+ 164,
+ 2,
+ 246,
+ 144,
+ 2,
+ 354,
+ 197,
+ 2,
+ 250,
+ 185,
+ 2,
+ 293,
+ 197,
+ 2,
+ 265,
+ 187,
+ 2,
+ 305,
+ 252,
+ 2,
+ 231,
+ 254,
+ 2,
+ 293,
+ 321,
+ 2,
+ 193,
+ 297,
+ 2,
+ 333,
+ 109,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 299,
+ 332,
+ 2,
+ 185,
+ 309,
+ 2,
+ 310,
+ 333,
+ 2,
+ 176,
+ 303,
+ 2,
+ 287,
+ 328,
+ 2,
+ 198,
+ 303,
+ 2,
+ 321,
+ 127,
+ 2,
+ 321,
+ 130,
+ 2,
+ 321,
+ 133,
+ 2,
+ 321,
+ 136,
+ 2,
+ 322,
+ 138,
+ 2,
+ 324,
+ 140,
+ 2,
+ 326,
+ 142,
+ 2,
+ 329,
+ 143,
+ 2,
+ 332,
+ 143,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 328,
+ 125,
+ 2,
+ 330,
+ 125,
+ 2,
+ 331,
+ 126,
+ 2,
+ 333,
+ 126,
+ 2,
+ 335,
+ 127,
+ 2,
+ 339,
+ 128,
+ 2,
+ 340,
+ 127,
+ 2,
+ 342,
+ 126,
+ 2,
+ 343,
+ 126,
+ 2,
+ 345,
+ 125,
+ 2,
+ 336,
+ 130,
+ 2,
+ 336,
+ 132,
+ 2,
+ 337,
+ 134,
+ 2,
+ 338,
+ 136,
+ 2,
+ 334,
+ 138,
+ 2,
+ 335,
+ 138,
+ 2,
+ 337,
+ 138,
+ 2,
+ 338,
+ 137,
+ 2,
+ 339,
+ 138,
+ 2,
+ 329,
+ 127,
+ 2,
+ 331,
+ 127,
+ 2,
+ 333,
+ 128,
+ 2,
+ 334,
+ 129,
+ 2,
+ 332,
+ 130,
+ 2,
+ 331,
+ 129,
+ 2,
+ 339,
+ 129,
+ 2,
+ 341,
+ 127,
+ 2,
+ 342,
+ 127,
+ 2,
+ 344,
+ 127,
+ 2,
+ 342,
+ 129,
+ 2,
+ 341,
+ 129,
+ 2,
+ 329,
+ 139,
+ 2,
+ 331,
+ 139,
+ 2,
+ 333,
+ 139,
+ 2,
+ 334,
+ 139,
+ 2,
+ 334,
+ 139,
+ 2,
+ 335,
+ 139,
+ 2,
+ 336,
+ 139,
+ 2,
+ 335,
+ 140,
+ 2,
+ 334,
+ 141,
+ 2,
+ 333,
+ 141,
+ 2,
+ 333,
+ 141,
+ 2,
+ 331,
+ 141,
+ 2,
+ 330,
+ 139,
+ 2,
+ 333,
+ 139,
+ 2,
+ 334,
+ 140,
+ 2,
+ 334,
+ 139,
+ 2,
+ 336,
+ 140,
+ 2,
+ 334,
+ 140,
+ 2,
+ 334,
+ 141,
+ 2,
+ 331,
+ 141,
+ 2,
+ 0,
+ 0,
+ 0,
+ 349,
+ 202,
+ 2,
+ 345,
+ 203,
+ 2,
+ 342,
+ 207,
+ 2,
+ 338,
+ 212,
+ 2,
+ 349,
+ 214,
+ 2,
+ 341,
+ 219,
+ 2,
+ 336,
+ 219,
+ 2,
+ 333,
+ 218,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 250,
+ 187,
+ 2,
+ 255,
+ 188,
+ 2,
+ 260,
+ 189,
+ 2,
+ 264,
+ 194,
+ 2,
+ 268,
+ 201,
+ 2,
+ 254,
+ 193,
+ 2,
+ 256,
+ 201,
+ 2,
+ 260,
+ 205,
+ 2,
+ 0,
+ 0,
+ 0,
+ 252,
+ 193,
+ 2,
+ 252,
+ 201,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 247,
+ 193,
+ 2,
+ 248,
+ 200,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 197388,
+ "bbox": [
+ 139.41,
+ 102.25,
+ 222.39,
+ 241.57
+ ],
+ "category_id": 1,
+ "id": 437295
+ },
+ {
+ "num_keypoints": 16,
+ "area": 3404.869,
+ "iscrowd": 0,
+ "keypoints": [
+ 345,
+ 92,
+ 2,
+ 350,
+ 87,
+ 2,
+ 341,
+ 87,
+ 2,
+ 0,
+ 0,
+ 0,
+ 330,
+ 83,
+ 2,
+ 357,
+ 94,
+ 2,
+ 316,
+ 92,
+ 2,
+ 357,
+ 104,
+ 2,
+ 291,
+ 123,
+ 1,
+ 351,
+ 133,
+ 2,
+ 281,
+ 136,
+ 1,
+ 326,
+ 131,
+ 1,
+ 305,
+ 128,
+ 1,
+ 336,
+ 152,
+ 1,
+ 303,
+ 171,
+ 1,
+ 318,
+ 206,
+ 2,
+ 294,
+ 211,
+ 1,
+ 344,
+ 70,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 320,
+ 214,
+ 2,
+ 0,
+ 0,
+ 0,
+ 328,
+ 213,
+ 2,
+ 0,
+ 0,
+ 0,
+ 313,
+ 210,
+ 2,
+ 0,
+ 0,
+ 0,
+ 333,
+ 85,
+ 2,
+ 333,
+ 87,
+ 2,
+ 333,
+ 89,
+ 2,
+ 334,
+ 92,
+ 2,
+ 335,
+ 95,
+ 2,
+ 337,
+ 97,
+ 2,
+ 338,
+ 98,
+ 2,
+ 341,
+ 99,
+ 2,
+ 343,
+ 100,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 337,
+ 86,
+ 2,
+ 339,
+ 85,
+ 2,
+ 341,
+ 85,
+ 2,
+ 342,
+ 86,
+ 2,
+ 344,
+ 87,
+ 2,
+ 348,
+ 87,
+ 2,
+ 349,
+ 86,
+ 2,
+ 350,
+ 85,
+ 2,
+ 351,
+ 85,
+ 2,
+ 353,
+ 84,
+ 2,
+ 345,
+ 88,
+ 2,
+ 345,
+ 90,
+ 2,
+ 345,
+ 92,
+ 2,
+ 345,
+ 94,
+ 2,
+ 342,
+ 94,
+ 2,
+ 343,
+ 94,
+ 2,
+ 345,
+ 95,
+ 2,
+ 346,
+ 94,
+ 2,
+ 347,
+ 94,
+ 2,
+ 337,
+ 87,
+ 2,
+ 339,
+ 86,
+ 2,
+ 341,
+ 86,
+ 2,
+ 343,
+ 88,
+ 2,
+ 341,
+ 88,
+ 2,
+ 340,
+ 88,
+ 2,
+ 348,
+ 88,
+ 2,
+ 349,
+ 86,
+ 2,
+ 351,
+ 86,
+ 2,
+ 353,
+ 86,
+ 2,
+ 351,
+ 87,
+ 2,
+ 350,
+ 88,
+ 2,
+ 340,
+ 97,
+ 2,
+ 341,
+ 96,
+ 2,
+ 343,
+ 96,
+ 2,
+ 344,
+ 96,
+ 2,
+ 345,
+ 96,
+ 2,
+ 346,
+ 96,
+ 2,
+ 346,
+ 97,
+ 2,
+ 346,
+ 98,
+ 2,
+ 345,
+ 98,
+ 2,
+ 344,
+ 98,
+ 2,
+ 343,
+ 98,
+ 2,
+ 341,
+ 98,
+ 2,
+ 341,
+ 97,
+ 2,
+ 343,
+ 96,
+ 2,
+ 344,
+ 96,
+ 2,
+ 345,
+ 96,
+ 2,
+ 346,
+ 97,
+ 2,
+ 345,
+ 98,
+ 2,
+ 344,
+ 98,
+ 2,
+ 343,
+ 98,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 197388,
+ "bbox": [
+ 287.17,
+ 61.52,
+ 74.88,
+ 165.61
+ ],
+ "category_id": 1,
+ "id": 467657
+ },
+ {
+ "num_keypoints": 15,
+ "area": 8913.98475,
+ "iscrowd": 0,
+ "keypoints": [
+ 591,
+ 78,
+ 2,
+ 594,
+ 74,
+ 2,
+ 586,
+ 74,
+ 2,
+ 0,
+ 0,
+ 0,
+ 573,
+ 70,
+ 2,
+ 598,
+ 86,
+ 2,
+ 566,
+ 93,
+ 2,
+ 626,
+ 105,
+ 2,
+ 546,
+ 126,
+ 2,
+ 0,
+ 0,
+ 0,
+ 561,
+ 150,
+ 2,
+ 582,
+ 150,
+ 2,
+ 557,
+ 154,
+ 2,
+ 606,
+ 194,
+ 2,
+ 558,
+ 209,
+ 1,
+ 591,
+ 252,
+ 2,
+ 539,
+ 262,
+ 1,
+ 587,
+ 57,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 600,
+ 262,
+ 2,
+ 0,
+ 0,
+ 0,
+ 604,
+ 261,
+ 2,
+ 0,
+ 0,
+ 0,
+ 586,
+ 262,
+ 2,
+ 0,
+ 0,
+ 0,
+ 576.0,
+ 73.0,
+ 2.0,
+ 577.0,
+ 76.0,
+ 2.0,
+ 577.0,
+ 78.0,
+ 2.0,
+ 577.0,
+ 81.0,
+ 2.0,
+ 579.0,
+ 83.0,
+ 2.0,
+ 580.0,
+ 85.0,
+ 2.0,
+ 583.0,
+ 86.0,
+ 2.0,
+ 585.0,
+ 87.0,
+ 2.0,
+ 588.0,
+ 88.0,
+ 2.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 590.0,
+ 76.0,
+ 0.0,
+ 590.0,
+ 77.0,
+ 0.0,
+ 591.0,
+ 79.0,
+ 0.0,
+ 591.0,
+ 80.0,
+ 0.0,
+ 587.0,
+ 81.0,
+ 0.0,
+ 589.0,
+ 81.0,
+ 0.0,
+ 591.0,
+ 81.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 586.8761575736252,
+ 83.61172634947533,
+ 2.0,
+ 588.9412473790786,
+ 83.41106519512101,
+ 2.0,
+ 590.7724136651731,
+ 82.86258592792586,
+ 2.0,
+ 591.6996507831648,
+ 82.73443932626762,
+ 2.0,
+ 592.2456105550131,
+ 82.31442081227021,
+ 2.0,
+ 593.6493129356235,
+ 81.90362788181679,
+ 2.0,
+ 594.2114473230698,
+ 81.26071885052849,
+ 2.0,
+ 594.1276526357614,
+ 83.53407437193627,
+ 2.0,
+ 593.6044897939645,
+ 84.44948682598039,
+ 2.0,
+ 592.6541667265051,
+ 84.92630393832337,
+ 2.0,
+ 590.9756801829618,
+ 85.08662594065947,
+ 2.0,
+ 589.348352170458,
+ 84.76877788468903,
+ 2.0,
+ 587.2321394378064,
+ 83.56702886843215,
+ 2.0,
+ 590.3445832495596,
+ 83.57368678672641,
+ 2.0,
+ 591.8126301484949,
+ 83.20736933689491,
+ 2.0,
+ 592.7565172980813,
+ 82.68511125153186,
+ 2.0,
+ 594.1612270579618,
+ 81.3825154024012,
+ 2.0,
+ 593.0988272872626,
+ 83.2510259291705,
+ 2.0,
+ 592.1117610557407,
+ 83.63720194498697,
+ 2.0,
+ 590.626023236443,
+ 84.00301465801164,
+ 2.0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 559,
+ 151,
+ 2,
+ 565,
+ 151,
+ 2,
+ 569,
+ 153,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 568,
+ 156,
+ 2,
+ 570,
+ 162,
+ 2,
+ 571,
+ 166,
+ 2,
+ 571,
+ 169,
+ 2,
+ 565,
+ 157,
+ 2,
+ 565,
+ 162,
+ 2,
+ 566,
+ 164,
+ 2,
+ 566,
+ 166,
+ 2,
+ 561,
+ 158,
+ 2,
+ 562,
+ 161,
+ 2,
+ 563,
+ 163,
+ 2,
+ 563,
+ 165,
+ 2,
+ 558,
+ 159,
+ 2,
+ 559,
+ 162,
+ 2,
+ 560,
+ 163,
+ 2,
+ 560,
+ 164,
+ 2
+ ],
+ "image_id": 197388,
+ "bbox": [
+ 540.04,
+ 48.81,
+ 99.96,
+ 223.36
+ ],
+ "category_id": 1,
+ "id": 531914
+ },
+ {
+ "num_keypoints": 16,
+ "area": 14267.20475,
+ "iscrowd": 0,
+ "keypoints": [
+ 580,
+ 211,
+ 2,
+ 586,
+ 206,
+ 2,
+ 574,
+ 204,
+ 2,
+ 0,
+ 0,
+ 0,
+ 562,
+ 198,
+ 2,
+ 584,
+ 220,
+ 2,
+ 529,
+ 215,
+ 2,
+ 599,
+ 242,
+ 2,
+ 512,
+ 260,
+ 2,
+ 619,
+ 274,
+ 2,
+ 538,
+ 285,
+ 2,
+ 537,
+ 288,
+ 2,
+ 506,
+ 277,
+ 2,
+ 562,
+ 332,
+ 2,
+ 452,
+ 332,
+ 2,
+ 550,
+ 387,
+ 1,
+ 402,
+ 371,
+ 2,
+ 582,
+ 184,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 387,
+ 389,
+ 2,
+ 0,
+ 0,
+ 0,
+ 374,
+ 383,
+ 2,
+ 0,
+ 0,
+ 0,
+ 390,
+ 365,
+ 2,
+ 559,
+ 197,
+ 2,
+ 559,
+ 202,
+ 2,
+ 559,
+ 205,
+ 2,
+ 560,
+ 209,
+ 2,
+ 561,
+ 213,
+ 2,
+ 564,
+ 217,
+ 2,
+ 567,
+ 220,
+ 2,
+ 570,
+ 223,
+ 2,
+ 573,
+ 225,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 573,
+ 201,
+ 2,
+ 575,
+ 202,
+ 2,
+ 577,
+ 203,
+ 2,
+ 579,
+ 204,
+ 2,
+ 580,
+ 206,
+ 2,
+ 584,
+ 207,
+ 2,
+ 585,
+ 206,
+ 2,
+ 587,
+ 205,
+ 2,
+ 589,
+ 205,
+ 2,
+ 590,
+ 205,
+ 2,
+ 582,
+ 207,
+ 2,
+ 582,
+ 209,
+ 2,
+ 581,
+ 212,
+ 2,
+ 581,
+ 215,
+ 2,
+ 577,
+ 214,
+ 2,
+ 578,
+ 214,
+ 2,
+ 580,
+ 216,
+ 2,
+ 581,
+ 216,
+ 2,
+ 582,
+ 216,
+ 2,
+ 573,
+ 204,
+ 2,
+ 576,
+ 204,
+ 2,
+ 578,
+ 205,
+ 2,
+ 580,
+ 207,
+ 2,
+ 578,
+ 207,
+ 2,
+ 575,
+ 206,
+ 2,
+ 584,
+ 208,
+ 2,
+ 586,
+ 207,
+ 2,
+ 588,
+ 206,
+ 2,
+ 590,
+ 207,
+ 2,
+ 588,
+ 208,
+ 2,
+ 586,
+ 209,
+ 2,
+ 571,
+ 217,
+ 2,
+ 574,
+ 217,
+ 2,
+ 576,
+ 217,
+ 2,
+ 577,
+ 217,
+ 2,
+ 577,
+ 217,
+ 2,
+ 578,
+ 217,
+ 2,
+ 579,
+ 218,
+ 2,
+ 578,
+ 219,
+ 2,
+ 577,
+ 219,
+ 2,
+ 576,
+ 220,
+ 2,
+ 575,
+ 219,
+ 2,
+ 573,
+ 218,
+ 2,
+ 572,
+ 217,
+ 2,
+ 576,
+ 217,
+ 2,
+ 576,
+ 218,
+ 2,
+ 577,
+ 218,
+ 2,
+ 579,
+ 218,
+ 2,
+ 577,
+ 219,
+ 2,
+ 576,
+ 219,
+ 2,
+ 575,
+ 219,
+ 2,
+ 622,
+ 274,
+ 2,
+ 620,
+ 281,
+ 2,
+ 620,
+ 287,
+ 2,
+ 623,
+ 292,
+ 2,
+ 627,
+ 297,
+ 2,
+ 628,
+ 284,
+ 2,
+ 635,
+ 290,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 628,
+ 281,
+ 2,
+ 631,
+ 285,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 628,
+ 278,
+ 2,
+ 632,
+ 283,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 628,
+ 277,
+ 2,
+ 631,
+ 279,
+ 2,
+ 633,
+ 282,
+ 2,
+ 0,
+ 0,
+ 0,
+ 542,
+ 286,
+ 2,
+ 551,
+ 285,
+ 2,
+ 557,
+ 289,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 557,
+ 293,
+ 2,
+ 559,
+ 301,
+ 2,
+ 559,
+ 306,
+ 2,
+ 558,
+ 312,
+ 2,
+ 551,
+ 293,
+ 2,
+ 552,
+ 302,
+ 2,
+ 552,
+ 307,
+ 2,
+ 0,
+ 0,
+ 0,
+ 546,
+ 296,
+ 2,
+ 548,
+ 302,
+ 2,
+ 549,
+ 307,
+ 2,
+ 0,
+ 0,
+ 0,
+ 543,
+ 298,
+ 2,
+ 544,
+ 303,
+ 2,
+ 545,
+ 307,
+ 2,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 197388,
+ "bbox": [
+ 372.58,
+ 170.84,
+ 266.63,
+ 217.19
+ ],
+ "category_id": 1,
+ "id": 533949
+ },
+ {
+ "num_keypoints": 13,
+ "area": 8260.75085,
+ "iscrowd": 0,
+ "keypoints": [
+ 36,
+ 79,
+ 2,
+ 40,
+ 74,
+ 2,
+ 31,
+ 75,
+ 2,
+ 0,
+ 0,
+ 0,
+ 19,
+ 69,
+ 2,
+ 45,
+ 77,
+ 2,
+ 2,
+ 89,
+ 2,
+ 74,
+ 99,
+ 2,
+ 0,
+ 0,
+ 0,
+ 78,
+ 92,
+ 2,
+ 0,
+ 0,
+ 0,
+ 33,
+ 149,
+ 2,
+ 7,
+ 153,
+ 2,
+ 44,
+ 196,
+ 2,
+ 2,
+ 205,
+ 2,
+ 35,
+ 245,
+ 2,
+ 0,
+ 0,
+ 0,
+ 33,
+ 54,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 41,
+ 255,
+ 2,
+ 0,
+ 0,
+ 0,
+ 48,
+ 255,
+ 2,
+ 0,
+ 0,
+ 0,
+ 29,
+ 253,
+ 2,
+ 0,
+ 0,
+ 0,
+ 22,
+ 70,
+ 2,
+ 22,
+ 73,
+ 2,
+ 23,
+ 76,
+ 2,
+ 24,
+ 78,
+ 2,
+ 25,
+ 80,
+ 2,
+ 27,
+ 82,
+ 2,
+ 29,
+ 84,
+ 2,
+ 31,
+ 85,
+ 2,
+ 34,
+ 85,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 27,
+ 72,
+ 2,
+ 29,
+ 72,
+ 2,
+ 31,
+ 72,
+ 2,
+ 33,
+ 72,
+ 2,
+ 34,
+ 73,
+ 2,
+ 38,
+ 73,
+ 2,
+ 40,
+ 72,
+ 2,
+ 41,
+ 71,
+ 2,
+ 42,
+ 71,
+ 2,
+ 43,
+ 70,
+ 2,
+ 37,
+ 75,
+ 2,
+ 37,
+ 77,
+ 2,
+ 37,
+ 78,
+ 2,
+ 37,
+ 80,
+ 2,
+ 35,
+ 80,
+ 2,
+ 37,
+ 80,
+ 2,
+ 37,
+ 80,
+ 2,
+ 38,
+ 80,
+ 2,
+ 39,
+ 80,
+ 2,
+ 28,
+ 74,
+ 2,
+ 31,
+ 73,
+ 2,
+ 33,
+ 74,
+ 2,
+ 34,
+ 75,
+ 2,
+ 32,
+ 76,
+ 2,
+ 31,
+ 75,
+ 2,
+ 39,
+ 75,
+ 2,
+ 40,
+ 73,
+ 2,
+ 41,
+ 73,
+ 2,
+ 43,
+ 72,
+ 2,
+ 42,
+ 74,
+ 2,
+ 40,
+ 75,
+ 2,
+ 30,
+ 83,
+ 2,
+ 33,
+ 82,
+ 2,
+ 35,
+ 82,
+ 2,
+ 36,
+ 82,
+ 2,
+ 37,
+ 82,
+ 2,
+ 37,
+ 82,
+ 2,
+ 38,
+ 82,
+ 2,
+ 37,
+ 83,
+ 2,
+ 37,
+ 84,
+ 2,
+ 36,
+ 84,
+ 2,
+ 35,
+ 84,
+ 2,
+ 33,
+ 84,
+ 2,
+ 31,
+ 83,
+ 2,
+ 35,
+ 83,
+ 2,
+ 36,
+ 83,
+ 2,
+ 37,
+ 83,
+ 2,
+ 38,
+ 82,
+ 2,
+ 37,
+ 83,
+ 2,
+ 36,
+ 84,
+ 2,
+ 35,
+ 84,
+ 2,
+ 0,
+ 0,
+ 0,
+ 76,
+ 89,
+ 2,
+ 74,
+ 86,
+ 2,
+ 75,
+ 81,
+ 2,
+ 77,
+ 76,
+ 2,
+ 86,
+ 80,
+ 2,
+ 82,
+ 84,
+ 2,
+ 78,
+ 85,
+ 2,
+ 76,
+ 86,
+ 2,
+ 86,
+ 83,
+ 2,
+ 82,
+ 86,
+ 2,
+ 79,
+ 87,
+ 2,
+ 76,
+ 87,
+ 2,
+ 87,
+ 84,
+ 2,
+ 84,
+ 88,
+ 2,
+ 80,
+ 88,
+ 2,
+ 78,
+ 89,
+ 2,
+ 88,
+ 87,
+ 2,
+ 85,
+ 89,
+ 2,
+ 82,
+ 90,
+ 2,
+ 79,
+ 91,
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "image_id": 197388,
+ "bbox": [
+ 0.5,
+ 43.74,
+ 90.1,
+ 220.09
+ ],
+ "category_id": 1,
+ "id": 543117
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tests/test_datasets/test_top_down_dataset.py b/tests/test_datasets/test_top_down_dataset.py
index 52cfb55f5f..fac949e3f9 100644
--- a/tests/test_datasets/test_top_down_dataset.py
+++ b/tests/test_datasets/test_top_down_dataset.py
@@ -399,6 +399,83 @@ def test_top_down_COCO_wholebody_dataset():
_ = custom_dataset.evaluate(outputs, tmpdir, 'PCK')
+def test_top_down_halpe_dataset():
+ dataset = 'TopDownHalpeDataset'
+ dataset_info = Config.fromfile(
+ 'configs/_base_/datasets/halpe.py').dataset_info
+ # test Halpe datasets
+ dataset_class = DATASETS.get(dataset)
+ dataset_class.load_annotations = MagicMock()
+ dataset_class.coco = MagicMock()
+
+ channel_cfg = dict(
+ num_output_channels=136,
+ dataset_joints=136,
+ dataset_channel=[
+ list(range(136)),
+ ],
+ inference_channel=list(range(136)))
+
+ data_cfg = dict(
+ image_size=[192, 256],
+ heatmap_size=[48, 64],
+ num_output_channels=channel_cfg['num_output_channels'],
+ num_joints=channel_cfg['dataset_joints'],
+ dataset_channel=channel_cfg['dataset_channel'],
+ inference_channel=channel_cfg['inference_channel'],
+ soft_nms=False,
+ nms_thr=1.0,
+ oks_thr=0.9,
+ vis_thr=0.2,
+ use_gt_bbox=True,
+ det_bbox_thr=0.0,
+ bbox_file='tests/data/coco/test_coco_det_AP_H_56.json',
+ )
+ # Test det bbox
+ data_cfg_copy = copy.deepcopy(data_cfg)
+ data_cfg_copy['use_gt_bbox'] = False
+ _ = dataset_class(
+ ann_file='tests/data/halpe/test_halpe.json',
+ img_prefix='tests/data/coco/',
+ data_cfg=data_cfg_copy,
+ pipeline=[],
+ dataset_info=dataset_info,
+ test_mode=True)
+
+ _ = dataset_class(
+ ann_file='tests/data/halpe/test_halpe.json',
+ img_prefix='tests/data/coco/',
+ data_cfg=data_cfg_copy,
+ pipeline=[],
+ dataset_info=dataset_info,
+ test_mode=False)
+
+ # Test gt bbox
+ custom_dataset = dataset_class(
+ ann_file='tests/data/halpe/test_halpe.json',
+ img_prefix='tests/data/coco/',
+ data_cfg=data_cfg,
+ pipeline=[],
+ dataset_info=dataset_info,
+ test_mode=True)
+
+ assert custom_dataset.test_mode is True
+ assert custom_dataset.dataset_name == 'halpe'
+
+ image_id = 785
+ assert image_id in custom_dataset.img_ids
+ assert len(custom_dataset.img_ids) == 4
+ _ = custom_dataset[0]
+
+ outputs = convert_db_to_output(custom_dataset.db)
+ with tempfile.TemporaryDirectory() as tmpdir:
+ infos = custom_dataset.evaluate(outputs, tmpdir, 'mAP')
+ assert_almost_equal(infos['AP'], 1.0)
+
+ with pytest.raises(KeyError):
+ _ = custom_dataset.evaluate(outputs, tmpdir, 'PCK')
+
+
def test_top_down_OCHuman_dataset():
dataset = 'TopDownOCHumanDataset'
dataset_info = Config.fromfile(