diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/Forecast4Muses.iml b/.idea/Forecast4Muses.iml
new file mode 100644
index 0000000000000000000000000000000000000000..269e1a84d959a26b80a7f728e00800bc44277d27
--- /dev/null
+++ b/.idea/Forecast4Muses.iml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deployment.xml b/.idea/deployment.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f4d6e87b2bc20994698b49ef1bc8b0089aaf2d0d
--- /dev/null
+++ b/.idea/deployment.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9e1663500ff92ff5a2ab2e8f2a2abec29acc3096
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..105ce2da2d6447d11dfe32bfb846c3d5b199fc99
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..af76f0a1c477c472913e9a914334df79a54619e9
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e8d711dca622db8318b3d955fa1d28ff1ad3553b
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Model/Model6/Model6_0_ClothesDetection/__init__.py b/Model/Model6/Model6_0_ClothesDetection/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/_base_/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/_base_/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/_base_/default_runtime.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/_base_/default_runtime.py
new file mode 100644
index 0000000000000000000000000000000000000000..2f0db2e3d303e6d245c36610aab5b6fcb3193480
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/_base_/default_runtime.py
@@ -0,0 +1,34 @@
+default_scope = 'mmyolo'
+
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(type='CheckpointHook', interval=1),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='mmdet.DetVisualizationHook'))
+
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'),
+)
+
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='mmdet.DetLocalVisualizer',
+ vis_backends=vis_backends,
+ name='visualizer')
+log_processor = dict(type='LogProcessor', window_size=50, by_epoch=True)
+
+log_level = 'INFO'
+load_from = None
+resume = False
+
+# file_client_args = dict(
+# backend='petrel',
+# path_mapping=dict({
+# './data/': 's3://openmmlab/datasets/detection/',
+# 'data/': 's3://openmmlab/datasets/detection/'
+# }))
+file_client_args = dict(backend='disk')
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/_base_/det_p5_tta.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/_base_/det_p5_tta.py
new file mode 100644
index 0000000000000000000000000000000000000000..cbbaf2e68ac7a0707f8fd40a0adfcb8de7189e97
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/_base_/det_p5_tta.py
@@ -0,0 +1,57 @@
+# TODO: Need to solve the problem of multiple file_client_args parameters
+# _file_client_args = dict(
+# backend='petrel',
+# path_mapping=dict({
+# './data/': 's3://openmmlab/datasets/detection/',
+# 'data/': 's3://openmmlab/datasets/detection/'
+# }))
+_file_client_args = dict(backend='disk')
+
+tta_model = dict(
+ type='mmdet.DetTTAModel',
+ tta_cfg=dict(nms=dict(type='nms', iou_threshold=0.65), max_per_img=300))
+
+img_scales = [(640, 640), (320, 320), (960, 960)]
+
+# LoadImageFromFile
+# / | \
+# (RatioResize,LetterResize) (RatioResize,LetterResize) (RatioResize,LetterResize) # noqa
+# / \ / \ / \
+# RandomFlip RandomFlip RandomFlip RandomFlip RandomFlip RandomFlip # noqa
+# | | | | | |
+# LoadAnn LoadAnn LoadAnn LoadAnn LoadAnn LoadAnn
+# | | | | | |
+# PackDetIn PackDetIn PackDetIn PackDetIn PackDetIn PackDetIn # noqa
+
+_multiscale_resize_transforms = [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=s),
+ dict(
+ type='LetterResize',
+ scale=s,
+ allow_scale_up=False,
+ pad_val=dict(img=114))
+ ]) for s in img_scales
+]
+
+tta_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_file_client_args),
+ dict(
+ type='TestTimeAug',
+ transforms=[
+ _multiscale_resize_transforms,
+ [
+ dict(type='mmdet.RandomFlip', prob=1.),
+ dict(type='mmdet.RandomFlip', prob=0.)
+ ], [dict(type='mmdet.LoadAnnotations', with_bbox=True)],
+ [
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param', 'flip',
+ 'flip_direction'))
+ ]
+ ])
+]
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/.ipynb_checkpoints/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/.ipynb_checkpoints/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/.ipynb_checkpoints/yolov5_s-v61_syncbn_fast_1xb32-100e_cat-checkpoint.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/.ipynb_checkpoints/yolov5_s-v61_syncbn_fast_1xb32-100e_cat-checkpoint.py
new file mode 100644
index 0000000000000000000000000000000000000000..c24cab973dbbededbd98f0d42444e689d7158695
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/.ipynb_checkpoints/yolov5_s-v61_syncbn_fast_1xb32-100e_cat-checkpoint.py
@@ -0,0 +1,135 @@
+_base_ = '../yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'
+
+max_epochs = 100 # 训练的最大 epoch
+data_root = './data-df2/' # 数据集目录的绝对路径
+# data_root = '/root/workspace/mmyolo/data/cat/' # Docker 容器里面数据集目录的绝对路径
+
+# 结果保存的路径,可以省略,省略保存的文件名位于 work_dirs 下 config 同名的文件夹中
+# 如果某个 config 只是修改了部分参数,修改这个变量就可以将新的训练文件保存到其他地方
+work_dir = './work_dirs/yolov5_s_df2'
+
+# load_from 可以指定本地路径或者 URL,设置了 URL 会自动进行下载,因为上面已经下载过,我们这里设置本地路径
+# 因为本教程是在 cat 数据集上微调,故这里需要使用 `load_from` 来加载 MMYOLO 中的预训练模型,这样可以在加快收敛速度的同时保证精度
+# load_from = './work_dirs/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth' # noqa
+
+# 根据自己的 GPU 情况,修改 batch size,YOLOv5-s 默认为 8卡 x 16bs
+train_batch_size_per_gpu = 32
+train_num_workers = 4 # 推荐使用 train_num_workers = nGPU x 4
+
+save_epoch_intervals = 2 # 每 interval 轮迭代进行一次保存一次权重
+
+# 根据自己的 GPU 情况,修改 base_lr,修改的比例是 base_lr_default * (your_bs / default_bs)
+base_lr = _base_.base_lr / 4
+
+anchors = [ # 此处已经根据数据集特点更新了 anchor,关于 anchor 的生成,后面小节会讲解
+ [(68, 69), (154, 91), (143, 162)], # P3/8
+ [(242, 160), (189, 287), (391, 207)], # P4/16
+ [(353, 337), (539, 341), (443, 432)] # P5/32
+]
+
+class_name = ('short_sleeved_shirt',
+ 'long_sleeved_shirt',
+ 'short_sleeved_outwear',
+ 'long_sleeved_outwear',
+ 'vest',
+ 'sling',
+ 'shorts',
+ 'trousers',
+ 'skirt',
+ 'short_sleeved_dress',
+ 'long_sleeved_dress',
+ 'vest_dress',
+ 'sling_dress') # 根据 class_with_id.txt 类别信息,设置 class_name
+
+num_classes = len(class_name)
+metainfo = dict(
+ classes=class_name,
+ palette=[(255, 0, 0),
+ (255, 128, 0),
+ (255, 255, 0),
+ (128, 255, 0),
+ (0, 255, 0),
+ (0, 255, 128),
+ (0, 255, 255),
+ (0, 128, 255),
+ (0, 0, 255),
+ (127, 0, 255),
+ (255, 0, 255),
+ (255, 0, 127),
+ (128, 128, 128)] # 画图时候的颜色,随便设置即可
+)
+
+train_cfg = dict(
+ max_epochs=max_epochs,
+ val_begin=20, # 第几个 epoch 后验证,这里设置 20 是因为前 20 个 epoch 精度不高,测试意义不大,故跳过
+ val_interval=save_epoch_intervals # 每 val_interval 轮迭代进行一次测试评估
+ # dynamic_intervals=[(max_epochs-_base_.num_last_epochs, 1)]
+)
+
+model = dict(
+ bbox_head=dict(
+ head_module=dict(num_classes=num_classes),
+ prior_generator=dict(base_sizes=anchors),
+
+ # loss_cls 会根据 num_classes 动态调整,但是 num_classes = 1 的时候,loss_cls 恒为 0
+ loss_cls=dict(loss_weight=0.5 *
+ (num_classes / 80 * 3 / _base_.num_det_layers))))
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ dataset=dict(
+ _delete_=True,
+ type='RepeatDataset',
+ # 数据量太少的话,可以使用 RepeatDataset ,在每个 epoch 内重复当前数据集 n 次,这里设置 5 是重复 5 次
+ times=2,
+ dataset=dict(
+ type=_base_.dataset_type,
+ data_root=data_root,
+ metainfo=metainfo,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='smaller-dataset/'),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=_base_.train_pipeline)))
+
+val_dataloader = dict(
+ dataset=dict(
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='smaller-dataset/')))
+
+test_dataloader = val_dataloader
+
+val_evaluator = dict(ann_file=data_root + 'annotations/trainval.json')
+test_evaluator = val_evaluator
+
+optim_wrapper = dict(optimizer=dict(lr=base_lr))
+
+default_hooks = dict(
+ # 设置间隔多少个 epoch 保存模型,以及保存模型最多几个,`save_best` 是另外保存最佳模型(推荐)
+ checkpoint=dict(
+ type='CheckpointHook',
+ interval=save_epoch_intervals,
+ max_keep_ckpts=5,
+ save_best='auto'),
+ param_scheduler=dict(max_epochs=max_epochs, warmup_mim_iter=10),
+ # logger 输出的间隔
+ logger=dict(type='LoggerHook', interval=10))
+
+# custom_hooks = [
+# dict(
+# type="EMAHook",
+# ema_type="ExpMomentumEMA",
+# momentum=0.0001,
+# update_buffers=True,
+# strict_load=False,
+# priority=49),
+# dict(
+# type="mmdet.PipelineSwitchHook",
+# switch_epoch=max_epochs-max_epochs-_base_.num_last_epochs,
+# switch_pipeline=_base_.train_pipeline_stage2
+# )
+# ]
+
+visualizer = dict(vis_backends=[dict(type='LocalVisBackend'), dict(type='WandbVisBackend')])
\ No newline at end of file
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/.ipynb_checkpoints/yolov6_s_fast-checkpoint.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/.ipynb_checkpoints/yolov6_s_fast-checkpoint.py
new file mode 100644
index 0000000000000000000000000000000000000000..5e04123bb59ed5b29bbea891f3456a81a5ed4a9f
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/.ipynb_checkpoints/yolov6_s_fast-checkpoint.py
@@ -0,0 +1,124 @@
+_base_ = '../yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py'
+
+max_epochs = 100 # 训练的最大 epoch
+data_root = './data-df2/' # 数据集目录的绝对路径
+
+# 结果保存的路径,可以省略,省略保存的文件名位于 work_dirs 下 config 同名的文件夹中
+# 如果某个 config 只是修改了部分参数,修改这个变量就可以将新的训练文件保存到其他地方
+work_dir = './work_dirs/yolov6_s_df2'
+
+# 根据自己的 GPU 情况,修改 batch size,YOLOv5-s 默认为 8卡 x 16bs
+train_batch_size_per_gpu = 32
+train_num_workers = 4 # 推荐使用 train_num_workers = nGPU x 4
+
+save_epoch_intervals = 2 # 每 interval 轮迭代进行一次保存一次权重
+
+# 根据自己的 GPU 情况,修改 base_lr,修改的比例是 base_lr_default * (your_bs / default_bs)
+base_lr = _base_.base_lr / 4
+
+class_name = ('short_sleeved_shirt',
+ 'long_sleeved_shirt',
+ 'short_sleeved_outwear',
+ 'long_sleeved_outwear',
+ 'vest',
+ 'sling',
+ 'shorts',
+ 'trousers',
+ 'skirt',
+ 'short_sleeved_dress',
+ 'long_sleeved_dress',
+ 'vest_dress',
+ 'sling_dress') # 根据 class_with_id.txt 类别信息,设置 class_name
+
+num_classes = len(class_name)
+metainfo = dict(
+ classes=class_name,
+ palette=[(255, 0, 0),
+ (255, 128, 0),
+ (255, 255, 0),
+ (128, 255, 0),
+ (0, 255, 0),
+ (0, 255, 128),
+ (0, 255, 255),
+ (0, 128, 255),
+ (0, 0, 255),
+ (127, 0, 255),
+ (255, 0, 255),
+ (255, 0, 127),
+ (128, 128, 128)] # 画图时候的颜色,随便设置即可
+)
+
+train_cfg = dict(
+ max_epochs=max_epochs,
+ val_begin=20, # 第几个 epoch 后验证,这里设置 20 是因为前 20 个 epoch 精度不高,测试意义不大,故跳过
+ val_interval=save_epoch_intervals, # 每 val_interval 轮迭代进行一次测试评估
+ dynamic_intervals=[(max_epochs-_base_.num_last_epochs, 1)]
+)
+
+model = dict(
+ bbox_head=dict(
+ head_module=dict(num_classes=num_classes)),
+ train_cfg=dict(
+ initial_assigner=dict(num_classes=num_classes),
+ assigner=dict(num_classes=num_classes)
+ )
+)
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ dataset=dict(
+ _delete_=True,
+ type='RepeatDataset',
+ # 数据量太少的话,可以使用 RepeatDataset ,在每个 epoch 内重复当前数据集 n 次,这里设置 5 是重复 5 次
+ times=2,
+ dataset=dict(
+ type=_base_.dataset_type,
+ data_root=data_root,
+ metainfo=metainfo,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='smaller-dataset/'),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=_base_.train_pipeline)))
+
+val_dataloader = dict(
+ dataset=dict(
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='smaller-dataset/')))
+
+test_dataloader = val_dataloader
+
+val_evaluator = dict(ann_file=data_root + 'annotations/trainval.json')
+test_evaluator = val_evaluator
+
+optim_wrapper = dict(optimizer=dict(lr=base_lr))
+
+default_hooks = dict(
+ # 设置间隔多少个 epoch 保存模型,以及保存模型最多几个,`save_best` 是另外保存最佳模型(推荐)
+ checkpoint=dict(
+ type='CheckpointHook',
+ interval=save_epoch_intervals,
+ max_keep_ckpts=5,
+ save_best='auto'),
+ param_scheduler=dict(max_epochs=max_epochs),
+ # logger 输出的间隔
+ logger=dict(type='LoggerHook', interval=10))
+
+custom_hooks = [
+ dict(
+ type="EMAHook",
+ ema_type="ExpMomentumEMA",
+ momentum=0.0001,
+ update_buffers=True,
+ strict_load=False,
+ priority=49),
+ dict(
+ type="mmdet.PipelineSwitchHook",
+ switch_epoch=max_epochs-max_epochs-_base_.num_last_epochs,
+ switch_pipeline=_base_.train_pipeline_stage2
+ )
+]
+
+visualizer = dict(vis_backends=[dict(type='LocalVisBackend'), dict(type='WandbVisBackend')])
\ No newline at end of file
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/[A]dataset_split.sh b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/[A]dataset_split.sh
new file mode 100644
index 0000000000000000000000000000000000000000..84c460a5e635a5cbe180760cc56b2f92664be191
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/[A]dataset_split.sh
@@ -0,0 +1,5 @@
+cd ..
+python tools/misc/coco_split.py --json data-df2/deepfashion2-smaller-dataset.json \
+ --out-dir data-df2/annotations/ \
+ --ratios 8 2 \
+ --shuffle --seed 10
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov5_s-v61_syncbn_fast_1xb32-100e_cat.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov5_s-v61_syncbn_fast_1xb32-100e_cat.py
new file mode 100644
index 0000000000000000000000000000000000000000..c24cab973dbbededbd98f0d42444e689d7158695
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov5_s-v61_syncbn_fast_1xb32-100e_cat.py
@@ -0,0 +1,135 @@
+_base_ = '../yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'
+
+max_epochs = 100 # 训练的最大 epoch
+data_root = './data-df2/' # 数据集目录的绝对路径
+# data_root = '/root/workspace/mmyolo/data/cat/' # Docker 容器里面数据集目录的绝对路径
+
+# 结果保存的路径,可以省略,省略保存的文件名位于 work_dirs 下 config 同名的文件夹中
+# 如果某个 config 只是修改了部分参数,修改这个变量就可以将新的训练文件保存到其他地方
+work_dir = './work_dirs/yolov5_s_df2'
+
+# load_from 可以指定本地路径或者 URL,设置了 URL 会自动进行下载,因为上面已经下载过,我们这里设置本地路径
+# 因为本教程是在 cat 数据集上微调,故这里需要使用 `load_from` 来加载 MMYOLO 中的预训练模型,这样可以在加快收敛速度的同时保证精度
+# load_from = './work_dirs/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth' # noqa
+
+# 根据自己的 GPU 情况,修改 batch size,YOLOv5-s 默认为 8卡 x 16bs
+train_batch_size_per_gpu = 32
+train_num_workers = 4 # 推荐使用 train_num_workers = nGPU x 4
+
+save_epoch_intervals = 2 # 每 interval 轮迭代进行一次保存一次权重
+
+# 根据自己的 GPU 情况,修改 base_lr,修改的比例是 base_lr_default * (your_bs / default_bs)
+base_lr = _base_.base_lr / 4
+
+anchors = [ # 此处已经根据数据集特点更新了 anchor,关于 anchor 的生成,后面小节会讲解
+ [(68, 69), (154, 91), (143, 162)], # P3/8
+ [(242, 160), (189, 287), (391, 207)], # P4/16
+ [(353, 337), (539, 341), (443, 432)] # P5/32
+]
+
+class_name = ('short_sleeved_shirt',
+ 'long_sleeved_shirt',
+ 'short_sleeved_outwear',
+ 'long_sleeved_outwear',
+ 'vest',
+ 'sling',
+ 'shorts',
+ 'trousers',
+ 'skirt',
+ 'short_sleeved_dress',
+ 'long_sleeved_dress',
+ 'vest_dress',
+ 'sling_dress') # 根据 class_with_id.txt 类别信息,设置 class_name
+
+num_classes = len(class_name)
+metainfo = dict(
+ classes=class_name,
+ palette=[(255, 0, 0),
+ (255, 128, 0),
+ (255, 255, 0),
+ (128, 255, 0),
+ (0, 255, 0),
+ (0, 255, 128),
+ (0, 255, 255),
+ (0, 128, 255),
+ (0, 0, 255),
+ (127, 0, 255),
+ (255, 0, 255),
+ (255, 0, 127),
+ (128, 128, 128)] # 画图时候的颜色,随便设置即可
+)
+
+train_cfg = dict(
+ max_epochs=max_epochs,
+ val_begin=20, # 第几个 epoch 后验证,这里设置 20 是因为前 20 个 epoch 精度不高,测试意义不大,故跳过
+ val_interval=save_epoch_intervals # 每 val_interval 轮迭代进行一次测试评估
+ # dynamic_intervals=[(max_epochs-_base_.num_last_epochs, 1)]
+)
+
+model = dict(
+ bbox_head=dict(
+ head_module=dict(num_classes=num_classes),
+ prior_generator=dict(base_sizes=anchors),
+
+ # loss_cls 会根据 num_classes 动态调整,但是 num_classes = 1 的时候,loss_cls 恒为 0
+ loss_cls=dict(loss_weight=0.5 *
+ (num_classes / 80 * 3 / _base_.num_det_layers))))
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ dataset=dict(
+ _delete_=True,
+ type='RepeatDataset',
+ # 数据量太少的话,可以使用 RepeatDataset ,在每个 epoch 内重复当前数据集 n 次,这里设置 5 是重复 5 次
+ times=2,
+ dataset=dict(
+ type=_base_.dataset_type,
+ data_root=data_root,
+ metainfo=metainfo,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='smaller-dataset/'),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=_base_.train_pipeline)))
+
+val_dataloader = dict(
+ dataset=dict(
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='smaller-dataset/')))
+
+test_dataloader = val_dataloader
+
+val_evaluator = dict(ann_file=data_root + 'annotations/trainval.json')
+test_evaluator = val_evaluator
+
+optim_wrapper = dict(optimizer=dict(lr=base_lr))
+
+default_hooks = dict(
+ # 设置间隔多少个 epoch 保存模型,以及保存模型最多几个,`save_best` 是另外保存最佳模型(推荐)
+ checkpoint=dict(
+ type='CheckpointHook',
+ interval=save_epoch_intervals,
+ max_keep_ckpts=5,
+ save_best='auto'),
+ param_scheduler=dict(max_epochs=max_epochs, warmup_mim_iter=10),
+ # logger 输出的间隔
+ logger=dict(type='LoggerHook', interval=10))
+
+# custom_hooks = [
+# dict(
+# type="EMAHook",
+# ema_type="ExpMomentumEMA",
+# momentum=0.0001,
+# update_buffers=True,
+# strict_load=False,
+# priority=49),
+# dict(
+# type="mmdet.PipelineSwitchHook",
+# switch_epoch=max_epochs-max_epochs-_base_.num_last_epochs,
+# switch_pipeline=_base_.train_pipeline_stage2
+# )
+# ]
+
+visualizer = dict(vis_backends=[dict(type='LocalVisBackend'), dict(type='WandbVisBackend')])
\ No newline at end of file
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov6_s_fast.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov6_s_fast.py
new file mode 100644
index 0000000000000000000000000000000000000000..89381edf04db13b4456ce2f27f402e96ca7042e3
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov6_s_fast.py
@@ -0,0 +1,124 @@
+_base_ = '../yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py'
+
+max_epochs = 100 # 训练的最大 epoch
+data_root = './data-df2/' # 数据集目录的绝对路径
+
+# 结果保存的路径,可以省略,省略保存的文件名位于 work_dirs 下 config 同名的文件夹中
+# 如果某个 config 只是修改了部分参数,修改这个变量就可以将新的训练文件保存到其他地方
+work_dir = './work_dirs/yolov6_s_df2'
+
+# 根据自己的 GPU 情况,修改 batch size,YOLOv5-s 默认为 8卡 x 16bs
+train_batch_size_per_gpu = 32
+train_num_workers = 4 # 推荐使用 train_num_workers = nGPU x 4
+
+save_epoch_intervals = 2
+
+# 根据自己的 GPU 情况,修改 base_lr,修改的比例是 base_lr_default * (your_bs / default_bs)
+base_lr = _base_.base_lr / 4
+
+class_name = ('short_sleeved_shirt',
+ 'long_sleeved_shirt',
+ 'short_sleeved_outwear',
+ 'long_sleeved_outwear',
+ 'vest',
+ 'sling',
+ 'shorts',
+ 'trousers',
+ 'skirt',
+ 'short_sleeved_dress',
+ 'long_sleeved_dress',
+ 'vest_dress',
+ 'sling_dress') # 根据 class_with_id.txt 类别信息,设置 class_name
+
+num_classes = len(class_name)
+metainfo = dict(
+ classes=class_name,
+ palette=[(255, 0, 0),
+ (255, 128, 0),
+ (255, 255, 0),
+ (128, 255, 0),
+ (0, 255, 0),
+ (0, 255, 128),
+ (0, 255, 255),
+ (0, 128, 255),
+ (0, 0, 255),
+ (127, 0, 255),
+ (255, 0, 255),
+ (255, 0, 127),
+ (128, 128, 128)] # 画图时候的颜色,随便设置即可
+)
+
+train_cfg = dict(
+ max_epochs=max_epochs,
+ val_begin=20, # 第几个 epoch 后验证,这里设置 20 是因为前 20 个 epoch 精度不高,测试意义不大,故跳过
+ val_interval=save_epoch_intervals, # 每 val_interval 轮迭代进行一次测试评估
+ dynamic_intervals=[(max_epochs-_base_.num_last_epochs, 1)]
+)
+
+model = dict(
+ bbox_head=dict(
+ head_module=dict(num_classes=num_classes)),
+ train_cfg=dict(
+ initial_assigner=dict(num_classes=num_classes),
+ assigner=dict(num_classes=num_classes)
+ )
+)
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ dataset=dict(
+ _delete_=True,
+ type='RepeatDataset',
+ # 数据量太少的话,可以使用 RepeatDataset ,在每个 epoch 内重复当前数据集 n 次,这里设置 5 是重复 5 次
+ times=2,
+ dataset=dict(
+ type=_base_.dataset_type,
+ data_root=data_root,
+ metainfo=metainfo,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='smaller-dataset/'),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=_base_.train_pipeline)))
+
+val_dataloader = dict(
+ dataset=dict(
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='smaller-dataset/')))
+
+test_dataloader = val_dataloader
+
+val_evaluator = dict(ann_file=data_root + 'annotations/trainval.json')
+test_evaluator = val_evaluator
+
+optim_wrapper = dict(optimizer=dict(lr=base_lr))
+
+default_hooks = dict(
+ # 设置间隔多少个 epoch 保存模型,以及保存模型最多几个,`save_best` 是另外保存最佳模型(推荐)
+ checkpoint=dict(
+ type='CheckpointHook',
+ interval=save_epoch_intervals,
+ max_keep_ckpts=5,
+ save_best='auto'),
+ param_scheduler=dict(max_epochs=max_epochs),
+ # logger 输出的间隔
+ logger=dict(type='LoggerHook', interval=10))
+
+custom_hooks = [
+ dict(
+ type="EMAHook",
+ ema_type="ExpMomentumEMA",
+ momentum=0.0001,
+ update_buffers=True,
+ strict_load=False,
+ priority=49),
+ dict(
+ type="mmdet.PipelineSwitchHook",
+ switch_epoch=max_epochs-max_epochs-_base_.num_last_epochs,
+ switch_pipeline=_base_.train_pipeline_stage2
+ )
+]
+
+visualizer = dict(vis_backends=[dict(type='LocalVisBackend'), dict(type='WandbVisBackend')])
\ No newline at end of file
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov7_l_syncbn_fast_6x16b-100e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov7_l_syncbn_fast_6x16b-100e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..a005c28eb78d101354650a20b1ff7212e24d0743
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov7_l_syncbn_fast_6x16b-100e_coco.py
@@ -0,0 +1,489 @@
+_base_ = ['../_base_/default_runtime.py', '../_base_/det_p5_tta.py']
+
+data_root = './data-df2/'
+train_ann_file = 'annotations/train.json'
+train_data_prefix = 'smaller-dataset/'
+val_ann_file = 'annotations/val.json'
+val_data_prefix = 'smaller-dataset/'
+test_ann_file = 'annotations/test.json'
+test_data_prefix = 'smaller-dataset/'
+# num_classes = 13
+train_batch_size_per_gpu = 32
+train_num_workers = 4
+persistent_workers = True
+
+vis_backends = [
+ dict(type='LocalVisBackend'),
+]
+visualizer = dict(
+ type='mmdet.DetLocalVisualizer',
+ vis_backends=[
+ dict(type='LocalVisBackend'),
+ # dict(type='WandbVisBackend'),
+ dict(type='TensorboardVisBackend')
+ ],
+ name='visualizer')
+log_processor = dict(type='LogProcessor', window_size=50, by_epoch=True)
+log_level = 'INFO'
+load_from = None
+resume = False
+
+anchors = [
+ [(12, 16), (19, 36), (40, 28)], # P3/8
+ [(36, 75), (76, 55), (72, 146)], # P4/16
+ [(142, 110), (192, 243), (459, 401)] # P5/32
+]
+
+base_lr = 0.01
+max_epochs = 100
+
+num_epoch_stage2 = 10 # The last 10 epochs switch evaluation interval
+val_interval_stage2 = 1
+
+model_test_cfg = dict(
+ multi_label=True,
+ nms_pre=30000,
+ score_thr=0.001,
+ nms=dict(type='nms', iou_threshold=0.65),
+ max_per_img=300)
+
+img_scale = (640, 640)
+dataset_type = 'YOLOv5CocoDataset'
+classes=('short_sleeved_shirt', 'long_sleeved_shirt',
+ 'short_sleeved_outwear', 'long_sleeved_outwear',
+ 'vest', 'sling', 'shorts', 'trousers', 'skirt',
+ 'short_sleeved_dress', 'long_sleeved_dress',
+ 'vest_dress', 'sling_dress')
+num_classes = len(classes)
+palette=[(255, 0, 0), (255, 128, 0), (255, 255, 0),
+ (128, 255, 0), (0, 255, 0), (0, 255, 128),
+ (0, 255, 255), (0, 128, 255), (0, 0, 255),
+ (127, 0, 255), (255, 0, 255), (255, 0, 127),
+ (128, 128, 128)]
+metainfo = dict(
+ classes=classes,
+ palette=palette
+)
+val_batch_size_per_gpu = 1
+val_num_workers = 2
+batch_shapes_cfg = dict(
+ type='BatchShapePolicy',
+ batch_size=val_batch_size_per_gpu,
+ img_size=img_scale[0],
+ size_divisor=32,
+ extra_pad_ratio=0.5)
+strides = [8, 16, 32] # Strides of multi-scale prior box
+num_det_layers = 3
+norm_cfg = dict(type='BN', momentum=0.03, eps=0.001)
+
+# Data augmentation
+max_translate_ratio = 0.2 # YOLOv5RandomAffine
+scaling_ratio_range = (0.1, 2.0) # YOLOv5RandomAffine
+mixup_prob = 0.15 # YOLOv5MixUp
+randchoice_mosaic_prob = [0.8, 0.2]
+mixup_alpha = 8.0 # YOLOv5MixUp
+mixup_beta = 8.0 # YOLOv5MixUp
+
+# -----train val related-----
+loss_cls_weight = 0.3
+loss_bbox_weight = 0.05
+loss_obj_weight = 0.7
+# BatchYOLOv7Assigner params
+simota_candidate_topk = 10
+simota_iou_weight = 3.0
+simota_cls_weight = 1.0
+prior_match_thr = 4. # Priori box matching threshold
+obj_level_weights = [4., 1.,
+ 0.4] # The obj loss weights of the three output layers
+
+lr_factor = 0.1 # Learning rate scaling factor
+weight_decay = 0.0005
+save_epoch_intervals = 1
+max_keep_ckpts = 5
+
+env_cfg = dict(
+ cudnn_benchmark=True,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+
+# ===============================Unmodified in most cases====================
+model = dict(
+ type='YOLODetector',
+ data_preprocessor=dict(
+ type='YOLOv5DetDataPreprocessor',
+ mean=[0., 0., 0.],
+ std=[255., 255., 255.],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='YOLOv7Backbone',
+ arch='L',
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ neck=dict(
+ type='YOLOv7PAFPN',
+ block_cfg=dict(
+ type='ELANBlock',
+ middle_ratio=0.5,
+ block_ratio=0.25,
+ num_blocks=4,
+ num_convs_in_block=1),
+ upsample_feats_cat_first=False,
+ in_channels=[512, 1024, 1024],
+ # The real output channel will be multiplied by 2
+ out_channels=[128, 256, 512],
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ bbox_head=dict(
+ type='YOLOv7Head',
+ head_module=dict(
+ type='YOLOv7HeadModule',
+ num_classes=num_classes,
+ in_channels=[256, 512, 1024],
+ featmap_strides=strides,
+ num_base_priors=3),
+ prior_generator=dict(
+ type='mmdet.YOLOAnchorGenerator',
+ base_sizes=anchors,
+ strides=strides),
+ # scaled based on number of detection layers
+ loss_cls=dict(
+ type='mmdet.CrossEntropyLoss',
+ use_sigmoid=True,
+ reduction='mean',
+ loss_weight=loss_cls_weight *
+ (num_classes / 80 * 3 / num_det_layers)),
+ loss_bbox=dict(
+ type='IoULoss',
+ iou_mode='ciou',
+ bbox_format='xyxy',
+ reduction='mean',
+ loss_weight=loss_bbox_weight * (3 / num_det_layers),
+ return_iou=True),
+ loss_obj=dict(
+ type='mmdet.CrossEntropyLoss',
+ use_sigmoid=True,
+ reduction='mean',
+ loss_weight=loss_obj_weight *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers)),
+ prior_match_thr=prior_match_thr,
+ obj_level_weights=obj_level_weights,
+ # BatchYOLOv7Assigner params
+ simota_candidate_topk=simota_candidate_topk,
+ simota_iou_weight=simota_iou_weight,
+ simota_cls_weight=simota_cls_weight),
+ test_cfg=model_test_cfg)
+
+pre_transform = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='LoadAnnotations', with_bbox=True)
+]
+
+mosiac4_pipeline = [
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # note
+ scaling_ratio_range=scaling_ratio_range, # note
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+mosiac9_pipeline = [
+ dict(
+ type='Mosaic9',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # note
+ scaling_ratio_range=scaling_ratio_range, # note
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+randchoice_mosaic_pipeline = dict(
+ type='RandomChoice',
+ transforms=[mosiac4_pipeline, mosiac9_pipeline],
+ prob=randchoice_mosaic_prob)
+
+train_pipeline = [
+ *pre_transform,
+ randchoice_mosaic_pipeline,
+ dict(
+ type='YOLOv5MixUp',
+ alpha=mixup_alpha, # note
+ beta=mixup_beta, # note
+ prob=mixup_prob,
+ pre_transform=[*pre_transform, randchoice_mosaic_pipeline]),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='LetterResize',
+ scale=img_scale,
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ collate_fn=dict(type='yolov5_collate'), # FASTER
+ dataset=dict(
+ type='RepeatDataset',
+ times=2,
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ metainfo=metainfo,
+ ann_file=val_ann_file,
+ data_prefix=dict(img=train_data_prefix),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=train_pipeline)
+ )
+ )
+
+val_dataloader = dict(
+ dataset=dict(
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file=val_ann_file,
+ data_prefix=dict(img=val_data_prefix)))
+
+val_evaluator = dict(ann_file=data_root + val_ann_file)
+
+test_dataloader = dict(
+ dataset=dict(
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file=test_ann_file,
+ data_prefix=dict(img=test_data_prefix)))
+test_evaluator = dict(ann_file=data_root + test_ann_file)
+
+train_cfg = dict(
+ type='EpochBasedTrainLoop',
+ max_epochs=max_epochs,
+ val_interval=save_epoch_intervals,
+ dynamic_intervals=[(max_epochs - num_epoch_stage2, val_interval_stage2)])
+val_cfg = dict(type='ValLoop')
+test_cfg = dict(type='TestLoop')
+
+param_scheduler = None
+optim_wrapper = dict(
+ type='OptimWrapper',
+ optimizer=dict(
+ type='SGD',
+ lr=base_lr,
+ momentum=0.937,
+ weight_decay=weight_decay,
+ nesterov=True,
+ batch_size_per_gpu=train_batch_size_per_gpu),
+ constructor='YOLOv7OptimWrapperConstructor')
+
+# TO DO: change param_scheduler type to StepLR, refer to mobilenet
+default_scope = 'mmyolo'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=10),
+ param_scheduler=dict(
+ type='YOLOv5ParamSchedulerHook',
+ scheduler_type='cosine',
+ lr_factor=lr_factor, # note
+ max_epochs=max_epochs),
+ checkpoint=dict(
+ type='CheckpointHook',
+ save_param_scheduler=False,
+ interval=save_epoch_intervals,
+ save_best='auto',
+ max_keep_ckpts=max_keep_ckpts),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='mmdet.DetVisualizationHook'))
+
+custom_hooks = [
+ dict(
+ type='EMAHook',
+ ema_type='ExpMomentumEMA',
+ momentum=0.001,
+ update_buffers=True,
+ strict_load=False,
+ priority=49)
+]
+
+# ============================
+
+file_client_args = dict(backend='disk')
+_file_client_args = dict(backend='disk')
+tta_model = dict(
+ type='mmdet.DetTTAModel',
+ tta_cfg=dict(nms=dict(type='nms', iou_threshold=0.65), max_per_img=300))
+img_scales = [
+ (
+ 640,
+ 640,
+ ),
+ (
+ 320,
+ 320,
+ ),
+ (
+ 960,
+ 960,
+ ),
+]
+_multiscale_resize_transforms = [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 640,
+ 640,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 640,
+ 640,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 320,
+ 320,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 320,
+ 320,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 960,
+ 960,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 960,
+ 960,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+]
+tta_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
+ dict(
+ type='TestTimeAug',
+ transforms=[
+ [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 640,
+ 640,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 640,
+ 640,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 320,
+ 320,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 320,
+ 320,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 960,
+ 960,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 960,
+ 960,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ ],
+ [
+ dict(type='mmdet.RandomFlip', prob=1.0),
+ dict(type='mmdet.RandomFlip', prob=0.0),
+ ],
+ [
+ dict(type='mmdet.LoadAnnotations', with_bbox=True),
+ ],
+ [
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=(
+ 'img_id',
+ 'img_path',
+ 'ori_shape',
+ 'img_shape',
+ 'scale_factor',
+ 'pad_param',
+ 'flip',
+ 'flip_direction',
+ )),
+ ],
+ ]),
+]
+
+launcher = 'none'
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov7_l_syncbn_fast_6x32b-100e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov7_l_syncbn_fast_6x32b-100e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..9a7a722e74a6b446c58e748d802511ae5fdab2d3
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov7_l_syncbn_fast_6x32b-100e_coco.py
@@ -0,0 +1,554 @@
+_base_ = ['../_base_/default_runtime.py', '../_base_/det_p5_tta.py']
+
+data_root = './data-df2/'
+train_ann_file = 'annotations/train.json'
+train_data_prefix = 'smaller-dataset/'
+val_ann_file = 'annotations/val.json'
+val_data_prefix = 'smaller-dataset/'
+test_ann_file = 'annotations/test.json'
+test_data_prefix = 'smaller-dataset/'
+num_classes = 13
+train_batch_size_per_gpu = 32
+train_num_workers = 24
+persistent_workers = True
+
+vis_backends = [
+ dict(type='LocalVisBackend'),
+]
+visualizer = dict(
+ type='mmdet.DetLocalVisualizer',
+ vis_backends=[
+ dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend'),
+ # dict(type='TensorboardVisBackend')
+ ],
+ name='visualizer')
+log_processor = dict(type='LogProcessor', window_size=50, by_epoch=True)
+log_level = 'INFO'
+load_from = None
+resume = False
+
+anchors = [
+ [(12, 16), (19, 36), (40, 28)], # P3/8
+ [(36, 75), (76, 55), (72, 146)], # P4/16
+ [(142, 110), (192, 243), (459, 401)] # P5/32
+]
+
+base_lr = 0.01
+max_epochs = 100
+
+num_epoch_stage2 = 10 # The last 10 epochs switch evaluation interval
+val_interval_stage2 = 1
+
+model_test_cfg = dict(
+ multi_label=True,
+ nms_pre=30000,
+ score_thr=0.001,
+ nms=dict(type='nms', iou_threshold=0.65),
+ max_per_img=300)
+
+img_scale = (640, 640)
+dataset_type = 'YOLOv5CocoDataset'
+metainfo = dict(
+ classes=(
+ 'short_sleeved_shirt', 'long_sleeved_shirt',
+ 'short_sleeved_outwear', 'long_sleeved_outwear',
+ 'vest', 'sling', 'shorts', 'trousers', 'skirt',
+ 'short_sleeved_dress', 'long_sleeved_dress',
+ 'vest_dress', 'sling_dress'),
+ palette=[
+ (255, 0, 0),
+ (
+ 255,
+ 128,
+ 0,
+ ),
+ (
+ 255,
+ 255,
+ 0,
+ ),
+ (
+ 128,
+ 255,
+ 0,
+ ),
+ (
+ 0,
+ 255,
+ 0,
+ ),
+ (
+ 0,
+ 255,
+ 128,
+ ),
+ (
+ 0,
+ 255,
+ 255,
+ ),
+ (
+ 0,
+ 128,
+ 255,
+ ),
+ (
+ 0,
+ 0,
+ 255,
+ ),
+ (
+ 127,
+ 0,
+ 255,
+ ),
+ (
+ 255,
+ 0,
+ 255,
+ ),
+ (
+ 255,
+ 0,
+ 127,
+ ),
+ (
+ 128,
+ 128,
+ 128,
+ ),
+ ])
+
+val_batch_size_per_gpu = 1
+val_num_workers = 2
+batch_shapes_cfg = dict(
+ type='BatchShapePolicy',
+ batch_size=val_batch_size_per_gpu,
+ img_size=img_scale[0],
+ size_divisor=32,
+ extra_pad_ratio=0.5)
+strides = [8, 16, 32] # Strides of multi-scale prior box
+num_det_layers = 3
+norm_cfg = dict(type='BN', momentum=0.03, eps=0.001)
+
+# Data augmentation
+max_translate_ratio = 0.2 # YOLOv5RandomAffine
+scaling_ratio_range = (0.1, 2.0) # YOLOv5RandomAffine
+mixup_prob = 0.15 # YOLOv5MixUp
+randchoice_mosaic_prob = [0.8, 0.2]
+mixup_alpha = 8.0 # YOLOv5MixUp
+mixup_beta = 8.0 # YOLOv5MixUp
+
+# -----train val related-----
+loss_cls_weight = 0.3
+loss_bbox_weight = 0.05
+loss_obj_weight = 0.7
+# BatchYOLOv7Assigner params
+simota_candidate_topk = 10
+simota_iou_weight = 3.0
+simota_cls_weight = 1.0
+prior_match_thr = 4. # Priori box matching threshold
+obj_level_weights = [4., 1.,
+ 0.4] # The obj loss weights of the three output layers
+
+lr_factor = 0.1 # Learning rate scaling factor
+weight_decay = 0.0005
+save_epoch_intervals = 1
+max_keep_ckpts = 5
+
+env_cfg = dict(
+ cudnn_benchmark=True,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+
+# ===============================Unmodified in most cases====================
+model = dict(
+ type='YOLODetector',
+ data_preprocessor=dict(
+ type='YOLOv5DetDataPreprocessor',
+ mean=[0., 0., 0.],
+ std=[255., 255., 255.],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='YOLOv7Backbone',
+ arch='L',
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ neck=dict(
+ type='YOLOv7PAFPN',
+ block_cfg=dict(
+ type='ELANBlock',
+ middle_ratio=0.5,
+ block_ratio=0.25,
+ num_blocks=4,
+ num_convs_in_block=1),
+ upsample_feats_cat_first=False,
+ in_channels=[512, 1024, 1024],
+ # The real output channel will be multiplied by 2
+ out_channels=[128, 256, 512],
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ bbox_head=dict(
+ type='YOLOv7Head',
+ head_module=dict(
+ type='YOLOv7HeadModule',
+ num_classes=num_classes,
+ in_channels=[256, 512, 1024],
+ featmap_strides=strides,
+ num_base_priors=3),
+ prior_generator=dict(
+ type='mmdet.YOLOAnchorGenerator',
+ base_sizes=anchors,
+ strides=strides),
+ # scaled based on number of detection layers
+ loss_cls=dict(
+ type='mmdet.CrossEntropyLoss',
+ use_sigmoid=True,
+ reduction='mean',
+ loss_weight=loss_cls_weight *
+ (num_classes / 80 * 3 / num_det_layers)),
+ loss_bbox=dict(
+ type='IoULoss',
+ iou_mode='ciou',
+ bbox_format='xyxy',
+ reduction='mean',
+ loss_weight=loss_bbox_weight * (3 / num_det_layers),
+ return_iou=True),
+ loss_obj=dict(
+ type='mmdet.CrossEntropyLoss',
+ use_sigmoid=True,
+ reduction='mean',
+ loss_weight=loss_obj_weight *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers)),
+ prior_match_thr=prior_match_thr,
+ obj_level_weights=obj_level_weights,
+ # BatchYOLOv7Assigner params
+ simota_candidate_topk=simota_candidate_topk,
+ simota_iou_weight=simota_iou_weight,
+ simota_cls_weight=simota_cls_weight),
+ test_cfg=model_test_cfg)
+
+pre_transform = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='LoadAnnotations', with_bbox=True)
+]
+
+mosiac4_pipeline = [
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # note
+ scaling_ratio_range=scaling_ratio_range, # note
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+mosiac9_pipeline = [
+ dict(
+ type='Mosaic9',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # note
+ scaling_ratio_range=scaling_ratio_range, # note
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+randchoice_mosaic_pipeline = dict(
+ type='RandomChoice',
+ transforms=[mosiac4_pipeline, mosiac9_pipeline],
+ prob=randchoice_mosaic_prob)
+
+train_pipeline = [
+ *pre_transform,
+ randchoice_mosaic_pipeline,
+ dict(
+ type='YOLOv5MixUp',
+ alpha=mixup_alpha, # note
+ beta=mixup_beta, # note
+ prob=mixup_prob,
+ pre_transform=[*pre_transform, randchoice_mosaic_pipeline]),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='LetterResize',
+ scale=img_scale,
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ collate_fn=dict(type='yolov5_collate'), # FASTER
+ dataset=dict(
+ type='RepeatDataset',
+ times=2,
+ dataset=dict(
+ type=dataset_type,
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file=val_ann_file,
+ data_prefix=dict(img=train_data_prefix),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=train_pipeline
+ )
+ )
+)
+val_dataloader = dict(
+ dataset=dict(
+ type=dataset_type,
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file=val_ann_file,
+ data_prefix=dict(img=val_data_prefix)))
+
+val_evaluator = dict(
+ type='mmdet.CocoMetric',
+ proposal_nums=(100, 1, 10),
+ ann_file=data_root + val_ann_file,
+ metric='bbox')
+
+test_dataloader = dict(
+ dataset=dict(
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file=test_ann_file,
+ data_prefix=dict(img=test_data_prefix)))
+test_evaluator = dict(
+ type='mmdet.CocoMetric',
+ proposal_nums=(100, 1, 10),
+ ann_file=data_root + test_ann_file,
+ metric='bbox')
+
+train_cfg = dict(
+ type='EpochBasedTrainLoop',
+ max_epochs=max_epochs,
+ val_interval=save_epoch_intervals,
+ dynamic_intervals=[(max_epochs - num_epoch_stage2, val_interval_stage2)])
+val_cfg = dict(type='ValLoop')
+test_cfg = dict(type='TestLoop')
+
+param_scheduler = None
+optim_wrapper = dict(
+ type='OptimWrapper',
+ optimizer=dict(
+ type='SGD',
+ lr=base_lr,
+ momentum=0.937,
+ weight_decay=weight_decay,
+ nesterov=True,
+ batch_size_per_gpu=train_batch_size_per_gpu),
+ constructor='YOLOv7OptimWrapperConstructor')
+
+# TO DO: change param_scheduler type to StepLR, refer to mobilenet
+default_scope = 'mmyolo'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=10),
+ param_scheduler=dict(
+ type='YOLOv5ParamSchedulerHook',
+ scheduler_type='cosine',
+ lr_factor=lr_factor, # note
+ max_epochs=max_epochs),
+ checkpoint=dict(
+ type='CheckpointHook',
+ save_param_scheduler=False,
+ interval=save_epoch_intervals,
+ save_best='auto',
+ max_keep_ckpts=max_keep_ckpts),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='mmdet.DetVisualizationHook'))
+
+custom_hooks = [
+ dict(
+ type='EMAHook',
+ ema_type='ExpMomentumEMA',
+ momentum=0.001,
+ update_buffers=True,
+ strict_load=False,
+ priority=49)
+]
+
+# ============================
+
+file_client_args = dict(backend='disk')
+_file_client_args = dict(backend='disk')
+tta_model = dict(
+ type='mmdet.DetTTAModel',
+ tta_cfg=dict(nms=dict(type='nms', iou_threshold=0.65), max_per_img=300))
+img_scales = [
+ (
+ 640,
+ 640,
+ ),
+ (
+ 320,
+ 320,
+ ),
+ (
+ 960,
+ 960,
+ ),
+]
+_multiscale_resize_transforms = [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 640,
+ 640,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 640,
+ 640,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 320,
+ 320,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 320,
+ 320,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 960,
+ 960,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 960,
+ 960,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+]
+tta_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
+ dict(
+ type='TestTimeAug',
+ transforms=[
+ [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 640,
+ 640,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 640,
+ 640,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 320,
+ 320,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 320,
+ 320,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 960,
+ 960,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 960,
+ 960,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ ],
+ [
+ dict(type='mmdet.RandomFlip', prob=1.0),
+ dict(type='mmdet.RandomFlip', prob=0.0),
+ ],
+ [
+ dict(type='mmdet.LoadAnnotations', with_bbox=True),
+ ],
+ [
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=(
+ 'img_id',
+ 'img_path',
+ 'ori_shape',
+ 'img_shape',
+ 'scale_factor',
+ 'pad_param',
+ 'flip',
+ 'flip_direction',
+ )),
+ ],
+ ]),
+]
+
+launcher = 'none'
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov7_l_syncbn_fast_8x16b-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov7_l_syncbn_fast_8x16b-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3c11c5ea042db35e7a73032a9b945522e3d7b21
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov7_l_syncbn_fast_8x16b-300e_coco.py
@@ -0,0 +1,472 @@
+_base_ = ['../_base_/default_runtime.py', '../_base_/det_p5_tta.py']
+
+data_root = './data-df2/'
+train_ann_file = 'annotations/instances_train2017.json'
+train_data_prefix = 'train2017/'
+val_ann_file = 'annotations/instances_val2017.json'
+val_data_prefix = 'val2017/'
+num_classes = 13
+train_batch_size_per_gpu = 16
+train_num_workers = 8
+persistent_workers = True
+
+vis_backends = [
+ dict(type='LocalVisBackend'),
+]
+visualizer = dict(
+ type='mmdet.DetLocalVisualizer',
+ vis_backends=[
+ dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')
+ ],
+ name='visualizer')
+log_processor = dict(type='LogProcessor', window_size=50, by_epoch=True)
+log_level = 'INFO'
+load_from = None
+resume = False
+
+anchors = [
+ [(12, 16), (19, 36), (40, 28)], # P3/8
+ [(36, 75), (76, 55), (72, 146)], # P4/16
+ [(142, 110), (192, 243), (459, 401)] # P5/32
+]
+
+base_lr = 0.01
+max_epochs = 100
+
+num_epoch_stage2 = 10 # The last 10 epochs switch evaluation interval
+val_interval_stage2 = 1
+
+model_test_cfg = dict(
+ multi_label=True,
+ nms_pre=30000,
+ score_thr=0.001,
+ nms=dict(type='nms', iou_threshold=0.65),
+ max_per_img=300)
+
+img_scale = (640, 640)
+dataset_type = 'YOLOv5CocoDataset'
+val_batch_size_per_gpu = 1
+val_num_workers = 2
+batch_shapes_cfg = dict(
+ type='BatchShapePolicy',
+ batch_size=val_batch_size_per_gpu,
+ img_size=img_scale[0],
+ size_divisor=32,
+ extra_pad_ratio=0.5)
+strides = [8, 16, 32] # Strides of multi-scale prior box
+num_det_layers = 3
+norm_cfg = dict(type='BN', momentum=0.03, eps=0.001)
+
+# Data augmentation
+max_translate_ratio = 0.2 # YOLOv5RandomAffine
+scaling_ratio_range = (0.1, 2.0) # YOLOv5RandomAffine
+mixup_prob = 0.15 # YOLOv5MixUp
+randchoice_mosaic_prob = [0.8, 0.2]
+mixup_alpha = 8.0 # YOLOv5MixUp
+mixup_beta = 8.0 # YOLOv5MixUp
+
+# -----train val related-----
+loss_cls_weight = 0.3
+loss_bbox_weight = 0.05
+loss_obj_weight = 0.7
+# BatchYOLOv7Assigner params
+simota_candidate_topk = 10
+simota_iou_weight = 3.0
+simota_cls_weight = 1.0
+prior_match_thr = 4. # Priori box matching threshold
+obj_level_weights = [4., 1.,
+ 0.4] # The obj loss weights of the three output layers
+
+lr_factor = 0.1 # Learning rate scaling factor
+weight_decay = 0.0005
+save_epoch_intervals = 2
+max_keep_ckpts = 5
+
+env_cfg = dict(
+ cudnn_benchmark=True,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+
+# ===============================Unmodified in most cases====================
+model = dict(
+ type='YOLODetector',
+ data_preprocessor=dict(
+ type='YOLOv5DetDataPreprocessor',
+ mean=[0., 0., 0.],
+ std=[255., 255., 255.],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='YOLOv7Backbone',
+ arch='L',
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ neck=dict(
+ type='YOLOv7PAFPN',
+ block_cfg=dict(
+ type='ELANBlock',
+ middle_ratio=0.5,
+ block_ratio=0.25,
+ num_blocks=4,
+ num_convs_in_block=1),
+ upsample_feats_cat_first=False,
+ in_channels=[512, 1024, 1024],
+ # The real output channel will be multiplied by 2
+ out_channels=[128, 256, 512],
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ bbox_head=dict(
+ type='YOLOv7Head',
+ head_module=dict(
+ type='YOLOv7HeadModule',
+ num_classes=num_classes,
+ in_channels=[256, 512, 1024],
+ featmap_strides=strides,
+ num_base_priors=3),
+ prior_generator=dict(
+ type='mmdet.YOLOAnchorGenerator',
+ base_sizes=anchors,
+ strides=strides),
+ # scaled based on number of detection layers
+ loss_cls=dict(
+ type='mmdet.CrossEntropyLoss',
+ use_sigmoid=True,
+ reduction='mean',
+ loss_weight=loss_cls_weight *
+ (num_classes / 80 * 3 / num_det_layers)),
+ loss_bbox=dict(
+ type='IoULoss',
+ iou_mode='ciou',
+ bbox_format='xywh',
+ reduction='mean',
+ loss_weight=loss_bbox_weight * (3 / num_det_layers),
+ return_iou=True),
+ loss_obj=dict(
+ type='mmdet.CrossEntropyLoss',
+ use_sigmoid=True,
+ reduction='mean',
+ loss_weight=loss_obj_weight *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers)),
+ prior_match_thr=prior_match_thr,
+ obj_level_weights=obj_level_weights,
+ # BatchYOLOv7Assigner params
+ simota_candidate_topk=simota_candidate_topk,
+ simota_iou_weight=simota_iou_weight,
+ simota_cls_weight=simota_cls_weight),
+ test_cfg=model_test_cfg)
+
+pre_transform = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='LoadAnnotations', with_bbox=True)
+]
+
+mosiac4_pipeline = [
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # note
+ scaling_ratio_range=scaling_ratio_range, # note
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+mosiac9_pipeline = [
+ dict(
+ type='Mosaic9',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # note
+ scaling_ratio_range=scaling_ratio_range, # note
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+randchoice_mosaic_pipeline = dict(
+ type='RandomChoice',
+ transforms=[mosiac4_pipeline, mosiac9_pipeline],
+ prob=randchoice_mosaic_prob)
+
+train_pipeline = [
+ *pre_transform,
+ randchoice_mosaic_pipeline,
+ dict(
+ type='YOLOv5MixUp',
+ alpha=mixup_alpha, # note
+ beta=mixup_beta, # note
+ prob=mixup_prob,
+ pre_transform=[*pre_transform, randchoice_mosaic_pipeline]),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ collate_fn=dict(type='yolov5_collate'), # FASTER
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ ann_file=train_ann_file,
+ data_prefix=dict(img=train_data_prefix),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=train_pipeline))
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='LetterResize',
+ scale=img_scale,
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+
+val_dataloader = dict(
+ batch_size=val_batch_size_per_gpu,
+ num_workers=val_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ test_mode=True,
+ data_prefix=dict(img=val_data_prefix),
+ ann_file=val_ann_file,
+ pipeline=test_pipeline,
+ batch_shapes_cfg=batch_shapes_cfg))
+
+test_dataloader = val_dataloader
+
+param_scheduler = None
+optim_wrapper = dict(
+ type='OptimWrapper',
+ optimizer=dict(
+ type='SGD',
+ lr=base_lr,
+ momentum=0.937,
+ weight_decay=weight_decay,
+ nesterov=True,
+ batch_size_per_gpu=train_batch_size_per_gpu),
+ constructor='YOLOv7OptimWrapperConstructor')
+
+default_scope = 'mmyolo'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=2),
+ param_scheduler=dict(
+ type='YOLOv5ParamSchedulerHook',
+ scheduler_type='cosine',
+ lr_factor=lr_factor, # note
+ max_epochs=max_epochs),
+ checkpoint=dict(
+ type='CheckpointHook',
+ save_param_scheduler=False,
+ interval=save_epoch_intervals,
+ save_best='auto',
+ max_keep_ckpts=max_keep_ckpts),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='mmdet.DetVisualizationHook'))
+
+custom_hooks = [
+ dict(
+ type='EMAHook',
+ ema_type='ExpMomentumEMA',
+ momentum=0.0001,
+ update_buffers=True,
+ strict_load=False,
+ priority=49)
+]
+
+val_evaluator = dict(
+ type='mmdet.CocoMetric',
+ proposal_nums=(100, 1, 10), # Can be accelerated
+ ann_file=data_root + val_ann_file,
+ metric='bbox')
+test_evaluator = val_evaluator
+
+train_cfg = dict(
+ type='EpochBasedTrainLoop',
+ max_epochs=max_epochs,
+ val_interval=save_epoch_intervals,
+ dynamic_intervals=[(max_epochs - num_epoch_stage2, val_interval_stage2)])
+val_cfg = dict(type='ValLoop')
+test_cfg = dict(type='TestLoop')
+
+# ============================
+
+file_client_args = dict(backend='disk')
+_file_client_args = dict(backend='disk')
+tta_model = dict(
+ type='mmdet.DetTTAModel',
+ tta_cfg=dict(nms=dict(type='nms', iou_threshold=0.65), max_per_img=300))
+img_scales = [
+ (
+ 640,
+ 640,
+ ),
+ (
+ 320,
+ 320,
+ ),
+ (
+ 960,
+ 960,
+ ),
+]
+_multiscale_resize_transforms = [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 640,
+ 640,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 640,
+ 640,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 320,
+ 320,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 320,
+ 320,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 960,
+ 960,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 960,
+ 960,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+]
+tta_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
+ dict(
+ type='TestTimeAug',
+ transforms=[
+ [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 640,
+ 640,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 640,
+ 640,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 320,
+ 320,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 320,
+ 320,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(
+ 960,
+ 960,
+ )),
+ dict(
+ type='LetterResize',
+ scale=(
+ 960,
+ 960,
+ ),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ ]),
+ ],
+ [
+ dict(type='mmdet.RandomFlip', prob=1.0),
+ dict(type='mmdet.RandomFlip', prob=0.0),
+ ],
+ [
+ dict(type='mmdet.LoadAnnotations', with_bbox=True),
+ ],
+ [
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=(
+ 'img_id',
+ 'img_path',
+ 'ori_shape',
+ 'img_shape',
+ 'scale_factor',
+ 'pad_param',
+ 'flip',
+ 'flip_direction',
+ )),
+ ],
+ ]),
+]
+
+launcher = 'none'
\ No newline at end of file
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/README.md b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..b22d880fc54f1638860a2783547229a9afd2fd2c
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/README.md
@@ -0,0 +1,118 @@
+# YOLOv5
+
+
+
+## Abstract
+
+YOLOv5 is a family of object detection architectures and models pretrained on the COCO dataset, and represents Ultralytics open-source research into future vision AI methods, incorporating lessons learned and best practices evolved over thousands of hours of research and development.
+
+
+

+YOLOv5-l-P5 model structure
+
+
+
+

+YOLOv5-l-P6 model structure
+
+
+## Results and models
+
+### COCO
+
+| Backbone | Arch | size | SyncBN | AMP | Mem (GB) | box AP | TTA box AP | Config | Download |
+| :------: | :--: | :--: | :----: | :-: | :------: | :----: | :--------: | :--------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
+| YOLOv5-n | P5 | 640 | Yes | Yes | 1.5 | 28.0 | 30.7 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/yolov5_n-v61_syncbn_fast_8xb16-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_n-v61_syncbn_fast_8xb16-300e_coco/yolov5_n-v61_syncbn_fast_8xb16-300e_coco_20220919_090739-b804c1ad.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_n-v61_syncbn_fast_8xb16-300e_coco/yolov5_n-v61_syncbn_fast_8xb16-300e_coco_20220919_090739.log.json) |
+| YOLOv5-s | P5 | 640 | Yes | Yes | 2.7 | 37.7 | 40.2 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700.log.json) |
+| YOLOv5-m | P5 | 640 | Yes | Yes | 5.0 | 45.3 | 46.9 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/yolov5_m-v61_syncbn_fast_8xb16-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_m-v61_syncbn_fast_8xb16-300e_coco/yolov5_m-v61_syncbn_fast_8xb16-300e_coco_20220917_204944-516a710f.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_m-v61_syncbn_fast_8xb16-300e_coco/yolov5_m-v61_syncbn_fast_8xb16-300e_coco_20220917_204944.log.json) |
+| YOLOv5-l | P5 | 640 | Yes | Yes | 8.1 | 48.8 | 49.9 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/yolov5_l-v61_syncbn_fast_8xb16-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_l-v61_syncbn_fast_8xb16-300e_coco/yolov5_l-v61_syncbn_fast_8xb16-300e_coco_20220917_031007-096ef0eb.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_l-v61_syncbn_fast_8xb16-300e_coco/yolov5_l-v61_syncbn_fast_8xb16-300e_coco_20220917_031007.log.json) |
+| YOLOv5-n | P6 | 1280 | Yes | Yes | 5.8 | 35.9 | | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_224705-d493c5f3.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_224705.log.json) |
+| YOLOv5-s | P6 | 1280 | Yes | Yes | 10.5 | 44.4 | | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_215044-58865c19.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_215044.log.json) |
+| YOLOv5-m | P6 | 1280 | Yes | Yes | 19.1 | 51.3 | | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_230453-49564d58.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_230453.log.json) |
+| YOLOv5-l | P6 | 1280 | Yes | Yes | 30.5 | 53.7 | | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_234308-7a2ba6bf.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_234308.log.json) |
+
+**Note**:
+In the official YOLOv5 code, the `random_perspective` data augmentation in COCO object detection task training uses mask annotation information, which leads to higher performance. Object detection should not use mask annotation, so only box annotation information is used in `MMYOLO`. We will use the mask annotation information in the instance segmentation task. See https://github.com/ultralytics/yolov5/issues/9917 for details.
+
+1. `fast` means that `YOLOv5DetDataPreprocessor` and `yolov5_collate` are used for data preprocessing, which is faster for training, but less flexible for multitasking. Recommended to use fast version config if you only care about object detection.
+2. `detect` means that the network input is fixed to `640x640` and the post-processing thresholds is modified.
+3. `SyncBN` means use SyncBN, `AMP` indicates training with mixed precision.
+4. We use 8x A100 for training, and the single-GPU batch size is 16. This is different from the official code.
+5. The performance is unstable and may fluctuate by about 0.4 mAP and the highest performance weight in `COCO` training in `YOLOv5` may not be the last epoch.
+6. `TTA` means that Test Time Augmentation. It's perform 3 multi-scaling transformations on the image, followed by 2 flipping transformations (flipping and not flipping). You only need to specify `--tta` when testing to enable. see [TTA](https://github.com/open-mmlab/mmyolo/blob/dev/docs/en/common_usage/tta.md) for details.
+
+### VOC
+
+| Backbone | size | Batchsize | AMP | Mem (GB) | box AP(COCO metric) | Config | Download |
+| :------: | :--: | :-------: | :-: | :------: | :-----------------: | :------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
+| YOLOv5-n | 512 | 64 | Yes | 3.5 | 51.2 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/voc/yolov5_n-v61_fast_1xb64-50e_voc.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_n-v61_fast_1xb64-50e_voc/yolov5_n-v61_fast_1xb64-50e_voc_20221017_234254-f1493430.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_n-v61_fast_1xb64-50e_voc/yolov5_n-v61_fast_1xb64-50e_voc_20221017_234254.log.json) |
+| YOLOv5-s | 512 | 64 | Yes | 6.5 | 62.7 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/voc/yolov5_s-v61_fast_1xb64-50e_voc.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-v61_fast_1xb64-50e_voc/yolov5_s-v61_fast_1xb64-50e_voc_20221017_234156-0009b33e.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-v61_fast_1xb64-50e_voc/yolov5_s-v61_fast_1xb64-50e_voc_20221017_234156.log.json) |
+| YOLOv5-m | 512 | 64 | Yes | 12.0 | 70.1 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/voc/yolov5_m-v61_fast_1xb64-50e_voc.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_m-v61_fast_1xb64-50e_voc/yolov5_m-v61_fast_1xb64-50e_voc_20221017_114138-815c143a.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_m-v61_fast_1xb64-50e_voc/yolov5_m-v61_fast_1xb64-50e_voc_20221017_114138.log.json) |
+| YOLOv5-l | 512 | 32 | Yes | 10.0 | 73.1 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/voc/yolov5_l-v61_fast_1xb32-50e_voc.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_l-v61_fast_1xb32-50e_voc/yolov5_l-v61_fast_1xb32-50e_voc_20221017_045500-edc7e0d8.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_l-v61_fast_1xb32-50e_voc/yolov5_l-v61_fast_1xb32-50e_voc_20221017_045500.log.json) |
+
+**Note**:
+
+1. Training on VOC dataset need pretrained model which trained on COCO.
+2. The performance is unstable and may fluctuate by about 0.4 mAP.
+3. Official YOLOv5 use COCO metric, while training VOC dataset.
+4. We converted the VOC test dataset to COCO format offline, while reproducing mAP result as shown above. We will support to use COCO metric while training VOC dataset in later version.
+5. Hyperparameter reference from `https://wandb.ai/glenn-jocher/YOLOv5_VOC_official`.
+
+### CrowdHuman
+
+Since the `iscrowd` annotation of the COCO dataset is not equivalent to `ignore`, we use the CrowdHuman dataset to verify that the YOLOv5 ignore logic is correct.
+
+| Backbone | size | SyncBN | AMP | Mem (GB) | ignore_iof_thr | box AP50(CrowDHuman Metric) | MR | JI | Config | Download |
+| :------: | :--: | :----: | :-: | :------: | :------------: | :-------------------------: | :--: | :---: | :-----------------------------------------------------------------------------------------------------------------------------: | :------: |
+| YOLOv5-s | 640 | Yes | Yes | 2.6 | -1 | 85.79 | 48.7 | 75.33 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/crowdhuman/yolov5_s-v61_fast_8xb16-300e_crowdhuman.py) | |
+| YOLOv5-s | 640 | Yes | Yes | 2.6 | 0.5 | 86.17 | 48.8 | 75.87 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov5/crowdhuman/yolov5_s-v61_8xb16-300e_ignore_crowdhuman.py) | |
+
+**Note**:
+
+1. `ignore_iof_thr` is -1 indicating that the ignore tag is not considered. We adjusted with `ignore_iof_thr` thresholds of 0.5, 0.8, 0.9, and the results show that 0.5 has the best performance.
+2. The above table shows the performance of the model with the best performance on the validation set. The best performing models are around 160+ epoch which means that there is no need to train so many epochs.
+3. This is a very simple implementation that simply replaces COCO's anchor with the `tools/analysis_tools/optimize_anchors.py` script. We'll adjust other parameters later to improve performance.
+
+## Citation
+
+```latex
+@software{glenn_jocher_2022_7002879,
+ author = {Glenn Jocher and
+ Ayush Chaurasia and
+ Alex Stoken and
+ Jirka Borovec and
+ NanoCode012 and
+ Yonghye Kwon and
+ TaoXie and
+ Kalen Michael and
+ Jiacong Fang and
+ imyhxy and
+ Lorna and
+ Colin Wong and
+ 曾逸夫(Zeng Yifu) and
+ Abhiram V and
+ Diego Montes and
+ Zhiqiang Wang and
+ Cristi Fati and
+ Jebastin Nadar and
+ Laughing and
+ UnglvKitDe and
+ tkianai and
+ yxNONG and
+ Piotr Skalski and
+ Adam Hogan and
+ Max Strobel and
+ Mrinal Jain and
+ Lorenzo Mammana and
+ xylieong},
+ title = {{ultralytics/yolov5: v6.2 - YOLOv5 Classification
+ Models, Apple M1, Reproducibility, ClearML and
+ Deci.ai integrations}},
+ month = aug,
+ year = 2022,
+ publisher = {Zenodo},
+ version = {v6.2},
+ doi = {10.5281/zenodo.7002879},
+ url = {https://doi.org/10.5281/zenodo.7002879}
+}
+```
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/crowdhuman/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/crowdhuman/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/crowdhuman/yolov5_s-v61_8xb16-300e_ignore_crowdhuman.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/crowdhuman/yolov5_s-v61_8xb16-300e_ignore_crowdhuman.py
new file mode 100644
index 0000000000000000000000000000000000000000..90ba758a58a6168ee2c68086af28ae6a999bd739
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/crowdhuman/yolov5_s-v61_8xb16-300e_ignore_crowdhuman.py
@@ -0,0 +1,63 @@
+_base_ = 'yolov5_s-v61_fast_8xb16-300e_crowdhuman.py'
+
+model = dict(
+ data_preprocessor=dict(
+ _delete_=True,
+ type='mmdet.DetDataPreprocessor',
+ mean=[0., 0., 0.],
+ std=[255., 255., 255.],
+ bgr_to_rgb=True),
+ bbox_head=dict(ignore_iof_thr=0.5))
+
+img_scale = _base_.img_scale
+
+albu_train_transforms = [
+ dict(type='Blur', p=0.01),
+ dict(type='MedianBlur', p=0.01),
+ dict(type='ToGray', p=0.01),
+ dict(type='CLAHE', p=0.01)
+]
+
+pre_transform = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ # only change this
+ dict(type='mmdet.LoadAnnotations', with_bbox=True)
+]
+
+train_pipeline = [
+ *pre_transform,
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ scaling_ratio_range=(0.5, 1.5),
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+ dict(
+ type='mmdet.Albu',
+ transforms=albu_train_transforms,
+ bbox_params=dict(
+ type='BboxParams',
+ format='pascal_voc',
+ label_fields=['gt_bboxes_labels', 'gt_ignore_flags']),
+ keymap={
+ 'img': 'image',
+ 'gt_bboxes': 'bboxes'
+ }),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(
+ collate_fn=dict(type='pseudo_collate'),
+ dataset=dict(pipeline=train_pipeline))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/crowdhuman/yolov5_s-v61_fast_8xb16-300e_crowdhuman.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/crowdhuman/yolov5_s-v61_fast_8xb16-300e_crowdhuman.py
new file mode 100644
index 0000000000000000000000000000000000000000..a61859fa0f2c0ea8a08ffd7783adc4ccac8540dd
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/crowdhuman/yolov5_s-v61_fast_8xb16-300e_crowdhuman.py
@@ -0,0 +1,47 @@
+_base_ = '../yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'
+
+# Use the model trained on the COCO as the pretrained model
+load_from = 'https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth' # noqa
+
+# dataset settings
+data_root = 'data/CrowdHuman/'
+dataset_type = 'YOLOv5CrowdHumanDataset'
+
+# parameters that often need to be modified
+num_classes = 1
+
+anchors = [
+ [(6, 14), (12, 28), (19, 48)], # P3/8
+ [(29, 79), (46, 124), (142, 54)], # P4/16
+ [(73, 198), (124, 330), (255, 504)] # P5/32
+]
+
+model = dict(
+ bbox_head=dict(
+ head_module=dict(num_classes=num_classes),
+ prior_generator=dict(base_sizes=anchors)))
+
+train_dataloader = dict(
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ ann_file='annotation_train.odgt',
+ data_prefix=dict(img='Images/')))
+
+val_dataloader = dict(
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ ann_file='annotation_val.odgt',
+ data_prefix=dict(img='Images/'),
+ # CrowdHumanMetric does not support out-of-order output images
+ # for the time being. batch_shapes_cfg does not support.
+ batch_shapes_cfg=None))
+test_dataloader = val_dataloader
+
+val_evaluator = dict(
+ _delete_=True,
+ type='mmdet.CrowdHumanMetric',
+ ann_file=data_root + 'annotation_val.odgt',
+ metric=['AP', 'MR', 'JI'])
+test_evaluator = val_evaluator
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/metafile.yml b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/metafile.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c64f38e5b7f45d8584d3fb8cb918ff9a59f2f8dc
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/metafile.yml
@@ -0,0 +1,178 @@
+Collections:
+ - Name: YOLOv5
+ Metadata:
+ Training Data: COCO
+ Training Techniques:
+ - SGD with Nesterov
+ - Weight Decay
+ - AMP
+ - Synchronize BN
+ Training Resources: 8x A100 GPUs
+ Architecture:
+ - CSPDarkNet
+ - PAFPN
+ README: configs/yolov5/README.md
+ Code:
+ URL: https://github.com/open-mmlab/mmyolo/blob/v0.1.0/mmyolo/models/detectors/yolo_detector.py#L12
+ Version: v0.1.0
+ - Name: YOLOv5_VOC
+ Metadata:
+ Training Data: VOC
+ Training Techniques:
+ - SGD with Nesterov
+ - Weight Decay
+ - AMP
+ Training Resources: 1x A100 GPU
+ Architecture:
+ - CSPDarkNet
+ - PAFPN
+ README: configs/yolov5/README.md
+ Code:
+ URL: https://github.com/open-mmlab/mmyolo/blob/v0.1.0/mmyolo/models/detectors/yolo_detector.py#L12
+ Version: v0.1.0
+
+Models:
+ - Name: yolov5_n-v61_syncbn_fast_8xb16-300e_coco
+ In Collection: YOLOv5
+ Config: configs/yolov5/yolov5_n-v61_syncbn_fast_8xb16-300e_coco.py
+ Metadata:
+ Training Memory (GB): 1.5
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 28.0
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_n-v61_syncbn_fast_8xb16-300e_coco/yolov5_n-v61_syncbn_fast_8xb16-300e_coco_20220919_090739-b804c1ad.pth
+ - Name: yolov5_s-v61_syncbn_fast_8xb16-300e_coco
+ In Collection: YOLOv5
+ Config: configs/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py
+ Metadata:
+ Training Memory (GB): 2.7
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 37.7
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth
+ - Name: yolov5_m-v61_syncbn_fast_8xb16-300e_coco
+ In Collection: YOLOv5
+ Config: configs/yolov5/yolov5_m-v61_syncbn_fast_8xb16-300e_coco.py
+ Metadata:
+ Training Memory (GB): 5.0
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 45.3
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_m-v61_syncbn_fast_8xb16-300e_coco/yolov5_m-v61_syncbn_fast_8xb16-300e_coco_20220917_204944-516a710f.pth
+ - Name: yolov5_l-v61_syncbn_fast_8xb16-300e_coco
+ In Collection: YOLOv5
+ Config: configs/yolov5/yolov5_l-v61_syncbn_fast_8xb16-300e_coco.py
+ Metadata:
+ Training Memory (GB): 8.1
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 48.8
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_l-v61_syncbn_fast_8xb16-300e_coco/yolov5_l-v61_syncbn_fast_8xb16-300e_coco_20220917_031007-096ef0eb.pth
+ - Name: yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco
+ In Collection: YOLOv5
+ Config: configs/yolov5/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco.py
+ Metadata:
+ Training Memory (GB): 5.8
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 35.9
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_224705-d493c5f3.pth
+ - Name: yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco
+ In Collection: YOLOv5
+ Config: configs/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py
+ Metadata:
+ Training Memory (GB): 10.5
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 44.4
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_215044-58865c19.pth
+ - Name: yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco
+ In Collection: YOLOv5
+ Config: configs/yolov5/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco.py
+ Metadata:
+ Training Memory (GB): 19.1
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 51.3
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_230453-49564d58.pth
+ - Name: yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco
+ In Collection: YOLOv5
+ Config: configs/yolov5/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco.py
+ Metadata:
+ Training Memory (GB): 30.5
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 53.7
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco_20221027_234308-7a2ba6bf.pth
+ - Name: yolov5_n-v61_fast_1xb64-50e_voc
+ In Collection: YOLOv5_VOC
+ Config: configs/yolov5/voc/yolov5_n-v61_fast_1xb64-50e_voc.py
+ Metadata:
+ Training Memory (GB): 3.5
+ Epochs: 50
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 51.2
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_n-v61_fast_1xb64-50e_voc/yolov5_n-v61_fast_1xb64-50e_voc_20221017_234254-f1493430.pth
+ - Name: yolov5_s-v61_fast_1xb64-50e_voc
+ In Collection: YOLOv5_VOC
+ Config: configs/yolov5/voc/yolov5_s-v61_fast_1xb64-50e_voc.py
+ Metadata:
+ Training Memory (GB): 6.5
+ Epochs: 50
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 62.7
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-v61_fast_1xb64-50e_voc/yolov5_s-v61_fast_1xb64-50e_voc_20221017_234156-0009b33e.pth
+ - Name: yolov5_m-v61_fast_1xb64-50e_voc
+ In Collection: YOLOv5_VOC
+ Config: configs/yolov5/voc/yolov5_m-v61_fast_1xb64-50e_voc.py
+ Metadata:
+ Training Memory (GB): 12.0
+ Epochs: 50
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 70.1
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_m-v61_fast_1xb64-50e_voc/yolov5_m-v61_fast_1xb64-50e_voc_20221017_114138-815c143a.pth
+ - Name: yolov5_l-v61_fast_1xb32-50e_voc
+ In Collection: YOLOv5_VOC
+ Config: configs/yolov5/voc/yolov5_l-v61_fast_1xb32-50e_voc.py
+ Metadata:
+ Training Memory (GB): 10.0
+ Epochs: 50
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 73.1
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_l-v61_fast_1xb32-50e_voc/yolov5_l-v61_fast_1xb32-50e_voc_20221017_045500-edc7e0d8.pth
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_l-v61_fast_1xb32-50e_voc.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_l-v61_fast_1xb32-50e_voc.py
new file mode 100644
index 0000000000000000000000000000000000000000..4b470973c46073748803bac2f736eca615e3cb00
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_l-v61_fast_1xb32-50e_voc.py
@@ -0,0 +1,25 @@
+_base_ = './yolov5_s-v61_fast_1xb64-50e_voc.py'
+
+deepen_factor = 1.0
+widen_factor = 1.0
+train_batch_size_per_gpu = 32
+train_num_workers = 8
+
+load_from = 'https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_l-v61_syncbn_fast_8xb16-300e_coco/yolov5_l-v61_syncbn_fast_8xb16-300e_coco_20220917_031007-096ef0eb.pth' # noqa
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu, num_workers=train_num_workers)
+
+optim_wrapper = dict(
+ optimizer=dict(batch_size_per_gpu=train_batch_size_per_gpu))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_m-v61_fast_1xb64-50e_voc.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_m-v61_fast_1xb64-50e_voc.py
new file mode 100644
index 0000000000000000000000000000000000000000..2ed2127a19854fde1b6fa0c80f4d6fd2ba818f0a
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_m-v61_fast_1xb64-50e_voc.py
@@ -0,0 +1,17 @@
+_base_ = './yolov5_s-v61_fast_1xb64-50e_voc.py'
+
+deepen_factor = 0.67
+widen_factor = 0.75
+
+load_from = 'https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_m-v61_syncbn_fast_8xb16-300e_coco/yolov5_m-v61_syncbn_fast_8xb16-300e_coco_20220917_204944-516a710f.pth' # noqa
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_n-v61_fast_1xb64-50e_voc.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_n-v61_fast_1xb64-50e_voc.py
new file mode 100644
index 0000000000000000000000000000000000000000..041f6537d03a4f13402b1bb7e2665443793e4681
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_n-v61_fast_1xb64-50e_voc.py
@@ -0,0 +1,17 @@
+_base_ = './yolov5_s-v61_fast_1xb64-50e_voc.py'
+
+deepen_factor = 0.33
+widen_factor = 0.25
+
+load_from = 'https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_n-v61_syncbn_fast_8xb16-300e_coco/yolov5_n-v61_syncbn_fast_8xb16-300e_coco_20220919_090739-b804c1ad.pth' # noqa
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_s-v61_fast_1xb64-50e_voc.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_s-v61_fast_1xb64-50e_voc.py
new file mode 100644
index 0000000000000000000000000000000000000000..9585b51fd5cb7c69f7d22dd0b492a1b90b180a4c
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_s-v61_fast_1xb64-50e_voc.py
@@ -0,0 +1,270 @@
+_base_ = '../yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'
+
+# dataset settings
+data_root = 'data/VOCdevkit/'
+dataset_type = 'YOLOv5VOCDataset'
+
+# parameters that often need to be modified
+num_classes = 20
+img_scale = (512, 512) # width, height
+max_epochs = 50
+train_batch_size_per_gpu = 64
+train_num_workers = 8
+val_batch_size_per_gpu = 1
+val_num_workers = 2
+
+# persistent_workers must be False if num_workers is 0.
+persistent_workers = True
+
+lr_factor = 0.15135
+affine_scale = 0.75544
+
+# only on Val
+batch_shapes_cfg = dict(img_size=img_scale[0])
+
+anchors = [[(26, 44), (67, 57), (61, 130)], [(121, 118), (120, 239),
+ (206, 182)],
+ [(376, 161), (234, 324), (428, 322)]]
+num_det_layers = 3
+
+load_from = 'https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth' # noqa
+
+tta_img_scales = [img_scale, (416, 416), (640, 640)]
+
+# Hyperparameter reference from:
+# https://github.com/ultralytics/yolov5/blob/master/data/hyps/hyp.VOC.yaml
+model = dict(
+ bbox_head=dict(
+ head_module=dict(num_classes=num_classes),
+ prior_generator=dict(base_sizes=anchors),
+ loss_cls=dict(
+ loss_weight=0.21638 * (num_classes / 80 * 3 / num_det_layers),
+ class_weight=0.5),
+ loss_bbox=dict(loss_weight=0.02 * (3 / num_det_layers)),
+ loss_obj=dict(
+ loss_weight=0.51728 *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers),
+ class_weight=0.67198),
+ # Different from COCO
+ prior_match_thr=3.3744),
+ test_cfg=dict(nms=dict(iou_threshold=0.6)))
+
+albu_train_transforms = _base_.albu_train_transforms
+pre_transform = _base_.pre_transform
+
+with_mosiac_pipeline = [
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_translate_ratio=0.04591,
+ max_shear_degree=0.0,
+ scaling_ratio_range=(1 - affine_scale, 1 + affine_scale),
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+ dict(
+ type='YOLOv5MixUp',
+ prob=0.04266,
+ pre_transform=[
+ *pre_transform,
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_translate_ratio=0.04591,
+ max_shear_degree=0.0,
+ scaling_ratio_range=(1 - affine_scale, 1 + affine_scale),
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114))
+ ])
+]
+
+without_mosaic_pipeline = [
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_translate_ratio=0.04591,
+ max_shear_degree=0.0,
+ scaling_ratio_range=(1 - affine_scale, 1 + affine_scale),
+ border=(0, 0),
+ border_val=(114, 114, 114)),
+ dict(
+ type='LetterResize',
+ scale=img_scale,
+ allow_scale_up=True,
+ pad_val=dict(img=114))
+]
+
+# Because the border parameter is inconsistent when
+# using mosaic or not, `RandomChoice` is used here.
+randchoice_mosaic_pipeline = dict(
+ type='RandomChoice',
+ transforms=[with_mosiac_pipeline, without_mosaic_pipeline],
+ prob=[0.85834, 0.14166])
+
+train_pipeline = [
+ *pre_transform, randchoice_mosaic_pipeline,
+ dict(
+ type='mmdet.Albu',
+ transforms=albu_train_transforms,
+ bbox_params=dict(
+ type='BboxParams',
+ format='pascal_voc',
+ label_fields=['gt_bboxes_labels', 'gt_ignore_flags']),
+ keymap={
+ 'img': 'image',
+ 'gt_bboxes': 'bboxes'
+ }),
+ dict(
+ type='YOLOv5HSVRandomAug',
+ hue_delta=0.01041,
+ saturation_delta=0.54703,
+ value_delta=0.27739),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(
+ _delete_=True,
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='ConcatDataset',
+ datasets=[
+ dict(
+ type=dataset_type,
+ data_root=data_root,
+ ann_file='VOC2007/ImageSets/Main/trainval.txt',
+ data_prefix=dict(sub_data_root='VOC2007/'),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=train_pipeline),
+ dict(
+ type=dataset_type,
+ data_root=data_root,
+ ann_file='VOC2012/ImageSets/Main/trainval.txt',
+ data_prefix=dict(sub_data_root='VOC2012/'),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=train_pipeline)
+ ],
+ # Use ignore_keys to avoid judging metainfo is
+ # not equal in `ConcatDataset`.
+ ignore_keys='dataset_type'),
+ collate_fn=dict(type='yolov5_collate'))
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='LetterResize',
+ scale=img_scale,
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+
+val_dataloader = dict(
+ batch_size=val_batch_size_per_gpu,
+ num_workers=val_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ ann_file='VOC2007/ImageSets/Main/test.txt',
+ data_prefix=dict(sub_data_root='VOC2007/'),
+ test_mode=True,
+ pipeline=test_pipeline,
+ batch_shapes_cfg=batch_shapes_cfg))
+
+test_dataloader = val_dataloader
+
+param_scheduler = None
+optim_wrapper = dict(
+ optimizer=dict(
+ lr=0.00334,
+ momentum=0.74832,
+ weight_decay=0.00025,
+ batch_size_per_gpu=train_batch_size_per_gpu))
+
+default_hooks = dict(
+ param_scheduler=dict(
+ lr_factor=lr_factor,
+ max_epochs=max_epochs,
+ warmup_epochs=3.3835,
+ warmup_momentum=0.59462,
+ warmup_bias_lr=0.18657))
+
+custom_hooks = [
+ dict(
+ type='EMAHook',
+ ema_type='ExpMomentumEMA',
+ momentum=0.0001,
+ update_buffers=True,
+ # To load COCO pretrained model, need to set `strict_load=False`
+ strict_load=False,
+ priority=49)
+]
+
+# TODO: Support using coco metric in voc dataset
+val_evaluator = dict(
+ _delete_=True, type='mmdet.VOCMetric', metric='mAP', eval_mode='area')
+
+test_evaluator = val_evaluator
+
+train_cfg = dict(max_epochs=max_epochs)
+
+# Config for Test Time Augmentation. (TTA)
+_multiscale_resize_transforms = [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=s),
+ dict(
+ type='LetterResize',
+ scale=s,
+ allow_scale_up=False,
+ pad_val=dict(img=114))
+ ]) for s in tta_img_scales
+]
+
+tta_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(
+ type='TestTimeAug',
+ transforms=[
+ _multiscale_resize_transforms,
+ [
+ dict(type='mmdet.RandomFlip', prob=1.),
+ dict(type='mmdet.RandomFlip', prob=0.)
+ ], [dict(type='mmdet.LoadAnnotations', with_bbox=True)],
+ [
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param', 'flip',
+ 'flip_direction'))
+ ]
+ ])
+]
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_x-v61_fast_1xb32-50e_voc.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_x-v61_fast_1xb32-50e_voc.py
new file mode 100644
index 0000000000000000000000000000000000000000..2fc4d79f86b40c45d3f7692f32adc88295bbb4a4
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/voc/yolov5_x-v61_fast_1xb32-50e_voc.py
@@ -0,0 +1,26 @@
+_base_ = './yolov5_s-v61_fast_1xb64-50e_voc.py'
+
+deepen_factor = 1.33
+widen_factor = 1.25
+train_batch_size_per_gpu = 32
+train_num_workers = 8
+
+# TODO: need to add pretrained_model
+load_from = None
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu, num_workers=train_num_workers)
+
+optim_wrapper = dict(
+ optimizer=dict(batch_size_per_gpu=train_batch_size_per_gpu))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a84fdbebc11dd4eafadc34be1e98bfb6f9b2f43
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_l-p6-v62_syncbn_fast_8xb16-300e_coco.py
@@ -0,0 +1,15 @@
+_base_ = './yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco.py'
+
+deepen_factor = 1.0
+widen_factor = 1.0
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_l-v61_syncbn_fast_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_l-v61_syncbn_fast_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..60a11a375c3dd8ead1d3f6a04340aed2acb20b20
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_l-v61_syncbn_fast_8xb16-300e_coco.py
@@ -0,0 +1,15 @@
+_base_ = './yolov5_m-v61_syncbn_fast_8xb16-300e_coco.py'
+
+deepen_factor = 1.0
+widen_factor = 1.0
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..f593e378a9fbbf1381e48a186a645a559b1f129a
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco.py
@@ -0,0 +1,79 @@
+_base_ = './yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py'
+
+# ========================modified parameters======================
+deepen_factor = 0.67
+widen_factor = 0.75
+lr_factor = 0.1
+affine_scale = 0.9
+loss_cls_weight = 0.3
+loss_obj_weight = 0.7
+mixup_prob = 0.1
+
+# =======================Unmodified in most cases==================
+num_classes = _base_.num_classes
+num_det_layers = _base_.num_det_layers
+img_scale = _base_.img_scale
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(
+ head_module=dict(widen_factor=widen_factor),
+ loss_cls=dict(loss_weight=loss_cls_weight *
+ (num_classes / 80 * 3 / num_det_layers)),
+ loss_obj=dict(loss_weight=loss_obj_weight *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers))))
+
+pre_transform = _base_.pre_transform
+albu_train_transforms = _base_.albu_train_transforms
+
+mosaic_affine_pipeline = [
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ scaling_ratio_range=(1 - affine_scale, 1 + affine_scale),
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114))
+]
+
+# enable mixup
+train_pipeline = [
+ *pre_transform, *mosaic_affine_pipeline,
+ dict(
+ type='YOLOv5MixUp',
+ prob=mixup_prob,
+ pre_transform=[*pre_transform, *mosaic_affine_pipeline]),
+ dict(
+ type='mmdet.Albu',
+ transforms=albu_train_transforms,
+ bbox_params=dict(
+ type='BboxParams',
+ format='pascal_voc',
+ label_fields=['gt_bboxes_labels', 'gt_ignore_flags']),
+ keymap={
+ 'img': 'image',
+ 'gt_bboxes': 'bboxes'
+ }),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
+default_hooks = dict(param_scheduler=dict(lr_factor=lr_factor))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_m-v61_syncbn_fast_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_m-v61_syncbn_fast_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..d2ef324ed097a30d5a04fba2bb85641e7857f353
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_m-v61_syncbn_fast_8xb16-300e_coco.py
@@ -0,0 +1,79 @@
+_base_ = './yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'
+
+# ========================modified parameters======================
+deepen_factor = 0.67
+widen_factor = 0.75
+lr_factor = 0.1
+affine_scale = 0.9
+loss_cls_weight = 0.3
+loss_obj_weight = 0.7
+mixup_prob = 0.1
+
+# =======================Unmodified in most cases==================
+num_classes = _base_.num_classes
+num_det_layers = _base_.num_det_layers
+img_scale = _base_.img_scale
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(
+ head_module=dict(widen_factor=widen_factor),
+ loss_cls=dict(loss_weight=loss_cls_weight *
+ (num_classes / 80 * 3 / num_det_layers)),
+ loss_obj=dict(loss_weight=loss_obj_weight *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers))))
+
+pre_transform = _base_.pre_transform
+albu_train_transforms = _base_.albu_train_transforms
+
+mosaic_affine_pipeline = [
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ scaling_ratio_range=(1 - affine_scale, 1 + affine_scale),
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114))
+]
+
+# enable mixup
+train_pipeline = [
+ *pre_transform, *mosaic_affine_pipeline,
+ dict(
+ type='YOLOv5MixUp',
+ prob=mixup_prob,
+ pre_transform=[*pre_transform, *mosaic_affine_pipeline]),
+ dict(
+ type='mmdet.Albu',
+ transforms=albu_train_transforms,
+ bbox_params=dict(
+ type='BboxParams',
+ format='pascal_voc',
+ label_fields=['gt_bboxes_labels', 'gt_ignore_flags']),
+ keymap={
+ 'img': 'image',
+ 'gt_bboxes': 'bboxes'
+ }),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
+default_hooks = dict(param_scheduler=dict(lr_factor=lr_factor))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..3cd2d6b7be817f4f8e6729acc1d3f9e450457e07
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_n-p6-v62_syncbn_fast_8xb16-300e_coco.py
@@ -0,0 +1,15 @@
+_base_ = 'yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py'
+
+deepen_factor = 0.33
+widen_factor = 0.25
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_n-v61_syncbn_fast_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_n-v61_syncbn_fast_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..b6f93428fc8d6dc1b94a8d447671ffc1a877dbb8
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_n-v61_syncbn_fast_8xb16-300e_coco.py
@@ -0,0 +1,15 @@
+_base_ = './yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'
+
+deepen_factor = 0.33
+widen_factor = 0.25
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..0af1fcb84e89ca915ab7d4920d81ae34b3589098
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py
@@ -0,0 +1,138 @@
+_base_ = 'yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'
+
+# ========================modified parameters======================
+img_scale = (1280, 1280) # width, height
+num_classes = 80 # Number of classes for classification
+# Config of batch shapes. Only on val.
+# It means not used if batch_shapes_cfg is None.
+batch_shapes_cfg = dict(
+ img_size=img_scale[0],
+ # The image scale of padding should be divided by pad_size_divisor
+ size_divisor=64)
+# Basic size of multi-scale prior box
+anchors = [
+ [(19, 27), (44, 40), (38, 94)], # P3/8
+ [(96, 68), (86, 152), (180, 137)], # P4/16
+ [(140, 301), (303, 264), (238, 542)], # P5/32
+ [(436, 615), (739, 380), (925, 792)] # P6/64
+]
+# Strides of multi-scale prior box
+strides = [8, 16, 32, 64]
+num_det_layers = 4 # The number of model output scales
+loss_cls_weight = 0.5
+loss_bbox_weight = 0.05
+loss_obj_weight = 1.0
+# The obj loss weights of the three output layers
+obj_level_weights = [4.0, 1.0, 0.25, 0.06]
+affine_scale = 0.5 # YOLOv5RandomAffine scaling ratio
+
+tta_img_scales = [(1280, 1280), (1024, 1024), (1536, 1536)]
+# =======================Unmodified in most cases==================
+model = dict(
+ backbone=dict(arch='P6', out_indices=(2, 3, 4, 5)),
+ neck=dict(
+ in_channels=[256, 512, 768, 1024], out_channels=[256, 512, 768, 1024]),
+ bbox_head=dict(
+ head_module=dict(
+ in_channels=[256, 512, 768, 1024], featmap_strides=strides),
+ prior_generator=dict(base_sizes=anchors, strides=strides),
+ # scaled based on number of detection layers
+ loss_cls=dict(loss_weight=loss_cls_weight *
+ (num_classes / 80 * 3 / num_det_layers)),
+ loss_bbox=dict(loss_weight=loss_bbox_weight * (3 / num_det_layers)),
+ loss_obj=dict(loss_weight=loss_obj_weight *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers)),
+ obj_level_weights=obj_level_weights))
+
+pre_transform = _base_.pre_transform
+albu_train_transforms = _base_.albu_train_transforms
+
+train_pipeline = [
+ *pre_transform,
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ scaling_ratio_range=(1 - affine_scale, 1 + affine_scale),
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+ dict(
+ type='mmdet.Albu',
+ transforms=albu_train_transforms,
+ bbox_params=dict(
+ type='BboxParams',
+ format='pascal_voc',
+ label_fields=['gt_bboxes_labels', 'gt_ignore_flags']),
+ keymap={
+ 'img': 'image',
+ 'gt_bboxes': 'bboxes'
+ }),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='LetterResize',
+ scale=img_scale,
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+
+val_dataloader = dict(
+ dataset=dict(pipeline=test_pipeline, batch_shapes_cfg=batch_shapes_cfg))
+
+test_dataloader = val_dataloader
+
+# Config for Test Time Augmentation. (TTA)
+_multiscale_resize_transforms = [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=s),
+ dict(
+ type='LetterResize',
+ scale=s,
+ allow_scale_up=False,
+ pad_val=dict(img=114))
+ ]) for s in tta_img_scales
+]
+
+tta_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(
+ type='TestTimeAug',
+ transforms=[
+ _multiscale_resize_transforms,
+ [
+ dict(type='mmdet.RandomFlip', prob=1.),
+ dict(type='mmdet.RandomFlip', prob=0.)
+ ], [dict(type='mmdet.LoadAnnotations', with_bbox=True)],
+ [
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param', 'flip',
+ 'flip_direction'))
+ ]
+ ])
+]
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_fast_1xb12-40e_608x352_cat.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_fast_1xb12-40e_608x352_cat.py
new file mode 100644
index 0000000000000000000000000000000000000000..a7ea4f44c3c7d31bbac166b9ef83994216cbeeb8
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_fast_1xb12-40e_608x352_cat.py
@@ -0,0 +1,70 @@
+_base_ = 'yolov5_s-v61_fast_1xb12-40e_cat.py'
+
+# This configuration is used to provide non-square training examples
+# Must be a multiple of 32
+img_scale = (608, 352) # w h
+
+anchors = [
+ [(65, 35), (159, 45), (119, 80)], # P3/8
+ [(215, 77), (224, 116), (170, 166)], # P4/16
+ [(376, 108), (339, 176), (483, 190)] # P5/32
+]
+
+# ===============================Unmodified in most cases====================
+_base_.model.bbox_head.loss_obj.loss_weight = 1.0 * ((img_scale[1] / 640)**2)
+_base_.model.bbox_head.prior_generator.base_sizes = anchors
+
+train_pipeline = [
+ *_base_.pre_transform,
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=_base_.pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ scaling_ratio_range=(1 - _base_.affine_scale, 1 + _base_.affine_scale),
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+ dict(
+ type='mmdet.Albu',
+ transforms=_base_.albu_train_transforms,
+ bbox_params=dict(
+ type='BboxParams',
+ format='pascal_voc',
+ label_fields=['gt_bboxes_labels', 'gt_ignore_flags']),
+ keymap={
+ 'img': 'image',
+ 'gt_bboxes': 'bboxes'
+ }),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+_base_.train_dataloader.dataset.pipeline = train_pipeline
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='LetterResize',
+ scale=img_scale,
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='mmdet.LoadAnnotations', with_bbox=True),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+
+val_dataloader = dict(
+ dataset=dict(pipeline=test_pipeline, batch_shapes_cfg=None))
+test_dataloader = val_dataloader
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_fast_1xb12-40e_cat.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_fast_1xb12-40e_cat.py
new file mode 100644
index 0000000000000000000000000000000000000000..7b7e4f227bbc6aa37873dc306009d1af842c166c
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_fast_1xb12-40e_cat.py
@@ -0,0 +1,56 @@
+_base_ = 'yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'
+
+data_root = './data/cat/'
+class_name = ('cat', )
+num_classes = len(class_name)
+metainfo = dict(classes=class_name, palette=[(20, 220, 60)])
+
+anchors = [
+ [(68, 69), (154, 91), (143, 162)], # P3/8
+ [(242, 160), (189, 287), (391, 207)], # P4/16
+ [(353, 337), (539, 341), (443, 432)] # P5/32
+]
+
+max_epochs = 40
+train_batch_size_per_gpu = 12
+train_num_workers = 4
+
+load_from = 'https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth' # noqa
+
+model = dict(
+ backbone=dict(frozen_stages=4),
+ bbox_head=dict(
+ head_module=dict(num_classes=num_classes),
+ prior_generator=dict(base_sizes=anchors)))
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ dataset=dict(
+ data_root=data_root,
+ metainfo=metainfo,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='images/')))
+
+val_dataloader = dict(
+ dataset=dict(
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file='annotations/test.json',
+ data_prefix=dict(img='images/')))
+
+test_dataloader = val_dataloader
+
+_base_.optim_wrapper.optimizer.batch_size_per_gpu = train_batch_size_per_gpu
+
+val_evaluator = dict(ann_file=data_root + 'annotations/test.json')
+test_evaluator = val_evaluator
+
+default_hooks = dict(
+ checkpoint=dict(interval=10, max_keep_ckpts=2, save_best='auto'),
+ # The warmup_mim_iter parameter is critical.
+ # The default value is 1000 which is not suitable for cat datasets.
+ param_scheduler=dict(max_epochs=max_epochs, warmup_mim_iter=10),
+ logger=dict(type='LoggerHook', interval=5))
+train_cfg = dict(max_epochs=max_epochs, val_interval=10)
+# visualizer = dict(vis_backends = [dict(type='LocalVisBackend'), dict(type='WandbVisBackend')]) # noqa
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn-detect_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn-detect_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..627f985923bd956d5321848b163314fb8bf0ef2e
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn-detect_8xb16-300e_coco.py
@@ -0,0 +1,23 @@
+_base_ = 'yolov5_s-v61_syncbn_8xb16-300e_coco.py'
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(
+ type='LetterResize',
+ scale=_base_.img_scale,
+ allow_scale_up=True,
+ use_mini_pad=True),
+ dict(type='LoadAnnotations', with_bbox=True),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+
+val_dataloader = dict(
+ dataset=dict(pipeline=test_pipeline, batch_shapes_cfg=None))
+test_dataloader = val_dataloader
+
+model = dict(
+ test_cfg=dict(
+ multi_label=False, score_thr=0.25, nms=dict(iou_threshold=0.45)))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..305034132bdff5b508995ff39d900b03b6df5679
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py
@@ -0,0 +1,292 @@
+_base_ = ['../_base_/default_runtime.py', '../_base_/det_p5_tta.py']
+
+# ========================Frequently modified parameters======================
+# -----data related-----
+data_root = 'data/coco/' # Root path of data
+# Path of train annotation file
+train_ann_file = 'annotations/instances_train2017.json'
+train_data_prefix = 'train2017/' # Prefix of train image path
+# Path of val annotation file
+val_ann_file = 'annotations/instances_val2017.json'
+val_data_prefix = 'val2017/' # Prefix of val image path
+
+num_classes = 80 # Number of classes for classification
+# Batch size of a single GPU during training
+train_batch_size_per_gpu = 16
+# Worker to pre-fetch data for each single GPU during training
+train_num_workers = 8
+# persistent_workers must be False if num_workers is 0
+persistent_workers = True
+
+# -----model related-----
+# Basic size of multi-scale prior box
+anchors = [
+ [(10, 13), (16, 30), (33, 23)], # P3/8
+ [(30, 61), (62, 45), (59, 119)], # P4/16
+ [(116, 90), (156, 198), (373, 326)] # P5/32
+]
+
+# -----train val related-----
+# Base learning rate for optim_wrapper. Corresponding to 8xb16=128 bs
+base_lr = 0.01
+max_epochs = 300 # Maximum training epochs
+
+model_test_cfg = dict(
+ # The config of multi-label for multi-class prediction.
+ multi_label=True,
+ # The number of boxes before NMS
+ nms_pre=30000,
+ score_thr=0.001, # Threshold to filter out boxes.
+ nms=dict(type='nms', iou_threshold=0.65), # NMS type and threshold
+ max_per_img=300) # Max number of detections of each image
+
+# ========================Possible modified parameters========================
+# -----data related-----
+img_scale = (640, 640) # width, height
+# Dataset type, this will be used to define the dataset
+dataset_type = 'YOLOv5CocoDataset'
+# Batch size of a single GPU during validation
+val_batch_size_per_gpu = 1
+# Worker to pre-fetch data for each single GPU during validation
+val_num_workers = 2
+
+# Config of batch shapes. Only on val.
+# It means not used if batch_shapes_cfg is None.
+batch_shapes_cfg = dict(
+ type='BatchShapePolicy',
+ batch_size=val_batch_size_per_gpu,
+ img_size=img_scale[0],
+ # The image scale of padding should be divided by pad_size_divisor
+ size_divisor=32,
+ # Additional paddings for pixel scale
+ extra_pad_ratio=0.5)
+
+# -----model related-----
+# The scaling factor that controls the depth of the network structure
+deepen_factor = 0.33
+# The scaling factor that controls the width of the network structure
+widen_factor = 0.5
+# Strides of multi-scale prior box
+strides = [8, 16, 32]
+num_det_layers = 3 # The number of model output scales
+norm_cfg = dict(type='BN', momentum=0.03, eps=0.001) # Normalization config
+
+# -----train val related-----
+affine_scale = 0.5 # YOLOv5RandomAffine scaling ratio
+loss_cls_weight = 0.5
+loss_bbox_weight = 0.05
+loss_obj_weight = 1.0
+prior_match_thr = 4. # Priori box matching threshold
+# The obj loss weights of the three output layers
+obj_level_weights = [4., 1., 0.4]
+lr_factor = 0.01 # Learning rate scaling factor
+weight_decay = 0.0005
+# Save model checkpoint and validation intervals
+save_checkpoint_intervals = 10
+# The maximum checkpoints to keep.
+max_keep_ckpts = 3
+# Single-scale training is recommended to
+# be turned on, which can speed up training.
+env_cfg = dict(cudnn_benchmark=True)
+
+# ===============================Unmodified in most cases====================
+model = dict(
+ type='YOLODetector',
+ data_preprocessor=dict(
+ type='mmdet.DetDataPreprocessor',
+ mean=[0., 0., 0.],
+ std=[255., 255., 255.],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='YOLOv5CSPDarknet',
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ neck=dict(
+ type='YOLOv5PAFPN',
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ in_channels=[256, 512, 1024],
+ out_channels=[256, 512, 1024],
+ num_csp_blocks=3,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ bbox_head=dict(
+ type='YOLOv5Head',
+ head_module=dict(
+ type='YOLOv5HeadModule',
+ num_classes=num_classes,
+ in_channels=[256, 512, 1024],
+ widen_factor=widen_factor,
+ featmap_strides=strides,
+ num_base_priors=3),
+ prior_generator=dict(
+ type='mmdet.YOLOAnchorGenerator',
+ base_sizes=anchors,
+ strides=strides),
+ # scaled based on number of detection layers
+ loss_cls=dict(
+ type='mmdet.CrossEntropyLoss',
+ use_sigmoid=True,
+ reduction='mean',
+ loss_weight=loss_cls_weight *
+ (num_classes / 80 * 3 / num_det_layers)),
+ loss_bbox=dict(
+ type='IoULoss',
+ iou_mode='ciou',
+ bbox_format='xywh',
+ eps=1e-7,
+ reduction='mean',
+ loss_weight=loss_bbox_weight * (3 / num_det_layers),
+ return_iou=True),
+ loss_obj=dict(
+ type='mmdet.CrossEntropyLoss',
+ use_sigmoid=True,
+ reduction='mean',
+ loss_weight=loss_obj_weight *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers)),
+ prior_match_thr=prior_match_thr,
+ obj_level_weights=obj_level_weights),
+ test_cfg=model_test_cfg)
+
+albu_train_transforms = [
+ dict(type='Blur', p=0.01),
+ dict(type='MedianBlur', p=0.01),
+ dict(type='ToGray', p=0.01),
+ dict(type='CLAHE', p=0.01)
+]
+
+pre_transform = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='LoadAnnotations', with_bbox=True)
+]
+
+train_pipeline = [
+ *pre_transform,
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ scaling_ratio_range=(1 - affine_scale, 1 + affine_scale),
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+ dict(
+ type='mmdet.Albu',
+ transforms=albu_train_transforms,
+ bbox_params=dict(
+ type='BboxParams',
+ format='pascal_voc',
+ label_fields=['gt_bboxes_labels', 'gt_ignore_flags']),
+ keymap={
+ 'img': 'image',
+ 'gt_bboxes': 'bboxes'
+ }),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ ann_file=train_ann_file,
+ data_prefix=dict(img=train_data_prefix),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=train_pipeline))
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='LetterResize',
+ scale=img_scale,
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+
+val_dataloader = dict(
+ batch_size=val_batch_size_per_gpu,
+ num_workers=val_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ test_mode=True,
+ data_prefix=dict(img=val_data_prefix),
+ ann_file=val_ann_file,
+ pipeline=test_pipeline,
+ batch_shapes_cfg=batch_shapes_cfg))
+
+test_dataloader = val_dataloader
+
+param_scheduler = None
+optim_wrapper = dict(
+ type='OptimWrapper',
+ optimizer=dict(
+ type='SGD',
+ lr=base_lr,
+ momentum=0.937,
+ weight_decay=weight_decay,
+ nesterov=True,
+ batch_size_per_gpu=train_batch_size_per_gpu),
+ constructor='YOLOv5OptimizerConstructor')
+
+default_hooks = dict(
+ param_scheduler=dict(
+ type='YOLOv5ParamSchedulerHook',
+ scheduler_type='linear',
+ lr_factor=lr_factor,
+ max_epochs=max_epochs),
+ checkpoint=dict(
+ type='CheckpointHook',
+ interval=save_checkpoint_intervals,
+ save_best='auto',
+ max_keep_ckpts=max_keep_ckpts))
+
+custom_hooks = [
+ dict(
+ type='EMAHook',
+ ema_type='ExpMomentumEMA',
+ momentum=0.0001,
+ update_buffers=True,
+ strict_load=False,
+ priority=49)
+]
+
+val_evaluator = dict(
+ type='mmdet.CocoMetric',
+ proposal_nums=(100, 1, 10),
+ ann_file=data_root + val_ann_file,
+ metric='bbox')
+test_evaluator = val_evaluator
+
+train_cfg = dict(
+ type='EpochBasedTrainLoop',
+ max_epochs=max_epochs,
+ val_interval=save_checkpoint_intervals)
+val_cfg = dict(type='ValLoop')
+test_cfg = dict(type='TestLoop')
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn_fast_1xb4-300e_balloon.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn_fast_1xb4-300e_balloon.py
new file mode 100644
index 0000000000000000000000000000000000000000..2c585ceb92e9bfb1984b49ce02f86f4d3cd4532d
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn_fast_1xb4-300e_balloon.py
@@ -0,0 +1,42 @@
+_base_ = './yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'
+
+# ========================modified parameters======================
+data_root = 'data/balloon/'
+# Path of train annotation file
+train_ann_file = 'train.json'
+train_data_prefix = 'train/' # Prefix of train image path
+# Path of val annotation file
+val_ann_file = 'val.json'
+val_data_prefix = 'val/' # Prefix of val image path
+metainfo = {
+ 'classes': ('balloon', ),
+ 'palette': [
+ (220, 20, 60),
+ ]
+}
+num_classes = 1
+
+train_batch_size_per_gpu = 4
+train_num_workers = 2
+log_interval = 1
+
+# =======================Unmodified in most cases==================
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ dataset=dict(
+ data_root=data_root,
+ metainfo=metainfo,
+ data_prefix=dict(img=train_data_prefix),
+ ann_file=train_ann_file))
+val_dataloader = dict(
+ dataset=dict(
+ data_root=data_root,
+ metainfo=metainfo,
+ data_prefix=dict(img=val_data_prefix),
+ ann_file=val_ann_file))
+test_dataloader = val_dataloader
+val_evaluator = dict(ann_file=data_root + val_ann_file)
+test_evaluator = val_evaluator
+model = dict(bbox_head=dict(head_module=dict(num_classes=num_classes)))
+default_hooks = dict(logger=dict(interval=log_interval))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..17b4a73b092fda1b98a088a83619697702859f71
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py
@@ -0,0 +1,12 @@
+_base_ = 'yolov5_s-v61_syncbn_8xb16-300e_coco.py'
+
+# fast means faster training speed,
+# but less flexibility for multitasking
+model = dict(
+ data_preprocessor=dict(
+ type='YOLOv5DetDataPreprocessor',
+ mean=[0., 0., 0.],
+ std=[255., 255., 255.],
+ bgr_to_rgb=True))
+
+train_dataloader = dict(collate_fn=dict(type='yolov5_collate'))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_x-p6-v62_syncbn_fast_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_x-p6-v62_syncbn_fast_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..9fe5c0103520280ba26bb3f56a4a30658576b74b
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_x-p6-v62_syncbn_fast_8xb16-300e_coco.py
@@ -0,0 +1,14 @@
+_base_ = './yolov5_m-p6-v62_syncbn_fast_8xb16-300e_coco.py'
+deepen_factor = 1.33
+widen_factor = 1.25
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_x-v61_syncbn_fast_8xb16-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_x-v61_syncbn_fast_8xb16-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..8782eed8df6318b3aad6333809a04f639fd0cefb
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov5/yolov5_x-v61_syncbn_fast_8xb16-300e_coco.py
@@ -0,0 +1,14 @@
+_base_ = './yolov5_m-v61_syncbn_fast_8xb16-300e_coco.py'
+deepen_factor = 1.33
+widen_factor = 1.25
+
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ ),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/README.md b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..8edd149efc51fa0f54a87ac7894a7f5fd3aad8f1
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/README.md
@@ -0,0 +1,53 @@
+# YOLOv6
+
+> [YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications](https://arxiv.org/abs/2209.02976)
+
+
+
+## Abstract
+
+For years, YOLO series have been de facto industry-level standard for efficient object detection. The YOLO community has prospered overwhelmingly to enrich its use in a multitude of hardware platforms and abundant scenarios. In this technical report, we strive to push its limits to the next level, stepping forward with an unwavering mindset for industry application. Considering the diverse requirements for speed and accuracy in the real environment, we extensively examine the up-to-date object detection advancements either from industry or academy. Specifically, we heavily assimilate ideas from recent network design, training strategies, testing techniques, quantization and optimization methods. On top of this, we integrate our thoughts and practice to build a suite of deployment-ready networks at various scales to accommodate diversified use cases. With the generous permission of YOLO authors, we name it YOLOv6. We also express our warm welcome to users and contributors for further enhancement. For a glimpse of performance, our YOLOv6-N hits 35.9% AP on COCO dataset at a throughput of 1234 FPS on an NVIDIA Tesla T4 GPU. YOLOv6-S strikes 43.5% AP at 495 FPS, outperforming other mainstream detectors at the same scale (YOLOv5-S, YOLOX-S and PPYOLOE-S). Our quantized version of YOLOv6-S even brings a new state-of-the-art 43.3% AP at 869 FPS. Furthermore, YOLOv6-M/L also achieves better accuracy performance (i.e., 49.5%/52.3%) than other detectors with the similar inference speed. We carefully conducted experiments to validate the effectiveness of each component.
+
+
+

+
+
+
+

+YOLOv6-s model structure
+
+
+
+

+YOLOv6-l model structure
+
+
+## Results and models
+
+### COCO
+
+| Backbone | Arch | Size | Epoch | SyncBN | AMP | Mem (GB) | Box AP | Config | Download |
+| :------: | :--: | :--: | :---: | :----: | :-: | :------: | :----: | :---------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
+| YOLOv6-n | P5 | 640 | 400 | Yes | Yes | 6.04 | 36.2 | [config](yolov6_n_syncbn_fast_8xb32-400e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_n_syncbn_fast_8xb32-400e_coco/yolov6_n_syncbn_fast_8xb32-400e_coco_20221030_202726-d99b2e82.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_n_syncbn_fast_8xb32-400e_coco/yolov6_n_syncbn_fast_8xb32-400e_coco_20221030_202726.log.json) |
+| YOLOv6-t | P5 | 640 | 400 | Yes | Yes | 8.13 | 41.0 | [config](yolov6_t_syncbn_fast_8xb32-400e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_t_syncbn_fast_8xb32-400e_coco/yolov6_t_syncbn_fast_8xb32-400e_coco_20221030_143755-cf0d278f.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_t_syncbn_fast_8xb32-400e_coco/yolov6_t_syncbn_fast_8xb32-400e_coco_20221030_143755.log.json) |
+| YOLOv6-s | P5 | 640 | 400 | Yes | Yes | 8.88 | 44.0 | [config](yolov6_s_syncbn_fast_8xb32-400e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco/yolov6_s_syncbn_fast_8xb32-400e_coco_20221102_203035-932e1d91.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco/yolov6_s_syncbn_fast_8xb32-400e_coco_20221102_203035.log.json) |
+| YOLOv6-m | P5 | 640 | 300 | Yes | Yes | 16.69 | 48.4 | [config](yolov6_m_syncbn_fast_8xb32-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_m_syncbn_fast_8xb32-300e_coco/yolov6_m_syncbn_fast_8xb32-300e_coco_20221109_182658-85bda3f4.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_m_syncbn_fast_8xb32-300e_coco/yolov6_m_syncbn_fast_8xb32-300e_coco_20221109_182658.log.json) |
+| YOLOv6-l | P5 | 640 | 300 | Yes | Yes | 20.86 | 51.0 | [config](yolov6_l_syncbn_fast_8xb32-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_l_syncbn_fast_8xb32-300e_coco/yolov6_l_syncbn_fast_8xb32-300e_coco_20221109_183156-91e3c447.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_l_syncbn_fast_8xb32-300e_coco/yolov6_l_syncbn_fast_8xb32-300e_coco_20221109_183156.log.json) |
+
+**Note**:
+
+1. The official m and l models use knowledge distillation, but our version does not support it, which will be implemented in [MMRazor](https://github.com/open-mmlab/mmrazor) in the future.
+2. The performance is unstable and may fluctuate by about 0.3 mAP.
+3. If users need the weight of 300 epoch for nano, tiny and small model, they can train according to the configs of 300 epoch provided by us, or convert the official weight according to the [converter script](../../tools/model_converters/).
+4. We have observed that the [base model](https://github.com/meituan/YOLOv6/tree/main/configs/base) has been officially released in v6 recently. Although the accuracy has decreased, it is more efficient. We will also provide the base model configuration in the future.
+
+## Citation
+
+```latex
+@article{li2022yolov6,
+ title={YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications},
+ author={Li, Chuyi and Li, Lulu and Jiang, Hongliang and Weng, Kaiheng and Geng, Yifei and Li, Liang and Ke, Zaidan and Li, Qingyuan and Cheng, Meng and Nie, Weiqiang and others},
+ journal={arXiv preprint arXiv:2209.02976},
+ year={2022}
+}
+```
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/metafile.yml b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/metafile.yml
new file mode 100644
index 0000000000000000000000000000000000000000..df451526957c08d5956db33fe5e180cd7d5fcd66
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/metafile.yml
@@ -0,0 +1,83 @@
+Collections:
+ - Name: YOLOv6
+ Metadata:
+ Training Data: COCO
+ Training Techniques:
+ - SGD with Nesterov
+ - Weight Decay
+ - AMP
+ - Synchronize BN
+ Training Resources: 8x A100 GPUs
+ Architecture:
+ - CSPDarkNet
+ - PAFPN
+ - RepVGG
+ Paper:
+ URL: https://arxiv.org/abs/2209.02976
+ Title: 'YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications'
+ README: configs/yolov6/README.md
+ Code:
+ URL: https://github.com/open-mmlab/mmyolo/blob/v0.0.1/mmyolo/models/detectors/yolo_detector.py#L12
+ Version: v0.0.1
+
+Models:
+ - Name: yolov6_s_syncbn_fast_8xb32-400e_coco
+ In Collection: YOLOv6
+ Config: configs/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py
+ Metadata:
+ Training Memory (GB): 8.88
+ Epochs: 400
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 44.0
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco/yolov6_s_syncbn_fast_8xb32-400e_coco_20221102_203035-932e1d91.pth
+ - Name: yolov6_n_syncbn_fast_8xb32-400e_coco
+ In Collection: YOLOv6
+ Config: configs/yolov6/yolov6_n_syncbn_fast_8xb32-400e_coco.py
+ Metadata:
+ Training Memory (GB): 6.04
+ Epochs: 400
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 36.2
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_n_syncbn_fast_8xb32-400e_coco/yolov6_n_syncbn_fast_8xb32-400e_coco_20221030_202726-d99b2e82.pth
+ - Name: yolov6_t_syncbn_fast_8xb32-400e_coco
+ In Collection: YOLOv6
+ Config: configs/yolov6/yolov6_t_syncbn_fast_8xb32-400e_coco.py
+ Metadata:
+ Training Memory (GB): 8.13
+ Epochs: 400
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 41.0
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_t_syncbn_fast_8xb32-400e_coco/yolov6_t_syncbn_fast_8xb32-400e_coco_20221030_143755-cf0d278f.pth
+ - Name: yolov6_m_syncbn_fast_8xb32-300e_coco
+ In Collection: YOLOv6
+ Config: configs/yolov6/yolov6_m_syncbn_fast_8xb32-300e_coco.py
+ Metadata:
+ Training Memory (GB): 16.69
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 48.4
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_m_syncbn_fast_8xb32-300e_coco/yolov6_m_syncbn_fast_8xb32-300e_coco_20221109_182658-85bda3f4.pth
+ - Name: yolov6_l_syncbn_fast_8xb32-300e_coco
+ In Collection: YOLOv6
+ Config: configs/yolov6/yolov6_l_syncbn_fast_8xb32-300e_coco.py
+ Metadata:
+ Training Memory (GB): 20.86
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 51.0
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_l_syncbn_fast_8xb32-300e_coco/yolov6_l_syncbn_fast_8xb32-300e_coco_20221109_183156-91e3c447.pth
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_l_syncbn_fast_8xb32-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_l_syncbn_fast_8xb32-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..ad5ecf347e4aa0b3194b8be33d9c294915dd9e56
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_l_syncbn_fast_8xb32-300e_coco.py
@@ -0,0 +1,28 @@
+_base_ = './yolov6_m_syncbn_fast_8xb32-300e_coco.py'
+
+# ======================= Possible modified parameters =======================
+# -----model related-----
+# The scaling factor that controls the depth of the network structure
+deepen_factor = 1
+# The scaling factor that controls the width of the network structure
+widen_factor = 1
+
+# ============================== Unmodified in most cases ===================
+model = dict(
+ backbone=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ hidden_ratio=1. / 2,
+ block_cfg=dict(
+ type='ConvWrapper',
+ norm_cfg=dict(type='BN', momentum=0.03, eps=0.001)),
+ act_cfg=dict(type='SiLU', inplace=True)),
+ neck=dict(
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ hidden_ratio=1. / 2,
+ block_cfg=dict(
+ type='ConvWrapper',
+ norm_cfg=dict(type='BN', momentum=0.03, eps=0.001)),
+ block_act_cfg=dict(type='SiLU', inplace=True)),
+ bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_m_syncbn_fast_8xb32-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_m_syncbn_fast_8xb32-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..09811c8c06fb81a061ac4da7904c8d7d1e248411
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_m_syncbn_fast_8xb32-300e_coco.py
@@ -0,0 +1,62 @@
+_base_ = './yolov6_s_syncbn_fast_8xb32-300e_coco.py'
+
+# ======================= Possible modified parameters =======================
+# -----model related-----
+# The scaling factor that controls the depth of the network structure
+deepen_factor = 0.6
+# The scaling factor that controls the width of the network structure
+widen_factor = 0.75
+
+# -----train val related-----
+affine_scale = 0.9 # YOLOv5RandomAffine scaling ratio
+
+# ============================== Unmodified in most cases ===================
+model = dict(
+ backbone=dict(
+ type='YOLOv6CSPBep',
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ hidden_ratio=2. / 3,
+ block_cfg=dict(type='RepVGGBlock'),
+ act_cfg=dict(type='ReLU', inplace=True)),
+ neck=dict(
+ type='YOLOv6CSPRepPAFPN',
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ block_cfg=dict(type='RepVGGBlock'),
+ hidden_ratio=2. / 3,
+ block_act_cfg=dict(type='ReLU', inplace=True)),
+ bbox_head=dict(
+ type='YOLOv6Head', head_module=dict(widen_factor=widen_factor)))
+
+mosaic_affine_pipeline = [
+ dict(
+ type='Mosaic',
+ img_scale=_base_.img_scale,
+ pad_val=114.0,
+ pre_transform=_base_.pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ scaling_ratio_range=(1 - affine_scale, 1 + affine_scale),
+ # img_scale is (width, height)
+ border=(-_base_.img_scale[0] // 2, -_base_.img_scale[1] // 2),
+ border_val=(114, 114, 114))
+]
+
+train_pipeline = [
+ *_base_.pre_transform, *mosaic_affine_pipeline,
+ dict(
+ type='YOLOv5MixUp',
+ prob=0.1,
+ pre_transform=[*_base_.pre_transform, *mosaic_affine_pipeline]),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_n_syncbn_fast_8xb32-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_n_syncbn_fast_8xb32-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..bc2db4b6c03277a7c62ba3ed505d54f54267328f
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_n_syncbn_fast_8xb32-300e_coco.py
@@ -0,0 +1,21 @@
+_base_ = './yolov6_s_syncbn_fast_8xb32-300e_coco.py'
+
+# ======================= Possible modified parameters =======================
+# -----model related-----
+# The scaling factor that controls the depth of the network structure
+deepen_factor = 0.33
+# The scaling factor that controls the width of the network structure
+widen_factor = 0.25
+
+# -----train val related-----
+lr_factor = 0.02 # Learning rate scaling factor
+
+# ============================== Unmodified in most cases ===================
+model = dict(
+ backbone=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
+ neck=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
+ bbox_head=dict(
+ head_module=dict(widen_factor=widen_factor),
+ loss_bbox=dict(iou_mode='siou')))
+
+default_hooks = dict(param_scheduler=dict(lr_factor=lr_factor))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_n_syncbn_fast_8xb32-400e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_n_syncbn_fast_8xb32-400e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..f66aa15fc447bce5f510a60bdda1914a8a7b5a76
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_n_syncbn_fast_8xb32-400e_coco.py
@@ -0,0 +1,21 @@
+_base_ = './yolov6_s_syncbn_fast_8xb32-400e_coco.py'
+
+# ======================= Possible modified parameters =======================
+# -----model related-----
+# The scaling factor that controls the depth of the network structure
+deepen_factor = 0.33
+# The scaling factor that controls the width of the network structure
+widen_factor = 0.25
+
+# -----train val related-----
+lr_factor = 0.02 # Learning rate scaling factor
+
+# ============================== Unmodified in most cases ===================
+model = dict(
+ backbone=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
+ neck=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
+ bbox_head=dict(
+ head_module=dict(widen_factor=widen_factor),
+ loss_bbox=dict(iou_mode='siou')))
+
+default_hooks = dict(param_scheduler=dict(lr_factor=lr_factor))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_s_fast_1xb12-40e_cat.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_s_fast_1xb12-40e_cat.py
new file mode 100644
index 0000000000000000000000000000000000000000..82578fccf7fffb8e4bb4ac21170543a7f71bc63e
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_s_fast_1xb12-40e_cat.py
@@ -0,0 +1,56 @@
+_base_ = './yolov6_s_syncbn_fast_8xb32-400e_coco.py'
+
+data_root = './data/cat/'
+class_name = ('cat', )
+num_classes = len(class_name)
+metainfo = dict(classes=class_name, palette=[(20, 220, 60)])
+
+max_epochs = 40
+train_batch_size_per_gpu = 12
+train_num_workers = 4
+num_last_epochs = 5
+
+load_from = 'https://download.openmmlab.com/mmyolo/v0/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco/yolov6_s_syncbn_fast_8xb32-400e_coco_20221102_203035-932e1d91.pth' # noqa
+
+model = dict(
+ backbone=dict(frozen_stages=4),
+ bbox_head=dict(head_module=dict(num_classes=num_classes)),
+ train_cfg=dict(
+ initial_assigner=dict(num_classes=num_classes),
+ assigner=dict(num_classes=num_classes)))
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ dataset=dict(
+ data_root=data_root,
+ metainfo=metainfo,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='images/')))
+
+val_dataloader = dict(
+ dataset=dict(
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file='annotations/test.json',
+ data_prefix=dict(img='images/')))
+
+test_dataloader = val_dataloader
+
+val_evaluator = dict(ann_file=data_root + 'annotations/test.json')
+test_evaluator = val_evaluator
+
+_base_.optim_wrapper.optimizer.batch_size_per_gpu = train_batch_size_per_gpu
+_base_.custom_hooks[1].switch_epoch = max_epochs - num_last_epochs
+
+default_hooks = dict(
+ checkpoint=dict(interval=10, max_keep_ckpts=2, save_best='auto'),
+ # The warmup_mim_iter parameter is critical.
+ # The default value is 1000 which is not suitable for cat datasets.
+ param_scheduler=dict(max_epochs=max_epochs, warmup_mim_iter=10),
+ logger=dict(type='LoggerHook', interval=5))
+train_cfg = dict(
+ max_epochs=max_epochs,
+ val_interval=10,
+ dynamic_intervals=[(max_epochs - num_last_epochs, 1)])
+# visualizer = dict(vis_backends = [dict(type='LocalVisBackend'), dict(type='WandbVisBackend')]) # noqa
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_s_syncbn_fast_8xb32-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_s_syncbn_fast_8xb32-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..dbffaeb3362883d8a70f43c0722dd6c99b8b8352
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_s_syncbn_fast_8xb32-300e_coco.py
@@ -0,0 +1,33 @@
+_base_ = './yolov6_s_syncbn_fast_8xb32-400e_coco.py'
+
+# ======================= Frequently modified parameters =====================
+# -----train val related-----
+# Base learning rate for optim_wrapper
+max_epochs = 300 # Maximum training epochs
+num_last_epochs = 15 # Last epoch number to switch training pipeline
+
+# ============================== Unmodified in most cases ===================
+default_hooks = dict(
+ param_scheduler=dict(
+ type='YOLOv5ParamSchedulerHook',
+ scheduler_type='cosine',
+ lr_factor=0.01,
+ max_epochs=max_epochs))
+
+custom_hooks = [
+ dict(
+ type='EMAHook',
+ ema_type='ExpMomentumEMA',
+ momentum=0.0001,
+ update_buffers=True,
+ strict_load=False,
+ priority=49),
+ dict(
+ type='mmdet.PipelineSwitchHook',
+ switch_epoch=max_epochs - num_last_epochs,
+ switch_pipeline=_base_.train_pipeline_stage2)
+]
+
+train_cfg = dict(
+ max_epochs=max_epochs,
+ dynamic_intervals=[(max_epochs - num_last_epochs, 1)])
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..55ce15825756a451ed8e19dd00f0a74ac9e46025
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py
@@ -0,0 +1,280 @@
+_base_ = ['../_base_/default_runtime.py', '../_base_/det_p5_tta.py']
+
+# ======================= Frequently modified parameters =====================
+# -----data related-----
+data_root = 'data/coco/' # Root path of data
+# Path of train annotation file
+train_ann_file = 'annotations/instances_train2017.json'
+train_data_prefix = 'train2017/' # Prefix of train image path
+# Path of val annotation file
+val_ann_file = 'annotations/instances_val2017.json'
+val_data_prefix = 'val2017/' # Prefix of val image path
+
+num_classes = 80 # Number of classes for classification
+# Batch size of a single GPU during training
+train_batch_size_per_gpu = 32
+# Worker to pre-fetch data for each single GPU during training
+train_num_workers = 8
+# persistent_workers must be False if num_workers is 0
+persistent_workers = True
+
+# -----train val related-----
+# Base learning rate for optim_wrapper
+base_lr = 0.01
+max_epochs = 400 # Maximum training epochs
+num_last_epochs = 15 # Last epoch number to switch training pipeline
+
+# ======================= Possible modified parameters =======================
+# -----data related-----
+img_scale = (640, 640) # width, height
+# Dataset type, this will be used to define the dataset
+dataset_type = 'YOLOv5CocoDataset'
+# Batch size of a single GPU during validation
+val_batch_size_per_gpu = 1
+# Worker to pre-fetch data for each single GPU during validation
+val_num_workers = 2
+
+# Config of batch shapes. Only on val.
+# It means not used if batch_shapes_cfg is None.
+batch_shapes_cfg = dict(
+ type='BatchShapePolicy',
+ batch_size=val_batch_size_per_gpu,
+ img_size=img_scale[0],
+ size_divisor=32,
+ extra_pad_ratio=0.5)
+
+# -----model related-----
+# The scaling factor that controls the depth of the network structure
+deepen_factor = 0.33
+# The scaling factor that controls the width of the network structure
+widen_factor = 0.5
+
+# -----train val related-----
+affine_scale = 0.5 # YOLOv5RandomAffine scaling ratio
+lr_factor = 0.01 # Learning rate scaling factor
+weight_decay = 0.0005
+# Save model checkpoint and validation intervals
+save_epoch_intervals = 10
+# The maximum checkpoints to keep.
+max_keep_ckpts = 3
+# Single-scale training is recommended to
+# be turned on, which can speed up training.
+env_cfg = dict(cudnn_benchmark=True)
+
+# ============================== Unmodified in most cases ===================
+model = dict(
+ type='YOLODetector',
+ data_preprocessor=dict(
+ type='YOLOv5DetDataPreprocessor',
+ mean=[0., 0., 0.],
+ std=[255., 255., 255.],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='YOLOv6EfficientRep',
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ norm_cfg=dict(type='BN', momentum=0.03, eps=0.001),
+ act_cfg=dict(type='ReLU', inplace=True)),
+ neck=dict(
+ type='YOLOv6RepPAFPN',
+ deepen_factor=deepen_factor,
+ widen_factor=widen_factor,
+ in_channels=[256, 512, 1024],
+ out_channels=[128, 256, 512],
+ num_csp_blocks=12,
+ norm_cfg=dict(type='BN', momentum=0.03, eps=0.001),
+ act_cfg=dict(type='ReLU', inplace=True),
+ ),
+ bbox_head=dict(
+ type='YOLOv6Head',
+ head_module=dict(
+ type='YOLOv6HeadModule',
+ num_classes=num_classes,
+ in_channels=[128, 256, 512],
+ widen_factor=widen_factor,
+ norm_cfg=dict(type='BN', momentum=0.03, eps=0.001),
+ act_cfg=dict(type='SiLU', inplace=True),
+ featmap_strides=[8, 16, 32]),
+ loss_bbox=dict(
+ type='IoULoss',
+ iou_mode='giou',
+ bbox_format='xyxy',
+ reduction='mean',
+ loss_weight=2.5,
+ return_iou=False)),
+ train_cfg=dict(
+ initial_epoch=4,
+ initial_assigner=dict(
+ type='BatchATSSAssigner',
+ num_classes=num_classes,
+ topk=9,
+ iou_calculator=dict(type='mmdet.BboxOverlaps2D')),
+ assigner=dict(
+ type='BatchTaskAlignedAssigner',
+ num_classes=num_classes,
+ topk=13,
+ alpha=1,
+ beta=6),
+ ),
+ test_cfg=dict(
+ multi_label=True,
+ nms_pre=30000,
+ score_thr=0.001,
+ nms=dict(type='nms', iou_threshold=0.65),
+ max_per_img=300))
+
+# The training pipeline of YOLOv6 is basically the same as YOLOv5.
+# The difference is that Mosaic and RandomAffine will be closed in the last 15 epochs. # noqa
+pre_transform = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='LoadAnnotations', with_bbox=True)
+]
+
+train_pipeline = [
+ *pre_transform,
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_translate_ratio=0.1,
+ scaling_ratio_range=(1 - affine_scale, 1 + affine_scale),
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114),
+ max_shear_degree=0.0),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_pipeline_stage2 = [
+ *pre_transform,
+ dict(type='mmyolo.YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='mmyolo.LetterResize',
+ scale=img_scale,
+ allow_scale_up=True,
+ pad_val=dict(img=114)),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_translate_ratio=0.1,
+ scaling_ratio_range=(1 - affine_scale, 1 + affine_scale),
+ max_shear_degree=0.0,
+ ),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ collate_fn=dict(type='yolov5_collate'),
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ ann_file=train_ann_file,
+ data_prefix=dict(img=train_data_prefix),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=train_pipeline))
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='mmyolo.YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='mmyolo.LetterResize',
+ scale=img_scale,
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+
+val_dataloader = dict(
+ batch_size=val_batch_size_per_gpu,
+ num_workers=val_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ test_mode=True,
+ data_prefix=dict(img=val_data_prefix),
+ ann_file=val_ann_file,
+ pipeline=test_pipeline,
+ batch_shapes_cfg=batch_shapes_cfg))
+
+test_dataloader = val_dataloader
+
+# Optimizer and learning rate scheduler of YOLOv6 are basically the same as YOLOv5. # noqa
+# The difference is that the scheduler_type of YOLOv6 is cosine.
+optim_wrapper = dict(
+ type='OptimWrapper',
+ optimizer=dict(
+ type='SGD',
+ lr=base_lr,
+ momentum=0.937,
+ weight_decay=weight_decay,
+ nesterov=True,
+ batch_size_per_gpu=train_batch_size_per_gpu),
+ constructor='YOLOv5OptimizerConstructor')
+
+default_hooks = dict(
+ param_scheduler=dict(
+ type='YOLOv5ParamSchedulerHook',
+ scheduler_type='cosine',
+ lr_factor=lr_factor,
+ max_epochs=max_epochs),
+ checkpoint=dict(
+ type='CheckpointHook',
+ interval=save_epoch_intervals,
+ max_keep_ckpts=max_keep_ckpts,
+ save_best='auto'))
+
+custom_hooks = [
+ dict(
+ type='EMAHook',
+ ema_type='ExpMomentumEMA',
+ momentum=0.0001,
+ update_buffers=True,
+ strict_load=False,
+ priority=49),
+ dict(
+ type='mmdet.PipelineSwitchHook',
+ switch_epoch=max_epochs - num_last_epochs,
+ switch_pipeline=train_pipeline_stage2)
+]
+
+val_evaluator = dict(
+ type='mmdet.CocoMetric',
+ proposal_nums=(100, 1, 10),
+ ann_file=data_root + val_ann_file,
+ metric='bbox')
+test_evaluator = val_evaluator
+
+train_cfg = dict(
+ type='EpochBasedTrainLoop',
+ max_epochs=max_epochs,
+ val_interval=save_epoch_intervals,
+ dynamic_intervals=[(max_epochs - num_last_epochs, 1)])
+val_cfg = dict(type='ValLoop')
+test_cfg = dict(type='TestLoop')
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_t_syncbn_fast_8xb32-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_t_syncbn_fast_8xb32-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..aa9da63f6984a9a23bc7ca78780db5be5a782399
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_t_syncbn_fast_8xb32-300e_coco.py
@@ -0,0 +1,17 @@
+_base_ = './yolov6_s_syncbn_fast_8xb32-300e_coco.py'
+
+# ======================= Possible modified parameters =======================
+# -----model related-----
+# The scaling factor that controls the depth of the network structure
+deepen_factor = 0.33
+# The scaling factor that controls the width of the network structure
+widen_factor = 0.375
+
+# ============================== Unmodified in most cases ===================
+model = dict(
+ backbone=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
+ neck=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
+ bbox_head=dict(
+ type='YOLOv6Head',
+ head_module=dict(widen_factor=widen_factor),
+ loss_bbox=dict(iou_mode='siou')))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_t_syncbn_fast_8xb32-400e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_t_syncbn_fast_8xb32-400e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..75755555a58b45309df9213b6262cee030e41a9d
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov6/yolov6_t_syncbn_fast_8xb32-400e_coco.py
@@ -0,0 +1,17 @@
+_base_ = './yolov6_s_syncbn_fast_8xb32-400e_coco.py'
+
+# ======================= Possible modified parameters =======================
+# -----model related-----
+# The scaling factor that controls the depth of the network structure
+deepen_factor = 0.33
+# The scaling factor that controls the width of the network structure
+widen_factor = 0.375
+
+# ============================== Unmodified in most cases ===================
+model = dict(
+ backbone=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
+ neck=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
+ bbox_head=dict(
+ type='YOLOv6Head',
+ head_module=dict(widen_factor=widen_factor),
+ loss_bbox=dict(iou_mode='siou')))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/README.md b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e4f8126165e0f2c3aac48b7d6684f52c071e9f59
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/README.md
@@ -0,0 +1,50 @@
+# YOLOv7
+
+> [YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors](https://arxiv.org/abs/2207.02696)
+
+
+
+## Abstract
+
+YOLOv7 surpasses all known object detectors in both speed and accuracy in the range from 5 FPS to 160 FPS and has the highest accuracy 56.8% AP among all known real-time object detectors with 30 FPS or higher on GPU V100. YOLOv7-E6 object detector (56 FPS V100, 55.9% AP) outperforms both transformer-based detector SWIN-L Cascade-Mask R-CNN (9.2 FPS A100, 53.9% AP) by 509% in speed and 2% in accuracy, and convolutional-based detector ConvNeXt-XL Cascade-Mask R-CNN (8.6 FPS A100, 55.2% AP) by 551% in speed and 0.7% AP in accuracy, as well as YOLOv7 outperforms: YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5, DETR, Deformable DETR, DINO-5scale-R50, ViT-Adapter-B and many other object detectors in speed and accuracy. Moreover, we train YOLOv7 only on MS COCO dataset from scratch without using any other datasets or pre-trained weights. Source code is released in [this https URL](https://github.com/WongKinYiu/yolov7).
+
+
+

+
+
+
+

+YOLOv7-l-P5 model structure
+
+
+## Results and models
+
+### COCO
+
+| Backbone | Arch | Size | SyncBN | AMP | Mem (GB) | Box AP | Config | Download |
+| :---------: | :--: | :--: | :----: | :-: | :------: | :----: | :----------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
+| YOLOv7-tiny | P5 | 640 | Yes | Yes | 2.7 | 37.5 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov7/yolov7_tiny_syncbn_fast_8x16b-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_tiny_syncbn_fast_8x16b-300e_coco/yolov7_tiny_syncbn_fast_8x16b-300e_coco_20221126_102719-0ee5bbdf.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_tiny_syncbn_fast_8x16b-300e_coco/yolov7_tiny_syncbn_fast_8x16b-300e_coco_20221126_102719.log.json) |
+| YOLOv7-l | P5 | 640 | Yes | Yes | 10.3 | 50.9 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco/yolov7_l_syncbn_fast_8x16b-300e_coco_20221123_023601-8113c0eb.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco/yolov7_l_syncbn_fast_8x16b-300e_coco_20221123_023601.log.json) |
+| YOLOv7-x | P5 | 640 | Yes | Yes | 13.7 | 52.8 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov7/yolov7_x_syncbn_fast_8x16b-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_x_syncbn_fast_8x16b-300e_coco/yolov7_x_syncbn_fast_8x16b-300e_coco_20221124_215331-ef949a68.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_x_syncbn_fast_8x16b-300e_coco/yolov7_x_syncbn_fast_8x16b-300e_coco_20221124_215331.log.json) |
+| YOLOv7-w | P6 | 1280 | Yes | Yes | 27.0 | 54.1 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco/yolov7_w-p6_syncbn_fast_8x16b-300e_coco_20221123_053031-a68ef9d2.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco/yolov7_w-p6_syncbn_fast_8x16b-300e_coco_20221123_053031.log.json) |
+| YOLOv7-e | P6 | 1280 | Yes | Yes | 42.5 | 55.1 | [config](https://github.com/open-mmlab/mmyolo/tree/main/configs/yolov7/yolov7_e-p6_syncbn_fast_8x16b-300e_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_e-p6_syncbn_fast_8x16b-300e_coco/yolov7_e-p6_syncbn_fast_8x16b-300e_coco_20221126_102636-34425033.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_e-p6_syncbn_fast_8x16b-300e_coco/yolov7_e-p6_syncbn_fast_8x16b-300e_coco_20221126_102636.log.json) |
+
+**Note**:
+In the official YOLOv7 code, the `random_perspective` data augmentation in COCO object detection task training uses mask annotation information, which leads to higher performance. Object detection should not use mask annotation, so only box annotation information is used in `MMYOLO`. We will use the mask annotation information in the instance segmentation task.
+
+1. The performance is unstable and may fluctuate by about 0.3 mAP. The performance shown above is the best model.
+2. If users need the weight of `YOLOv7-e2e`, they can train according to the configs provided by us, or convert the official weight according to the [converter script](https://github.com/open-mmlab/mmyolo/blob/main/tools/model_converters/yolov7_to_mmyolo.py).
+3. `fast` means that `YOLOv5DetDataPreprocessor` and `yolov5_collate` are used for data preprocessing, which is faster for training, but less flexible for multitasking. Recommended to use fast version config if you only care about object detection.
+4. `SyncBN` means use SyncBN, `AMP` indicates training with mixed precision.
+5. We use 8x A100 for training, and the single-GPU batch size is 16. This is different from the official code.
+
+## Citation
+
+```latex
+@article{wang2022yolov7,
+ title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
+ author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
+ journal={arXiv preprint arXiv:2207.02696},
+ year={2022}
+}
+```
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/metafile.yml b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/metafile.yml
new file mode 100644
index 0000000000000000000000000000000000000000..067ec6b45afefa2ae444b0343ad327b94f1507d2
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/metafile.yml
@@ -0,0 +1,83 @@
+Collections:
+ - Name: YOLOv7
+ Metadata:
+ Training Data: COCO
+ Training Techniques:
+ - SGD with Nesterov
+ - Weight Decay
+ - AMP
+ - Synchronize BN
+ Training Resources: 8x A100 GPUs
+ Architecture:
+ - EELAN
+ - PAFPN
+ - RepVGG
+ Paper:
+ URL: https://arxiv.org/abs/2207.02696
+ Title: 'YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors'
+ README: configs/yolov7/README.md
+ Code:
+ URL: https://github.com/open-mmlab/mmyolo/blob/v0.0.1/mmyolo/models/detectors/yolo_detector.py#L12
+ Version: v0.0.1
+
+Models:
+ - Name: yolov7_tiny_syncbn_fast_8x16b-300e_coco
+ In Collection: YOLOv7
+ Config: configs/yolov7/yolov7_tiny_syncbn_fast_8x16b-300e_coco.py
+ Metadata:
+ Training Memory (GB): 2.7
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 37.5
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_tiny_syncbn_fast_8x16b-300e_coco/yolov7_tiny_syncbn_fast_8x16b-300e_coco_20221126_102719-0ee5bbdf.pth
+ - Name: yolov7_l_syncbn_fast_8x16b-300e_coco
+ In Collection: YOLOv7
+ Config: configs/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco.py
+ Metadata:
+ Training Memory (GB): 10.3
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 50.9
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco/yolov7_l_syncbn_fast_8x16b-300e_coco_20221123_023601-8113c0eb.pth
+ - Name: yolov7_x_syncbn_fast_8x16b-300e_coco
+ In Collection: YOLOv7
+ Config: configs/yolov7/yolov7_x_syncbn_fast_8x16b-300e_coco.py
+ Metadata:
+ Training Memory (GB): 13.7
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 52.8
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_x_syncbn_fast_8x16b-300e_coco/yolov7_x_syncbn_fast_8x16b-300e_coco_20221124_215331-ef949a68.pth
+ - Name: yolov7_w-p6_syncbn_fast_8x16b-300e_coco
+ In Collection: YOLOv7
+ Config: configs/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py
+ Metadata:
+ Training Memory (GB): 27.0
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 54.1
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco/yolov7_w-p6_syncbn_fast_8x16b-300e_coco_20221123_053031-a68ef9d2.pth
+ - Name: yolov7_e-p6_syncbn_fast_8x16b-300e_coco
+ In Collection: YOLOv7
+ Config: configs/yolov7/yolov7_e-p6_syncbn_fast_8x16b-300e_coco.py
+ Metadata:
+ Training Memory (GB): 42.5
+ Epochs: 300
+ Results:
+ - Task: Object Detection
+ Dataset: COCO
+ Metrics:
+ box AP: 55.1
+ Weights: https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_e-p6_syncbn_fast_8x16b-300e_coco/yolov7_e-p6_syncbn_fast_8x16b-300e_coco_20221126_102636-34425033.pth
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_d-p6_syncbn_fast_8x16b-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_d-p6_syncbn_fast_8x16b-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..a68715264d59c16ef2b31010ede44310d97a3a7e
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_d-p6_syncbn_fast_8x16b-300e_coco.py
@@ -0,0 +1,21 @@
+_base_ = './yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py'
+
+model = dict(
+ backbone=dict(arch='D'),
+ neck=dict(
+ use_maxpool_in_downsample=True,
+ use_in_channels_in_downsample=True,
+ block_cfg=dict(
+ type='ELANBlock',
+ middle_ratio=0.4,
+ block_ratio=0.2,
+ num_blocks=6,
+ num_convs_in_block=1),
+ in_channels=[384, 768, 1152, 1536],
+ out_channels=[192, 384, 576, 768]),
+ bbox_head=dict(
+ head_module=dict(
+ in_channels=[192, 384, 576, 768],
+ main_out_channels=[384, 768, 1152, 1536],
+ aux_out_channels=[384, 768, 1152, 1536],
+ )))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_e-p6_syncbn_fast_8x16b-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_e-p6_syncbn_fast_8x16b-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..3d1463dc487e05eabfd3f586a28262017a9dc566
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_e-p6_syncbn_fast_8x16b-300e_coco.py
@@ -0,0 +1,19 @@
+_base_ = './yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py'
+
+model = dict(
+ backbone=dict(arch='E'),
+ neck=dict(
+ use_maxpool_in_downsample=True,
+ use_in_channels_in_downsample=True,
+ block_cfg=dict(
+ type='ELANBlock',
+ middle_ratio=0.4,
+ block_ratio=0.2,
+ num_blocks=6,
+ num_convs_in_block=1),
+ in_channels=[320, 640, 960, 1280],
+ out_channels=[160, 320, 480, 640]),
+ bbox_head=dict(
+ head_module=dict(
+ in_channels=[160, 320, 480, 640],
+ main_out_channels=[320, 640, 960, 1280])))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_e2e-p6_syncbn_fast_8x16b-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_e2e-p6_syncbn_fast_8x16b-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..6af81051b72977410d5b51cf7a02a476d55ceb24
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_e2e-p6_syncbn_fast_8x16b-300e_coco.py
@@ -0,0 +1,20 @@
+_base_ = './yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py'
+
+model = dict(
+ backbone=dict(arch='E2E'),
+ neck=dict(
+ use_maxpool_in_downsample=True,
+ use_in_channels_in_downsample=True,
+ block_cfg=dict(
+ type='EELANBlock',
+ num_elan_block=2,
+ middle_ratio=0.4,
+ block_ratio=0.2,
+ num_blocks=6,
+ num_convs_in_block=1),
+ in_channels=[320, 640, 960, 1280],
+ out_channels=[160, 320, 480, 640]),
+ bbox_head=dict(
+ head_module=dict(
+ in_channels=[160, 320, 480, 640],
+ main_out_channels=[320, 640, 960, 1280])))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..6712002c2923bafd81e2352f8495276e02154b08
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco.py
@@ -0,0 +1,324 @@
+_base_ = ['../_base_/default_runtime.py', '../_base_/det_p5_tta.py']
+
+# ========================Frequently modified parameters======================
+# -----data related-----
+data_root = 'data/coco/' # Root path of data
+# Path of train annotation file
+train_ann_file = 'annotations/instances_train2017.json'
+train_data_prefix = 'train2017/' # Prefix of train image path
+# Path of val annotation file
+val_ann_file = 'annotations/instances_val2017.json'
+val_data_prefix = 'val2017/' # Prefix of val image path
+
+num_classes = 80 # Number of classes for classification
+# Batch size of a single GPU during training
+train_batch_size_per_gpu = 16
+# Worker to pre-fetch data for each single GPU during training
+train_num_workers = 8
+# persistent_workers must be False if num_workers is 0
+persistent_workers = True
+
+# -----model related-----
+# Basic size of multi-scale prior box
+anchors = [
+ [(12, 16), (19, 36), (40, 28)], # P3/8
+ [(36, 75), (76, 55), (72, 146)], # P4/16
+ [(142, 110), (192, 243), (459, 401)] # P5/32
+]
+# -----train val related-----
+# Base learning rate for optim_wrapper. Corresponding to 8xb16=128 bs
+base_lr = 0.01
+max_epochs = 300 # Maximum training epochs
+
+num_epoch_stage2 = 30 # The last 30 epochs switch evaluation interval
+val_interval_stage2 = 1 # Evaluation interval
+
+model_test_cfg = dict(
+ # The config of multi-label for multi-class prediction.
+ multi_label=True,
+ # The number of boxes before NMS.
+ nms_pre=30000,
+ score_thr=0.001, # Threshold to filter out boxes.
+ nms=dict(type='nms', iou_threshold=0.65), # NMS type and threshold
+ max_per_img=300) # Max number of detections of each image
+
+# ========================Possible modified parameters========================
+# -----data related-----
+img_scale = (640, 640) # width, height
+# Dataset type, this will be used to define the dataset
+dataset_type = 'YOLOv5CocoDataset'
+# Batch size of a single GPU during validation
+val_batch_size_per_gpu = 1
+# Worker to pre-fetch data for each single GPU during validation
+val_num_workers = 2
+
+# Config of batch shapes. Only on val.
+# It means not used if batch_shapes_cfg is None.
+batch_shapes_cfg = dict(
+ type='BatchShapePolicy',
+ batch_size=val_batch_size_per_gpu,
+ img_size=img_scale[0],
+ # The image scale of padding should be divided by pad_size_divisor
+ size_divisor=32,
+ # Additional paddings for pixel scale
+ extra_pad_ratio=0.5)
+
+# -----model related-----
+strides = [8, 16, 32] # Strides of multi-scale prior box
+num_det_layers = 3 # The number of model output scales
+norm_cfg = dict(type='BN', momentum=0.03, eps=0.001)
+
+# Data augmentation
+max_translate_ratio = 0.2 # YOLOv5RandomAffine
+scaling_ratio_range = (0.1, 2.0) # YOLOv5RandomAffine
+mixup_prob = 0.15 # YOLOv5MixUp
+randchoice_mosaic_prob = [0.8, 0.2]
+mixup_alpha = 8.0 # YOLOv5MixUp
+mixup_beta = 8.0 # YOLOv5MixUp
+
+# -----train val related-----
+loss_cls_weight = 0.3
+loss_bbox_weight = 0.05
+loss_obj_weight = 0.7
+# BatchYOLOv7Assigner params
+simota_candidate_topk = 10
+simota_iou_weight = 3.0
+simota_cls_weight = 1.0
+prior_match_thr = 4. # Priori box matching threshold
+obj_level_weights = [4., 1.,
+ 0.4] # The obj loss weights of the three output layers
+
+lr_factor = 0.1 # Learning rate scaling factor
+weight_decay = 0.0005
+save_epoch_intervals = 1 # Save model checkpoint and validation intervals
+max_keep_ckpts = 3 # The maximum checkpoints to keep.
+
+# Single-scale training is recommended to
+# be turned on, which can speed up training.
+env_cfg = dict(cudnn_benchmark=True)
+
+# ===============================Unmodified in most cases====================
+model = dict(
+ type='YOLODetector',
+ data_preprocessor=dict(
+ type='YOLOv5DetDataPreprocessor',
+ mean=[0., 0., 0.],
+ std=[255., 255., 255.],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='YOLOv7Backbone',
+ arch='L',
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ neck=dict(
+ type='YOLOv7PAFPN',
+ block_cfg=dict(
+ type='ELANBlock',
+ middle_ratio=0.5,
+ block_ratio=0.25,
+ num_blocks=4,
+ num_convs_in_block=1),
+ upsample_feats_cat_first=False,
+ in_channels=[512, 1024, 1024],
+ # The real output channel will be multiplied by 2
+ out_channels=[128, 256, 512],
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ bbox_head=dict(
+ type='YOLOv7Head',
+ head_module=dict(
+ type='YOLOv7HeadModule',
+ num_classes=num_classes,
+ in_channels=[256, 512, 1024],
+ featmap_strides=strides,
+ num_base_priors=3),
+ prior_generator=dict(
+ type='mmdet.YOLOAnchorGenerator',
+ base_sizes=anchors,
+ strides=strides),
+ # scaled based on number of detection layers
+ loss_cls=dict(
+ type='mmdet.CrossEntropyLoss',
+ use_sigmoid=True,
+ reduction='mean',
+ loss_weight=loss_cls_weight *
+ (num_classes / 80 * 3 / num_det_layers)),
+ loss_bbox=dict(
+ type='IoULoss',
+ iou_mode='ciou',
+ bbox_format='xywh',
+ reduction='mean',
+ loss_weight=loss_bbox_weight * (3 / num_det_layers),
+ return_iou=True),
+ loss_obj=dict(
+ type='mmdet.CrossEntropyLoss',
+ use_sigmoid=True,
+ reduction='mean',
+ loss_weight=loss_obj_weight *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers)),
+ prior_match_thr=prior_match_thr,
+ obj_level_weights=obj_level_weights,
+ # BatchYOLOv7Assigner params
+ simota_candidate_topk=simota_candidate_topk,
+ simota_iou_weight=simota_iou_weight,
+ simota_cls_weight=simota_cls_weight),
+ test_cfg=model_test_cfg)
+
+pre_transform = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='LoadAnnotations', with_bbox=True)
+]
+
+mosiac4_pipeline = [
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # note
+ scaling_ratio_range=scaling_ratio_range, # note
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+mosiac9_pipeline = [
+ dict(
+ type='Mosaic9',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # note
+ scaling_ratio_range=scaling_ratio_range, # note
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+randchoice_mosaic_pipeline = dict(
+ type='RandomChoice',
+ transforms=[mosiac4_pipeline, mosiac9_pipeline],
+ prob=randchoice_mosaic_prob)
+
+train_pipeline = [
+ *pre_transform,
+ randchoice_mosaic_pipeline,
+ dict(
+ type='YOLOv5MixUp',
+ alpha=mixup_alpha, # note
+ beta=mixup_beta, # note
+ prob=mixup_prob,
+ pre_transform=[*pre_transform, randchoice_mosaic_pipeline]),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ collate_fn=dict(type='yolov5_collate'), # FASTER
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ ann_file=train_ann_file,
+ data_prefix=dict(img=train_data_prefix),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=train_pipeline))
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='LetterResize',
+ scale=img_scale,
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+
+val_dataloader = dict(
+ batch_size=val_batch_size_per_gpu,
+ num_workers=val_num_workers,
+ persistent_workers=persistent_workers,
+ pin_memory=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ test_mode=True,
+ data_prefix=dict(img=val_data_prefix),
+ ann_file=val_ann_file,
+ pipeline=test_pipeline,
+ batch_shapes_cfg=batch_shapes_cfg))
+
+test_dataloader = val_dataloader
+
+param_scheduler = None
+optim_wrapper = dict(
+ type='OptimWrapper',
+ optimizer=dict(
+ type='SGD',
+ lr=base_lr,
+ momentum=0.937,
+ weight_decay=weight_decay,
+ nesterov=True,
+ batch_size_per_gpu=train_batch_size_per_gpu),
+ constructor='YOLOv7OptimWrapperConstructor')
+
+default_hooks = dict(
+ param_scheduler=dict(
+ type='YOLOv5ParamSchedulerHook',
+ scheduler_type='cosine',
+ lr_factor=lr_factor, # note
+ max_epochs=max_epochs),
+ checkpoint=dict(
+ type='CheckpointHook',
+ save_param_scheduler=False,
+ interval=save_epoch_intervals,
+ save_best='auto',
+ max_keep_ckpts=max_keep_ckpts))
+
+custom_hooks = [
+ dict(
+ type='EMAHook',
+ ema_type='ExpMomentumEMA',
+ momentum=0.0001,
+ update_buffers=True,
+ strict_load=False,
+ priority=49)
+]
+
+val_evaluator = dict(
+ type='mmdet.CocoMetric',
+ proposal_nums=(100, 1, 10), # Can be accelerated
+ ann_file=data_root + val_ann_file,
+ metric='bbox')
+test_evaluator = val_evaluator
+
+train_cfg = dict(
+ type='EpochBasedTrainLoop',
+ max_epochs=max_epochs,
+ val_interval=save_epoch_intervals,
+ dynamic_intervals=[(max_epochs - num_epoch_stage2, val_interval_stage2)])
+val_cfg = dict(type='ValLoop')
+test_cfg = dict(type='TestLoop')
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_tiny_fast_1xb12-40e_cat.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_tiny_fast_1xb12-40e_cat.py
new file mode 100644
index 0000000000000000000000000000000000000000..eb0446760eeb39951ad2bf6a8cbb1fe3cc19870a
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_tiny_fast_1xb12-40e_cat.py
@@ -0,0 +1,56 @@
+_base_ = 'yolov7_tiny_syncbn_fast_8x16b-300e_coco.py'
+
+data_root = './data/cat/'
+class_name = ('cat', )
+num_classes = len(class_name)
+metainfo = dict(classes=class_name, palette=[(20, 220, 60)])
+
+anchors = [
+ [(68, 69), (154, 91), (143, 162)], # P3/8
+ [(242, 160), (189, 287), (391, 207)], # P4/16
+ [(353, 337), (539, 341), (443, 432)] # P5/32
+]
+
+max_epochs = 40
+train_batch_size_per_gpu = 12
+train_num_workers = 4
+
+load_from = 'https://download.openmmlab.com/mmyolo/v0/yolov7/yolov7_tiny_syncbn_fast_8x16b-300e_coco/yolov7_tiny_syncbn_fast_8x16b-300e_coco_20221126_102719-0ee5bbdf.pth' # noqa
+
+model = dict(
+ backbone=dict(frozen_stages=4),
+ bbox_head=dict(
+ head_module=dict(num_classes=num_classes),
+ prior_generator=dict(base_sizes=anchors)))
+
+train_dataloader = dict(
+ batch_size=train_batch_size_per_gpu,
+ num_workers=train_num_workers,
+ dataset=dict(
+ data_root=data_root,
+ metainfo=metainfo,
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='images/')))
+
+val_dataloader = dict(
+ dataset=dict(
+ metainfo=metainfo,
+ data_root=data_root,
+ ann_file='annotations/test.json',
+ data_prefix=dict(img='images/')))
+
+test_dataloader = val_dataloader
+
+_base_.optim_wrapper.optimizer.batch_size_per_gpu = train_batch_size_per_gpu
+
+val_evaluator = dict(ann_file=data_root + 'annotations/test.json')
+test_evaluator = val_evaluator
+
+default_hooks = dict(
+ checkpoint=dict(interval=10, max_keep_ckpts=2, save_best='auto'),
+ # The warmup_mim_iter parameter is critical.
+ # The default value is 1000 which is not suitable for cat datasets.
+ param_scheduler=dict(max_epochs=max_epochs, warmup_mim_iter=10),
+ logger=dict(type='LoggerHook', interval=5))
+train_cfg = dict(max_epochs=max_epochs, val_interval=10)
+# visualizer = dict(vis_backends = [dict(type='LocalVisBackend'), dict(type='WandbVisBackend')]) # noqa
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_tiny_syncbn_fast_8x16b-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_tiny_syncbn_fast_8x16b-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..b9e9f10e2926a840d2af7a9e27b0e2047710343d
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_tiny_syncbn_fast_8x16b-300e_coco.py
@@ -0,0 +1,98 @@
+_base_ = './yolov7_l_syncbn_fast_8x16b-300e_coco.py'
+
+# ========================modified parameters========================
+
+# -----model related-----
+# Data augmentation
+max_translate_ratio = 0.1 # YOLOv5RandomAffine
+scaling_ratio_range = (0.5, 1.6) # YOLOv5RandomAffine
+mixup_prob = 0.05 # YOLOv5MixUp
+randchoice_mosaic_prob = [0.8, 0.2]
+mixup_alpha = 8.0 # YOLOv5MixUp
+mixup_beta = 8.0 # YOLOv5MixUp
+
+# -----train val related-----
+loss_cls_weight = 0.5
+loss_obj_weight = 1.0
+
+lr_factor = 0.01 # Learning rate scaling factor
+# ===============================Unmodified in most cases====================
+num_classes = _base_.num_classes
+num_det_layers = _base_.num_det_layers
+img_scale = _base_.img_scale
+pre_transform = _base_.pre_transform
+model = dict(
+ backbone=dict(
+ arch='Tiny', act_cfg=dict(type='LeakyReLU', negative_slope=0.1)),
+ neck=dict(
+ is_tiny_version=True,
+ in_channels=[128, 256, 512],
+ out_channels=[64, 128, 256],
+ block_cfg=dict(
+ _delete_=True, type='TinyDownSampleBlock', middle_ratio=0.25),
+ act_cfg=dict(type='LeakyReLU', negative_slope=0.1),
+ use_repconv_outs=False),
+ bbox_head=dict(
+ head_module=dict(in_channels=[128, 256, 512]),
+ loss_cls=dict(loss_weight=loss_cls_weight *
+ (num_classes / 80 * 3 / num_det_layers)),
+ loss_obj=dict(loss_weight=loss_obj_weight *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers))))
+
+mosiac4_pipeline = [
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # change
+ scaling_ratio_range=scaling_ratio_range, # change
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+mosiac9_pipeline = [
+ dict(
+ type='Mosaic9',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # change
+ scaling_ratio_range=scaling_ratio_range, # change
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+randchoice_mosaic_pipeline = dict(
+ type='RandomChoice',
+ transforms=[mosiac4_pipeline, mosiac9_pipeline],
+ prob=randchoice_mosaic_prob)
+
+train_pipeline = [
+ *pre_transform,
+ randchoice_mosaic_pipeline,
+ dict(
+ type='YOLOv5MixUp',
+ alpha=mixup_alpha,
+ beta=mixup_beta,
+ prob=mixup_prob, # change
+ pre_transform=[*pre_transform, randchoice_mosaic_pipeline]),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+
+train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
+default_hooks = dict(param_scheduler=dict(lr_factor=lr_factor))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..11164d217bf241c4342f4e9c56f4b86257d36572
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py
@@ -0,0 +1,182 @@
+_base_ = './yolov7_l_syncbn_fast_8x16b-300e_coco.py'
+
+# ========================modified parameters========================
+# -----data related-----
+img_scale = (1280, 1280) # height, width
+num_classes = 80 # Number of classes for classification
+# Config of batch shapes. Only on val
+# It means not used if batch_shapes_cfg is None.
+batch_shapes_cfg = dict(
+ img_size=img_scale[
+ 0], # The image scale of padding should be divided by pad_size_divisor
+ size_divisor=64) # Additional paddings for pixel scale
+tta_img_scales = [(1280, 1280), (1024, 1024), (1536, 1536)]
+
+# -----model related-----
+# Basic size of multi-scale prior box
+anchors = [
+ [(19, 27), (44, 40), (38, 94)], # P3/8
+ [(96, 68), (86, 152), (180, 137)], # P4/16
+ [(140, 301), (303, 264), (238, 542)], # P5/32
+ [(436, 615), (739, 380), (925, 792)] # P6/64
+]
+strides = [8, 16, 32, 64] # Strides of multi-scale prior box
+num_det_layers = 4 # # The number of model output scales
+norm_cfg = dict(type='BN', momentum=0.03, eps=0.001)
+
+# Data augmentation
+max_translate_ratio = 0.2 # YOLOv5RandomAffine
+scaling_ratio_range = (0.1, 2.0) # YOLOv5RandomAffine
+mixup_prob = 0.15 # YOLOv5MixUp
+randchoice_mosaic_prob = [0.8, 0.2]
+mixup_alpha = 8.0 # YOLOv5MixUp
+mixup_beta = 8.0 # YOLOv5MixUp
+
+# -----train val related-----
+loss_cls_weight = 0.3
+loss_bbox_weight = 0.05
+loss_obj_weight = 0.7
+obj_level_weights = [4.0, 1.0, 0.25, 0.06]
+simota_candidate_topk = 20
+
+# The only difference between P6 and P5 in terms of
+# hyperparameters is lr_factor
+lr_factor = 0.2
+
+# ===============================Unmodified in most cases====================
+pre_transform = _base_.pre_transform
+
+model = dict(
+ backbone=dict(arch='W', out_indices=(2, 3, 4, 5)),
+ neck=dict(
+ in_channels=[256, 512, 768, 1024],
+ out_channels=[128, 256, 384, 512],
+ use_maxpool_in_downsample=False,
+ use_repconv_outs=False),
+ bbox_head=dict(
+ head_module=dict(
+ type='YOLOv7p6HeadModule',
+ in_channels=[128, 256, 384, 512],
+ featmap_strides=strides,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='SiLU', inplace=True)),
+ prior_generator=dict(base_sizes=anchors, strides=strides),
+ simota_candidate_topk=simota_candidate_topk, # note
+ # scaled based on number of detection layers
+ loss_cls=dict(loss_weight=loss_cls_weight *
+ (num_classes / 80 * 3 / num_det_layers)),
+ loss_bbox=dict(loss_weight=loss_bbox_weight * (3 / num_det_layers)),
+ loss_obj=dict(loss_weight=loss_obj_weight *
+ ((img_scale[0] / 640)**2 * 3 / num_det_layers)),
+ obj_level_weights=obj_level_weights))
+
+mosiac4_pipeline = [
+ dict(
+ type='Mosaic',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # note
+ scaling_ratio_range=scaling_ratio_range, # note
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+mosiac9_pipeline = [
+ dict(
+ type='Mosaic9',
+ img_scale=img_scale,
+ pad_val=114.0,
+ pre_transform=pre_transform),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_shear_degree=0.0,
+ max_translate_ratio=max_translate_ratio, # note
+ scaling_ratio_range=scaling_ratio_range, # note
+ # img_scale is (width, height)
+ border=(-img_scale[0] // 2, -img_scale[1] // 2),
+ border_val=(114, 114, 114)),
+]
+
+randchoice_mosaic_pipeline = dict(
+ type='RandomChoice',
+ transforms=[mosiac4_pipeline, mosiac9_pipeline],
+ prob=randchoice_mosaic_prob)
+
+train_pipeline = [
+ *pre_transform,
+ randchoice_mosaic_pipeline,
+ dict(
+ type='YOLOv5MixUp',
+ alpha=mixup_alpha, # note
+ beta=mixup_beta, # note
+ prob=mixup_prob,
+ pre_transform=[*pre_transform, randchoice_mosaic_pipeline]),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(type='YOLOv5KeepRatioResize', scale=img_scale),
+ dict(
+ type='LetterResize',
+ scale=img_scale,
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+val_dataloader = dict(
+ dataset=dict(pipeline=test_pipeline, batch_shapes_cfg=batch_shapes_cfg))
+test_dataloader = val_dataloader
+
+default_hooks = dict(param_scheduler=dict(lr_factor=lr_factor))
+
+# Config for Test Time Augmentation. (TTA)
+_multiscale_resize_transforms = [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=s),
+ dict(
+ type='LetterResize',
+ scale=s,
+ allow_scale_up=False,
+ pad_val=dict(img=114))
+ ]) for s in tta_img_scales
+]
+
+tta_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
+ dict(
+ type='TestTimeAug',
+ transforms=[
+ _multiscale_resize_transforms,
+ [
+ dict(type='mmdet.RandomFlip', prob=1.),
+ dict(type='mmdet.RandomFlip', prob=0.)
+ ], [dict(type='mmdet.LoadAnnotations', with_bbox=True)],
+ [
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param', 'flip',
+ 'flip_direction'))
+ ]
+ ])
+]
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_x_syncbn_fast_8x16b-300e_coco.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_x_syncbn_fast_8x16b-300e_coco.py
new file mode 100644
index 0000000000000000000000000000000000000000..9929705962c918392af12dd0a8275321f89fd361
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/configs/yolov7/yolov7_x_syncbn_fast_8x16b-300e_coco.py
@@ -0,0 +1,15 @@
+_base_ = './yolov7_l_syncbn_fast_8x16b-300e_coco.py'
+
+model = dict(
+ backbone=dict(arch='X'),
+ neck=dict(
+ in_channels=[640, 1280, 1280],
+ out_channels=[160, 320, 640],
+ block_cfg=dict(
+ type='ELANBlock',
+ middle_ratio=0.4,
+ block_ratio=0.4,
+ num_blocks=3,
+ num_convs_in_block=2),
+ use_repconv_outs=False),
+ bbox_head=dict(head_module=dict(in_channels=[320, 640, 1280])))
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/work_dirs/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/work_dirs/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/work_dirs/yolov6_s_df2_0.4/__init__.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/work_dirs/yolov6_s_df2_0.4/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/work_dirs/yolov6_s_df2_0.4/epoch_64.pth b/Model/Model6/Model6_0_ClothesDetection/mmyolo/work_dirs/yolov6_s_df2_0.4/epoch_64.pth
new file mode 100644
index 0000000000000000000000000000000000000000..67437302afbf6dd12d4aac19b0357da311e5ef58
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/work_dirs/yolov6_s_df2_0.4/epoch_64.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dd11e023dbd4acee268cbeeea73cfbcdb4a35fb84f51cbb1d7f0c26895c25864
+size 233181213
diff --git a/Model/Model6/Model6_0_ClothesDetection/mmyolo/work_dirs/yolov6_s_df2_0.4/yolov6_s_fast.py b/Model/Model6/Model6_0_ClothesDetection/mmyolo/work_dirs/yolov6_s_df2_0.4/yolov6_s_fast.py
new file mode 100644
index 0000000000000000000000000000000000000000..3e1d4af7f9459243f76b0c55781e7e124460df4a
--- /dev/null
+++ b/Model/Model6/Model6_0_ClothesDetection/mmyolo/work_dirs/yolov6_s_df2_0.4/yolov6_s_fast.py
@@ -0,0 +1,510 @@
+default_scope = 'mmyolo'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=10),
+ param_scheduler=dict(
+ type='YOLOv5ParamSchedulerHook',
+ scheduler_type='cosine',
+ lr_factor=0.01,
+ max_epochs=100),
+ checkpoint=dict(
+ type='CheckpointHook', interval=2, max_keep_ckpts=5, save_best='auto'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='mmdet.DetVisualizationHook'))
+env_cfg = dict(
+ cudnn_benchmark=True,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='mmdet.DetLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(type='LogProcessor', window_size=50, by_epoch=True)
+log_level = 'INFO'
+load_from = None
+resume = False
+file_client_args = dict(backend='disk')
+_file_client_args = dict(backend='disk')
+tta_model = dict(
+ type='mmdet.DetTTAModel',
+ tta_cfg=dict(nms=dict(type='nms', iou_threshold=0.65), max_per_img=300))
+img_scales = [(640, 640), (320, 320), (960, 960)]
+_multiscale_resize_transforms = [
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(640, 640)),
+ dict(
+ type='LetterResize',
+ scale=(640, 640),
+ allow_scale_up=False,
+ pad_val=dict(img=114))
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(320, 320)),
+ dict(
+ type='LetterResize',
+ scale=(320, 320),
+ allow_scale_up=False,
+ pad_val=dict(img=114))
+ ]),
+ dict(
+ type='Compose',
+ transforms=[
+ dict(type='YOLOv5KeepRatioResize', scale=(960, 960)),
+ dict(
+ type='LetterResize',
+ scale=(960, 960),
+ allow_scale_up=False,
+ pad_val=dict(img=114))
+ ])
+]
+tta_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
+ dict(
+ type='TestTimeAug',
+ transforms=[[{
+ 'type': 'Compose',
+ 'transforms': [{
+ 'type': 'YOLOv5KeepRatioResize',
+ 'scale': (640, 640)
+ }, {
+ 'type': 'LetterResize',
+ 'scale': (640, 640),
+ 'allow_scale_up': False,
+ 'pad_val': {
+ 'img': 114
+ }
+ }]
+ }, {
+ 'type':
+ 'Compose',
+ 'transforms': [{
+ 'type': 'YOLOv5KeepRatioResize',
+ 'scale': (320, 320)
+ }, {
+ 'type': 'LetterResize',
+ 'scale': (320, 320),
+ 'allow_scale_up': False,
+ 'pad_val': {
+ 'img': 114
+ }
+ }]
+ }, {
+ 'type':
+ 'Compose',
+ 'transforms': [{
+ 'type': 'YOLOv5KeepRatioResize',
+ 'scale': (960, 960)
+ }, {
+ 'type': 'LetterResize',
+ 'scale': (960, 960),
+ 'allow_scale_up': False,
+ 'pad_val': {
+ 'img': 114
+ }
+ }]
+ }],
+ [{
+ 'type': 'mmdet.RandomFlip',
+ 'prob': 1.0
+ }, {
+ 'type': 'mmdet.RandomFlip',
+ 'prob': 0.0
+ }], [{
+ 'type': 'mmdet.LoadAnnotations',
+ 'with_bbox': True
+ }],
+ [{
+ 'type':
+ 'mmdet.PackDetInputs',
+ 'meta_keys':
+ ('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param', 'flip', 'flip_direction')
+ }]])
+]
+data_root = './data-df2/'
+train_ann_file = 'annotations/instances_train2017.json'
+train_data_prefix = 'train2017/'
+val_ann_file = 'annotations/instances_val2017.json'
+val_data_prefix = 'val2017/'
+num_classes = 13
+train_batch_size_per_gpu = 32
+train_num_workers = 8
+persistent_workers = True
+base_lr = 0.0025
+max_epochs = 100
+num_last_epochs = 15
+img_scale = (640, 640)
+dataset_type = 'YOLOv5CocoDataset'
+val_batch_size_per_gpu = 1
+val_num_workers = 2
+batch_shapes_cfg = dict(
+ type='BatchShapePolicy',
+ batch_size=1,
+ img_size=640,
+ size_divisor=32,
+ extra_pad_ratio=0.5)
+deepen_factor = 0.33
+widen_factor = 0.5
+affine_scale = 0.5
+lr_factor = 0.01
+weight_decay = 0.0005
+save_epoch_intervals = 2
+max_keep_ckpts = 3
+model = dict(
+ type='YOLODetector',
+ data_preprocessor=dict(
+ type='YOLOv5DetDataPreprocessor',
+ mean=[0.0, 0.0, 0.0],
+ std=[255.0, 255.0, 255.0],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='YOLOv6EfficientRep',
+ deepen_factor=0.33,
+ widen_factor=0.5,
+ norm_cfg=dict(type='BN', momentum=0.03, eps=0.001),
+ act_cfg=dict(type='ReLU', inplace=True)),
+ neck=dict(
+ type='YOLOv6RepPAFPN',
+ deepen_factor=0.33,
+ widen_factor=0.5,
+ in_channels=[256, 512, 1024],
+ out_channels=[128, 256, 512],
+ num_csp_blocks=12,
+ norm_cfg=dict(type='BN', momentum=0.03, eps=0.001),
+ act_cfg=dict(type='ReLU', inplace=True)),
+ bbox_head=dict(
+ type='YOLOv6Head',
+ head_module=dict(
+ type='YOLOv6HeadModule',
+ num_classes=13,
+ in_channels=[128, 256, 512],
+ widen_factor=0.5,
+ norm_cfg=dict(type='BN', momentum=0.03, eps=0.001),
+ act_cfg=dict(type='SiLU', inplace=True),
+ featmap_strides=[8, 16, 32]),
+ loss_bbox=dict(
+ type='IoULoss',
+ iou_mode='giou',
+ bbox_format='xyxy',
+ reduction='mean',
+ loss_weight=2.5,
+ return_iou=False)),
+ train_cfg=dict(
+ initial_epoch=4,
+ initial_assigner=dict(
+ type='BatchATSSAssigner',
+ num_classes=13,
+ topk=9,
+ iou_calculator=dict(type='mmdet.BboxOverlaps2D')),
+ assigner=dict(
+ type='BatchTaskAlignedAssigner',
+ num_classes=13,
+ topk=13,
+ alpha=1,
+ beta=6)),
+ test_cfg=dict(
+ multi_label=True,
+ nms_pre=30000,
+ score_thr=0.001,
+ nms=dict(type='nms', iou_threshold=0.65),
+ max_per_img=300))
+pre_transform = [
+ dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
+ dict(type='LoadAnnotations', with_bbox=True)
+]
+train_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
+ dict(type='LoadAnnotations', with_bbox=True),
+ dict(
+ type='Mosaic',
+ img_scale=(640, 640),
+ pad_val=114.0,
+ pre_transform=[
+ dict(
+ type='LoadImageFromFile',
+ file_client_args=dict(backend='disk')),
+ dict(type='LoadAnnotations', with_bbox=True)
+ ]),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_translate_ratio=0.1,
+ scaling_ratio_range=(0.5, 1.5),
+ border=(-320, -320),
+ border_val=(114, 114, 114),
+ max_shear_degree=0.0),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+train_pipeline_stage2 = [
+ dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
+ dict(type='LoadAnnotations', with_bbox=True),
+ dict(type='YOLOv5KeepRatioResize', scale=(640, 640)),
+ dict(
+ type='LetterResize',
+ scale=(640, 640),
+ allow_scale_up=True,
+ pad_val=dict(img=114)),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_translate_ratio=0.1,
+ scaling_ratio_range=(0.5, 1.5),
+ max_shear_degree=0.0),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape', 'flip',
+ 'flip_direction'))
+]
+train_dataloader = dict(
+ batch_size=32,
+ num_workers=8,
+ collate_fn=dict(type='yolov5_collate'),
+ persistent_workers=True,
+ pin_memory=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='RepeatDataset',
+ times=2,
+ dataset=dict(
+ type='YOLOv5CocoDataset',
+ data_root='./data-df2/',
+ metainfo=dict(
+ classes=('short_sleeved_shirt', 'long_sleeved_shirt',
+ 'short_sleeved_outwear', 'long_sleeved_outwear',
+ 'vest', 'sling', 'shorts', 'trousers', 'skirt',
+ 'short_sleeved_dress', 'long_sleeved_dress',
+ 'vest_dress', 'sling_dress'),
+ palette=[(255, 0, 0), (255, 128, 0), (255, 255, 0),
+ (128, 255, 0), (0, 255, 0), (0, 255, 128),
+ (0, 255, 255), (0, 128, 255), (0, 0, 255),
+ (127, 0, 255), (255, 0, 255), (255, 0, 127),
+ (128, 128, 128)]),
+ ann_file='annotations/trainval.json',
+ data_prefix=dict(img='smaller-dataset/'),
+ filter_cfg=dict(filter_empty_gt=False, min_size=32),
+ pipeline=[
+ dict(
+ type='LoadImageFromFile',
+ file_client_args=dict(backend='disk')),
+ dict(type='LoadAnnotations', with_bbox=True),
+ dict(
+ type='Mosaic',
+ img_scale=(640, 640),
+ pad_val=114.0,
+ pre_transform=[
+ dict(
+ type='LoadImageFromFile',
+ file_client_args=dict(backend='disk')),
+ dict(type='LoadAnnotations', with_bbox=True)
+ ]),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_translate_ratio=0.1,
+ scaling_ratio_range=(0.5, 1.5),
+ border=(-320, -320),
+ border_val=(114, 114, 114),
+ max_shear_degree=0.0),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'flip', 'flip_direction'))
+ ])))
+test_pipeline = [
+ dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
+ dict(type='YOLOv5KeepRatioResize', scale=(640, 640)),
+ dict(
+ type='LetterResize',
+ scale=(640, 640),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+]
+val_dataloader = dict(
+ batch_size=1,
+ num_workers=2,
+ persistent_workers=True,
+ pin_memory=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='YOLOv5CocoDataset',
+ data_root='./data-df2/',
+ test_mode=True,
+ data_prefix=dict(img='smaller-dataset/'),
+ ann_file='annotations/trainval.json',
+ pipeline=[
+ dict(
+ type='LoadImageFromFile',
+ file_client_args=dict(backend='disk')),
+ dict(type='YOLOv5KeepRatioResize', scale=(640, 640)),
+ dict(
+ type='LetterResize',
+ scale=(640, 640),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+ ],
+ batch_shapes_cfg=dict(
+ type='BatchShapePolicy',
+ batch_size=1,
+ img_size=640,
+ size_divisor=32,
+ extra_pad_ratio=0.5),
+ metainfo=dict(
+ classes=('short_sleeved_shirt', 'long_sleeved_shirt',
+ 'short_sleeved_outwear', 'long_sleeved_outwear', 'vest',
+ 'sling', 'shorts', 'trousers', 'skirt',
+ 'short_sleeved_dress', 'long_sleeved_dress', 'vest_dress',
+ 'sling_dress'),
+ palette=[(255, 0, 0), (255, 128, 0), (255, 255, 0), (128, 255, 0),
+ (0, 255, 0), (0, 255, 128), (0, 255, 255), (0, 128, 255),
+ (0, 0, 255), (127, 0, 255), (255, 0, 255), (255, 0, 127),
+ (128, 128, 128)])))
+test_dataloader = dict(
+ batch_size=1,
+ num_workers=2,
+ persistent_workers=True,
+ pin_memory=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='YOLOv5CocoDataset',
+ data_root='./data-df2/',
+ test_mode=True,
+ data_prefix=dict(img='smaller-dataset/'),
+ ann_file='annotations/trainval.json',
+ pipeline=[
+ dict(
+ type='LoadImageFromFile',
+ file_client_args=dict(backend='disk')),
+ dict(type='YOLOv5KeepRatioResize', scale=(640, 640)),
+ dict(
+ type='LetterResize',
+ scale=(640, 640),
+ allow_scale_up=False,
+ pad_val=dict(img=114)),
+ dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'scale_factor', 'pad_param'))
+ ],
+ batch_shapes_cfg=dict(
+ type='BatchShapePolicy',
+ batch_size=1,
+ img_size=640,
+ size_divisor=32,
+ extra_pad_ratio=0.5),
+ metainfo=dict(
+ classes=('short_sleeved_shirt', 'long_sleeved_shirt',
+ 'short_sleeved_outwear', 'long_sleeved_outwear', 'vest',
+ 'sling', 'shorts', 'trousers', 'skirt',
+ 'short_sleeved_dress', 'long_sleeved_dress', 'vest_dress',
+ 'sling_dress'),
+ palette=[(255, 0, 0), (255, 128, 0), (255, 255, 0), (128, 255, 0),
+ (0, 255, 0), (0, 255, 128), (0, 255, 255), (0, 128, 255),
+ (0, 0, 255), (127, 0, 255), (255, 0, 255), (255, 0, 127),
+ (128, 128, 128)])))
+optim_wrapper = dict(
+ type='OptimWrapper',
+ optimizer=dict(
+ type='SGD',
+ lr=0.0025,
+ momentum=0.937,
+ weight_decay=0.0005,
+ nesterov=True,
+ batch_size_per_gpu=32),
+ constructor='YOLOv5OptimizerConstructor')
+custom_hooks = [
+ dict(
+ type='EMAHook',
+ ema_type='ExpMomentumEMA',
+ momentum=0.0001,
+ update_buffers=True,
+ strict_load=False,
+ priority=49),
+ dict(
+ type='mmdet.PipelineSwitchHook',
+ switch_epoch=-15,
+ switch_pipeline=[
+ dict(
+ type='LoadImageFromFile',
+ file_client_args=dict(backend='disk')),
+ dict(type='LoadAnnotations', with_bbox=True),
+ dict(type='YOLOv5KeepRatioResize', scale=(640, 640)),
+ dict(
+ type='LetterResize',
+ scale=(640, 640),
+ allow_scale_up=True,
+ pad_val=dict(img=114)),
+ dict(
+ type='YOLOv5RandomAffine',
+ max_rotate_degree=0.0,
+ max_translate_ratio=0.1,
+ scaling_ratio_range=(0.5, 1.5),
+ max_shear_degree=0.0),
+ dict(type='YOLOv5HSVRandomAug'),
+ dict(type='mmdet.RandomFlip', prob=0.5),
+ dict(
+ type='mmdet.PackDetInputs',
+ meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
+ 'flip', 'flip_direction'))
+ ])
+]
+val_evaluator = dict(
+ type='mmdet.CocoMetric',
+ proposal_nums=(100, 1, 10),
+ ann_file='./data-df2/annotations/trainval.json',
+ metric='bbox')
+test_evaluator = dict(
+ type='mmdet.CocoMetric',
+ proposal_nums=(100, 1, 10),
+ ann_file='./data-df2/annotations/trainval.json',
+ metric='bbox')
+train_cfg = dict(
+ type='EpochBasedTrainLoop',
+ max_epochs=100,
+ val_interval=2,
+ dynamic_intervals=[(85, 1)],
+ val_begin=20)
+val_cfg = dict(type='ValLoop')
+test_cfg = dict(type='TestLoop')
+work_dir = './work_dirs/yolov6_s_df2'
+class_name = ('short_sleeved_shirt', 'long_sleeved_shirt',
+ 'short_sleeved_outwear', 'long_sleeved_outwear', 'vest', 'sling',
+ 'shorts', 'trousers', 'skirt', 'short_sleeved_dress',
+ 'long_sleeved_dress', 'vest_dress', 'sling_dress')
+metainfo = dict(
+ classes=('short_sleeved_shirt', 'long_sleeved_shirt',
+ 'short_sleeved_outwear', 'long_sleeved_outwear', 'vest', 'sling',
+ 'shorts', 'trousers', 'skirt', 'short_sleeved_dress',
+ 'long_sleeved_dress', 'vest_dress', 'sling_dress'),
+ palette=[(255, 0, 0), (255, 128, 0), (255, 255, 0), (128, 255, 0),
+ (0, 255, 0), (0, 255, 128), (0, 255, 255), (0, 128, 255),
+ (0, 0, 255), (127, 0, 255), (255, 0, 255), (255, 0, 127),
+ (128, 128, 128)])
+launcher = 'pytorch'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/_base_/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/_base_/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/_base_/datasets/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/_base_/datasets/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/_base_/datasets/deepfashion2.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/_base_/datasets/deepfashion2.py
new file mode 100644
index 0000000000000000000000000000000000000000..f65d1bb591fab8f06a79b5d595478a282acd8b3e
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/_base_/datasets/deepfashion2.py
@@ -0,0 +1,2660 @@
+colors = dict(
+ sss=[255, 128, 0], # short_sleeve_shirt
+ lss=[255, 0, 128], # long_sleeved_shirt
+ sso=[128, 0, 255], # short_sleeved_outwear
+ lso=[0, 128, 255], # long_sleeved_outwear
+ vest=[0, 128, 128], # vest
+ sling=[0, 0, 128], # sling
+ shorts=[128, 128, 128], # shorts
+ trousers=[128, 0, 128], # trousers
+ skirt=[64, 128, 128], # skirt
+ ssd=[64, 64, 128], # short_sleeved_dress
+ lsd=[128, 64, 0], # long_sleeved_dress
+ vd=[128, 64, 255], # vest_dress
+ sd=[128, 64, 0], # sling_dress
+)
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author='Yuying Ge and Ruimao Zhang and Lingyun Wu '
+ 'and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title='DeepFashion2: A Versatile Benchmark for '
+ 'Detection, Pose Estimation, Segmentation and '
+ 'Re-Identification of Clothing Images',
+ container='Proceedings of IEEE Conference on Computer '
+ 'Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2',
+ ),
+ keypoint_info={
+ # short_sleeved_shirt
+ 0:
+ dict(name='sss_kpt1', id=0, color=colors['sss'], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=colors['sss'], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=colors['sss'], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=colors['sss'],
+ type='',
+ swap='sss_kpt7'),
+ # long_sleeved_shirt
+ 25:
+ dict(name='lss_kpt1', id=25, color=colors['lss'], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=colors['lss'], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=colors['lss'], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=colors['lss'],
+ type='',
+ swap='lss_kpt7'),
+ # short_sleeved_outwear
+ 58:
+ dict(name='sso_kpt1', id=58, color=colors['sso'], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=colors['sso'],
+ type='',
+ swap='sso_kpt28'),
+ # long_sleeved_outwear
+ 89:
+ dict(name='lso_kpt1', id=89, color=colors['lso'], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=colors['lso'],
+ type='',
+ swap='lso_kpt36'),
+ # vest
+ 128:
+ dict(name='vest_kpt1', id=128, color=colors['vest'], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=colors['vest'], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(
+ name='vest_kpt11', id=138, color=colors['vest'], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(
+ name='vest_kpt13', id=140, color=colors['vest'], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=colors['vest'],
+ type='',
+ swap='vest_kpt7'),
+ # sling
+ 143:
+ dict(
+ name='sling_kpt1', id=143, color=colors['sling'], type='',
+ swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(
+ name='sling_kpt4', id=146, color=colors['sling'], type='',
+ swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(
+ name='sling_kpt11',
+ id=153,
+ color=colors['sling'],
+ type='',
+ swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=colors['sling'],
+ type='',
+ swap='sling_kpt7'),
+ # shorts
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=colors['shorts'],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=colors['shorts'],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=colors['shorts'],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=colors['shorts'],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=colors['shorts'],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=colors['shorts'],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=colors['shorts'],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=colors['shorts'],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=colors['shorts'],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=colors['shorts'],
+ type='',
+ swap='shorts_kpt4'),
+ # trousers
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=colors['trousers'],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=colors['trousers'],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=colors['trousers'],
+ type='',
+ swap='trousers_kpt4'),
+ # skirt
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=colors['skirt'],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=colors['skirt'], type='',
+ swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=colors['skirt'],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=colors['skirt'],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=colors['skirt'],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=colors['skirt'], type='',
+ swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=colors['skirt'],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=colors['skirt'],
+ type='',
+ swap='skirt_kpt4'),
+ # short_sleeved_dress
+ 190:
+ dict(name='ssd_kpt1', id=190, color=colors['ssd'], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=colors['ssd'], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=colors['ssd'], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=colors['ssd'],
+ type='',
+ swap='ssd_kpt7'),
+ # long_sleeved_dress
+ 219:
+ dict(name='lsd_kpt1', id=219, color=colors['lsd'], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=colors['lsd'], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=colors['lsd'], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=colors['lsd'],
+ type='',
+ swap='lsd_kpt7'),
+ # vest_dress
+ 256:
+ dict(name='vd_kpt1', id=256, color=colors['vd'], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=colors['vd'], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=colors['vd'], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=colors['vd'],
+ type='',
+ swap='vd_kpt7'),
+ # sling_dress
+ 275:
+ dict(name='sd_kpt1', id=275, color=colors['sd'], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=colors['sd'], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=colors['sd'], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=colors['sd'],
+ type='',
+ swap='sd_kpt7'),
+ },
+ skeleton_info={
+ # short_sleeved_shirt
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ # long_sleeve_shirt
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ # short_sleeved_outwear
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ # long_sleeved_outwear
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ # vest
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ # sling
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ # shorts
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ # trousers
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ # skirt
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ # short_sleeved_dress
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ # long_sleeved_dress
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ # vest_dress
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ # sling_dress
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0]),
+ },
+ joint_weights=[1.] * 294,
+ sigmas=[])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/_base_/default_runtime.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/_base_/default_runtime.py
new file mode 100644
index 0000000000000000000000000000000000000000..561d574fa757fa295f349394bf57047a2d8b576d
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/_base_/default_runtime.py
@@ -0,0 +1,49 @@
+default_scope = 'mmpose'
+
+# hooks
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(type='CheckpointHook', interval=10),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False),
+)
+
+# custom hooks
+custom_hooks = [
+ # Synchronize model buffers such as running_mean and running_var in BN
+ # at the end of each epoch
+ dict(type='SyncBuffersHook')
+]
+
+# multi-processing backend
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'),
+)
+
+# visualizer
+vis_backends = [
+ dict(type='LocalVisBackend'),
+ # dict(type='TensorboardVisBackend'),
+ # dict(type='WandbVisBackend'),
+]
+visualizer = dict(
+ type='PoseLocalVisualizer', vis_backends=vis_backends, name='visualizer')
+
+# logger
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+
+# file I/O backend
+backend_args = dict(backend='local')
+
+# training/validation/testing progress
+train_cfg = dict(by_epoch=True)
+val_cfg = dict()
+test_cfg = dict()
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/README.md b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e7d761067afc34b6a7249faa187752b39ca24ffd
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/README.md
@@ -0,0 +1,7 @@
+# 2D Fashion Landmark Detection
+
+2D fashion landmark detection (also referred to as fashion alignment) aims to detect the key-point located at the functional region of clothes, for example the neckline and the cuff.
+
+## Data preparation
+
+Please follow [DATA Preparation](/docs/en/dataset_zoo/2d_fashion_landmark.md) to prepare data.
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..30c4d02557f3167ad0d265c6a00e6deb6b9d6d1b
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=120, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=60,
+ milestones=[20, 40],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=16, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_long_sleeved_outwear.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=16,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_long_sleeved_outwear.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..6d83441720cf20224ab6d2d790285fc204e4dffe
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=150, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=150,
+ milestones=[100, 130],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=16, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_long_sleeved_dress.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=16,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_long_sleeved_dress.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb32-120e_deepfashion2_sling_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb32-120e_deepfashion2_sling_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..188833c3b5603842ad864a75f3ff936687c0d8ca
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb32-120e_deepfashion2_sling_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=120, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=120,
+ milestones=[80, 100],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=32, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_sling.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_sling.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..4347c71eaab2914448c84e0114762e87c17dfa14
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=60, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=60,
+ milestones=[20, 40],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=32, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_short_sleeved_shirt.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=4,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_short_sleeved_shirt.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..9be449f9f5cd9c5f6e425a8b3cbd0db3f112e6d7
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=120, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=60,
+ milestones=[20, 40],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=64, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_long_sleeved_shirt.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_long_sleeved_shirt.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..71851ab711a54faae5b9b07825928ea9b2e957f8
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=120, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=120,
+ milestones=[80, 100],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=64, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_skirt.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_skirt.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..9284f466fa462cf855e4538722f6177f18f31060
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=120, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=120,
+ milestones=[80, 100],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=64, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_vest.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_vest.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..84595bb2e5f185814d1df44ee8c3681ae17deb5a
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=150, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=150,
+ milestones=[100, 130],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=64, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_short_sleeved_dress.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_short_sleeved_dress.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..9aedf0b61fb8072149be212d9b98a904fc821e85
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=150, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=150,
+ milestones=[100, 130],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=64, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_vest_dress.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_vest_dress.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..bfb8867d898f3b5c8918d068e95e6e7b211cdfd9
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192.py
@@ -0,0 +1,176 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=210, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=210,
+ milestones=[100, 160],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=64, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_shorts.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_shorts.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+
+# val_evaluator = dict(
+# type='CocoMetric', # coco 评测指标
+# ann_file='data/deepfashion2/validation/deepfashion2_short_sleeved_shirt_validation.json')
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..4406d983cdb88f7d651ff7a384a304289d3c5d50
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=210, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=210,
+ milestones=[100, 160],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=64, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_sling_dress.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_sling_dress.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..dfea6a036f6ab8bff6e03cb3ead80baadc0106eb
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=60, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=60,
+ milestones=[20, 40],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=64, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_trousers.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=4,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_trousers.json', # 标注文件路径
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..2b1ecb33caa6d396a9a26088614b71c9c488357e
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192.py
@@ -0,0 +1,172 @@
+_base_ = [
+ '../../../_base_/default_runtime.py',
+ '../../../_base_/datasets/deepfashion2.py'
+]
+
+default_hooks = dict(checkpoint=dict(save_best='PCK', rule='greater'))
+
+resume = False # 断点恢复
+load_from = None # 模型权重加载
+train_cfg = dict(by_epoch=True, max_epochs=150, val_interval=10) # 训练轮数,测试间隔
+param_scheduler = [
+ dict( # warmup策略
+ type='LinearLR',
+ begin=0,
+ end=500,
+ start_factor=0.001,
+ by_epoch=False),
+ dict( # scheduler
+ type='MultiStepLR',
+ begin=0,
+ end=150,
+ milestones=[100, 130],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005)) # 优化器和学习率
+auto_scale_lr = dict(base_batch_size=512) # 根据batch_size自动缩放学习率
+
+backend_args = dict(backend='local') # 数据加载后端设置,默认从本地硬盘加载
+dataset_type = 'DeepFashion2Dataset' # 数据集类名 DeepFashionDataset
+data_mode = 'topdown' # 算法结构类型,用于指定标注信息加载策略
+data_root = 'data/deepfashion2/' # 数据存放路径
+# 定义数据编解码器,用于生成target和对pred进行解码,同时包含了输入图片和输出heatmap尺寸等信息
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=codec['input_size']),
+ dict(type='GenerateTarget', encoder=codec),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [ # 测试时数据增强
+ dict(type='LoadImage', backend_args=backend_args), # 加载图片
+ dict(type='GetBBoxCenterScale'), # 根据bbox获取center和scale
+ dict(type='TopdownAffine', input_size=codec['input_size']), # 根据变换矩阵更新目标数据
+ dict(type='PackPoseInputs') # 对target进行打包用于训练
+]
+train_dataloader = dict( # 训练数据加载
+ batch_size=8, # 批次大小
+ num_workers=6, # 数据加载进程数
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ sampler=dict(type='DefaultSampler', shuffle=True), # 采样策略,打乱数据
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='train/deepfashion2_short_sleeved_outwear.json', # 标注文件路径
+ data_prefix=dict(img='train/image/'), # 图像路径
+ pipeline=train_pipeline # 数据流水线
+ ))
+val_dataloader = dict(
+ batch_size=8,
+ num_workers=6,
+ persistent_workers=True, # 在不活跃时维持进程不终止,避免反复启动进程的开销
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False), # 采样策略,不进行打乱
+ dataset=dict(
+ type=dataset_type, # 数据集类名
+ data_root=data_root, # 数据集路径
+ data_mode=data_mode, # 算法类型
+ ann_file='validation/deepfashion2_short_sleeved_outwear.json',
+ data_prefix=dict(img='validation/image/'), # 图像路径
+ test_mode=True, # 测试模式开关
+ pipeline=val_pipeline # 数据流水线
+ ))
+test_dataloader = val_dataloader # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[
+ [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293
+ ],
+ ],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+
+model = dict(
+ type='TopdownPoseEstimator', # 模型结构决定了算法流程
+ data_preprocessor=dict( # 数据归一化和通道顺序调整,作为模型的一部分
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(
+ type='Pretrained', # 预训练参数,只加载backbone权重用于迁移学习
+ checkpoint='torchvision://resnet50')),
+ head=dict( # 模型头部
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=channel_cfg['num_output_channels'],
+ # deconv_out_channels=None,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True), # 损失函数
+ decoder=codec), # 解码器,将heatmap解码成坐标值
+ test_cfg=dict(
+ flip_test=True, # 开启测试时水平翻转集成
+ flip_mode='heatmap', # 对heatmap进行翻转
+ shift_heatmap=True, # 对翻转后的结果进行平移提高精度
+ ))
+
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE'),
+]
+test_evaluator = val_evaluator # 默认情况下不区分验证集和测试集,用户根据需要来自行定义
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192/best_PCK_epoch_100.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192/best_PCK_epoch_100.pth
new file mode 100644
index 0000000000000000000000000000000000000000..c79ed4fc656fca7d2578f91ae1dc097614e83a71
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192/best_PCK_epoch_100.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f88414b7f7c33d1c6598bce633d5b1897f90598dfd29fdc8fa7c113df12d534b
+size 137317405
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..2ecceb26149155301cd6d22b93be6c4948dfaaa0
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=120, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=60,
+ milestones=[20, 40],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=16,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_long_sleeved_outwear.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=16,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_long_sleeved_outwear.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=16,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_long_sleeved_outwear.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192/best_PCK_epoch_120.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192/best_PCK_epoch_120.pth
new file mode 100644
index 0000000000000000000000000000000000000000..234b28cd448efce8362f1b9597ad794a8b5290df
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192/best_PCK_epoch_120.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6f310730607b06b38ce1f603eaf5e9a98d31666d924646be96ec093ef6306767
+size 137277341
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..c359fd78ad9873e36b67b1ae2b73a2c27104c195
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=150, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=150,
+ milestones=[100, 130],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=16,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_long_sleeved_dress.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=16,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_long_sleeved_dress.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=16,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_long_sleeved_dress.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192/best_PCK_epoch_50.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192/best_PCK_epoch_50.pth
new file mode 100644
index 0000000000000000000000000000000000000000..30a8b3bef4dcbc3f17720fd5c1e5fb6c9ae91387
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192/best_PCK_epoch_50.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e228396223426bb1e76321ca85aeaf60a684b986388e2f3b4b2fc91348053c17
+size 138176605
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..8c079fbb17bfea8c6b5b3eeee862a2014e10d630
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=60, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=60,
+ milestones=[20, 40],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=32,
+ num_workers=8,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_short_sleeved_shirt_train.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=4,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_short_sleeved_shirt_validation.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=32,
+ num_workers=4,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_short_sleeved_shirt_validation.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'none'
+work_dir = './work_dirs/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192/best_PCK_epoch_60.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192/best_PCK_epoch_60.pth
new file mode 100644
index 0000000000000000000000000000000000000000..1b1260da1daab0725840ccbbb5a6d3b3f24ecd76
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192/best_PCK_epoch_60.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:feb0c8227ded13e830b8c08a4e1177b95a003970964bd9475de918d8d07f5b98
+size 137081245
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..c73665df626548ef4f743da3d4c67a5ce18edb5e
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=120, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=60,
+ milestones=[20, 40],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=64,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_long_sleeved_shirt.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_long_sleeved_shirt.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_long_sleeved_shirt.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192/best_PCK_epoch_110.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192/best_PCK_epoch_110.pth
new file mode 100644
index 0000000000000000000000000000000000000000..c832052b988d3e265026e0316fe2ca84a70fb5f5
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192/best_PCK_epoch_110.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9507f369cef95a2537675ac57af9026a5578270b3addb104978d5c781081c110
+size 137281181
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..d5833cd4cff1c9290f9703f3470b1fc63bd752e3
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=120, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=120,
+ milestones=[80, 100],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=64,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_skirt.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_skirt.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_skirt.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192/best_PCK_epoch_60.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192/best_PCK_epoch_60.pth
new file mode 100644
index 0000000000000000000000000000000000000000..690f14c132dfa0312df0aa7f2fbe46f7c09269a8
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192/best_PCK_epoch_60.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a1ff37c8f2e5fc3808467cf4d4f38236c2b5860b2d4ee802fbaf289e210af9cd
+size 136904477
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..7db9e0f047b8714df07776fc77880c9f5ca09478
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=120, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=120,
+ milestones=[80, 100],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=64,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_sling.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_sling.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_sling.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192/best_PCK_epoch_90.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192/best_PCK_epoch_90.pth
new file mode 100644
index 0000000000000000000000000000000000000000..310b1e0c2d233d892704139684dac99ad59758d0
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192/best_PCK_epoch_90.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4bd5216e2645d135e88ee37cdb48fe8d19c4b9ae87e21b9357267cda9a4ceea1
+size 137002589
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff2c2e097cc87ac4ddd852b1ef8c2a91ed051fd6
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=120, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=120,
+ milestones=[80, 100],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=64,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_vest.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_vest.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_vest.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192/best_PCK_epoch_100.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192/best_PCK_epoch_100.pth
new file mode 100644
index 0000000000000000000000000000000000000000..183d864c61ab39e2c8e2c3f03901533267780190
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192/best_PCK_epoch_100.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a04c59d62d8271bd5df84bcf3f898a725322e34db9c36145f43c940ec80764d6
+size 137060445
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..c9da2a8fe992607a34f4afd307745a7d822b3cb8
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=150, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=150,
+ milestones=[100, 130],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=64,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_short_sleeved_dress.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_short_sleeved_dress.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_short_sleeved_dress.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192/best_PCK_epoch_80.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192/best_PCK_epoch_80.pth
new file mode 100644
index 0000000000000000000000000000000000000000..bccbae92774b103b9b5be815985bfedfe56cc8f6
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192/best_PCK_epoch_80.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:099c2a99b6e00c5658e97f09ca78c593d9b27a98162013fa2b95a055b6bea060
+size 137035421
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..262b21d98e79bc27dd993bd2a09e91a1dc66db0e
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=150, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=150,
+ milestones=[100, 130],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=64,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_vest_dress.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_vest_dress.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_vest_dress.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192/best_PCK_epoch_160.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192/best_PCK_epoch_160.pth
new file mode 100644
index 0000000000000000000000000000000000000000..14500b51a6e92bd16b5e91210cd76a5d7bf29e57
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192/best_PCK_epoch_160.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:af43072e648dd1d062095654a02cfe88ed3664c6713e1d25d3283e8178feae84
+size 137256157
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..8af899cd2896a05e8adb5ad8b5610d537227a24c
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=210, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=210,
+ milestones=[100, 160],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=64,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_shorts.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_shorts.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_shorts.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192/best_PCK_epoch_140.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192/best_PCK_epoch_140.pth
new file mode 100644
index 0000000000000000000000000000000000000000..b50fa03651d70ff680e1be5a7365789c18b5fda2
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192/best_PCK_epoch_140.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0d05b3f6961979e8be0baf42b43702770bd4845abb28fbd9cf7a9321381c94ad
+size 136986269
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..0c245621ef6925ae17757ff273f012de3de87360
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=210, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=210,
+ milestones=[100, 160],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=64,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_sling_dress.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_sling_dress.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=32,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_sling_dress.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192/best_PCK_epoch_30.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192/best_PCK_epoch_30.pth
new file mode 100644
index 0000000000000000000000000000000000000000..ea9acec578d799a83af8dd23128190300e0b242c
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192/best_PCK_epoch_30.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d70e7ffe15bf787fd258832ab3c8c2054d257cb63bd7aa9f8c600e9650b448d5
+size 137042653
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..892d55b7cedfb1217800eb200e8a47327b500437
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=60, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=60,
+ milestones=[20, 40],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=64,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_trousers.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=4,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_trousers.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=32,
+ num_workers=4,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_trousers.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192'
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192/__init__.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192/epoch_120.pth b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192/epoch_120.pth
new file mode 100644
index 0000000000000000000000000000000000000000..fe62b285d5e31549efd3644946e6eaeb1f19fc6d
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192/epoch_120.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f099e39ab3cc3aa402871969959be7469d6991844077e21518dde807a2dd7a2c
+size 409675745
diff --git a/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192.py b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ed87bceeebf4809eeb0f1460dc9fcdb608a1f91
--- /dev/null
+++ b/Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192.py
@@ -0,0 +1,2861 @@
+default_scope = 'mmpose'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=50),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(
+ type='CheckpointHook', interval=10, save_best='PCK', rule='greater'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='PoseVisualizationHook', enable=False))
+custom_hooks = [dict(type='SyncBuffersHook')]
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='PoseLocalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')],
+ name='visualizer')
+log_processor = dict(
+ type='LogProcessor', window_size=50, by_epoch=True, num_digits=6)
+log_level = 'INFO'
+load_from = None
+resume = False
+backend_args = dict(backend='local')
+train_cfg = dict(by_epoch=True, max_epochs=150, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+colors = dict(
+ sss=[255, 128, 0],
+ lss=[255, 0, 128],
+ sso=[128, 0, 255],
+ lso=[0, 128, 255],
+ vest=[0, 128, 128],
+ sling=[0, 0, 128],
+ shorts=[128, 128, 128],
+ trousers=[128, 0, 128],
+ skirt=[64, 128, 128],
+ ssd=[64, 64, 128],
+ lsd=[128, 64, 0],
+ vd=[128, 64, 255],
+ sd=[128, 64, 0])
+dataset_info = dict(
+ dataset_name='deepfashion2',
+ paper_info=dict(
+ author=
+ 'Yuying Ge and Ruimao Zhang and Lingyun Wu and Xiaogang Wang and Xiaoou Tang and Ping Luo',
+ title=
+ 'DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images',
+ container=
+ 'Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)',
+ year='2019',
+ homepage='https://github.com/switchablenorms/DeepFashion2'),
+ keypoint_info=dict({
+ 0:
+ dict(name='sss_kpt1', id=0, color=[255, 128, 0], type='', swap=''),
+ 1:
+ dict(
+ name='sss_kpt2',
+ id=1,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt6'),
+ 2:
+ dict(
+ name='sss_kpt3',
+ id=2,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt5'),
+ 3:
+ dict(name='sss_kpt4', id=3, color=[255, 128, 0], type='', swap=''),
+ 4:
+ dict(
+ name='sss_kpt5',
+ id=4,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt3'),
+ 5:
+ dict(
+ name='sss_kpt6',
+ id=5,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt2'),
+ 6:
+ dict(
+ name='sss_kpt7',
+ id=6,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt25'),
+ 7:
+ dict(
+ name='sss_kpt8',
+ id=7,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt24'),
+ 8:
+ dict(
+ name='sss_kpt9',
+ id=8,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt23'),
+ 9:
+ dict(
+ name='sss_kpt10',
+ id=9,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt22'),
+ 10:
+ dict(
+ name='sss_kpt11',
+ id=10,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt21'),
+ 11:
+ dict(
+ name='sss_kpt12',
+ id=11,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt20'),
+ 12:
+ dict(
+ name='sss_kpt13',
+ id=12,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt19'),
+ 13:
+ dict(
+ name='sss_kpt14',
+ id=13,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt18'),
+ 14:
+ dict(
+ name='sss_kpt15',
+ id=14,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt17'),
+ 15:
+ dict(name='sss_kpt16', id=15, color=[255, 128, 0], type='', swap=''),
+ 16:
+ dict(
+ name='sss_kpt17',
+ id=16,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt15'),
+ 17:
+ dict(
+ name='sss_kpt18',
+ id=17,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt14'),
+ 18:
+ dict(
+ name='sss_kpt19',
+ id=18,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt13'),
+ 19:
+ dict(
+ name='sss_kpt20',
+ id=19,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt12'),
+ 20:
+ dict(
+ name='sss_kpt21',
+ id=20,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt11'),
+ 21:
+ dict(
+ name='sss_kpt22',
+ id=21,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt10'),
+ 22:
+ dict(
+ name='sss_kpt23',
+ id=22,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt9'),
+ 23:
+ dict(
+ name='sss_kpt24',
+ id=23,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt8'),
+ 24:
+ dict(
+ name='sss_kpt25',
+ id=24,
+ color=[255, 128, 0],
+ type='',
+ swap='sss_kpt7'),
+ 25:
+ dict(name='lss_kpt1', id=25, color=[255, 0, 128], type='', swap=''),
+ 26:
+ dict(
+ name='lss_kpt2',
+ id=26,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt6'),
+ 27:
+ dict(
+ name='lss_kpt3',
+ id=27,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt5'),
+ 28:
+ dict(name='lss_kpt4', id=28, color=[255, 0, 128], type='', swap=''),
+ 29:
+ dict(
+ name='lss_kpt5',
+ id=29,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt3'),
+ 30:
+ dict(
+ name='lss_kpt6',
+ id=30,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt2'),
+ 31:
+ dict(
+ name='lss_kpt7',
+ id=31,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt33'),
+ 32:
+ dict(
+ name='lss_kpt8',
+ id=32,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt32'),
+ 33:
+ dict(
+ name='lss_kpt9',
+ id=33,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt31'),
+ 34:
+ dict(
+ name='lss_kpt10',
+ id=34,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt30'),
+ 35:
+ dict(
+ name='lss_kpt11',
+ id=35,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt29'),
+ 36:
+ dict(
+ name='lss_kpt12',
+ id=36,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt28'),
+ 37:
+ dict(
+ name='lss_kpt13',
+ id=37,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt27'),
+ 38:
+ dict(
+ name='lss_kpt14',
+ id=38,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt26'),
+ 39:
+ dict(
+ name='lss_kpt15',
+ id=39,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt25'),
+ 40:
+ dict(
+ name='lss_kpt16',
+ id=40,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt24'),
+ 41:
+ dict(
+ name='lss_kpt17',
+ id=41,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt23'),
+ 42:
+ dict(
+ name='lss_kpt18',
+ id=42,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt22'),
+ 43:
+ dict(
+ name='lss_kpt19',
+ id=43,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt21'),
+ 44:
+ dict(name='lss_kpt20', id=44, color=[255, 0, 128], type='', swap=''),
+ 45:
+ dict(
+ name='lss_kpt21',
+ id=45,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt19'),
+ 46:
+ dict(
+ name='lss_kpt22',
+ id=46,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt18'),
+ 47:
+ dict(
+ name='lss_kpt23',
+ id=47,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt17'),
+ 48:
+ dict(
+ name='lss_kpt24',
+ id=48,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt16'),
+ 49:
+ dict(
+ name='lss_kpt25',
+ id=49,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt15'),
+ 50:
+ dict(
+ name='lss_kpt26',
+ id=50,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt14'),
+ 51:
+ dict(
+ name='lss_kpt27',
+ id=51,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt13'),
+ 52:
+ dict(
+ name='lss_kpt28',
+ id=52,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt12'),
+ 53:
+ dict(
+ name='lss_kpt29',
+ id=53,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt11'),
+ 54:
+ dict(
+ name='lss_kpt30',
+ id=54,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt10'),
+ 55:
+ dict(
+ name='lss_kpt31',
+ id=55,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt9'),
+ 56:
+ dict(
+ name='lss_kpt32',
+ id=56,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt8'),
+ 57:
+ dict(
+ name='lss_kpt33',
+ id=57,
+ color=[255, 0, 128],
+ type='',
+ swap='lss_kpt7'),
+ 58:
+ dict(name='sso_kpt1', id=58, color=[128, 0, 255], type='', swap=''),
+ 59:
+ dict(
+ name='sso_kpt2',
+ id=59,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt26'),
+ 60:
+ dict(
+ name='sso_kpt3',
+ id=60,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt5'),
+ 61:
+ dict(
+ name='sso_kpt4',
+ id=61,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt6'),
+ 62:
+ dict(
+ name='sso_kpt5',
+ id=62,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt3'),
+ 63:
+ dict(
+ name='sso_kpt6',
+ id=63,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt4'),
+ 64:
+ dict(
+ name='sso_kpt7',
+ id=64,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt25'),
+ 65:
+ dict(
+ name='sso_kpt8',
+ id=65,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt24'),
+ 66:
+ dict(
+ name='sso_kpt9',
+ id=66,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt23'),
+ 67:
+ dict(
+ name='sso_kpt10',
+ id=67,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt22'),
+ 68:
+ dict(
+ name='sso_kpt11',
+ id=68,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt21'),
+ 69:
+ dict(
+ name='sso_kpt12',
+ id=69,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt20'),
+ 70:
+ dict(
+ name='sso_kpt13',
+ id=70,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt19'),
+ 71:
+ dict(
+ name='sso_kpt14',
+ id=71,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt18'),
+ 72:
+ dict(
+ name='sso_kpt15',
+ id=72,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt17'),
+ 73:
+ dict(
+ name='sso_kpt16',
+ id=73,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt29'),
+ 74:
+ dict(
+ name='sso_kpt17',
+ id=74,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt15'),
+ 75:
+ dict(
+ name='sso_kpt18',
+ id=75,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt14'),
+ 76:
+ dict(
+ name='sso_kpt19',
+ id=76,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt13'),
+ 77:
+ dict(
+ name='sso_kpt20',
+ id=77,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt12'),
+ 78:
+ dict(
+ name='sso_kpt21',
+ id=78,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt11'),
+ 79:
+ dict(
+ name='sso_kpt22',
+ id=79,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt10'),
+ 80:
+ dict(
+ name='sso_kpt23',
+ id=80,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt9'),
+ 81:
+ dict(
+ name='sso_kpt24',
+ id=81,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt8'),
+ 82:
+ dict(
+ name='sso_kpt25',
+ id=82,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt7'),
+ 83:
+ dict(
+ name='sso_kpt26',
+ id=83,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt2'),
+ 84:
+ dict(
+ name='sso_kpt27',
+ id=84,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt30'),
+ 85:
+ dict(
+ name='sso_kpt28',
+ id=85,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt31'),
+ 86:
+ dict(
+ name='sso_kpt29',
+ id=86,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt16'),
+ 87:
+ dict(
+ name='sso_kpt30',
+ id=87,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt27'),
+ 88:
+ dict(
+ name='sso_kpt31',
+ id=88,
+ color=[128, 0, 255],
+ type='',
+ swap='sso_kpt28'),
+ 89:
+ dict(name='lso_kpt1', id=89, color=[0, 128, 255], type='', swap=''),
+ 90:
+ dict(
+ name='lso_kpt2',
+ id=90,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt6'),
+ 91:
+ dict(
+ name='lso_kpt3',
+ id=91,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt5'),
+ 92:
+ dict(
+ name='lso_kpt4',
+ id=92,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt34'),
+ 93:
+ dict(
+ name='lso_kpt5',
+ id=93,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt3'),
+ 94:
+ dict(
+ name='lso_kpt6',
+ id=94,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt2'),
+ 95:
+ dict(
+ name='lso_kpt7',
+ id=95,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt33'),
+ 96:
+ dict(
+ name='lso_kpt8',
+ id=96,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt32'),
+ 97:
+ dict(
+ name='lso_kpt9',
+ id=97,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt31'),
+ 98:
+ dict(
+ name='lso_kpt10',
+ id=98,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt30'),
+ 99:
+ dict(
+ name='lso_kpt11',
+ id=99,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt29'),
+ 100:
+ dict(
+ name='lso_kpt12',
+ id=100,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt28'),
+ 101:
+ dict(
+ name='lso_kpt13',
+ id=101,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt27'),
+ 102:
+ dict(
+ name='lso_kpt14',
+ id=102,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt26'),
+ 103:
+ dict(
+ name='lso_kpt15',
+ id=103,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt25'),
+ 104:
+ dict(
+ name='lso_kpt16',
+ id=104,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt24'),
+ 105:
+ dict(
+ name='lso_kpt17',
+ id=105,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt23'),
+ 106:
+ dict(
+ name='lso_kpt18',
+ id=106,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt22'),
+ 107:
+ dict(
+ name='lso_kpt19',
+ id=107,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt21'),
+ 108:
+ dict(
+ name='lso_kpt20',
+ id=108,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt37'),
+ 109:
+ dict(
+ name='lso_kpt21',
+ id=109,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt19'),
+ 110:
+ dict(
+ name='lso_kpt22',
+ id=110,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt18'),
+ 111:
+ dict(
+ name='lso_kpt23',
+ id=111,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt17'),
+ 112:
+ dict(
+ name='lso_kpt24',
+ id=112,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt16'),
+ 113:
+ dict(
+ name='lso_kpt25',
+ id=113,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt15'),
+ 114:
+ dict(
+ name='lso_kpt26',
+ id=114,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt14'),
+ 115:
+ dict(
+ name='lso_kpt27',
+ id=115,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt13'),
+ 116:
+ dict(
+ name='lso_kpt28',
+ id=116,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt12'),
+ 117:
+ dict(
+ name='lso_kpt29',
+ id=117,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt11'),
+ 118:
+ dict(
+ name='lso_kpt30',
+ id=118,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt10'),
+ 119:
+ dict(
+ name='lso_kpt31',
+ id=119,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt9'),
+ 120:
+ dict(
+ name='lso_kpt32',
+ id=120,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt8'),
+ 121:
+ dict(
+ name='lso_kpt33',
+ id=121,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt7'),
+ 122:
+ dict(
+ name='lso_kpt34',
+ id=122,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt4'),
+ 123:
+ dict(
+ name='lso_kpt35',
+ id=123,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt38'),
+ 124:
+ dict(
+ name='lso_kpt36',
+ id=124,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt39'),
+ 125:
+ dict(
+ name='lso_kpt37',
+ id=125,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt20'),
+ 126:
+ dict(
+ name='lso_kpt38',
+ id=126,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt35'),
+ 127:
+ dict(
+ name='lso_kpt39',
+ id=127,
+ color=[0, 128, 255],
+ type='',
+ swap='lso_kpt36'),
+ 128:
+ dict(name='vest_kpt1', id=128, color=[0, 128, 128], type='', swap=''),
+ 129:
+ dict(
+ name='vest_kpt2',
+ id=129,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt6'),
+ 130:
+ dict(
+ name='vest_kpt3',
+ id=130,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt5'),
+ 131:
+ dict(name='vest_kpt4', id=131, color=[0, 128, 128], type='', swap=''),
+ 132:
+ dict(
+ name='vest_kpt5',
+ id=132,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt3'),
+ 133:
+ dict(
+ name='vest_kpt6',
+ id=133,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt2'),
+ 134:
+ dict(
+ name='vest_kpt7',
+ id=134,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt15'),
+ 135:
+ dict(
+ name='vest_kpt8',
+ id=135,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt14'),
+ 136:
+ dict(
+ name='vest_kpt9',
+ id=136,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt13'),
+ 137:
+ dict(
+ name='vest_kpt10',
+ id=137,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt12'),
+ 138:
+ dict(name='vest_kpt11', id=138, color=[0, 128, 128], type='', swap=''),
+ 139:
+ dict(
+ name='vest_kpt12',
+ id=139,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt10'),
+ 140:
+ dict(name='vest_kpt13', id=140, color=[0, 128, 128], type='', swap=''),
+ 141:
+ dict(
+ name='vest_kpt14',
+ id=141,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt8'),
+ 142:
+ dict(
+ name='vest_kpt15',
+ id=142,
+ color=[0, 128, 128],
+ type='',
+ swap='vest_kpt7'),
+ 143:
+ dict(name='sling_kpt1', id=143, color=[0, 0, 128], type='', swap=''),
+ 144:
+ dict(
+ name='sling_kpt2',
+ id=144,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt6'),
+ 145:
+ dict(
+ name='sling_kpt3',
+ id=145,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt5'),
+ 146:
+ dict(name='sling_kpt4', id=146, color=[0, 0, 128], type='', swap=''),
+ 147:
+ dict(
+ name='sling_kpt5',
+ id=147,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt3'),
+ 148:
+ dict(
+ name='sling_kpt6',
+ id=148,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt2'),
+ 149:
+ dict(
+ name='sling_kpt7',
+ id=149,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt15'),
+ 150:
+ dict(
+ name='sling_kpt8',
+ id=150,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt14'),
+ 151:
+ dict(
+ name='sling_kpt9',
+ id=151,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt13'),
+ 152:
+ dict(
+ name='sling_kpt10',
+ id=152,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt12'),
+ 153:
+ dict(name='sling_kpt11', id=153, color=[0, 0, 128], type='', swap=''),
+ 154:
+ dict(
+ name='sling_kpt12',
+ id=154,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt10'),
+ 155:
+ dict(
+ name='sling_kpt13',
+ id=155,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt9'),
+ 156:
+ dict(
+ name='sling_kpt14',
+ id=156,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt8'),
+ 157:
+ dict(
+ name='sling_kpt15',
+ id=157,
+ color=[0, 0, 128],
+ type='',
+ swap='sling_kpt7'),
+ 158:
+ dict(
+ name='shorts_kpt1',
+ id=158,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt3'),
+ 159:
+ dict(
+ name='shorts_kpt2',
+ id=159,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 160:
+ dict(
+ name='shorts_kpt3',
+ id=160,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt1'),
+ 161:
+ dict(
+ name='shorts_kpt4',
+ id=161,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt10'),
+ 162:
+ dict(
+ name='shorts_kpt5',
+ id=162,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt9'),
+ 163:
+ dict(
+ name='shorts_kpt6',
+ id=163,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt8'),
+ 164:
+ dict(
+ name='shorts_kpt7',
+ id=164,
+ color=[128, 128, 128],
+ type='',
+ swap=''),
+ 165:
+ dict(
+ name='shorts_kpt8',
+ id=165,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt6'),
+ 166:
+ dict(
+ name='shorts_kpt9',
+ id=166,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt5'),
+ 167:
+ dict(
+ name='shorts_kpt10',
+ id=167,
+ color=[128, 128, 128],
+ type='',
+ swap='shorts_kpt4'),
+ 168:
+ dict(
+ name='trousers_kpt1',
+ id=168,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt3'),
+ 169:
+ dict(
+ name='trousers_kpt2',
+ id=169,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 170:
+ dict(
+ name='trousers_kpt3',
+ id=170,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt1'),
+ 171:
+ dict(
+ name='trousers_kpt4',
+ id=171,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt14'),
+ 172:
+ dict(
+ name='trousers_kpt5',
+ id=172,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt13'),
+ 173:
+ dict(
+ name='trousers_kpt6',
+ id=173,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt12'),
+ 174:
+ dict(
+ name='trousers_kpt7',
+ id=174,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt11'),
+ 175:
+ dict(
+ name='trousers_kpt8',
+ id=175,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt10'),
+ 176:
+ dict(
+ name='trousers_kpt9',
+ id=176,
+ color=[128, 0, 128],
+ type='',
+ swap=''),
+ 177:
+ dict(
+ name='trousers_kpt10',
+ id=177,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt8'),
+ 178:
+ dict(
+ name='trousers_kpt11',
+ id=178,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt7'),
+ 179:
+ dict(
+ name='trousers_kpt12',
+ id=179,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt6'),
+ 180:
+ dict(
+ name='trousers_kpt13',
+ id=180,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt5'),
+ 181:
+ dict(
+ name='trousers_kpt14',
+ id=181,
+ color=[128, 0, 128],
+ type='',
+ swap='trousers_kpt4'),
+ 182:
+ dict(
+ name='skirt_kpt1',
+ id=182,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt3'),
+ 183:
+ dict(
+ name='skirt_kpt2', id=183, color=[64, 128, 128], type='', swap=''),
+ 184:
+ dict(
+ name='skirt_kpt3',
+ id=184,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt1'),
+ 185:
+ dict(
+ name='skirt_kpt4',
+ id=185,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt8'),
+ 186:
+ dict(
+ name='skirt_kpt5',
+ id=186,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt7'),
+ 187:
+ dict(
+ name='skirt_kpt6', id=187, color=[64, 128, 128], type='', swap=''),
+ 188:
+ dict(
+ name='skirt_kpt7',
+ id=188,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt5'),
+ 189:
+ dict(
+ name='skirt_kpt8',
+ id=189,
+ color=[64, 128, 128],
+ type='',
+ swap='skirt_kpt4'),
+ 190:
+ dict(name='ssd_kpt1', id=190, color=[64, 64, 128], type='', swap=''),
+ 191:
+ dict(
+ name='ssd_kpt2',
+ id=191,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt6'),
+ 192:
+ dict(
+ name='ssd_kpt3',
+ id=192,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt5'),
+ 193:
+ dict(name='ssd_kpt4', id=193, color=[64, 64, 128], type='', swap=''),
+ 194:
+ dict(
+ name='ssd_kpt5',
+ id=194,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt3'),
+ 195:
+ dict(
+ name='ssd_kpt6',
+ id=195,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt2'),
+ 196:
+ dict(
+ name='ssd_kpt7',
+ id=196,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt29'),
+ 197:
+ dict(
+ name='ssd_kpt8',
+ id=197,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt28'),
+ 198:
+ dict(
+ name='ssd_kpt9',
+ id=198,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt27'),
+ 199:
+ dict(
+ name='ssd_kpt10',
+ id=199,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt26'),
+ 200:
+ dict(
+ name='ssd_kpt11',
+ id=200,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt25'),
+ 201:
+ dict(
+ name='ssd_kpt12',
+ id=201,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt24'),
+ 202:
+ dict(
+ name='ssd_kpt13',
+ id=202,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt23'),
+ 203:
+ dict(
+ name='ssd_kpt14',
+ id=203,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt22'),
+ 204:
+ dict(
+ name='ssd_kpt15',
+ id=204,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt21'),
+ 205:
+ dict(
+ name='ssd_kpt16',
+ id=205,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt20'),
+ 206:
+ dict(
+ name='ssd_kpt17',
+ id=206,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt19'),
+ 207:
+ dict(name='ssd_kpt18', id=207, color=[64, 64, 128], type='', swap=''),
+ 208:
+ dict(
+ name='ssd_kpt19',
+ id=208,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt17'),
+ 209:
+ dict(
+ name='ssd_kpt20',
+ id=209,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt16'),
+ 210:
+ dict(
+ name='ssd_kpt21',
+ id=210,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt15'),
+ 211:
+ dict(
+ name='ssd_kpt22',
+ id=211,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt14'),
+ 212:
+ dict(
+ name='ssd_kpt23',
+ id=212,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt13'),
+ 213:
+ dict(
+ name='ssd_kpt24',
+ id=213,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt12'),
+ 214:
+ dict(
+ name='ssd_kpt25',
+ id=214,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt11'),
+ 215:
+ dict(
+ name='ssd_kpt26',
+ id=215,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt10'),
+ 216:
+ dict(
+ name='ssd_kpt27',
+ id=216,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt9'),
+ 217:
+ dict(
+ name='ssd_kpt28',
+ id=217,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt8'),
+ 218:
+ dict(
+ name='ssd_kpt29',
+ id=218,
+ color=[64, 64, 128],
+ type='',
+ swap='ssd_kpt7'),
+ 219:
+ dict(name='lsd_kpt1', id=219, color=[128, 64, 0], type='', swap=''),
+ 220:
+ dict(
+ name='lsd_kpt2',
+ id=220,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt6'),
+ 221:
+ dict(
+ name='lsd_kpt3',
+ id=221,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt5'),
+ 222:
+ dict(name='lsd_kpt4', id=222, color=[128, 64, 0], type='', swap=''),
+ 223:
+ dict(
+ name='lsd_kpt5',
+ id=223,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt3'),
+ 224:
+ dict(
+ name='lsd_kpt6',
+ id=224,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt2'),
+ 225:
+ dict(
+ name='lsd_kpt7',
+ id=225,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt37'),
+ 226:
+ dict(
+ name='lsd_kpt8',
+ id=226,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt36'),
+ 227:
+ dict(
+ name='lsd_kpt9',
+ id=227,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt35'),
+ 228:
+ dict(
+ name='lsd_kpt10',
+ id=228,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt34'),
+ 229:
+ dict(
+ name='lsd_kpt11',
+ id=229,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt33'),
+ 230:
+ dict(
+ name='lsd_kpt12',
+ id=230,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt32'),
+ 231:
+ dict(
+ name='lsd_kpt13',
+ id=231,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt31'),
+ 232:
+ dict(
+ name='lsd_kpt14',
+ id=232,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt30'),
+ 233:
+ dict(
+ name='lsd_kpt15',
+ id=233,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt29'),
+ 234:
+ dict(
+ name='lsd_kpt16',
+ id=234,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt28'),
+ 235:
+ dict(
+ name='lsd_kpt17',
+ id=235,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt27'),
+ 236:
+ dict(
+ name='lsd_kpt18',
+ id=236,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt26'),
+ 237:
+ dict(
+ name='lsd_kpt19',
+ id=237,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt25'),
+ 238:
+ dict(
+ name='lsd_kpt20',
+ id=238,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt24'),
+ 239:
+ dict(
+ name='lsd_kpt21',
+ id=239,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt23'),
+ 240:
+ dict(name='lsd_kpt22', id=240, color=[128, 64, 0], type='', swap=''),
+ 241:
+ dict(
+ name='lsd_kpt23',
+ id=241,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt21'),
+ 242:
+ dict(
+ name='lsd_kpt24',
+ id=242,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt20'),
+ 243:
+ dict(
+ name='lsd_kpt25',
+ id=243,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt19'),
+ 244:
+ dict(
+ name='lsd_kpt26',
+ id=244,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt18'),
+ 245:
+ dict(
+ name='lsd_kpt27',
+ id=245,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt17'),
+ 246:
+ dict(
+ name='lsd_kpt28',
+ id=246,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt16'),
+ 247:
+ dict(
+ name='lsd_kpt29',
+ id=247,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt15'),
+ 248:
+ dict(
+ name='lsd_kpt30',
+ id=248,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt14'),
+ 249:
+ dict(
+ name='lsd_kpt31',
+ id=249,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt13'),
+ 250:
+ dict(
+ name='lsd_kpt32',
+ id=250,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt12'),
+ 251:
+ dict(
+ name='lsd_kpt33',
+ id=251,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt11'),
+ 252:
+ dict(
+ name='lsd_kpt34',
+ id=252,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt10'),
+ 253:
+ dict(
+ name='lsd_kpt35',
+ id=253,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt9'),
+ 254:
+ dict(
+ name='lsd_kpt36',
+ id=254,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt8'),
+ 255:
+ dict(
+ name='lsd_kpt37',
+ id=255,
+ color=[128, 64, 0],
+ type='',
+ swap='lsd_kpt7'),
+ 256:
+ dict(name='vd_kpt1', id=256, color=[128, 64, 255], type='', swap=''),
+ 257:
+ dict(
+ name='vd_kpt2',
+ id=257,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt6'),
+ 258:
+ dict(
+ name='vd_kpt3',
+ id=258,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt5'),
+ 259:
+ dict(name='vd_kpt4', id=259, color=[128, 64, 255], type='', swap=''),
+ 260:
+ dict(
+ name='vd_kpt5',
+ id=260,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt3'),
+ 261:
+ dict(
+ name='vd_kpt6',
+ id=261,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt2'),
+ 262:
+ dict(
+ name='vd_kpt7',
+ id=262,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt19'),
+ 263:
+ dict(
+ name='vd_kpt8',
+ id=263,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt18'),
+ 264:
+ dict(
+ name='vd_kpt9',
+ id=264,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt17'),
+ 265:
+ dict(
+ name='vd_kpt10',
+ id=265,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt16'),
+ 266:
+ dict(
+ name='vd_kpt11',
+ id=266,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt15'),
+ 267:
+ dict(
+ name='vd_kpt12',
+ id=267,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt14'),
+ 268:
+ dict(name='vd_kpt13', id=268, color=[128, 64, 255], type='', swap=''),
+ 269:
+ dict(
+ name='vd_kpt14',
+ id=269,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt12'),
+ 270:
+ dict(
+ name='vd_kpt15',
+ id=270,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt11'),
+ 271:
+ dict(
+ name='vd_kpt16',
+ id=271,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt10'),
+ 272:
+ dict(
+ name='vd_kpt17',
+ id=272,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt9'),
+ 273:
+ dict(
+ name='vd_kpt18',
+ id=273,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt8'),
+ 274:
+ dict(
+ name='vd_kpt19',
+ id=274,
+ color=[128, 64, 255],
+ type='',
+ swap='vd_kpt7'),
+ 275:
+ dict(name='sd_kpt1', id=275, color=[128, 64, 0], type='', swap=''),
+ 276:
+ dict(
+ name='sd_kpt2',
+ id=276,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt6'),
+ 277:
+ dict(
+ name='sd_kpt3',
+ id=277,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt5'),
+ 278:
+ dict(name='sd_kpt4', id=278, color=[128, 64, 0], type='', swap=''),
+ 279:
+ dict(
+ name='sd_kpt5',
+ id=279,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt3'),
+ 280:
+ dict(
+ name='sd_kpt6',
+ id=280,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt2'),
+ 281:
+ dict(
+ name='sd_kpt7',
+ id=281,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt19'),
+ 282:
+ dict(
+ name='sd_kpt8',
+ id=282,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt18'),
+ 283:
+ dict(
+ name='sd_kpt9',
+ id=283,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt17'),
+ 284:
+ dict(
+ name='sd_kpt10',
+ id=284,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt16'),
+ 285:
+ dict(
+ name='sd_kpt11',
+ id=285,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt15'),
+ 286:
+ dict(
+ name='sd_kpt12',
+ id=286,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt14'),
+ 287:
+ dict(name='sd_kpt13', id=287, color=[128, 64, 0], type='', swap=''),
+ 288:
+ dict(
+ name='sd_kpt14',
+ id=288,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt12'),
+ 289:
+ dict(
+ name='sd_kpt15',
+ id=289,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt11'),
+ 290:
+ dict(
+ name='sd_kpt16',
+ id=290,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt10'),
+ 291:
+ dict(
+ name='sd_kpt17',
+ id=291,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt9'),
+ 292:
+ dict(
+ name='sd_kpt18',
+ id=292,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt8'),
+ 293:
+ dict(
+ name='sd_kpt19',
+ id=293,
+ color=[128, 64, 0],
+ type='',
+ swap='sd_kpt7')
+ }),
+ skeleton_info=dict({
+ 0:
+ dict(link=('sss_kpt1', 'sss_kpt2'), id=0, color=[255, 128, 0]),
+ 1:
+ dict(link=('sss_kpt2', 'sss_kpt7'), id=1, color=[255, 128, 0]),
+ 2:
+ dict(link=('sss_kpt7', 'sss_kpt8'), id=2, color=[255, 128, 0]),
+ 3:
+ dict(link=('sss_kpt8', 'sss_kpt9'), id=3, color=[255, 128, 0]),
+ 4:
+ dict(link=('sss_kpt9', 'sss_kpt10'), id=4, color=[255, 128, 0]),
+ 5:
+ dict(link=('sss_kpt10', 'sss_kpt11'), id=5, color=[255, 128, 0]),
+ 6:
+ dict(link=('sss_kpt11', 'sss_kpt12'), id=6, color=[255, 128, 0]),
+ 7:
+ dict(link=('sss_kpt12', 'sss_kpt13'), id=7, color=[255, 128, 0]),
+ 8:
+ dict(link=('sss_kpt13', 'sss_kpt14'), id=8, color=[255, 128, 0]),
+ 9:
+ dict(link=('sss_kpt14', 'sss_kpt15'), id=9, color=[255, 128, 0]),
+ 10:
+ dict(link=('sss_kpt15', 'sss_kpt16'), id=10, color=[255, 128, 0]),
+ 11:
+ dict(link=('sss_kpt16', 'sss_kpt17'), id=11, color=[255, 128, 0]),
+ 12:
+ dict(link=('sss_kpt17', 'sss_kpt18'), id=12, color=[255, 128, 0]),
+ 13:
+ dict(link=('sss_kpt18', 'sss_kpt19'), id=13, color=[255, 128, 0]),
+ 14:
+ dict(link=('sss_kpt19', 'sss_kpt20'), id=14, color=[255, 128, 0]),
+ 15:
+ dict(link=('sss_kpt20', 'sss_kpt21'), id=15, color=[255, 128, 0]),
+ 16:
+ dict(link=('sss_kpt21', 'sss_kpt22'), id=16, color=[255, 128, 0]),
+ 17:
+ dict(link=('sss_kpt22', 'sss_kpt23'), id=17, color=[255, 128, 0]),
+ 18:
+ dict(link=('sss_kpt23', 'sss_kpt24'), id=18, color=[255, 128, 0]),
+ 19:
+ dict(link=('sss_kpt24', 'sss_kpt25'), id=19, color=[255, 128, 0]),
+ 20:
+ dict(link=('sss_kpt25', 'sss_kpt6'), id=20, color=[255, 128, 0]),
+ 21:
+ dict(link=('sss_kpt6', 'sss_kpt1'), id=21, color=[255, 128, 0]),
+ 22:
+ dict(link=('sss_kpt2', 'sss_kpt3'), id=22, color=[255, 128, 0]),
+ 23:
+ dict(link=('sss_kpt3', 'sss_kpt4'), id=23, color=[255, 128, 0]),
+ 24:
+ dict(link=('sss_kpt4', 'sss_kpt5'), id=24, color=[255, 128, 0]),
+ 25:
+ dict(link=('sss_kpt5', 'sss_kpt6'), id=25, color=[255, 128, 0]),
+ 26:
+ dict(link=('lss_kpt1', 'lss_kpt2'), id=26, color=[255, 0, 128]),
+ 27:
+ dict(link=('lss_kpt2', 'lss_kpt7'), id=27, color=[255, 0, 128]),
+ 28:
+ dict(link=('lss_kpt7', 'lss_kpt8'), id=28, color=[255, 0, 128]),
+ 29:
+ dict(link=('lss_kpt8', 'lss_kpt9'), id=29, color=[255, 0, 128]),
+ 30:
+ dict(link=('lss_kpt9', 'lss_kpt10'), id=30, color=[255, 0, 128]),
+ 31:
+ dict(link=('lss_kpt10', 'lss_kpt11'), id=31, color=[255, 0, 128]),
+ 32:
+ dict(link=('lss_kpt11', 'lss_kpt12'), id=32, color=[255, 0, 128]),
+ 33:
+ dict(link=('lss_kpt12', 'lss_kpt13'), id=33, color=[255, 0, 128]),
+ 34:
+ dict(link=('lss_kpt13', 'lss_kpt14'), id=34, color=[255, 0, 128]),
+ 35:
+ dict(link=('lss_kpt14', 'lss_kpt15'), id=35, color=[255, 0, 128]),
+ 36:
+ dict(link=('lss_kpt15', 'lss_kpt16'), id=36, color=[255, 0, 128]),
+ 37:
+ dict(link=('lss_kpt16', 'lss_kpt17'), id=37, color=[255, 0, 128]),
+ 38:
+ dict(link=('lss_kpt17', 'lss_kpt18'), id=38, color=[255, 0, 128]),
+ 39:
+ dict(link=('lss_kpt18', 'lss_kpt19'), id=39, color=[255, 0, 128]),
+ 40:
+ dict(link=('lss_kpt19', 'lss_kpt20'), id=40, color=[255, 0, 128]),
+ 41:
+ dict(link=('lss_kpt20', 'lss_kpt21'), id=41, color=[255, 0, 128]),
+ 42:
+ dict(link=('lss_kpt21', 'lss_kpt22'), id=42, color=[255, 0, 128]),
+ 43:
+ dict(link=('lss_kpt22', 'lss_kpt23'), id=43, color=[255, 0, 128]),
+ 44:
+ dict(link=('lss_kpt23', 'lss_kpt24'), id=44, color=[255, 0, 128]),
+ 45:
+ dict(link=('lss_kpt24', 'lss_kpt25'), id=45, color=[255, 0, 128]),
+ 46:
+ dict(link=('lss_kpt25', 'lss_kpt26'), id=46, color=[255, 0, 128]),
+ 47:
+ dict(link=('lss_kpt26', 'lss_kpt27'), id=47, color=[255, 0, 128]),
+ 48:
+ dict(link=('lss_kpt27', 'lss_kpt28'), id=48, color=[255, 0, 128]),
+ 49:
+ dict(link=('lss_kpt28', 'lss_kpt29'), id=49, color=[255, 0, 128]),
+ 50:
+ dict(link=('lss_kpt29', 'lss_kpt30'), id=50, color=[255, 0, 128]),
+ 51:
+ dict(link=('lss_kpt30', 'lss_kpt31'), id=51, color=[255, 0, 128]),
+ 52:
+ dict(link=('lss_kpt31', 'lss_kpt32'), id=52, color=[255, 0, 128]),
+ 53:
+ dict(link=('lss_kpt32', 'lss_kpt33'), id=53, color=[255, 0, 128]),
+ 54:
+ dict(link=('lss_kpt33', 'lss_kpt6'), id=54, color=[255, 0, 128]),
+ 55:
+ dict(link=('lss_kpt6', 'lss_kpt5'), id=55, color=[255, 0, 128]),
+ 56:
+ dict(link=('lss_kpt5', 'lss_kpt4'), id=56, color=[255, 0, 128]),
+ 57:
+ dict(link=('lss_kpt4', 'lss_kpt3'), id=57, color=[255, 0, 128]),
+ 58:
+ dict(link=('lss_kpt3', 'lss_kpt2'), id=58, color=[255, 0, 128]),
+ 59:
+ dict(link=('lss_kpt6', 'lss_kpt1'), id=59, color=[255, 0, 128]),
+ 60:
+ dict(link=('sso_kpt1', 'sso_kpt4'), id=60, color=[128, 0, 255]),
+ 61:
+ dict(link=('sso_kpt4', 'sso_kpt7'), id=61, color=[128, 0, 255]),
+ 62:
+ dict(link=('sso_kpt7', 'sso_kpt8'), id=62, color=[128, 0, 255]),
+ 63:
+ dict(link=('sso_kpt8', 'sso_kpt9'), id=63, color=[128, 0, 255]),
+ 64:
+ dict(link=('sso_kpt9', 'sso_kpt10'), id=64, color=[128, 0, 255]),
+ 65:
+ dict(link=('sso_kpt10', 'sso_kpt11'), id=65, color=[128, 0, 255]),
+ 66:
+ dict(link=('sso_kpt11', 'sso_kpt12'), id=66, color=[128, 0, 255]),
+ 67:
+ dict(link=('sso_kpt12', 'sso_kpt13'), id=67, color=[128, 0, 255]),
+ 68:
+ dict(link=('sso_kpt13', 'sso_kpt14'), id=68, color=[128, 0, 255]),
+ 69:
+ dict(link=('sso_kpt14', 'sso_kpt15'), id=69, color=[128, 0, 255]),
+ 70:
+ dict(link=('sso_kpt15', 'sso_kpt16'), id=70, color=[128, 0, 255]),
+ 71:
+ dict(link=('sso_kpt16', 'sso_kpt31'), id=71, color=[128, 0, 255]),
+ 72:
+ dict(link=('sso_kpt31', 'sso_kpt30'), id=72, color=[128, 0, 255]),
+ 73:
+ dict(link=('sso_kpt30', 'sso_kpt2'), id=73, color=[128, 0, 255]),
+ 74:
+ dict(link=('sso_kpt2', 'sso_kpt3'), id=74, color=[128, 0, 255]),
+ 75:
+ dict(link=('sso_kpt3', 'sso_kpt4'), id=75, color=[128, 0, 255]),
+ 76:
+ dict(link=('sso_kpt1', 'sso_kpt6'), id=76, color=[128, 0, 255]),
+ 77:
+ dict(link=('sso_kpt6', 'sso_kpt25'), id=77, color=[128, 0, 255]),
+ 78:
+ dict(link=('sso_kpt25', 'sso_kpt24'), id=78, color=[128, 0, 255]),
+ 79:
+ dict(link=('sso_kpt24', 'sso_kpt23'), id=79, color=[128, 0, 255]),
+ 80:
+ dict(link=('sso_kpt23', 'sso_kpt22'), id=80, color=[128, 0, 255]),
+ 81:
+ dict(link=('sso_kpt22', 'sso_kpt21'), id=81, color=[128, 0, 255]),
+ 82:
+ dict(link=('sso_kpt21', 'sso_kpt20'), id=82, color=[128, 0, 255]),
+ 83:
+ dict(link=('sso_kpt20', 'sso_kpt19'), id=83, color=[128, 0, 255]),
+ 84:
+ dict(link=('sso_kpt19', 'sso_kpt18'), id=84, color=[128, 0, 255]),
+ 85:
+ dict(link=('sso_kpt18', 'sso_kpt17'), id=85, color=[128, 0, 255]),
+ 86:
+ dict(link=('sso_kpt17', 'sso_kpt29'), id=86, color=[128, 0, 255]),
+ 87:
+ dict(link=('sso_kpt29', 'sso_kpt28'), id=87, color=[128, 0, 255]),
+ 88:
+ dict(link=('sso_kpt28', 'sso_kpt27'), id=88, color=[128, 0, 255]),
+ 89:
+ dict(link=('sso_kpt27', 'sso_kpt26'), id=89, color=[128, 0, 255]),
+ 90:
+ dict(link=('sso_kpt26', 'sso_kpt5'), id=90, color=[128, 0, 255]),
+ 91:
+ dict(link=('sso_kpt5', 'sso_kpt6'), id=91, color=[128, 0, 255]),
+ 92:
+ dict(link=('lso_kpt1', 'lso_kpt2'), id=92, color=[0, 128, 255]),
+ 93:
+ dict(link=('lso_kpt2', 'lso_kpt7'), id=93, color=[0, 128, 255]),
+ 94:
+ dict(link=('lso_kpt7', 'lso_kpt8'), id=94, color=[0, 128, 255]),
+ 95:
+ dict(link=('lso_kpt8', 'lso_kpt9'), id=95, color=[0, 128, 255]),
+ 96:
+ dict(link=('lso_kpt9', 'lso_kpt10'), id=96, color=[0, 128, 255]),
+ 97:
+ dict(link=('lso_kpt10', 'lso_kpt11'), id=97, color=[0, 128, 255]),
+ 98:
+ dict(link=('lso_kpt11', 'lso_kpt12'), id=98, color=[0, 128, 255]),
+ 99:
+ dict(link=('lso_kpt12', 'lso_kpt13'), id=99, color=[0, 128, 255]),
+ 100:
+ dict(link=('lso_kpt13', 'lso_kpt14'), id=100, color=[0, 128, 255]),
+ 101:
+ dict(link=('lso_kpt14', 'lso_kpt15'), id=101, color=[0, 128, 255]),
+ 102:
+ dict(link=('lso_kpt15', 'lso_kpt16'), id=102, color=[0, 128, 255]),
+ 103:
+ dict(link=('lso_kpt16', 'lso_kpt17'), id=103, color=[0, 128, 255]),
+ 104:
+ dict(link=('lso_kpt17', 'lso_kpt18'), id=104, color=[0, 128, 255]),
+ 105:
+ dict(link=('lso_kpt18', 'lso_kpt19'), id=105, color=[0, 128, 255]),
+ 106:
+ dict(link=('lso_kpt19', 'lso_kpt20'), id=106, color=[0, 128, 255]),
+ 107:
+ dict(link=('lso_kpt20', 'lso_kpt39'), id=107, color=[0, 128, 255]),
+ 108:
+ dict(link=('lso_kpt39', 'lso_kpt38'), id=108, color=[0, 128, 255]),
+ 109:
+ dict(link=('lso_kpt38', 'lso_kpt4'), id=109, color=[0, 128, 255]),
+ 110:
+ dict(link=('lso_kpt4', 'lso_kpt3'), id=110, color=[0, 128, 255]),
+ 111:
+ dict(link=('lso_kpt3', 'lso_kpt2'), id=111, color=[0, 128, 255]),
+ 112:
+ dict(link=('lso_kpt1', 'lso_kpt6'), id=112, color=[0, 128, 255]),
+ 113:
+ dict(link=('lso_kpt6', 'lso_kpt33'), id=113, color=[0, 128, 255]),
+ 114:
+ dict(link=('lso_kpt33', 'lso_kpt32'), id=114, color=[0, 128, 255]),
+ 115:
+ dict(link=('lso_kpt32', 'lso_kpt31'), id=115, color=[0, 128, 255]),
+ 116:
+ dict(link=('lso_kpt31', 'lso_kpt30'), id=116, color=[0, 128, 255]),
+ 117:
+ dict(link=('lso_kpt30', 'lso_kpt29'), id=117, color=[0, 128, 255]),
+ 118:
+ dict(link=('lso_kpt29', 'lso_kpt28'), id=118, color=[0, 128, 255]),
+ 119:
+ dict(link=('lso_kpt28', 'lso_kpt27'), id=119, color=[0, 128, 255]),
+ 120:
+ dict(link=('lso_kpt27', 'lso_kpt26'), id=120, color=[0, 128, 255]),
+ 121:
+ dict(link=('lso_kpt26', 'lso_kpt25'), id=121, color=[0, 128, 255]),
+ 122:
+ dict(link=('lso_kpt25', 'lso_kpt24'), id=122, color=[0, 128, 255]),
+ 123:
+ dict(link=('lso_kpt24', 'lso_kpt23'), id=123, color=[0, 128, 255]),
+ 124:
+ dict(link=('lso_kpt23', 'lso_kpt22'), id=124, color=[0, 128, 255]),
+ 125:
+ dict(link=('lso_kpt22', 'lso_kpt21'), id=125, color=[0, 128, 255]),
+ 126:
+ dict(link=('lso_kpt21', 'lso_kpt37'), id=126, color=[0, 128, 255]),
+ 127:
+ dict(link=('lso_kpt37', 'lso_kpt36'), id=127, color=[0, 128, 255]),
+ 128:
+ dict(link=('lso_kpt36', 'lso_kpt35'), id=128, color=[0, 128, 255]),
+ 129:
+ dict(link=('lso_kpt35', 'lso_kpt34'), id=129, color=[0, 128, 255]),
+ 130:
+ dict(link=('lso_kpt34', 'lso_kpt5'), id=130, color=[0, 128, 255]),
+ 131:
+ dict(link=('lso_kpt5', 'lso_kpt6'), id=131, color=[0, 128, 255]),
+ 132:
+ dict(link=('vest_kpt1', 'vest_kpt2'), id=132, color=[0, 128, 128]),
+ 133:
+ dict(link=('vest_kpt2', 'vest_kpt7'), id=133, color=[0, 128, 128]),
+ 134:
+ dict(link=('vest_kpt7', 'vest_kpt8'), id=134, color=[0, 128, 128]),
+ 135:
+ dict(link=('vest_kpt8', 'vest_kpt9'), id=135, color=[0, 128, 128]),
+ 136:
+ dict(link=('vest_kpt9', 'vest_kpt10'), id=136, color=[0, 128, 128]),
+ 137:
+ dict(link=('vest_kpt10', 'vest_kpt11'), id=137, color=[0, 128, 128]),
+ 138:
+ dict(link=('vest_kpt11', 'vest_kpt12'), id=138, color=[0, 128, 128]),
+ 139:
+ dict(link=('vest_kpt12', 'vest_kpt13'), id=139, color=[0, 128, 128]),
+ 140:
+ dict(link=('vest_kpt13', 'vest_kpt14'), id=140, color=[0, 128, 128]),
+ 141:
+ dict(link=('vest_kpt14', 'vest_kpt15'), id=141, color=[0, 128, 128]),
+ 142:
+ dict(link=('vest_kpt15', 'vest_kpt6'), id=142, color=[0, 128, 128]),
+ 143:
+ dict(link=('vest_kpt6', 'vest_kpt1'), id=143, color=[0, 128, 128]),
+ 144:
+ dict(link=('vest_kpt2', 'vest_kpt3'), id=144, color=[0, 128, 128]),
+ 145:
+ dict(link=('vest_kpt3', 'vest_kpt4'), id=145, color=[0, 128, 128]),
+ 146:
+ dict(link=('vest_kpt4', 'vest_kpt5'), id=146, color=[0, 128, 128]),
+ 147:
+ dict(link=('vest_kpt5', 'vest_kpt6'), id=147, color=[0, 128, 128]),
+ 148:
+ dict(link=('sling_kpt1', 'sling_kpt2'), id=148, color=[0, 0, 128]),
+ 149:
+ dict(link=('sling_kpt2', 'sling_kpt8'), id=149, color=[0, 0, 128]),
+ 150:
+ dict(link=('sling_kpt8', 'sling_kpt9'), id=150, color=[0, 0, 128]),
+ 151:
+ dict(link=('sling_kpt9', 'sling_kpt10'), id=151, color=[0, 0, 128]),
+ 152:
+ dict(link=('sling_kpt10', 'sling_kpt11'), id=152, color=[0, 0, 128]),
+ 153:
+ dict(link=('sling_kpt11', 'sling_kpt12'), id=153, color=[0, 0, 128]),
+ 154:
+ dict(link=('sling_kpt12', 'sling_kpt13'), id=154, color=[0, 0, 128]),
+ 155:
+ dict(link=('sling_kpt13', 'sling_kpt14'), id=155, color=[0, 0, 128]),
+ 156:
+ dict(link=('sling_kpt14', 'sling_kpt6'), id=156, color=[0, 0, 128]),
+ 157:
+ dict(link=('sling_kpt2', 'sling_kpt7'), id=157, color=[0, 0, 128]),
+ 158:
+ dict(link=('sling_kpt6', 'sling_kpt15'), id=158, color=[0, 0, 128]),
+ 159:
+ dict(link=('sling_kpt2', 'sling_kpt3'), id=159, color=[0, 0, 128]),
+ 160:
+ dict(link=('sling_kpt3', 'sling_kpt4'), id=160, color=[0, 0, 128]),
+ 161:
+ dict(link=('sling_kpt4', 'sling_kpt5'), id=161, color=[0, 0, 128]),
+ 162:
+ dict(link=('sling_kpt5', 'sling_kpt6'), id=162, color=[0, 0, 128]),
+ 163:
+ dict(link=('sling_kpt1', 'sling_kpt6'), id=163, color=[0, 0, 128]),
+ 164:
+ dict(
+ link=('shorts_kpt1', 'shorts_kpt4'), id=164, color=[128, 128,
+ 128]),
+ 165:
+ dict(
+ link=('shorts_kpt4', 'shorts_kpt5'), id=165, color=[128, 128,
+ 128]),
+ 166:
+ dict(
+ link=('shorts_kpt5', 'shorts_kpt6'), id=166, color=[128, 128,
+ 128]),
+ 167:
+ dict(
+ link=('shorts_kpt6', 'shorts_kpt7'), id=167, color=[128, 128,
+ 128]),
+ 168:
+ dict(
+ link=('shorts_kpt7', 'shorts_kpt8'), id=168, color=[128, 128,
+ 128]),
+ 169:
+ dict(
+ link=('shorts_kpt8', 'shorts_kpt9'), id=169, color=[128, 128,
+ 128]),
+ 170:
+ dict(
+ link=('shorts_kpt9', 'shorts_kpt10'),
+ id=170,
+ color=[128, 128, 128]),
+ 171:
+ dict(
+ link=('shorts_kpt10', 'shorts_kpt3'),
+ id=171,
+ color=[128, 128, 128]),
+ 172:
+ dict(
+ link=('shorts_kpt3', 'shorts_kpt2'), id=172, color=[128, 128,
+ 128]),
+ 173:
+ dict(
+ link=('shorts_kpt2', 'shorts_kpt1'), id=173, color=[128, 128,
+ 128]),
+ 174:
+ dict(
+ link=('trousers_kpt1', 'trousers_kpt4'),
+ id=174,
+ color=[128, 0, 128]),
+ 175:
+ dict(
+ link=('trousers_kpt4', 'trousers_kpt5'),
+ id=175,
+ color=[128, 0, 128]),
+ 176:
+ dict(
+ link=('trousers_kpt5', 'trousers_kpt6'),
+ id=176,
+ color=[128, 0, 128]),
+ 177:
+ dict(
+ link=('trousers_kpt6', 'trousers_kpt7'),
+ id=177,
+ color=[128, 0, 128]),
+ 178:
+ dict(
+ link=('trousers_kpt7', 'trousers_kpt8'),
+ id=178,
+ color=[128, 0, 128]),
+ 179:
+ dict(
+ link=('trousers_kpt8', 'trousers_kpt9'),
+ id=179,
+ color=[128, 0, 128]),
+ 180:
+ dict(
+ link=('trousers_kpt9', 'trousers_kpt10'),
+ id=180,
+ color=[128, 0, 128]),
+ 181:
+ dict(
+ link=('trousers_kpt10', 'trousers_kpt11'),
+ id=181,
+ color=[128, 0, 128]),
+ 182:
+ dict(
+ link=('trousers_kpt11', 'trousers_kpt12'),
+ id=182,
+ color=[128, 0, 128]),
+ 183:
+ dict(
+ link=('trousers_kpt12', 'trousers_kpt13'),
+ id=183,
+ color=[128, 0, 128]),
+ 184:
+ dict(
+ link=('trousers_kpt13', 'trousers_kpt14'),
+ id=184,
+ color=[128, 0, 128]),
+ 185:
+ dict(
+ link=('trousers_kpt14', 'trousers_kpt3'),
+ id=185,
+ color=[128, 0, 128]),
+ 186:
+ dict(
+ link=('trousers_kpt3', 'trousers_kpt2'),
+ id=186,
+ color=[128, 0, 128]),
+ 187:
+ dict(
+ link=('trousers_kpt2', 'trousers_kpt1'),
+ id=187,
+ color=[128, 0, 128]),
+ 188:
+ dict(link=('skirt_kpt1', 'skirt_kpt4'), id=188, color=[64, 128, 128]),
+ 189:
+ dict(link=('skirt_kpt4', 'skirt_kpt5'), id=189, color=[64, 128, 128]),
+ 190:
+ dict(link=('skirt_kpt5', 'skirt_kpt6'), id=190, color=[64, 128, 128]),
+ 191:
+ dict(link=('skirt_kpt6', 'skirt_kpt7'), id=191, color=[64, 128, 128]),
+ 192:
+ dict(link=('skirt_kpt7', 'skirt_kpt8'), id=192, color=[64, 128, 128]),
+ 193:
+ dict(link=('skirt_kpt8', 'skirt_kpt3'), id=193, color=[64, 128, 128]),
+ 194:
+ dict(link=('skirt_kpt3', 'skirt_kpt2'), id=194, color=[64, 128, 128]),
+ 195:
+ dict(link=('skirt_kpt2', 'skirt_kpt1'), id=195, color=[64, 128, 128]),
+ 196:
+ dict(link=('ssd_kpt1', 'ssd_kpt2'), id=196, color=[64, 64, 128]),
+ 197:
+ dict(link=('ssd_kpt2', 'ssd_kpt7'), id=197, color=[64, 64, 128]),
+ 198:
+ dict(link=('ssd_kpt7', 'ssd_kpt8'), id=198, color=[64, 64, 128]),
+ 199:
+ dict(link=('ssd_kpt8', 'ssd_kpt9'), id=199, color=[64, 64, 128]),
+ 200:
+ dict(link=('ssd_kpt9', 'ssd_kpt10'), id=200, color=[64, 64, 128]),
+ 201:
+ dict(link=('ssd_kpt10', 'ssd_kpt11'), id=201, color=[64, 64, 128]),
+ 202:
+ dict(link=('ssd_kpt11', 'ssd_kpt12'), id=202, color=[64, 64, 128]),
+ 203:
+ dict(link=('ssd_kpt12', 'ssd_kpt13'), id=203, color=[64, 64, 128]),
+ 204:
+ dict(link=('ssd_kpt13', 'ssd_kpt14'), id=204, color=[64, 64, 128]),
+ 205:
+ dict(link=('ssd_kpt14', 'ssd_kpt15'), id=205, color=[64, 64, 128]),
+ 206:
+ dict(link=('ssd_kpt15', 'ssd_kpt16'), id=206, color=[64, 64, 128]),
+ 207:
+ dict(link=('ssd_kpt16', 'ssd_kpt17'), id=207, color=[64, 64, 128]),
+ 208:
+ dict(link=('ssd_kpt17', 'ssd_kpt18'), id=208, color=[64, 64, 128]),
+ 209:
+ dict(link=('ssd_kpt18', 'ssd_kpt19'), id=209, color=[64, 64, 128]),
+ 210:
+ dict(link=('ssd_kpt19', 'ssd_kpt20'), id=210, color=[64, 64, 128]),
+ 211:
+ dict(link=('ssd_kpt20', 'ssd_kpt21'), id=211, color=[64, 64, 128]),
+ 212:
+ dict(link=('ssd_kpt21', 'ssd_kpt22'), id=212, color=[64, 64, 128]),
+ 213:
+ dict(link=('ssd_kpt22', 'ssd_kpt23'), id=213, color=[64, 64, 128]),
+ 214:
+ dict(link=('ssd_kpt23', 'ssd_kpt24'), id=214, color=[64, 64, 128]),
+ 215:
+ dict(link=('ssd_kpt24', 'ssd_kpt25'), id=215, color=[64, 64, 128]),
+ 216:
+ dict(link=('ssd_kpt25', 'ssd_kpt26'), id=216, color=[64, 64, 128]),
+ 217:
+ dict(link=('ssd_kpt26', 'ssd_kpt27'), id=217, color=[64, 64, 128]),
+ 218:
+ dict(link=('ssd_kpt27', 'ssd_kpt28'), id=218, color=[64, 64, 128]),
+ 219:
+ dict(link=('ssd_kpt28', 'ssd_kpt29'), id=219, color=[64, 64, 128]),
+ 220:
+ dict(link=('ssd_kpt29', 'ssd_kpt6'), id=220, color=[64, 64, 128]),
+ 221:
+ dict(link=('ssd_kpt6', 'ssd_kpt5'), id=221, color=[64, 64, 128]),
+ 222:
+ dict(link=('ssd_kpt5', 'ssd_kpt4'), id=222, color=[64, 64, 128]),
+ 223:
+ dict(link=('ssd_kpt4', 'ssd_kpt3'), id=223, color=[64, 64, 128]),
+ 224:
+ dict(link=('ssd_kpt3', 'ssd_kpt2'), id=224, color=[64, 64, 128]),
+ 225:
+ dict(link=('ssd_kpt6', 'ssd_kpt1'), id=225, color=[64, 64, 128]),
+ 226:
+ dict(link=('lsd_kpt1', 'lsd_kpt2'), id=226, color=[128, 64, 0]),
+ 227:
+ dict(link=('lsd_kpt2', 'lsd_kpt7'), id=228, color=[128, 64, 0]),
+ 228:
+ dict(link=('lsd_kpt7', 'lsd_kpt8'), id=228, color=[128, 64, 0]),
+ 229:
+ dict(link=('lsd_kpt8', 'lsd_kpt9'), id=229, color=[128, 64, 0]),
+ 230:
+ dict(link=('lsd_kpt9', 'lsd_kpt10'), id=230, color=[128, 64, 0]),
+ 231:
+ dict(link=('lsd_kpt10', 'lsd_kpt11'), id=231, color=[128, 64, 0]),
+ 232:
+ dict(link=('lsd_kpt11', 'lsd_kpt12'), id=232, color=[128, 64, 0]),
+ 233:
+ dict(link=('lsd_kpt12', 'lsd_kpt13'), id=233, color=[128, 64, 0]),
+ 234:
+ dict(link=('lsd_kpt13', 'lsd_kpt14'), id=234, color=[128, 64, 0]),
+ 235:
+ dict(link=('lsd_kpt14', 'lsd_kpt15'), id=235, color=[128, 64, 0]),
+ 236:
+ dict(link=('lsd_kpt15', 'lsd_kpt16'), id=236, color=[128, 64, 0]),
+ 237:
+ dict(link=('lsd_kpt16', 'lsd_kpt17'), id=237, color=[128, 64, 0]),
+ 238:
+ dict(link=('lsd_kpt17', 'lsd_kpt18'), id=238, color=[128, 64, 0]),
+ 239:
+ dict(link=('lsd_kpt18', 'lsd_kpt19'), id=239, color=[128, 64, 0]),
+ 240:
+ dict(link=('lsd_kpt19', 'lsd_kpt20'), id=240, color=[128, 64, 0]),
+ 241:
+ dict(link=('lsd_kpt20', 'lsd_kpt21'), id=241, color=[128, 64, 0]),
+ 242:
+ dict(link=('lsd_kpt21', 'lsd_kpt22'), id=242, color=[128, 64, 0]),
+ 243:
+ dict(link=('lsd_kpt22', 'lsd_kpt23'), id=243, color=[128, 64, 0]),
+ 244:
+ dict(link=('lsd_kpt23', 'lsd_kpt24'), id=244, color=[128, 64, 0]),
+ 245:
+ dict(link=('lsd_kpt24', 'lsd_kpt25'), id=245, color=[128, 64, 0]),
+ 246:
+ dict(link=('lsd_kpt25', 'lsd_kpt26'), id=246, color=[128, 64, 0]),
+ 247:
+ dict(link=('lsd_kpt26', 'lsd_kpt27'), id=247, color=[128, 64, 0]),
+ 248:
+ dict(link=('lsd_kpt27', 'lsd_kpt28'), id=248, color=[128, 64, 0]),
+ 249:
+ dict(link=('lsd_kpt28', 'lsd_kpt29'), id=249, color=[128, 64, 0]),
+ 250:
+ dict(link=('lsd_kpt29', 'lsd_kpt30'), id=250, color=[128, 64, 0]),
+ 251:
+ dict(link=('lsd_kpt30', 'lsd_kpt31'), id=251, color=[128, 64, 0]),
+ 252:
+ dict(link=('lsd_kpt31', 'lsd_kpt32'), id=252, color=[128, 64, 0]),
+ 253:
+ dict(link=('lsd_kpt32', 'lsd_kpt33'), id=253, color=[128, 64, 0]),
+ 254:
+ dict(link=('lsd_kpt33', 'lsd_kpt34'), id=254, color=[128, 64, 0]),
+ 255:
+ dict(link=('lsd_kpt34', 'lsd_kpt35'), id=255, color=[128, 64, 0]),
+ 256:
+ dict(link=('lsd_kpt35', 'lsd_kpt36'), id=256, color=[128, 64, 0]),
+ 257:
+ dict(link=('lsd_kpt36', 'lsd_kpt37'), id=257, color=[128, 64, 0]),
+ 258:
+ dict(link=('lsd_kpt37', 'lsd_kpt6'), id=258, color=[128, 64, 0]),
+ 259:
+ dict(link=('lsd_kpt6', 'lsd_kpt5'), id=259, color=[128, 64, 0]),
+ 260:
+ dict(link=('lsd_kpt5', 'lsd_kpt4'), id=260, color=[128, 64, 0]),
+ 261:
+ dict(link=('lsd_kpt4', 'lsd_kpt3'), id=261, color=[128, 64, 0]),
+ 262:
+ dict(link=('lsd_kpt3', 'lsd_kpt2'), id=262, color=[128, 64, 0]),
+ 263:
+ dict(link=('lsd_kpt6', 'lsd_kpt1'), id=263, color=[128, 64, 0]),
+ 264:
+ dict(link=('vd_kpt1', 'vd_kpt2'), id=264, color=[128, 64, 255]),
+ 265:
+ dict(link=('vd_kpt2', 'vd_kpt7'), id=265, color=[128, 64, 255]),
+ 266:
+ dict(link=('vd_kpt7', 'vd_kpt8'), id=266, color=[128, 64, 255]),
+ 267:
+ dict(link=('vd_kpt8', 'vd_kpt9'), id=267, color=[128, 64, 255]),
+ 268:
+ dict(link=('vd_kpt9', 'vd_kpt10'), id=268, color=[128, 64, 255]),
+ 269:
+ dict(link=('vd_kpt10', 'vd_kpt11'), id=269, color=[128, 64, 255]),
+ 270:
+ dict(link=('vd_kpt11', 'vd_kpt12'), id=270, color=[128, 64, 255]),
+ 271:
+ dict(link=('vd_kpt12', 'vd_kpt13'), id=271, color=[128, 64, 255]),
+ 272:
+ dict(link=('vd_kpt13', 'vd_kpt14'), id=272, color=[128, 64, 255]),
+ 273:
+ dict(link=('vd_kpt14', 'vd_kpt15'), id=273, color=[128, 64, 255]),
+ 274:
+ dict(link=('vd_kpt15', 'vd_kpt16'), id=274, color=[128, 64, 255]),
+ 275:
+ dict(link=('vd_kpt16', 'vd_kpt17'), id=275, color=[128, 64, 255]),
+ 276:
+ dict(link=('vd_kpt17', 'vd_kpt18'), id=276, color=[128, 64, 255]),
+ 277:
+ dict(link=('vd_kpt18', 'vd_kpt19'), id=277, color=[128, 64, 255]),
+ 278:
+ dict(link=('vd_kpt19', 'vd_kpt6'), id=278, color=[128, 64, 255]),
+ 279:
+ dict(link=('vd_kpt6', 'vd_kpt5'), id=279, color=[128, 64, 255]),
+ 280:
+ dict(link=('vd_kpt5', 'vd_kpt4'), id=280, color=[128, 64, 255]),
+ 281:
+ dict(link=('vd_kpt4', 'vd_kpt3'), id=281, color=[128, 64, 255]),
+ 282:
+ dict(link=('vd_kpt3', 'vd_kpt2'), id=282, color=[128, 64, 255]),
+ 283:
+ dict(link=('vd_kpt6', 'vd_kpt1'), id=283, color=[128, 64, 255]),
+ 284:
+ dict(link=('sd_kpt1', 'sd_kpt2'), id=284, color=[128, 64, 0]),
+ 285:
+ dict(link=('sd_kpt2', 'sd_kpt8'), id=285, color=[128, 64, 0]),
+ 286:
+ dict(link=('sd_kpt8', 'sd_kpt9'), id=286, color=[128, 64, 0]),
+ 287:
+ dict(link=('sd_kpt9', 'sd_kpt10'), id=287, color=[128, 64, 0]),
+ 288:
+ dict(link=('sd_kpt10', 'sd_kpt11'), id=288, color=[128, 64, 0]),
+ 289:
+ dict(link=('sd_kpt11', 'sd_kpt12'), id=289, color=[128, 64, 0]),
+ 290:
+ dict(link=('sd_kpt12', 'sd_kpt13'), id=290, color=[128, 64, 0]),
+ 291:
+ dict(link=('sd_kpt13', 'sd_kpt14'), id=291, color=[128, 64, 0]),
+ 292:
+ dict(link=('sd_kpt14', 'sd_kpt15'), id=292, color=[128, 64, 0]),
+ 293:
+ dict(link=('sd_kpt15', 'sd_kpt16'), id=293, color=[128, 64, 0]),
+ 294:
+ dict(link=('sd_kpt16', 'sd_kpt17'), id=294, color=[128, 64, 0]),
+ 295:
+ dict(link=('sd_kpt17', 'sd_kpt18'), id=295, color=[128, 64, 0]),
+ 296:
+ dict(link=('sd_kpt18', 'sd_kpt6'), id=296, color=[128, 64, 0]),
+ 297:
+ dict(link=('sd_kpt6', 'sd_kpt5'), id=297, color=[128, 64, 0]),
+ 298:
+ dict(link=('sd_kpt5', 'sd_kpt4'), id=298, color=[128, 64, 0]),
+ 299:
+ dict(link=('sd_kpt4', 'sd_kpt3'), id=299, color=[128, 64, 0]),
+ 300:
+ dict(link=('sd_kpt3', 'sd_kpt2'), id=300, color=[128, 64, 0]),
+ 301:
+ dict(link=('sd_kpt2', 'sd_kpt7'), id=301, color=[128, 64, 0]),
+ 302:
+ dict(link=('sd_kpt6', 'sd_kpt19'), id=302, color=[128, 64, 0]),
+ 303:
+ dict(link=('sd_kpt6', 'sd_kpt1'), id=303, color=[128, 64, 0])
+ }),
+ joint_weights=[
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
+ ],
+ sigmas=[])
+param_scheduler = [
+ dict(
+ type='LinearLR', begin=0, end=500, start_factor=0.001, by_epoch=False),
+ dict(
+ type='MultiStepLR',
+ begin=0,
+ end=150,
+ milestones=[100, 130],
+ gamma=0.1,
+ by_epoch=True)
+]
+optim_wrapper = dict(optimizer=dict(type='Adam', lr=0.0005))
+auto_scale_lr = dict(base_batch_size=512)
+dataset_type = 'DeepFashion2Dataset'
+data_mode = 'topdown'
+data_root = 'data/deepfashion2/'
+codec = dict(
+ type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
+train_pipeline = [
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+]
+val_pipeline = [
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+]
+train_dataloader = dict(
+ batch_size=8,
+ num_workers=6,
+ persistent_workers=True,
+ sampler=dict(type='DefaultSampler', shuffle=True),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='train/deepfashion2_short_sleeved_outwear.json',
+ data_prefix=dict(img='train/image/'),
+ pipeline=[
+ dict(type='LoadImage'),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='RandomFlip', direction='horizontal'),
+ dict(
+ type='RandomBBoxTransform',
+ shift_prob=0,
+ rotate_factor=60,
+ scale_factor=(0.75, 1.25)),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(
+ type='GenerateTarget',
+ encoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ dict(type='PackPoseInputs')
+ ]))
+val_dataloader = dict(
+ batch_size=8,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_short_sleeved_outwear.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+test_dataloader = dict(
+ batch_size=8,
+ num_workers=6,
+ persistent_workers=True,
+ drop_last=False,
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ dataset=dict(
+ type='DeepFashion2Dataset',
+ data_root='data/deepfashion2/',
+ data_mode='topdown',
+ ann_file='validation/deepfashion2_short_sleeved_outwear.json',
+ data_prefix=dict(img='validation/image/'),
+ test_mode=True,
+ pipeline=[
+ dict(type='LoadImage', backend_args=dict(backend='local')),
+ dict(type='GetBBoxCenterScale'),
+ dict(type='TopdownAffine', input_size=(192, 256)),
+ dict(type='PackPoseInputs')
+ ]))
+channel_cfg = dict(
+ num_output_channels=294,
+ dataset_joints=294,
+ dataset_channel=[[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ]],
+ inference_channel=[
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293
+ ])
+model = dict(
+ type='TopdownPoseEstimator',
+ data_preprocessor=dict(
+ type='PoseDataPreprocessor',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ bgr_to_rgb=True),
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),
+ head=dict(
+ type='HeatmapHead',
+ in_channels=2048,
+ out_channels=294,
+ loss=dict(type='KeypointMSELoss', use_target_weight=True),
+ decoder=dict(
+ type='MSRAHeatmap',
+ input_size=(192, 256),
+ heatmap_size=(48, 64),
+ sigma=2)),
+ test_cfg=dict(flip_test=True, flip_mode='heatmap', shift_heatmap=True))
+val_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+test_evaluator = [
+ dict(type='PCKAccuracy', thr=0.2),
+ dict(type='AUC'),
+ dict(type='EPE')
+]
+launcher = 'pytorch'
+work_dir = './work_dirs/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192'
diff --git a/Model/Model6/Model6_2_ProfileRecogition/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/hr_4xb16_1024e_4channel-checkpoint.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/hr_4xb16_1024e_4channel-checkpoint.py
new file mode 100644
index 0000000000000000000000000000000000000000..372a6632ae325da40530356fa2dc51479986359d
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/hr_4xb16_1024e_4channel-checkpoint.py
@@ -0,0 +1,113 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+default_hooks = dict(
+ # print log every 50 iterations.
+ logger=dict(type='LoggerHook', interval=50),
+ # save checkpoint per 8 epochs.
+ checkpoint=dict(save_best='auto', interval=16)
+)
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
+
+dataset_type = 'CustomDataset'
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=16, # 每张 GPU 的 batchsize
+ num_workers=5, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=16,
+ num_workers=5,
+ dataset=dict(
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
+
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='HRNet', # 主干网络类型
+ arch='w32', # 主干网络架构
+ in_channels=4,
+ 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))),
+ ),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=256,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
+
+
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/hr_4xb32_1024e_4channel-checkpoint.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/hr_4xb32_1024e_4channel-checkpoint.py
new file mode 100644
index 0000000000000000000000000000000000000000..0a4b8d3739c2612647dbd0a01b43d709e51a7da4
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/hr_4xb32_1024e_4channel-checkpoint.py
@@ -0,0 +1,115 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+default_hooks = dict(
+ # print log every 50 iterations.
+ logger=dict(type='LoggerHook', interval=10),
+ # save checkpoint per 8 epochs.
+ checkpoint=dict(save_best='auto', interval=16)
+)
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
+
+dataset_type = 'CustomDataset'
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=32, # 每张 GPU 的 batchsize
+ num_workers=5, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
+
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='HRNet', # 主干网络类型
+ arch='w32', # 主干网络架构
+ in_channels=4,
+ 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))),
+ ),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=256,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
+
+optim_wrapper = dict(
+ accumulative_counts=8
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/resnext101_4xb16_1024e_4channel-checkpoint.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/resnext101_4xb16_1024e_4channel-checkpoint.py
new file mode 100644
index 0000000000000000000000000000000000000000..0de71f68d6705b3fc1000419ca705be2b839d425
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/resnext101_4xb16_1024e_4channel-checkpoint.py
@@ -0,0 +1,88 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+default_hooks = dict(
+ # print log every 50 iterations.
+ logger=dict(type='LoggerHook', interval=25),
+ # save checkpoint per 8 epochs.
+ checkpoint=dict(save_best='auto', interval=16)
+)
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
+
+dataset_type = 'CustomDataset'
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=16, # 每张 GPU 的 batchsize
+ num_workers=5, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=16,
+ num_workers=5,
+ dataset=dict(
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
+
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='ResNeXt', # 主干网络类型
+ depth=101,
+ in_channels=4, # 输入通道数
+ ),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
+
+
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/resnext101_4xb32_2048e_4channel-checkpoint.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/resnext101_4xb32_2048e_4channel-checkpoint.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e06572819b7798a43e71ea69d4b0131ef14c2d4
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/.ipynb_checkpoints/resnext101_4xb32_2048e_4channel-checkpoint.py
@@ -0,0 +1,107 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+default_hooks = dict(
+ # print log every 50 iterations.
+ logger=dict(type='LoggerHook', interval=10),
+ # save checkpoint per 8 epochs.
+ checkpoint=dict(save_best='auto', interval=16)
+)
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
+
+dataset_type = 'CustomDataset'
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=32, # 每张 GPU 的 batchsize
+ num_workers=5, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
+
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='ResNeXt', # 主干网络类型
+ depth=101,
+ in_channels=4, # 输入通道数
+ ),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
+
+optim_wrapper = dict(
+ accumulative_counts=8
+)
+
+param_scheduler = [
+ # 在前10轮迭代中,逐迭代次数,线性预热
+ dict(type='LinearLR',
+ start_factor=0.00001,
+ by_epoch=True,
+ end=10,
+ convert_to_iter_based=True, # 逐迭代次数更新学习率.
+ ),
+ # 在 10 轮次后,通过余弦退火衰减
+ dict(type='MultiStepLR',
+ by_epoch=True, # 按轮次更新学习率
+ milestones=[30, 210, 390, 570, 750, 930, 1110, 1290, 1470, 1650, 1830],
+ gamma=0.9)
+]
+
+train_cfg = dict(by_epoch=True, max_epochs=2048, val_interval=16)
\ No newline at end of file
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/custom_ds.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/custom_ds.py
new file mode 100644
index 0000000000000000000000000000000000000000..35a9a1fbebf38be92efcb59968f9342d71970051
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/custom_ds.py
@@ -0,0 +1,55 @@
+dataset_type = 'CustomDataset'
+
+# config of data prepare
+# None
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile'), # 读取图像
+ dict(type='ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=8, # 每张 GPU 的 batchsize
+ num_workers=4, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=8,
+ num_workers=4,
+ dataset=dict(
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/pipelines/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/pipelines/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/pipelines/auto_aug.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/pipelines/auto_aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a10f7eec61ea40336698118342939470f73d052
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/pipelines/auto_aug.py
@@ -0,0 +1,96 @@
+# Policy for ImageNet, refers to
+# https://github.com/DeepVoltaire/AutoAugment/blame/master/autoaugment.py
+policy_imagenet = [
+ [
+ dict(type='Posterize', bits=4, prob=0.4),
+ dict(type='Rotate', angle=30., prob=0.6)
+ ],
+ [
+ dict(type='Solarize', thr=256 / 9 * 4, prob=0.6),
+ dict(type='AutoContrast', prob=0.6)
+ ],
+ [dict(type='Equalize', prob=0.8),
+ dict(type='Equalize', prob=0.6)],
+ [
+ dict(type='Posterize', bits=5, prob=0.6),
+ dict(type='Posterize', bits=5, prob=0.6)
+ ],
+ [
+ dict(type='Equalize', prob=0.4),
+ dict(type='Solarize', thr=256 / 9 * 5, prob=0.2)
+ ],
+ [
+ dict(type='Equalize', prob=0.4),
+ dict(type='Rotate', angle=30 / 9 * 8, prob=0.8)
+ ],
+ [
+ dict(type='Solarize', thr=256 / 9 * 6, prob=0.6),
+ dict(type='Equalize', prob=0.6)
+ ],
+ [dict(type='Posterize', bits=6, prob=0.8),
+ dict(type='Equalize', prob=1.)],
+ [
+ dict(type='Rotate', angle=10., prob=0.2),
+ dict(type='Solarize', thr=256 / 9, prob=0.6)
+ ],
+ [
+ dict(type='Equalize', prob=0.6),
+ dict(type='Posterize', bits=5, prob=0.4)
+ ],
+ [
+ dict(type='Rotate', angle=30 / 9 * 8, prob=0.8),
+ dict(type='ColorTransform', magnitude=0., prob=0.4)
+ ],
+ [
+ dict(type='Rotate', angle=30., prob=0.4),
+ dict(type='Equalize', prob=0.6)
+ ],
+ [dict(type='Equalize', prob=0.0),
+ dict(type='Equalize', prob=0.8)],
+ [dict(type='Invert', prob=0.6),
+ dict(type='Equalize', prob=1.)],
+ [
+ dict(type='ColorTransform', magnitude=0.4, prob=0.6),
+ dict(type='Contrast', magnitude=0.8, prob=1.)
+ ],
+ [
+ dict(type='Rotate', angle=30 / 9 * 8, prob=0.8),
+ dict(type='ColorTransform', magnitude=0.2, prob=1.)
+ ],
+ [
+ dict(type='ColorTransform', magnitude=0.8, prob=0.8),
+ dict(type='Solarize', thr=256 / 9 * 2, prob=0.8)
+ ],
+ [
+ dict(type='Sharpness', magnitude=0.7, prob=0.4),
+ dict(type='Invert', prob=0.6)
+ ],
+ [
+ dict(
+ type='Shear',
+ magnitude=0.3 / 9 * 5,
+ prob=0.6,
+ direction='horizontal'),
+ dict(type='Equalize', prob=1.)
+ ],
+ [
+ dict(type='ColorTransform', magnitude=0., prob=0.4),
+ dict(type='Equalize', prob=0.6)
+ ],
+ [
+ dict(type='Equalize', prob=0.4),
+ dict(type='Solarize', thr=256 / 9 * 5, prob=0.2)
+ ],
+ [
+ dict(type='Solarize', thr=256 / 9 * 4, prob=0.6),
+ dict(type='AutoContrast', prob=0.6)
+ ],
+ [dict(type='Invert', prob=0.6),
+ dict(type='Equalize', prob=1.)],
+ [
+ dict(type='ColorTransform', magnitude=0.4, prob=0.6),
+ dict(type='Contrast', magnitude=0.8, prob=1.)
+ ],
+ [dict(type='Equalize', prob=0.8),
+ dict(type='Equalize', prob=0.6)],
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/pipelines/rand_aug.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/pipelines/rand_aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..f2bab3c364f0d0223f2c972673da3abb6ac21bc6
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/datasets/pipelines/rand_aug.py
@@ -0,0 +1,43 @@
+# Refers to `_RAND_INCREASING_TRANSFORMS` in pytorch-image-models
+rand_increasing_policies = [
+ dict(type='AutoContrast'),
+ dict(type='Equalize'),
+ dict(type='Invert'),
+ dict(type='Rotate', magnitude_key='angle', magnitude_range=(0, 30)),
+ dict(type='Posterize', magnitude_key='bits', magnitude_range=(4, 0)),
+ dict(type='Solarize', magnitude_key='thr', magnitude_range=(256, 0)),
+ dict(
+ type='SolarizeAdd',
+ magnitude_key='magnitude',
+ magnitude_range=(0, 110)),
+ dict(
+ type='ColorTransform',
+ magnitude_key='magnitude',
+ magnitude_range=(0, 0.9)),
+ dict(type='Contrast', magnitude_key='magnitude', magnitude_range=(0, 0.9)),
+ dict(
+ type='Brightness', magnitude_key='magnitude',
+ magnitude_range=(0, 0.9)),
+ dict(
+ type='Sharpness', magnitude_key='magnitude', magnitude_range=(0, 0.9)),
+ dict(
+ type='Shear',
+ magnitude_key='magnitude',
+ magnitude_range=(0, 0.3),
+ direction='horizontal'),
+ dict(
+ type='Shear',
+ magnitude_key='magnitude',
+ magnitude_range=(0, 0.3),
+ direction='vertical'),
+ dict(
+ type='Translate',
+ magnitude_key='magnitude',
+ magnitude_range=(0, 0.45),
+ direction='horizontal'),
+ dict(
+ type='Translate',
+ magnitude_key='magnitude',
+ magnitude_range=(0, 0.45),
+ direction='vertical')
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/default_runtime.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/default_runtime.py
new file mode 100644
index 0000000000000000000000000000000000000000..3816d423fabab10d26b0abfea1f60eb270c1dc83
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/default_runtime.py
@@ -0,0 +1,51 @@
+# defaults to use registries in mmpretrain
+default_scope = 'mmpretrain'
+
+# configure default hooks
+default_hooks = dict(
+ # record the time of every iteration.
+ timer=dict(type='IterTimerHook'),
+
+ # print log every 100 iterations.
+ logger=dict(type='LoggerHook', interval=100),
+
+ # enable the parameter scheduler.
+ param_scheduler=dict(type='ParamSchedulerHook'),
+
+ # save checkpoint per epoch.
+ checkpoint=dict(type='CheckpointHook', interval=1),
+
+ # set sampler seed in distributed evrionment.
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+
+ # validation results visualization, set True to enable it.
+ visualization=dict(type='VisualizationHook', enable=False),
+)
+
+# configure environment
+env_cfg = dict(
+ # whether to enable cudnn benchmark
+ cudnn_benchmark=False,
+
+ # set multi process parameters
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+
+ # set distributed parameters
+ dist_cfg=dict(backend='nccl'),
+)
+
+# set visualizer
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(type='UniversalVisualizer', vis_backends=vis_backends)
+
+# set log level
+log_level = 'INFO'
+
+# load from which checkpoint
+load_from = None
+
+# whether to resume training from the loaded checkpoint
+resume = False
+
+# Defaults to use random seed and disable `deterministic`
+randomness = dict(seed=None, deterministic=False)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/custom_model.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/custom_model.py
new file mode 100644
index 0000000000000000000000000000000000000000..fcb6ba215fb9c2293dbeff419aa4019e3d2ac233
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/custom_model.py
@@ -0,0 +1,22 @@
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='ResNet', # 主干网络类型
+ # 除了 `type` 之外的所有字段都来自 `ResNet` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.backbones.ResNet.html
+ depth=50,
+ num_stages=4, # 主干网络状态(stages)的数目,这些状态产生的特征图作为后续的 head 的输入。
+ in_channels=3, # 输入图像的通道数
+ out_indices=(3, ), # 输出的特征图输出索引。
+ frozen_stages=-1, # 冻结主干网的层数
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
\ No newline at end of file
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest101.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest101.py
new file mode 100644
index 0000000000000000000000000000000000000000..3780c1549359ec1850ce1db546d23a667e699d4f
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest101.py
@@ -0,0 +1,25 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNeSt',
+ depth=101,
+ num_stages=4,
+ stem_channels=128,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(
+ type='LabelSmoothLoss',
+ label_smooth_val=0.1,
+ num_classes=1000,
+ reduction='mean',
+ loss_weight=1.0),
+ topk=(1, 5),
+ cal_acc=False),
+ train_cfg=dict(augments=dict(type='Mixup', alpha=0.2)),
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest200.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest200.py
new file mode 100644
index 0000000000000000000000000000000000000000..40d8f03e7f528f8c0132bd2c19515460fd47fe70
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest200.py
@@ -0,0 +1,25 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNeSt',
+ depth=200,
+ num_stages=4,
+ stem_channels=128,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(
+ type='LabelSmoothLoss',
+ label_smooth_val=0.1,
+ num_classes=1000,
+ reduction='mean',
+ loss_weight=1.0),
+ topk=(1, 5),
+ cal_acc=False),
+ train_cfg=dict(augments=dict(type='Mixup', alpha=0.2)),
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest269.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest269.py
new file mode 100644
index 0000000000000000000000000000000000000000..c37626f5678630383693d784d2590f27caa11de2
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest269.py
@@ -0,0 +1,25 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNeSt',
+ depth=269,
+ num_stages=4,
+ stem_channels=128,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(
+ type='LabelSmoothLoss',
+ label_smooth_val=0.1,
+ num_classes=1000,
+ reduction='mean',
+ loss_weight=1.0),
+ topk=(1, 5),
+ cal_acc=False),
+ train_cfg=dict(augments=dict(type='Mixup', alpha=0.2)),
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest50.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest50.py
new file mode 100644
index 0000000000000000000000000000000000000000..51c90e86f468edccc3de3b0e7cd783548d220db4
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnest50.py
@@ -0,0 +1,24 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNeSt',
+ depth=50,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(
+ type='LabelSmoothLoss',
+ label_smooth_val=0.1,
+ num_classes=1000,
+ reduction='mean',
+ loss_weight=1.0),
+ topk=(1, 5),
+ cal_acc=False),
+ train_cfg=dict(augments=dict(type='Mixup', alpha=0.2)),
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet101.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet101.py
new file mode 100644
index 0000000000000000000000000000000000000000..1147cd4be9aff00ad6ce66c31e2839c1a94f9ca3
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet101.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet',
+ depth=101,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet101_cifar.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet101_cifar.py
new file mode 100644
index 0000000000000000000000000000000000000000..a84d470e3a9828532e5cddcb1a3f7aa4fcae9f68
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet101_cifar.py
@@ -0,0 +1,16 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet_CIFAR',
+ depth=101,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=10,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet152.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet152.py
new file mode 100644
index 0000000000000000000000000000000000000000..94a718c3cec213727a7a2f11baeb3594fd37532e
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet152.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet',
+ depth=152,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet152_cifar.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet152_cifar.py
new file mode 100644
index 0000000000000000000000000000000000000000..55c0cc6c66dbde26bebe6d99d791c3e3f28e4e27
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet152_cifar.py
@@ -0,0 +1,16 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet_CIFAR',
+ depth=152,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=10,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet18.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet18.py
new file mode 100644
index 0000000000000000000000000000000000000000..7c66758ee4aadced38c815e98af68b74aa310a2e
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet18.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet',
+ depth=18,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=512,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet18_cifar.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet18_cifar.py
new file mode 100644
index 0000000000000000000000000000000000000000..7b9cf1e7337de73aa21515547b6c3d16e2b178ea
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet18_cifar.py
@@ -0,0 +1,16 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet_CIFAR',
+ depth=18,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=10,
+ in_channels=512,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet34.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet34.py
new file mode 100644
index 0000000000000000000000000000000000000000..100ee286bead6b5dd88f1752660e8ab9d0498e37
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet34.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet',
+ depth=34,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=512,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet34_cifar.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet34_cifar.py
new file mode 100644
index 0000000000000000000000000000000000000000..55d033bc30bcbde7aef8e57ad950f59c248ad74b
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet34_cifar.py
@@ -0,0 +1,16 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet_CIFAR',
+ depth=34,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=10,
+ in_channels=512,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet34_gem.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet34_gem.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c0e0d3e8dc5d7a0b259f1624ee2402af8a401cd
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet34_gem.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet',
+ depth=34,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GeneralizedMeanPooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=512,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50.py
new file mode 100644
index 0000000000000000000000000000000000000000..129a2bb50c91f3034997d216f3a9efb743d9cc40
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cifar.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cifar.py
new file mode 100644
index 0000000000000000000000000000000000000000..33b66d526482245237faa2862d376797c21a8ee4
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cifar.py
@@ -0,0 +1,16 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet_CIFAR',
+ depth=50,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=10,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cifar_cutmix.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cifar_cutmix.py
new file mode 100644
index 0000000000000000000000000000000000000000..73c38be271a90b1655ae63e4f36cf6c3a3c5fdc4
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cifar_cutmix.py
@@ -0,0 +1,18 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet_CIFAR',
+ depth=50,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='MultiLabelLinearClsHead',
+ num_classes=10,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0, use_soft=True)),
+ train_cfg=dict(
+ augments=dict(type='BatchCutMix', alpha=1.0, num_classes=10,
+ prob=1.0)))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cifar_mixup.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cifar_mixup.py
new file mode 100644
index 0000000000000000000000000000000000000000..f165c2466bd8a67cbfadd5f3a388d4fe03e6d446
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cifar_mixup.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet_CIFAR',
+ depth=50,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='MultiLabelLinearClsHead',
+ num_classes=10,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0, use_soft=True)),
+ train_cfg=dict(augments=dict(type='Mixup', alpha=1.)),
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cutmix.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cutmix.py
new file mode 100644
index 0000000000000000000000000000000000000000..fb79088b798d1c16eb6c336006143c2fe288e6a2
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_cutmix.py
@@ -0,0 +1,18 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='MultiLabelLinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0, use_soft=True)),
+ train_cfg=dict(
+ augments=dict(
+ type='BatchCutMix', alpha=1.0, num_classes=1000, prob=1.0)))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_label_smooth.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_label_smooth.py
new file mode 100644
index 0000000000000000000000000000000000000000..b6f793751904658b3e7e01a5ffdaa6b86e156e66
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_label_smooth.py
@@ -0,0 +1,18 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(
+ type='LabelSmoothLoss', label_smooth_val=0.1, loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_mixup.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_mixup.py
new file mode 100644
index 0000000000000000000000000000000000000000..23130a69c98823a6979dcd7ee7441746753a9865
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnet50_mixup.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='MultiLabelLinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0, use_soft=True)),
+ train_cfg=dict(augments=dict(type='Mixup', alpha=0.2)),
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1c50.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1c50.py
new file mode 100644
index 0000000000000000000000000000000000000000..3b973e20181cd3cf1c470db84abf97aeaa0549c1
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1c50.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1d101.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1d101.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e56223121fb22ac089800ebeb69310758d0f2e7
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1d101.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNetV1d',
+ depth=101,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1d152.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1d152.py
new file mode 100644
index 0000000000000000000000000000000000000000..58cc73beb318e38f9ce79154a1265be1a7dba17b
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1d152.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNetV1d',
+ depth=152,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1d50.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1d50.py
new file mode 100644
index 0000000000000000000000000000000000000000..015aaa3d8182cae50f392d7103e24e8ac8a188aa
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/models/resnetv1d50.py
@@ -0,0 +1,17 @@
+# model settings
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ type='ResNetV1d',
+ depth=50,
+ num_stages=4,
+ out_indices=(3, ),
+ style='pytorch'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 5),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/schedules/.ipynb_checkpoints/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/schedules/.ipynb_checkpoints/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/schedules/.ipynb_checkpoints/custom_schedule-checkpoint.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/schedules/.ipynb_checkpoints/custom_schedule-checkpoint.py
new file mode 100644
index 0000000000000000000000000000000000000000..26be10220dbfe05fc5153ca3a34322ccdf81c269
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/schedules/.ipynb_checkpoints/custom_schedule-checkpoint.py
@@ -0,0 +1,40 @@
+optim_wrapper = dict(
+ # 使用 SGD 优化器来优化参数
+ type='OptimWrapper',
+ optimizer=dict(
+ type='Adam',
+ lr=0.0001,
+ betas=(0.9, 0.999),
+ eps=1e-08,
+ weight_decay=0,
+ amsgrad=False),
+ accumulative_counts=4
+)
+
+# 学习率参数的调整策略
+param_scheduler = [
+ # 在前10轮迭代中,逐迭代次数,线性预热
+ dict(type='LinearLR',
+ start_factor=0.00001,
+ by_epoch=True,
+ end=10,
+ convert_to_iter_based=True, # 逐迭代次数更新学习率.
+ ),
+ # 在 10 轮次后,通过余弦退火衰减
+ dict(type='MultiStepLR',
+ by_epoch=True, # 按轮次更新学习率
+ milestones=[30, 120, 200, 270, 330, 390, 450, 510, 580, 660, 750, 840, 930],
+ gamma=0.9)
+]
+
+# 'by_epoch=True' 默认使用 `EpochBaseLoop`, 'by_epoch=False' 默认使用 `IterBaseLoop`
+train_cfg = dict(by_epoch=True, max_epochs=1024, val_interval=16)
+# 使用默认的验证循环控制器
+val_cfg = dict()
+# 使用默认的测试循环控制器
+test_cfg = dict()
+
+# 通过默认策略自动缩放学习率,此策略适用于总批次大小 256
+# 如果你使用不同的总批量大小,比如 512 并启用自动学习率缩放
+# 我们将学习率扩大到 2 倍
+# auto_scale_lr = dict(base_batch_size=256)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/schedules/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/schedules/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/schedules/custom_schedule.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/schedules/custom_schedule.py
new file mode 100644
index 0000000000000000000000000000000000000000..26be10220dbfe05fc5153ca3a34322ccdf81c269
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/_base_/schedules/custom_schedule.py
@@ -0,0 +1,40 @@
+optim_wrapper = dict(
+ # 使用 SGD 优化器来优化参数
+ type='OptimWrapper',
+ optimizer=dict(
+ type='Adam',
+ lr=0.0001,
+ betas=(0.9, 0.999),
+ eps=1e-08,
+ weight_decay=0,
+ amsgrad=False),
+ accumulative_counts=4
+)
+
+# 学习率参数的调整策略
+param_scheduler = [
+ # 在前10轮迭代中,逐迭代次数,线性预热
+ dict(type='LinearLR',
+ start_factor=0.00001,
+ by_epoch=True,
+ end=10,
+ convert_to_iter_based=True, # 逐迭代次数更新学习率.
+ ),
+ # 在 10 轮次后,通过余弦退火衰减
+ dict(type='MultiStepLR',
+ by_epoch=True, # 按轮次更新学习率
+ milestones=[30, 120, 200, 270, 330, 390, 450, 510, 580, 660, 750, 840, 930],
+ gamma=0.9)
+]
+
+# 'by_epoch=True' 默认使用 `EpochBaseLoop`, 'by_epoch=False' 默认使用 `IterBaseLoop`
+train_cfg = dict(by_epoch=True, max_epochs=1024, val_interval=16)
+# 使用默认的验证循环控制器
+val_cfg = dict()
+# 使用默认的测试循环控制器
+test_cfg = dict()
+
+# 通过默认策略自动缩放学习率,此策略适用于总批次大小 256
+# 如果你使用不同的总批量大小,比如 512 并启用自动学习率缩放
+# 我们将学习率扩大到 2 倍
+# auto_scale_lr = dict(base_batch_size=256)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/custom_cfg.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/custom_cfg.py
new file mode 100644
index 0000000000000000000000000000000000000000..19bc9aa0cdb7ccfa7cf4729b5c56e2ecd5a8d3a9
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/custom_cfg.py
@@ -0,0 +1,10 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/models/custom_model.py', # 模型配置
+ '../configs/_base_/datasets/custom_ds.py', # 数据配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/hr_4xb16_1024e_4channel.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/hr_4xb16_1024e_4channel.py
new file mode 100644
index 0000000000000000000000000000000000000000..372a6632ae325da40530356fa2dc51479986359d
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/hr_4xb16_1024e_4channel.py
@@ -0,0 +1,113 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+default_hooks = dict(
+ # print log every 50 iterations.
+ logger=dict(type='LoggerHook', interval=50),
+ # save checkpoint per 8 epochs.
+ checkpoint=dict(save_best='auto', interval=16)
+)
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
+
+dataset_type = 'CustomDataset'
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=16, # 每张 GPU 的 batchsize
+ num_workers=5, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=16,
+ num_workers=5,
+ dataset=dict(
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
+
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='HRNet', # 主干网络类型
+ arch='w32', # 主干网络架构
+ in_channels=4,
+ 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))),
+ ),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=256,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
+
+
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/hr_4xb32_1024e_4channel.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/hr_4xb32_1024e_4channel.py
new file mode 100644
index 0000000000000000000000000000000000000000..0a4b8d3739c2612647dbd0a01b43d709e51a7da4
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/hr_4xb32_1024e_4channel.py
@@ -0,0 +1,115 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+default_hooks = dict(
+ # print log every 50 iterations.
+ logger=dict(type='LoggerHook', interval=10),
+ # save checkpoint per 8 epochs.
+ checkpoint=dict(save_best='auto', interval=16)
+)
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
+
+dataset_type = 'CustomDataset'
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=32, # 每张 GPU 的 batchsize
+ num_workers=5, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
+
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='HRNet', # 主干网络类型
+ arch='w32', # 主干网络架构
+ in_channels=4,
+ 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))),
+ ),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=256,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
+
+optim_wrapper = dict(
+ accumulative_counts=8
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/README.md b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..286b77381a57401607cc52568d1d81b8ba5b4d83
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/README.md
@@ -0,0 +1,140 @@
+# ResNet
+
+> [Deep Residual Learning for Image Recognition](https://openaccess.thecvf.com/content_cvpr_2016/html/He_Deep_Residual_Learning_CVPR_2016_paper.html)
+
+
+
+## Introduction
+
+**Residual Networks**, or **ResNets**, learn residual functions with reference to the layer inputs, instead of
+learning unreferenced functions. In the mainstream previous works, like VGG, the neural networks are a stack
+of layers and every layer attempts to fit a desired underlying mapping. In ResNets, a few stacked layers are
+grouped as a block, and the layers in a block attempts to learn a residual mapping.
+
+Formally, denoting the desired underlying mapping of a block as $\mathcal{H}(x)$, split the underlying mapping
+into the sum of the identity and the residual mapping as $\mathcal{H}(x) = x + \mathcal{F}(x)$, and let the
+stacked non-linear layers fit the residual mapping $\mathcal{F}(x)$.
+
+Many works proved this method makes deep neural networks easier to optimize, and can gain accuracy from
+considerably increased depth. Recently, the residual structure is widely used in various models.
+
+
+

+
+
+## Abstract
+
+
+
+Show the paper's abstract
+
+
+Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. We explicitly reformulate the layers as learning residual functions with reference to the layer inputs, instead of learning unreferenced functions. We provide comprehensive empirical evidence showing that these residual networks are easier to optimize, and can gain accuracy from considerably increased depth. On the ImageNet dataset we evaluate residual nets with a depth of up to 152 layers---8x deeper than VGG nets but still having lower complexity. An ensemble of these residual nets achieves 3.57% error on the ImageNet test set. This result won the 1st place on the ILSVRC 2015 classification task. We also present analysis on CIFAR-10 with 100 and 1000 layers.
+
+The depth of representations is of central importance for many visual recognition tasks. Solely due to our extremely deep representations, we obtain a 28% relative improvement on the COCO object detection dataset. Deep residual nets are foundations of our submissions to ILSVRC & COCO 2015 competitions, where we also won the 1st places on the tasks of ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation.
+
+
+
+
+## How to use it?
+
+
+
+**Predict image**
+
+```python
+from mmpretrain import inference_model
+
+predict = inference_model('resnet18_8xb16_cifar10', 'demo/bird.JPEG')
+print(predict['pred_class'])
+print(predict['pred_score'])
+```
+
+**Use the model**
+
+```python
+import torch
+from mmpretrain import get_model
+
+model = get_model('resnet18_8xb16_cifar10', pretrained=True)
+inputs = torch.rand(1, 3, 224, 224)
+out = model(inputs)
+print(type(out))
+# To extract features.
+feats = model.extract_feat(inputs)
+print(type(feats))
+```
+
+**Train/Test Command**
+
+Prepare your dataset according to the [docs](https://mmpretrain.readthedocs.io/en/latest/user_guides/dataset_prepare.html#prepare-dataset).
+
+Train:
+
+```shell
+python tools/train.py configs/resnet/resnet18_8xb16_cifar10.py
+```
+
+Test:
+
+```shell
+python tools/test.py configs/resnet/resnet18_8xb16_cifar10.py https://download.openmmlab.com/mmclassification/v0/resnet/resnet18_b16x8_cifar10_20210528-bd6371c8.pth
+```
+
+
+
+## Models and results
+
+### Image Classification on ImageNet-1k
+
+| Model | Pretrain | Params (M) | Flops (G) | Top-1 (%) | Top-5 (%) | Config | Download |
+| :--------------------------------- | :----------: | :--------: | :-------: | :-------: | :-------: | :-------------------------------------------: | :----------------------------------------------------------------------: |
+| `resnet18_8xb32_in1k` | From scratch | 11.69 | 1.82 | 69.90 | 89.43 | [config](resnet18_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet18_8xb32_in1k_20210831-fbbb1da6.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet18_8xb32_in1k_20210831-fbbb1da6.json) |
+| `resnet34_8xb32_in1k` | From scratch | 2.18 | 3.68 | 73.62 | 91.59 | [config](resnet34_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet34_8xb32_in1k_20210831-f257d4e6.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet34_8xb32_in1k_20210831-f257d4e6.json) |
+| `resnet50_8xb32_in1k` | From scratch | 25.56 | 4.12 | 76.55 | 93.06 | [config](resnet50_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb32_in1k_20210831-ea4938fc.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb32_in1k_20210831-ea4938fc.json) |
+| `resnet101_8xb32_in1k` | From scratch | 44.55 | 7.85 | 77.97 | 94.06 | [config](resnet101_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet101_8xb32_in1k_20210831-539c63f8.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet101_8xb32_in1k_20210831-539c63f8.json) |
+| `resnet152_8xb32_in1k` | From scratch | 60.19 | 11.58 | 78.48 | 94.13 | [config](resnet152_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet152_8xb32_in1k_20210901-4d7582fa.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet152_8xb32_in1k_20210901-4d7582fa.json) |
+| `resnetv1d50_8xb32_in1k` | From scratch | 25.58 | 4.36 | 77.54 | 93.57 | [config](resnetv1d50_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1d50_b32x8_imagenet_20210531-db14775a.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1d50_b32x8_imagenet_20210531-db14775a.json) |
+| `resnetv1d101_8xb32_in1k` | From scratch | 44.57 | 8.09 | 78.93 | 94.48 | [config](resnetv1d101_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1d101_b32x8_imagenet_20210531-6e13bcd3.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1d101_b32x8_imagenet_20210531-6e13bcd3.json) |
+| `resnetv1d152_8xb32_in1k` | From scratch | 60.21 | 11.82 | 79.41 | 94.70 | [config](resnetv1d152_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1d152_b32x8_imagenet_20210531-278cf22a.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1d152_b32x8_imagenet_20210531-278cf22a.json) |
+| `resnet50_8xb32-fp16_in1k` | From scratch | 25.56 | 4.12 | 76.30 | 93.07 | [config](resnet50_8xb32-fp16_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/fp16/resnet50_batch256_fp16_imagenet_20210320-b3964210.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/fp16/resnet50_batch256_fp16_imagenet_20210320-b3964210.json) |
+| `resnet50_8xb256-rsb-a1-600e_in1k` | From scratch | 25.56 | 4.12 | 80.12 | 94.78 | [config](resnet50_8xb256-rsb-a1-600e_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb256-rsb-a1-600e_in1k_20211228-20e21305.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb256-rsb-a1-600e_in1k_20211228-20e21305.json) |
+| `resnet50_8xb256-rsb-a2-300e_in1k` | From scratch | 25.56 | 4.12 | 79.55 | 94.37 | [config](resnet50_8xb256-rsb-a2-300e_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb256-rsb-a2-300e_in1k_20211228-0fd8be6e.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb256-rsb-a2-300e_in1k_20211228-0fd8be6e.json) |
+| `resnet50_8xb256-rsb-a3-100e_in1k` | From scratch | 25.56 | 4.12 | 78.30 | 93.80 | [config](resnet50_8xb256-rsb-a3-100e_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb256-rsb-a3-100e_in1k_20211228-3493673c.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb256-rsb-a3-100e_in1k_20211228-3493673c.json) |
+| `resnetv1c50_8xb32_in1k` | From scratch | 25.58 | 4.36 | 77.01 | 93.58 | [config](resnetv1c50_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1c50_8xb32_in1k_20220214-3343eccd.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1c50_8xb32_in1k_20220214-3343eccd.json) |
+| `resnetv1c101_8xb32_in1k` | From scratch | 44.57 | 8.09 | 78.30 | 94.27 | [config](resnetv1c101_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1c101_8xb32_in1k_20220214-434fe45f.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1c101_8xb32_in1k_20220214-434fe45f.json) |
+| `resnetv1c152_8xb32_in1k` | From scratch | 60.21 | 11.82 | 78.76 | 94.41 | [config](resnetv1c152_8xb32_in1k.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1c152_8xb32_in1k_20220214-c013291f.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1c152_8xb32_in1k_20220214-c013291f.json) |
+
+### Image Classification on CIFAR-10
+
+| Model | Pretrain | Params (M) | Flops (G) | Top-1 (%) | Config | Download |
+| :------------------------ | :----------: | :--------: | :-------: | :-------: | :----------------------------------: | :-------------------------------------------------------------------------------------------------: |
+| `resnet18_8xb16_cifar10` | From scratch | 11.17 | 0.56 | 94.82 | [config](resnet18_8xb16_cifar10.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet18_b16x8_cifar10_20210528-bd6371c8.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet18_b16x8_cifar10_20210528-bd6371c8.json) |
+| `resnet34_8xb16_cifar10` | From scratch | 21.28 | 1.16 | 95.34 | [config](resnet34_8xb16_cifar10.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet34_b16x8_cifar10_20210528-a8aa36a6.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet34_b16x8_cifar10_20210528-a8aa36a6.json) |
+| `resnet50_8xb16_cifar10` | From scratch | 23.52 | 1.31 | 95.55 | [config](resnet50_8xb16_cifar10.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_b16x8_cifar10_20210528-f54bfad9.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_b16x8_cifar10_20210528-f54bfad9.json) |
+| `resnet101_8xb16_cifar10` | From scratch | 42.51 | 2.52 | 95.58 | [config](resnet101_8xb16_cifar10.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet101_b16x8_cifar10_20210528-2d29e936.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet101_b16x8_cifar10_20210528-2d29e936.json) |
+| `resnet152_8xb16_cifar10` | From scratch | 58.16 | 3.74 | 95.76 | [config](resnet152_8xb16_cifar10.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet152_b16x8_cifar10_20210528-3e8e9178.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet152_b16x8_cifar10_20210528-3e8e9178.json) |
+
+### Image Classification on CIFAR-100
+
+| Model | Pretrain | Params (M) | Flops (G) | Top-1 (%) | Top-5 (%) | Config | Download |
+| :------------------------ | :----------: | :--------: | :-------: | :-------: | :-------: | :----------------------------------: | :----------------------------------------------------------------------------------------: |
+| `resnet50_8xb16_cifar100` | From scratch | 23.71 | 1.31 | 79.90 | 95.19 | [config](resnet50_8xb16_cifar100.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_b16x8_cifar100_20210528-67b58a1b.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_b16x8_cifar100_20210528-67b58a1b.json) |
+
+### Image Classification on CUB-200-2011
+
+| Model | Pretrain | Params (M) | Flops (G) | Top-1 (%) | Config | Download |
+| :------------------ | :----------: | :--------: | :-------: | :-------: | :----------------------------: | :-------------------------------------------------------------------------------------------------------------: |
+| `resnet50_8xb8_cub` | From scratch | 23.92 | 16.48 | 88.45 | [config](resnet50_8xb8_cub.py) | [model](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb8_cub_20220307-57840e60.pth) \| [log](https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb8_cub_20220307-57840e60.json) |
+
+## Citation
+
+```bibtex
+@inproceedings{he2016deep,
+ title={Deep residual learning for image recognition},
+ author={He, Kaiming and Zhang, Xiangyu and Ren, Shaoqing and Sun, Jian},
+ booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
+ pages={770--778},
+ year={2016}
+}
+```
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/metafile.yml b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/metafile.yml
new file mode 100644
index 0000000000000000000000000000000000000000..16387248c43aea59c5563b4c6c98df8dd8effead
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/metafile.yml
@@ -0,0 +1,352 @@
+Collections:
+ - Name: ResNet
+ Metadata:
+ Training Data: ImageNet-1k
+ Training Techniques:
+ - SGD with Momentum
+ - Weight Decay
+ Training Resources: 8x V100 GPUs
+ Epochs: 100
+ Batch Size: 256
+ Architecture:
+ - ResNet
+ Paper:
+ URL: https://openaccess.thecvf.com/content_cvpr_2016/html/He_Deep_Residual_Learning_CVPR_2016_paper.html
+ Title: "Deep Residual Learning for Image Recognition"
+ README: configs/resnet/README.md
+ Code:
+ URL: https://github.com/open-mmlab/mmpretrain/blob/v0.15.0/mmcls/models/backbones/resnet.py#L383
+ Version: v0.15.0
+
+Models:
+ - Name: resnet18_8xb16_cifar10
+ Metadata:
+ Training Data: CIFAR-10
+ Epochs: 200
+ Batch Size: 128
+ FLOPs: 560000000
+ Parameters: 11170000
+ In Collection: ResNet
+ Results:
+ - Dataset: CIFAR-10
+ Metrics:
+ Top 1 Accuracy: 94.82
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet18_b16x8_cifar10_20210528-bd6371c8.pth
+ Config: configs/resnet/resnet18_8xb16_cifar10.py
+ - Name: resnet34_8xb16_cifar10
+ Metadata:
+ Training Data: CIFAR-10
+ Epochs: 200
+ Batch Size: 128
+ FLOPs: 1160000000
+ Parameters: 21280000
+ In Collection: ResNet
+ Results:
+ - Dataset: CIFAR-10
+ Metrics:
+ Top 1 Accuracy: 95.34
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet34_b16x8_cifar10_20210528-a8aa36a6.pth
+ Config: configs/resnet/resnet34_8xb16_cifar10.py
+ - Name: resnet50_8xb16_cifar10
+ Metadata:
+ Training Data: CIFAR-10
+ Epochs: 200
+ Batch Size: 128
+ FLOPs: 1310000000
+ Parameters: 23520000
+ In Collection: ResNet
+ Results:
+ - Dataset: CIFAR-10
+ Metrics:
+ Top 1 Accuracy: 95.55
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_b16x8_cifar10_20210528-f54bfad9.pth
+ Config: configs/resnet/resnet50_8xb16_cifar10.py
+ - Name: resnet101_8xb16_cifar10
+ Metadata:
+ Training Data: CIFAR-10
+ Epochs: 200
+ Batch Size: 128
+ FLOPs: 2520000000
+ Parameters: 42510000
+ In Collection: ResNet
+ Results:
+ - Dataset: CIFAR-10
+ Metrics:
+ Top 1 Accuracy: 95.58
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet101_b16x8_cifar10_20210528-2d29e936.pth
+ Config: configs/resnet/resnet101_8xb16_cifar10.py
+ - Name: resnet152_8xb16_cifar10
+ Metadata:
+ Training Data: CIFAR-10
+ Epochs: 200
+ Batch Size: 128
+ FLOPs: 3740000000
+ Parameters: 58160000
+ In Collection: ResNet
+ Results:
+ - Dataset: CIFAR-10
+ Metrics:
+ Top 1 Accuracy: 95.76
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet152_b16x8_cifar10_20210528-3e8e9178.pth
+ Config: configs/resnet/resnet152_8xb16_cifar10.py
+ - Name: resnet50_8xb16_cifar100
+ Metadata:
+ Training Data: CIFAR-100
+ Epochs: 200
+ Batch Size: 128
+ FLOPs: 1310000000
+ Parameters: 23710000
+ In Collection: ResNet
+ Results:
+ - Dataset: CIFAR-100
+ Metrics:
+ Top 1 Accuracy: 79.90
+ Top 5 Accuracy: 95.19
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_b16x8_cifar100_20210528-67b58a1b.pth
+ Config: configs/resnet/resnet50_8xb16_cifar100.py
+ - Name: resnet18_8xb32_in1k
+ Metadata:
+ FLOPs: 1820000000
+ Parameters: 11690000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 69.90
+ Top 5 Accuracy: 89.43
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet18_8xb32_in1k_20210831-fbbb1da6.pth
+ Config: configs/resnet/resnet18_8xb32_in1k.py
+ - Name: resnet34_8xb32_in1k
+ Metadata:
+ FLOPs: 3680000000
+ Parameters: 2180000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 73.62
+ Top 5 Accuracy: 91.59
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet34_8xb32_in1k_20210831-f257d4e6.pth
+ Config: configs/resnet/resnet34_8xb32_in1k.py
+ - Name: resnet50_8xb32_in1k
+ Metadata:
+ FLOPs: 4120000000
+ Parameters: 25560000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 76.55
+ Top 5 Accuracy: 93.06
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb32_in1k_20210831-ea4938fc.pth
+ Config: configs/resnet/resnet50_8xb32_in1k.py
+ - Name: resnet101_8xb32_in1k
+ Metadata:
+ FLOPs: 7850000000
+ Parameters: 44550000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 77.97
+ Top 5 Accuracy: 94.06
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet101_8xb32_in1k_20210831-539c63f8.pth
+ Config: configs/resnet/resnet101_8xb32_in1k.py
+ - Name: resnet152_8xb32_in1k
+ Metadata:
+ FLOPs: 11580000000
+ Parameters: 60190000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 78.48
+ Top 5 Accuracy: 94.13
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet152_8xb32_in1k_20210901-4d7582fa.pth
+ Config: configs/resnet/resnet152_8xb32_in1k.py
+ - Name: resnetv1d50_8xb32_in1k
+ Metadata:
+ FLOPs: 4360000000
+ Parameters: 25580000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 77.54
+ Top 5 Accuracy: 93.57
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1d50_b32x8_imagenet_20210531-db14775a.pth
+ Config: configs/resnet/resnetv1d50_8xb32_in1k.py
+ - Name: resnetv1d101_8xb32_in1k
+ Metadata:
+ FLOPs: 8090000000
+ Parameters: 44570000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 78.93
+ Top 5 Accuracy: 94.48
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1d101_b32x8_imagenet_20210531-6e13bcd3.pth
+ Config: configs/resnet/resnetv1d101_8xb32_in1k.py
+ - Name: resnetv1d152_8xb32_in1k
+ Metadata:
+ FLOPs: 11820000000
+ Parameters: 60210000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 79.41
+ Top 5 Accuracy: 94.70
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1d152_b32x8_imagenet_20210531-278cf22a.pth
+ Config: configs/resnet/resnetv1d152_8xb32_in1k.py
+ - Name: resnet50_8xb32-fp16_in1k
+ Metadata:
+ FLOPs: 4120000000
+ Parameters: 25560000
+ Training Techniques:
+ - SGD with Momentum
+ - Weight Decay
+ - Mixed Precision Training
+ In Collection: ResNet
+ Results:
+ - Task: Image Classification
+ Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 76.30
+ Top 5 Accuracy: 93.07
+ Weights: https://download.openmmlab.com/mmclassification/v0/fp16/resnet50_batch256_fp16_imagenet_20210320-b3964210.pth
+ Config: configs/resnet/resnet50_8xb32-fp16_in1k.py
+ - Name: resnet50_8xb256-rsb-a1-600e_in1k
+ Metadata:
+ FLOPs: 4120000000
+ Parameters: 25560000
+ Training Techniques:
+ - LAMB
+ - Weight Decay
+ - Cosine Annealing
+ - Mixup
+ - CutMix
+ - RepeatAugSampler
+ - RandAugment
+ Epochs: 600
+ Batch Size: 2048
+ In Collection: ResNet
+ Results:
+ - Task: Image Classification
+ Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 80.12
+ Top 5 Accuracy: 94.78
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb256-rsb-a1-600e_in1k_20211228-20e21305.pth
+ Config: configs/resnet/resnet50_8xb256-rsb-a1-600e_in1k.py
+ - Name: resnet50_8xb256-rsb-a2-300e_in1k
+ Metadata:
+ FLOPs: 4120000000
+ Parameters: 25560000
+ Training Techniques:
+ - LAMB
+ - Weight Decay
+ - Cosine Annealing
+ - Mixup
+ - CutMix
+ - RepeatAugSampler
+ - RandAugment
+ Epochs: 300
+ Batch Size: 2048
+ In Collection: ResNet
+ Results:
+ - Task: Image Classification
+ Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 79.55
+ Top 5 Accuracy: 94.37
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb256-rsb-a2-300e_in1k_20211228-0fd8be6e.pth
+ Config: configs/resnet/resnet50_8xb256-rsb-a2-300e_in1k.py
+ - Name: resnet50_8xb256-rsb-a3-100e_in1k
+ Metadata:
+ FLOPs: 4120000000
+ Parameters: 25560000
+ Training Techniques:
+ - LAMB
+ - Weight Decay
+ - Cosine Annealing
+ - Mixup
+ - CutMix
+ - RandAugment
+ Batch Size: 2048
+ In Collection: ResNet
+ Results:
+ - Task: Image Classification
+ Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 78.30
+ Top 5 Accuracy: 93.80
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb256-rsb-a3-100e_in1k_20211228-3493673c.pth
+ Config: configs/resnet/resnet50_8xb256-rsb-a3-100e_in1k.py
+ - Name: resnetv1c50_8xb32_in1k
+ Metadata:
+ FLOPs: 4360000000
+ Parameters: 25580000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 77.01
+ Top 5 Accuracy: 93.58
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1c50_8xb32_in1k_20220214-3343eccd.pth
+ Config: configs/resnet/resnetv1c50_8xb32_in1k.py
+ - Name: resnetv1c101_8xb32_in1k
+ Metadata:
+ FLOPs: 8090000000
+ Parameters: 44570000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 78.30
+ Top 5 Accuracy: 94.27
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1c101_8xb32_in1k_20220214-434fe45f.pth
+ Config: configs/resnet/resnetv1c101_8xb32_in1k.py
+ - Name: resnetv1c152_8xb32_in1k
+ Metadata:
+ FLOPs: 11820000000
+ Parameters: 60210000
+ In Collection: ResNet
+ Results:
+ - Dataset: ImageNet-1k
+ Metrics:
+ Top 1 Accuracy: 78.76
+ Top 5 Accuracy: 94.41
+ Task: Image Classification
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnetv1c152_8xb32_in1k_20220214-c013291f.pth
+ Config: configs/resnet/resnetv1c152_8xb32_in1k.py
+ - Name: resnet50_8xb8_cub
+ Metadata:
+ FLOPs: 16480000000
+ Parameters: 23920000
+ In Collection: ResNet
+ Results:
+ - Dataset: CUB-200-2011
+ Metrics:
+ Top 1 Accuracy: 88.45
+ Task: Image Classification
+ Pretrain: https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_3rdparty-mill_in21k_20220331-faac000b.pth
+ Weights: https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb8_cub_20220307-57840e60.pth
+ Config: configs/resnet/resnet50_8xb8_cub.py
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet101_8xb16_cifar10.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet101_8xb16_cifar10.py
new file mode 100644
index 0000000000000000000000000000000000000000..166a1740b09c5fb74462a0672cd5fef54caae8f7
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet101_8xb16_cifar10.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnet101_cifar.py',
+ '../_base_/datasets/cifar10_bs16.py',
+ '../_base_/schedules/cifar10_bs128.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet101_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet101_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..388d2cd918ab75ec46346faa0448ef9cf2893fc8
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet101_8xb32_in1k.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/resnet101.py', '../_base_/datasets/imagenet_bs32.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet152_8xb16_cifar10.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet152_8xb16_cifar10.py
new file mode 100644
index 0000000000000000000000000000000000000000..3f307b6aa81661558b8308094de6e8327d08c830
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet152_8xb16_cifar10.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnet152_cifar.py',
+ '../_base_/datasets/cifar10_bs16.py',
+ '../_base_/schedules/cifar10_bs128.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet152_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet152_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..cc9dc2cee4a0fd8a9d47d461b2d5d00bf9962bf5
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet152_8xb32_in1k.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/resnet152.py', '../_base_/datasets/imagenet_bs32.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet18_8xb16_cifar10.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet18_8xb16_cifar10.py
new file mode 100644
index 0000000000000000000000000000000000000000..c7afa397b7b6a01decd0a010816ebe3678ca44aa
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet18_8xb16_cifar10.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/resnet18_cifar.py', '../_base_/datasets/cifar10_bs16.py',
+ '../_base_/schedules/cifar10_bs128.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet18_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet18_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac452ff75602464eba84a3eea150b30748122c69
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet18_8xb32_in1k.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/resnet18.py', '../_base_/datasets/imagenet_bs32.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet34_8xb16_cifar10.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet34_8xb16_cifar10.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f5cd517d505ea479b506b6e4756c117c392dabd
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet34_8xb16_cifar10.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/resnet34_cifar.py', '../_base_/datasets/cifar10_bs16.py',
+ '../_base_/schedules/cifar10_bs128.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet34_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet34_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..7749261c80defef7cbf94c4e1284c26382246dc6
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet34_8xb32_in1k.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/resnet34.py', '../_base_/datasets/imagenet_bs32.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_32xb64-warmup-coslr_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_32xb64-warmup-coslr_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..c26245ef53a736c22c0ef7d4e9d8b7876509fe2e
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_32xb64-warmup-coslr_in1k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnet50.py', '../_base_/datasets/imagenet_bs64.py',
+ '../_base_/schedules/imagenet_bs2048_coslr.py',
+ '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_32xb64-warmup-lbs_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_32xb64-warmup-lbs_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..2f24f9a0f2c54a2bb634c1f374bc1b534d63697f
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_32xb64-warmup-lbs_in1k.py
@@ -0,0 +1,12 @@
+_base_ = ['./resnet50_32xb64-warmup_in1k.py']
+model = dict(
+ head=dict(
+ type='LinearClsHead',
+ num_classes=1000,
+ in_channels=2048,
+ loss=dict(
+ type='LabelSmoothLoss',
+ loss_weight=1.0,
+ label_smooth_val=0.1,
+ num_classes=1000),
+ ))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_32xb64-warmup_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_32xb64-warmup_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..34d5288b9d3f9fcf3f0b409dc1c17906654c2170
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_32xb64-warmup_in1k.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/resnet50.py', '../_base_/datasets/imagenet_bs64.py',
+ '../_base_/schedules/imagenet_bs2048.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb128_coslr-90e_in21k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb128_coslr-90e_in21k.py
new file mode 100644
index 0000000000000000000000000000000000000000..d2cc1ee2830661998505310d8c7074d8ae5da6b4
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb128_coslr-90e_in21k.py
@@ -0,0 +1,11 @@
+_base_ = [
+ '../_base_/models/resnet50.py', '../_base_/datasets/imagenet21k_bs128.py',
+ '../_base_/schedules/imagenet_bs1024_coslr.py',
+ '../_base_/default_runtime.py'
+]
+
+# model settings
+model = dict(head=dict(num_classes=21843))
+
+# runtime settings
+train_cfg = dict(by_epoch=True, max_epochs=90)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb16-mixup_cifar10.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb16-mixup_cifar10.py
new file mode 100644
index 0000000000000000000000000000000000000000..2420ebfeb0a34675a4b1b2a69c0b8a39e197ce35
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb16-mixup_cifar10.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnet50_cifar_mixup.py',
+ '../_base_/datasets/cifar10_bs16.py',
+ '../_base_/schedules/cifar10_bs128.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb16_cifar10.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb16_cifar10.py
new file mode 100644
index 0000000000000000000000000000000000000000..669e5de27e526dd46d9f06c99e478dce16f0ac9a
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb16_cifar10.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/resnet50_cifar.py', '../_base_/datasets/cifar10_bs16.py',
+ '../_base_/schedules/cifar10_bs128.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb16_cifar100.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb16_cifar100.py
new file mode 100644
index 0000000000000000000000000000000000000000..ebde6c76ecca6d23b58edfb85ebc3b72ce15a2b2
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb16_cifar100.py
@@ -0,0 +1,19 @@
+_base_ = [
+ '../_base_/models/resnet50_cifar.py',
+ '../_base_/datasets/cifar100_bs16.py',
+ '../_base_/schedules/cifar10_bs128.py',
+ '../_base_/default_runtime.py',
+]
+
+# model settings
+model = dict(head=dict(num_classes=100))
+
+# schedule settings
+optim_wrapper = dict(optimizer=dict(weight_decay=0.0005))
+
+param_scheduler = dict(
+ type='MultiStepLR',
+ by_epoch=True,
+ milestones=[60, 120, 160],
+ gamma=0.2,
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb256-rsb-a1-600e_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb256-rsb-a1-600e_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a4ea15984a0063c06e09eb5063d49b2cf90371cf
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb256-rsb-a1-600e_in1k.py
@@ -0,0 +1,56 @@
+_base_ = [
+ '../_base_/models/resnet50.py',
+ '../_base_/datasets/imagenet_bs256_rsb_a12.py',
+ '../_base_/schedules/imagenet_bs2048_rsb.py',
+ '../_base_/default_runtime.py'
+]
+
+# model settings
+model = dict(
+ backbone=dict(
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ drop_path_rate=0.05,
+ ),
+ head=dict(
+ loss=dict(
+ type='LabelSmoothLoss',
+ label_smooth_val=0.1,
+ mode='original',
+ use_sigmoid=True,
+ )),
+ train_cfg=dict(augments=[
+ dict(type='Mixup', alpha=0.2),
+ dict(type='CutMix', alpha=1.0)
+ ]),
+)
+
+# dataset settings
+train_dataloader = dict(sampler=dict(type='RepeatAugSampler', shuffle=True))
+
+# schedule settings
+optim_wrapper = dict(
+ optimizer=dict(weight_decay=0.01),
+ paramwise_cfg=dict(bias_decay_mult=0., norm_decay_mult=0.),
+)
+
+param_scheduler = [
+ # warm up learning rate scheduler
+ dict(
+ type='LinearLR',
+ start_factor=0.0001,
+ by_epoch=True,
+ begin=0,
+ end=5,
+ # update by iter
+ convert_to_iter_based=True),
+ # main learning rate scheduler
+ dict(
+ type='CosineAnnealingLR',
+ T_max=595,
+ eta_min=1.0e-6,
+ by_epoch=True,
+ begin=5,
+ end=600)
+]
+
+train_cfg = dict(by_epoch=True, max_epochs=600)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb256-rsb-a2-300e_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb256-rsb-a2-300e_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..df8edc0370400a3f3985c33bffae2d04afc55772
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb256-rsb-a2-300e_in1k.py
@@ -0,0 +1,46 @@
+_base_ = [
+ '../_base_/models/resnet50.py',
+ '../_base_/datasets/imagenet_bs256_rsb_a12.py',
+ '../_base_/schedules/imagenet_bs2048_rsb.py',
+ '../_base_/default_runtime.py'
+]
+
+# model settings
+model = dict(
+ backbone=dict(
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ drop_path_rate=0.05,
+ ),
+ head=dict(loss=dict(use_sigmoid=True)),
+ train_cfg=dict(augments=[
+ dict(type='Mixup', alpha=0.1),
+ dict(type='CutMix', alpha=1.0)
+ ]))
+
+# dataset settings
+train_dataloader = dict(sampler=dict(type='RepeatAugSampler', shuffle=True))
+
+# schedule settings
+optim_wrapper = dict(
+ paramwise_cfg=dict(bias_decay_mult=0., norm_decay_mult=0.))
+
+param_scheduler = [
+ # warm up learning rate scheduler
+ dict(
+ type='LinearLR',
+ start_factor=0.0001,
+ by_epoch=True,
+ begin=0,
+ end=5,
+ # update by iter
+ convert_to_iter_based=True),
+ # main learning rate scheduler
+ dict(
+ type='CosineAnnealingLR',
+ T_max=295,
+ eta_min=1.0e-6,
+ by_epoch=True,
+ begin=5,
+ end=300)
+]
+train_cfg = dict(by_epoch=True, max_epochs=300)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb256-rsb-a3-100e_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb256-rsb-a3-100e_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..3a36c5843a69aea20fdb9287561e5c2a96459852
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb256-rsb-a3-100e_in1k.py
@@ -0,0 +1,22 @@
+_base_ = [
+ '../_base_/models/resnet50.py',
+ '../_base_/datasets/imagenet_bs256_rsb_a3.py',
+ '../_base_/schedules/imagenet_bs2048_rsb.py',
+ '../_base_/default_runtime.py'
+]
+
+# model settings
+model = dict(
+ backbone=dict(norm_cfg=dict(type='SyncBN', requires_grad=True)),
+ head=dict(loss=dict(use_sigmoid=True)),
+ train_cfg=dict(augments=[
+ dict(type='Mixup', alpha=0.1),
+ dict(type='CutMix', alpha=1.0)
+ ]),
+)
+
+# schedule settings
+optim_wrapper = dict(
+ optimizer=dict(lr=0.008),
+ paramwise_cfg=dict(bias_decay_mult=0., norm_decay_mult=0.),
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-coslr-preciseBN_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-coslr-preciseBN_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..01fefbbf2852eeceddb0ad026fb5098e763e0710
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-coslr-preciseBN_in1k.py
@@ -0,0 +1,13 @@
+_base_ = 'resnet50_8xb32-coslr_in1k.py'
+
+# Precise BN hook will update the bn stats, so this hook should be executed
+# before CheckpointHook(priority of 'VERY_LOW') and
+# EMAHook(priority of 'NORMAL') So set the priority of PreciseBNHook to
+# 'ABOVENORMAL' here.
+custom_hooks = [
+ dict(
+ type='PreciseBNHook',
+ num_samples=8192,
+ interval=1,
+ priority='ABOVE_NORMAL')
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-coslr_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-coslr_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..938a114b79696b5ad3442c1dd2a7aea33342b679
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-coslr_in1k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnet50.py', '../_base_/datasets/imagenet_bs32.py',
+ '../_base_/schedules/imagenet_bs256_coslr.py',
+ '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-cutmix_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-cutmix_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..2f8d0ca9f3a500344c18b669f25f3cb78393d7dd
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-cutmix_in1k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnet50_cutmix.py',
+ '../_base_/datasets/imagenet_bs32.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-fp16-dynamic_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-fp16-dynamic_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..58f6fe4cf25e8f0b3d321a7aab4b746552aa4163
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-fp16-dynamic_in1k.py
@@ -0,0 +1,4 @@
+_base_ = ['./resnet50_8xb32_in1k.py']
+
+# schedule settings
+optim_wrapper = dict(type='AmpOptimWrapper', loss_scale='dynamic')
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-fp16_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-fp16_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..19ee6ee4f82ec02f34628bdf8dd74a379798cc67
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-fp16_in1k.py
@@ -0,0 +1,4 @@
+_base_ = ['./resnet50_8xb32_in1k.py']
+
+# schedule settings
+optim_wrapper = dict(type='AmpOptimWrapper', loss_scale=512.)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-lbs_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-lbs_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1c1aa5a2c4eee10c10159175224d9b77ea57e57b
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-lbs_in1k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnet50_label_smooth.py',
+ '../_base_/datasets/imagenet_bs32.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-mixup_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-mixup_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..2a153d0e18f521f72b8beaf4cbea36d41f5b3300
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32-mixup_in1k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnet50_mixup.py',
+ '../_base_/datasets/imagenet_bs32.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..c32f333b67c255c6101469323636bf242eebb8da
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb32_in1k.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/resnet50.py', '../_base_/datasets/imagenet_bs32.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb8_cub.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb8_cub.py
new file mode 100644
index 0000000000000000000000000000000000000000..17054ef536930d74136897f8f25637321a364ce7
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnet50_8xb8_cub.py
@@ -0,0 +1,20 @@
+_base_ = [
+ '../_base_/models/resnet50.py',
+ '../_base_/datasets/cub_bs8_448.py',
+ '../_base_/schedules/cub_bs64.py',
+ '../_base_/default_runtime.py',
+]
+
+# model settings
+# use pre-train weight converted from https://github.com/Alibaba-MIIL/ImageNet21K # noqa
+pretrained = 'https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_3rdparty-mill_in21k_20220331-faac000b.pth' # noqa
+
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(
+ init_cfg=dict(
+ type='Pretrained', checkpoint=pretrained, prefix='backbone')),
+ head=dict(num_classes=200, ))
+
+# runtime settings
+default_hooks = dict(logger=dict(type='LoggerHook', interval=20))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1c101_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1c101_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..441aff591851f402a176c142c93dc866a77b82c2
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1c101_8xb32_in1k.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/resnetv1c50.py',
+ '../_base_/datasets/imagenet_bs32_pil_resize.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
+
+model = dict(backbone=dict(depth=101))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1c152_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1c152_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..b9f466f85c8e8c89fb78f53c27eca1d5acaf5221
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1c152_8xb32_in1k.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/resnetv1c50.py',
+ '../_base_/datasets/imagenet_bs32_pil_resize.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
+
+model = dict(backbone=dict(depth=152))
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1c50_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1c50_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..aa1c8b6475ce373f4a35123a72e31419b87027c0
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1c50_8xb32_in1k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnetv1c50.py',
+ '../_base_/datasets/imagenet_bs32_pil_resize.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1d101_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1d101_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..b16ca863db2c50267764b1b37aa8b2db891ad2c9
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1d101_8xb32_in1k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnetv1d101.py',
+ '../_base_/datasets/imagenet_bs32_pil_resize.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1d152_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1d152_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..76926ddbb661029b8cff86ad0d98028531235fa1
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1d152_8xb32_in1k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnetv1d152.py',
+ '../_base_/datasets/imagenet_bs32_pil_resize.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1d50_8xb32_in1k.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1d50_8xb32_in1k.py
new file mode 100644
index 0000000000000000000000000000000000000000..208bde470ad12407d7e56eddeddfc88529e3708b
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnet/resnetv1d50_8xb32_in1k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/resnetv1d50.py',
+ '../_base_/datasets/imagenet_bs32_pil_resize.py',
+ '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
+]
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb16_1024e_4channel.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb16_1024e_4channel.py
new file mode 100644
index 0000000000000000000000000000000000000000..0de71f68d6705b3fc1000419ca705be2b839d425
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb16_1024e_4channel.py
@@ -0,0 +1,88 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+default_hooks = dict(
+ # print log every 50 iterations.
+ logger=dict(type='LoggerHook', interval=25),
+ # save checkpoint per 8 epochs.
+ checkpoint=dict(save_best='auto', interval=16)
+)
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
+
+dataset_type = 'CustomDataset'
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=16, # 每张 GPU 的 batchsize
+ num_workers=5, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=16,
+ num_workers=5,
+ dataset=dict(
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
+
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='ResNeXt', # 主干网络类型
+ depth=101,
+ in_channels=4, # 输入通道数
+ ),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
+
+
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb32_1024e_4channel.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb32_1024e_4channel.py
new file mode 100644
index 0000000000000000000000000000000000000000..0f0c5dafbd8475a8b0dec583a871eb23c9e79bdd
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb32_1024e_4channel.py
@@ -0,0 +1,114 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+default_hooks = dict(
+ # print log every 50 iterations.
+ logger=dict(type='LoggerHook', interval=25),
+ # save checkpoint per 8 epochs.
+ checkpoint=dict(save_best='auto', interval=16)
+)
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
+
+dataset_type = 'CustomDataset'
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', flag='unchanged'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', flag='unchanged'), # 读取图像
+ dict(type='ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=32, # 每张 GPU 的 batchsize
+ num_workers=5, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
+
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='HRNet', # 主干网络类型
+ arch='w32', # 主干网络架构
+ 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))),
+ ),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=256,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
+
+optim_wrapper = dict(
+ accumulative_counts=8
+)
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb32_2048e_3c_noF.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb32_2048e_3c_noF.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a75884d5bc715db4c86e429ebc4512dbab7c017
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb32_2048e_3c_noF.py
@@ -0,0 +1,108 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/datasets/custom_ds.py',
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+default_hooks = dict(
+ # print log every 50 iterations.
+ logger=dict(type='LoggerHook', interval=10),
+ # save checkpoint per 8 epochs.
+ checkpoint=dict(save_best='auto', interval=16)
+)
+
+# visualizer = dict(
+# vis_backends=[dict(type='LocalVisBackend'),
+# dict(type='WandbVisBackend')])
+
+dataset_type = 'CustomDataset'
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='mmpretrain.PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile'), # 读取图像
+ dict(type='mmpretrain.ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='mmpretrain.PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=32, # 每张 GPU 的 batchsize
+ num_workers=5, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type=dataset_type,
+ data_root='Model6_2/2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
+
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='ResNeXt', # 主干网络类型
+ depth=101,
+ in_channels=3, # 输入通道数
+ ),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
+
+optim_wrapper = dict(
+ accumulative_counts=8
+)
+
+param_scheduler = [
+ # 在前10轮迭代中,逐迭代次数,线性预热
+ dict(type='LinearLR',
+ start_factor=0.00001,
+ by_epoch=True,
+ end=10,
+ convert_to_iter_based=True, # 逐迭代次数更新学习率.
+ ),
+ # 在 10 轮次后,通过余弦退火衰减
+ dict(type='MultiStepLR',
+ by_epoch=True, # 按轮次更新学习率
+ milestones=[30, 210, 390, 570, 750, 930, 1110, 1290, 1470, 1650, 1830],
+ gamma=0.9)
+]
+
+train_cfg = dict(by_epoch=True, max_epochs=2048, val_interval=16)
\ No newline at end of file
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb32_2048e_4channel.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb32_2048e_4channel.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e06572819b7798a43e71ea69d4b0131ef14c2d4
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb32_2048e_4channel.py
@@ -0,0 +1,107 @@
+_base_ = [ # 此配置文件将继承所有 `_base_` 中的配置
+ '../configs/_base_/schedules/custom_schedule.py', # 训练策略配置
+ '../configs/_base_/default_runtime.py' # 默认运行设置
+]
+
+default_hooks = dict(
+ # print log every 50 iterations.
+ logger=dict(type='LoggerHook', interval=10),
+ # save checkpoint per 8 epochs.
+ checkpoint=dict(save_best='auto', interval=16)
+)
+
+visualizer = dict(
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
+
+dataset_type = 'CustomDataset'
+
+# config of pipline
+train_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='RandomResizedCrop', scale=224), # 随机放缩裁剪
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'), # 随机水平翻转
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+test_pipeline = [
+ dict(type='LoadImageFromFile', imdecode_backend='pillow', color_type='unchanged'), # 读取图像
+ dict(type='ResizeEdge', scale=256, edge='short'), # 缩放短边尺寸至 256px
+ dict(type='CenterCrop', crop_size=224), # 中心裁剪
+ dict(type='PackInputs'), # 准备图像以及标签
+]
+
+# config of dataloader
+train_dataloader = dict(
+ batch_size=32, # 每张 GPU 的 batchsize
+ num_workers=5, # 每个 GPU 的线程数
+ dataset=dict( # 训练数据集
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=train_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=True), # 默认采样器
+ persistent_workers=True, # 是否保持进程,可以缩短每个 epoch 的准备时间
+)
+
+# 构造验证集 dataloader
+val_dataloader = dict(
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type=dataset_type,
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=test_pipeline),
+ sampler=dict(type='DefaultSampler', shuffle=False),
+ persistent_workers=True,
+)
+
+# set evaluator of validation dataset. Here uses top1 and top3 accuracy
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+
+test_dataloader = val_dataloader
+test_evaluator = val_evaluator
+
+model = dict(
+ type='ImageClassifier', # 主模型类型(对于图像分类任务,使用 `ImageClassifier`)
+ backbone=dict(
+ type='ResNeXt', # 主干网络类型
+ depth=101,
+ in_channels=4, # 输入通道数
+ ),
+ neck=dict(type='GlobalAveragePooling'), # 颈网络类型
+ head=dict(
+ type='LinearClsHead', # 分类颈网络类型
+ # 除了 `type` 之外的所有字段都来自 `LinearClsHead` 类的 __init__ 方法
+ # 可查阅 https://mmpretrain.readthedocs.io/zh_CN/latest/api/generated/mmpretrain.models.heads.LinearClsHead.html
+ num_classes=7, # 分类类别数
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0), # 损失函数配置信息
+ topk=(1, 3), # 评估指标,Top-k 准确率
+ ))
+
+optim_wrapper = dict(
+ accumulative_counts=8
+)
+
+param_scheduler = [
+ # 在前10轮迭代中,逐迭代次数,线性预热
+ dict(type='LinearLR',
+ start_factor=0.00001,
+ by_epoch=True,
+ end=10,
+ convert_to_iter_based=True, # 逐迭代次数更新学习率.
+ ),
+ # 在 10 轮次后,通过余弦退火衰减
+ dict(type='MultiStepLR',
+ by_epoch=True, # 按轮次更新学习率
+ milestones=[30, 210, 390, 570, 750, 930, 1110, 1290, 1470, 1650, 1830],
+ gamma=0.9)
+]
+
+train_cfg = dict(by_epoch=True, max_epochs=2048, val_interval=16)
\ No newline at end of file
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_1830.pth b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_1830.pth
new file mode 100644
index 0000000000000000000000000000000000000000..30d65cf4d7684002b0b7699d77050f24c14d33ff
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_1830.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f94fb49e0516357b263b86ecd5998ed689b7d9c1983cb2e5010a395eae741f5b
+size 11350925
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_510.pth b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_510.pth
new file mode 100644
index 0000000000000000000000000000000000000000..fc3ca16d99ad6706cd8f563ed6840371ef88a129
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_510.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:455e447e5e941875abf43f800a9e11348ba33d4b5bf5a9c1a78ca20f7833e044
+size 9791117
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/mobilenet-v2_1xb32_300e_3c_noF.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/mobilenet-v2_1xb32_300e_3c_noF.py
new file mode 100644
index 0000000000000000000000000000000000000000..8fb558c161d85f81f3dc13d6551359f923e008c8
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilenet-v2_4xb32_2000e_3c_noF/mobilenet-v2_1xb32_300e_3c_noF.py
@@ -0,0 +1,140 @@
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(type='MobileNetV2', widen_factor=1.0),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=7,
+ in_channels=1280,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(
+ 1,
+ 3,
+ )))
+dataset_type = 'CustomDataset'
+data_preprocessor = dict(
+ num_classes=7,
+ mean=[
+ 123.675,
+ 116.28,
+ 103.53,
+ ],
+ std=[
+ 58.395,
+ 57.12,
+ 57.375,
+ ],
+ to_rgb=True)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='RandomResizedCrop', scale=224, backend='pillow'),
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'),
+ dict(type='PackInputs'),
+]
+val_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=256, edge='short', backend='pillow'),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='PackInputs'),
+]
+train_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='data',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='RandomResizedCrop', scale=224, backend='pillow'),
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'),
+ dict(type='PackInputs'),
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=True))
+val_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='data',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=256, edge='short', backend='pillow'),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='PackInputs'),
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=False))
+val_evaluator = dict(
+ type='Accuracy', topk=(
+ 1,
+ 3,
+ ))
+test_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='data',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=256, edge='short', backend='pillow'),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='PackInputs'),
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=False))
+test_evaluator = dict(
+ type='Accuracy', topk=(
+ 1,
+ 3,
+ ))
+optim_wrapper = dict(
+ optimizer=dict(type='SGD', lr=0.045, momentum=0.9, weight_decay=4e-05))
+param_scheduler = dict(type='StepLR', by_epoch=True, step_size=10, gamma=0.98)
+train_cfg = dict(by_epoch=True, max_epochs=2000, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+auto_scale_lr = dict(base_batch_size=256)
+default_scope = 'mmpretrain'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=10),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(type='CheckpointHook', save_best='auto', interval=10),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='VisualizationHook', enable=False))
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [
+ dict(type='LocalVisBackend'),
+]
+visualizer = dict(
+ type='UniversalVisualizer',
+ vis_backends=[
+ dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend'),
+ ])
+log_level = 'INFO'
+load_from = None
+resume = False
+randomness = dict(seed=None, deterministic=False)
+launcher = 'pytorch'
+work_dir = 'work_dirs/mobilenet-v2_4xb32_2000e_3c_noF'
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilevit-small_4xb32_2000e_3c_noF/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilevit-small_4xb32_2000e_3c_noF/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilevit-small_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_1820.pth b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilevit-small_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_1820.pth
new file mode 100644
index 0000000000000000000000000000000000000000..09160917e4f58e48cf4b15becf7be70834295094
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilevit-small_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_1820.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b4aa448ed138b71c7d9d975ec4a973168d5ff1fdf344fa9b62ff3775c52cbe83
+size 22108115
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilevit-small_4xb32_2000e_3c_noF/mobilevit-small_4xb32_2000e_3c_noF.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilevit-small_4xb32_2000e_3c_noF/mobilevit-small_4xb32_2000e_3c_noF.py
new file mode 100644
index 0000000000000000000000000000000000000000..1dd70453e6fedc075f30a51e736d7c99f36c584f
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/mobilevit-small_4xb32_2000e_3c_noF/mobilevit-small_4xb32_2000e_3c_noF.py
@@ -0,0 +1,137 @@
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(type='MobileViT', arch='small'),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=7,
+ in_channels=640,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(
+ 1,
+ 3,
+ )))
+dataset_type = 'CustomDataset'
+data_preprocessor = dict(
+ num_classes=6, mean=[
+ 0,
+ 0,
+ 0,
+ ], std=[
+ 255,
+ 255,
+ 255,
+ ], to_rgb=False)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='RandomResizedCrop', scale=224),
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'),
+ dict(type='PackInputs'),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=288, edge='short'),
+ dict(type='CenterCrop', crop_size=256),
+ dict(type='PackInputs'),
+]
+train_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='data',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='RandomResizedCrop', scale=224),
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'),
+ dict(type='PackInputs'),
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=True))
+val_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='data',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=288, edge='short'),
+ dict(type='CenterCrop', crop_size=256),
+ dict(type='PackInputs'),
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=False))
+val_evaluator = dict(
+ type='Accuracy', topk=(
+ 1,
+ 3,
+ ))
+test_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='data',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=288, edge='short'),
+ dict(type='CenterCrop', crop_size=256),
+ dict(type='PackInputs'),
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=False))
+test_evaluator = dict(
+ type='Accuracy', topk=(
+ 1,
+ 3,
+ ))
+default_scope = 'mmpretrain'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=10),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(type='CheckpointHook', save_best='auto', interval=10),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='VisualizationHook', enable=False))
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [
+ dict(type='LocalVisBackend'),
+]
+visualizer = dict(
+ type='UniversalVisualizer',
+ vis_backends=[
+ dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend'),
+ ])
+log_level = 'INFO'
+load_from = None
+resume = False
+randomness = dict(seed=None, deterministic=False)
+optim_wrapper = dict(
+ optimizer=dict(type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001))
+param_scheduler = dict(type='StepLR', by_epoch=True, step_size=10, gamma=0.98)
+train_cfg = dict(by_epoch=True, max_epochs=2000, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+auto_scale_lr = dict(base_batch_size=256)
+launcher = 'pytorch'
+work_dir = './work_dirs/mobilevit-small_4xb32_2000e_3c_noF'
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/resnext101_4xb32_2048e_3c_noF/best_accuracy_top1_epoch_1520.pth b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/resnext101_4xb32_2048e_3c_noF/best_accuracy_top1_epoch_1520.pth
new file mode 100644
index 0000000000000000000000000000000000000000..acba4115d02bc506683cad7340f79eeaf6eb0989
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/resnext101_4xb32_2048e_3c_noF/best_accuracy_top1_epoch_1520.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:502b0d646ba913bb0b5ceadf8c01e4fb4eec5b5204f0db12e6d7a70b5f427d06
+size 171110493
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/resnext101_4xb32_2048e_3c_noF/resnext101_4xb32_2048e_3c_noF.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/resnext101_4xb32_2048e_3c_noF/resnext101_4xb32_2048e_3c_noF.py
new file mode 100644
index 0000000000000000000000000000000000000000..e2f977ca9e86a412a643dd45598753372c392b9c
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/resnext101_4xb32_2048e_3c_noF/resnext101_4xb32_2048e_3c_noF.py
@@ -0,0 +1,131 @@
+optim_wrapper = dict(
+ type='OptimWrapper',
+ optimizer=dict(
+ type='Adam',
+ lr=0.0001,
+ betas=(0.9, 0.999),
+ eps=1e-08,
+ weight_decay=0,
+ amsgrad=False),
+ accumulative_counts=8)
+param_scheduler = [
+ dict(
+ type='LinearLR',
+ start_factor=1e-05,
+ by_epoch=True,
+ end=10,
+ convert_to_iter_based=True),
+ dict(
+ type='MultiStepLR',
+ by_epoch=True,
+ milestones=[30, 210, 390, 570, 750, 930, 1110, 1290, 1470, 1650, 1830],
+ gamma=0.9)
+]
+train_cfg = dict(by_epoch=True, max_epochs=2048, val_interval=16)
+val_cfg = dict()
+test_cfg = dict()
+default_scope = 'mmpretrain'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=10),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(type='CheckpointHook', interval=16, save_best='auto'),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='VisualizationHook', enable=False))
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [dict(type='LocalVisBackend')]
+visualizer = dict(
+ type='UniversalVisualizer',
+ vis_backends=[dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend')])
+log_level = 'INFO'
+load_from = None
+resume = False
+randomness = dict(seed=None, deterministic=False)
+dataset_type = 'CustomDataset'
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='RandomResizedCrop', scale=224),
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'),
+ dict(type='PackInputs')
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=256, edge='short'),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='PackInputs')
+]
+train_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='RandomResizedCrop', scale=224),
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'),
+ dict(type='PackInputs')
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=True))
+val_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=256, edge='short'),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='PackInputs')
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=False))
+val_evaluator = dict(type='Accuracy', topk=(1, 3))
+test_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='../2_preprocess_data_3000',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=256, edge='short'),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='PackInputs')
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=False))
+test_evaluator = dict(type='Accuracy', topk=(1, 3))
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(type='ResNeXt', depth=101, in_channels=3),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=7,
+ in_channels=2048,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(1, 3)))
+launcher = 'pytorch'
+work_dir = './work_dirs/resnext101_4xb32_2048e_3c_noF'
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/shufflenet-v2-1x_4xb32_2000e_3c_noF/__init__.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/shufflenet-v2-1x_4xb32_2000e_3c_noF/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/shufflenet-v2-1x_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_1920.pth b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/shufflenet-v2-1x_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_1920.pth
new file mode 100644
index 0000000000000000000000000000000000000000..b12900cb9e1a73eb1f89858d04e0511217dac912
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/shufflenet-v2-1x_4xb32_2000e_3c_noF/best_accuracy_top1_epoch_1920.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d20a545b5c67e17c12ae6acc8305bdf1042329774e7df1640ec5c85eca6565be
+size 8113501
diff --git a/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/shufflenet-v2-1x_4xb32_2000e_3c_noF/shufflenet-v2-1x_4xb32_2000e_3c_noF.py b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/shufflenet-v2-1x_4xb32_2000e_3c_noF/shufflenet-v2-1x_4xb32_2000e_3c_noF.py
new file mode 100644
index 0000000000000000000000000000000000000000..498df9518f20b41383851a1253aba27bd9fdeca6
--- /dev/null
+++ b/Model/Model6/Model6_2_ProfileRecogition/mmpretrain/work_dirs/shufflenet-v2-1x_4xb32_2000e_3c_noF/shufflenet-v2-1x_4xb32_2000e_3c_noF.py
@@ -0,0 +1,155 @@
+model = dict(
+ type='ImageClassifier',
+ backbone=dict(type='ShuffleNetV2', widen_factor=1.0),
+ neck=dict(type='GlobalAveragePooling'),
+ head=dict(
+ type='LinearClsHead',
+ num_classes=7,
+ in_channels=1024,
+ loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
+ topk=(
+ 1,
+ 3,
+ )))
+dataset_type = 'CustomDataset'
+data_preprocessor = dict(
+ num_classes=7,
+ mean=[
+ 123.675,
+ 116.28,
+ 103.53,
+ ],
+ std=[
+ 58.395,
+ 57.12,
+ 57.375,
+ ],
+ to_rgb=True)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='RandomResizedCrop', scale=224, backend='pillow'),
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'),
+ dict(type='PackInputs'),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=256, edge='short', backend='pillow'),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='PackInputs'),
+]
+train_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='data',
+ with_label=True,
+ ann_file='',
+ data_prefix='train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='RandomResizedCrop', scale=224, backend='pillow'),
+ dict(type='RandomFlip', prob=0.5, direction='horizontal'),
+ dict(type='PackInputs'),
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=True))
+val_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='data',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=256, edge='short', backend='pillow'),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='PackInputs'),
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=False))
+val_evaluator = dict(
+ type='Accuracy', topk=(
+ 1,
+ 3,
+ ))
+test_dataloader = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='data',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=256, edge='short', backend='pillow'),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='PackInputs'),
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=False))
+test_evaluator = dict(
+ pin_memory=True,
+ persistent_workers=True,
+ collate_fn=dict(type='default_collate'),
+ batch_size=32,
+ num_workers=5,
+ dataset=dict(
+ type='CustomDataset',
+ data_root='data',
+ with_label=True,
+ ann_file='',
+ data_prefix='val',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='ResizeEdge', scale=256, edge='short', backend='pillow'),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='PackInputs'),
+ ]),
+ sampler=dict(type='DefaultSampler', shuffle=False))
+optim_wrapper = dict(
+ optimizer=dict(type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001),
+ paramwise_cfg=dict(norm_decay_mult=0))
+param_scheduler = dict(type='StepLR', by_epoch=True, step_size=10, gamma=0.98)
+train_cfg = dict(by_epoch=True, max_epochs=2000, val_interval=10)
+val_cfg = dict()
+test_cfg = dict()
+auto_scale_lr = dict(base_batch_size=1024)
+default_scope = 'mmpretrain'
+default_hooks = dict(
+ timer=dict(type='IterTimerHook'),
+ logger=dict(type='LoggerHook', interval=10),
+ param_scheduler=dict(type='ParamSchedulerHook'),
+ checkpoint=dict(type='CheckpointHook', save_best='auto', interval=10),
+ sampler_seed=dict(type='DistSamplerSeedHook'),
+ visualization=dict(type='VisualizationHook', enable=False))
+env_cfg = dict(
+ cudnn_benchmark=False,
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
+ dist_cfg=dict(backend='nccl'))
+vis_backends = [
+ dict(type='LocalVisBackend'),
+]
+visualizer = dict(
+ type='UniversalVisualizer',
+ vis_backends=[
+ dict(type='LocalVisBackend'),
+ dict(type='WandbVisBackend'),
+ ])
+log_level = 'INFO'
+load_from = None
+resume = False
+randomness = dict(seed=None, deterministic=False)
+launcher = 'pytorch'
+work_dir = './work_dirs/shufflenet-v2-1x_4xb32_2000e_3c_noF'
diff --git a/Model/Model6/__init__.py b/Model/Model6/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/extensions/__init__.py b/Model/Model6/extensions/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Model/Model6/extensions/dataset_info.py b/Model/Model6/extensions/dataset_info.py
new file mode 100644
index 0000000000000000000000000000000000000000..ef0d62e43089770797ef565d2153c8d42e4956c5
--- /dev/null
+++ b/Model/Model6/extensions/dataset_info.py
@@ -0,0 +1,104 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import numpy as np
+
+
+class DatasetInfo:
+
+ def __init__(self, dataset_info):
+ self._dataset_info = dataset_info
+ self.dataset_name = self._dataset_info['dataset_name']
+ self.paper_info = self._dataset_info['paper_info']
+ self.keypoint_info = self._dataset_info['keypoint_info']
+ self.skeleton_info = self._dataset_info['skeleton_info']
+ self.joint_weights = np.array(
+ self._dataset_info['joint_weights'], dtype=np.float32)[:, None]
+
+ self.sigmas = np.array(self._dataset_info['sigmas'])
+
+ self._parse_keypoint_info()
+ self._parse_skeleton_info()
+
+ def _parse_skeleton_info(self):
+ """Parse skeleton information.
+
+ - link_num (int): number of links.
+ - skeleton (list((2,))): list of links (id).
+ - skeleton_name (list((2,))): list of links (name).
+ - pose_link_color (np.ndarray): the color of the link for
+ visualization.
+ """
+ self.link_num = len(self.skeleton_info.keys())
+ self.pose_link_color = []
+
+ self.skeleton_name = []
+ self.skeleton = []
+ for skid in self.skeleton_info.keys():
+ link = self.skeleton_info[skid]['link']
+ self.skeleton_name.append(link)
+ self.skeleton.append([
+ self.keypoint_name2id[link[0]], self.keypoint_name2id[link[1]]
+ ])
+ self.pose_link_color.append(self.skeleton_info[skid].get(
+ 'color', [255, 128, 0]))
+ self.pose_link_color = np.array(self.pose_link_color)
+
+ def _parse_keypoint_info(self):
+ """Parse keypoint information.
+
+ - keypoint_num (int): number of keypoints.
+ - keypoint_id2name (dict): mapping keypoint id to keypoint name.
+ - keypoint_name2id (dict): mapping keypoint name to keypoint id.
+ - upper_body_ids (list): a list of keypoints that belong to the
+ upper body.
+ - lower_body_ids (list): a list of keypoints that belong to the
+ lower body.
+ - flip_index (list): list of flip index (id)
+ - flip_pairs (list((2,))): list of flip pairs (id)
+ - flip_index_name (list): list of flip index (name)
+ - flip_pairs_name (list((2,))): list of flip pairs (name)
+ - pose_kpt_color (np.ndarray): the color of the keypoint for
+ visualization.
+ """
+
+ self.keypoint_num = len(self.keypoint_info.keys())
+ self.keypoint_id2name = {}
+ self.keypoint_name2id = {}
+
+ self.pose_kpt_color = []
+ self.upper_body_ids = []
+ self.lower_body_ids = []
+
+ self.flip_index_name = []
+ self.flip_pairs_name = []
+
+ for kid in self.keypoint_info.keys():
+
+ keypoint_name = self.keypoint_info[kid]['name']
+ self.keypoint_id2name[kid] = keypoint_name
+ self.keypoint_name2id[keypoint_name] = kid
+ self.pose_kpt_color.append(self.keypoint_info[kid].get(
+ 'color', [255, 128, 0]))
+
+ type = self.keypoint_info[kid].get('type', '')
+ if type == 'upper':
+ self.upper_body_ids.append(kid)
+ elif type == 'lower':
+ self.lower_body_ids.append(kid)
+ else:
+ pass
+
+ swap_keypoint = self.keypoint_info[kid].get('swap', '')
+ if swap_keypoint == keypoint_name or swap_keypoint == '':
+ self.flip_index_name.append(keypoint_name)
+ else:
+ self.flip_index_name.append(swap_keypoint)
+ if [swap_keypoint, keypoint_name] not in self.flip_pairs_name:
+ self.flip_pairs_name.append([keypoint_name, swap_keypoint])
+
+ self.flip_pairs = [[
+ self.keypoint_name2id[pair[0]], self.keypoint_name2id[pair[1]]
+ ] for pair in self.flip_pairs_name]
+ self.flip_index = [
+ self.keypoint_name2id[name] for name in self.flip_index_name
+ ]
+ self.pose_kpt_color = np.array(self.pose_kpt_color)
diff --git a/Model/Model6/extensions/vis_pred_save.py b/Model/Model6/extensions/vis_pred_save.py
new file mode 100644
index 0000000000000000000000000000000000000000..000b7746bdfbb02cf29b09f5b4959a23b8ec3f7b
--- /dev/null
+++ b/Model/Model6/extensions/vis_pred_save.py
@@ -0,0 +1,209 @@
+from .dataset_info import DatasetInfo
+import cv2
+import mmcv
+import numpy as np
+import os
+from os import path as osp
+import json
+
+
+def save_result(img,
+ poses,
+ img_name=None,
+ radius=4,
+ thickness=1,
+ bbox_score_thr=None,
+ kpt_score_thr=0.3,
+ bbox_color='green',
+ dataset_info=None,
+ show=False,
+ out_dir=None,
+ vis_out_dir=None,
+ pred_out_dir=None,):
+ """Visualize the detection results on the image.
+
+ Args:
+ img (str | np.ndarray): Image filename or loaded image.
+ poses (dict[dict]): a dict which contains pose_model and pose_results of different classes.
+ And the pose_results contains bboxes, bbox_scores, keypoints and keypoint_scores.
+ img_name (str): Image name.
+ radius (int): Radius of circles.
+ thickness (int): Thickness of lines.
+ bbox_score_thr (float): The threshold to visualize the bounding boxes.
+ kpt_score_thr (float): The threshold to visualize the keypoints.
+ bbox_color (str | tuple[int]): Color of bounding boxes.
+ dataset_info (DatasetInfo): Dataset info.
+ show (bool): Whether to show the image. Default False.
+ out_dir (str): The output directory to save the visualizations and predictions results.
+ If vis_out_dir is None, visualizations will be saved in ${out_dir}/visualizations.
+ If pred_out_dir is None, predictions will be saved in ${out_dir}/predictions.
+ Default None.
+ vis_out_dir (str): The output directory to save the visualization results. Default None.
+ pred_out_dir (str): The output directory to save the predictions results. Default None.
+ """
+ # set flags
+ vis_out_flag = False if vis_out_dir is None else vis_out_dir
+ pred_out_flag = False if pred_out_dir is None else pred_out_dir
+ if out_dir:
+ if not vis_out_dir:
+ vis_out_flag = osp.join(out_dir, 'visualizations')
+ if not osp.exists(vis_out_flag):
+ os.mkdir(vis_out_flag)
+ if not pred_out_dir:
+ pred_out_flag = osp.join(out_dir, 'predictions')
+ if not osp.exists(pred_out_flag):
+ os.mkdir(pred_out_flag)
+
+ # read image
+ img_path = None
+ if isinstance(img, str):
+ img_path = img
+ img = mmcv.imread(img)
+ elif isinstance(img, np.ndarray):
+ img = img.copy()
+ else:
+ raise TypeError('img must be a filename or numpy array, '
+ f'but got {type(img)}')
+ bbox_list = []
+ label_list = []
+ class_name_list = []
+ bbox_score_list = []
+ idx = 0
+ for label, v in poses.items():
+ if len(v) == 0:
+ continue
+ pose_results = v['pose_results']
+ bbox = pose_results[0].gt_instances.bboxes
+ bbox_score = pose_results[0].gt_instances.bbox_scores
+ for bbox_idx in range(len(bbox)):
+ b = bbox[bbox_idx]
+ s = bbox_score[bbox_idx]
+ if bbox_score_thr is not None:
+ b = np.append(b, values=s) # switch to x1, y1, x2, y2, score
+ bbox_score_list.append(s.tolist())
+ bbox_list.append(b)
+ label_list.append(idx)
+ class_name_list.append(label)
+ idx += 1
+ bbox_list = np.array(bbox_list)
+ label_list = np.array(label_list)
+
+ # draw bbox
+ img = mmcv.imshow_det_bboxes(
+ img,
+ bbox_list,
+ label_list,
+ class_names=class_name_list,
+ score_thr=bbox_score_thr if bbox_score_thr is not None else 0,
+ bbox_color=bbox_color,
+ text_color='white',
+ show=False,
+ # out_file=out_file
+ )
+
+ keypoints_list = []
+ keypoint_scores_list = []
+ # draw pose of different classes
+ for label, v in poses.items():
+ if len(v) == 0:
+ continue
+ pose_model = v['pose_model']
+ pose_results = v['pose_results']
+ keypoints = pose_results[0].pred_instances.keypoints
+ for ks in keypoints:
+ keypoints_list.append(ks.tolist())
+ keypoint_scores = pose_results[0].pred_instances.keypoint_scores
+ for kss in keypoint_scores:
+ keypoint_scores_list.append(kss.tolist())
+
+ # get dataset info
+ if (dataset_info is None and hasattr(pose_model, 'cfg')
+ and 'dataset_info' in pose_model.cfg):
+ dataset_info = DatasetInfo(pose_model.cfg.dataset_info)
+
+ if dataset_info is not None:
+ skeleton = dataset_info.skeleton
+
+ pose_kpt_color = dataset_info.pose_kpt_color
+ pose_kpt_color_tmp = []
+ for color in pose_kpt_color:
+ pose_kpt_color_tmp.append(tuple([int(x) for x in color]))
+ pose_kpt_color = pose_kpt_color_tmp
+
+ pose_link_color = dataset_info.pose_link_color
+ pose_link_color_tmp = []
+ for color in pose_link_color:
+ pose_link_color_tmp.append(tuple([int(x) for x in color]))
+ pose_link_color = pose_link_color_tmp
+ else:
+ warnings.warn(
+ 'dataset is deprecated.'
+ 'Please set `dataset_info` in the config.'
+ 'Check https://github.com/open-mmlab/mmpose/pull/663 for details.',
+ DeprecationWarning)
+ raise ValueError('dataset_info is not specified or set in the config file.')
+
+ # create circles_list
+ circles_list = []
+ for bbox_idx, circles in enumerate(keypoints):
+ c_dict = {}
+ for c_idx, c in enumerate(circles):
+ if keypoint_scores[bbox_idx][c_idx] >= kpt_score_thr:
+ c_dict[c_idx] = c
+ # else:
+ # c_dict[c_idx] = None
+ circles_list.append(c_dict)
+
+ # create lines_list
+ lines_list = []
+ for bbox_idx, _ in enumerate(keypoints):
+ s_dict = {}
+ for s_idx, s in enumerate(skeleton):
+ if s[0] in circles_list[bbox_idx].keys() and s[1] in circles_list[bbox_idx].keys():
+ s_dict[s_idx] = True
+ else:
+ s_dict[s_idx] = False
+ lines_list.append(s_dict)
+
+ # draw circle
+ for _, circles in enumerate(circles_list):
+ for c_idx, c in circles.items():
+ if c is not None:
+ cv2.circle(img, (int(c[0]), int(c[1])), radius, pose_kpt_color[c_idx], -1)
+
+ # draw line
+ for bbox_idx, lines in enumerate(lines_list):
+ for l_idx, l in lines.items():
+ if l:
+ s = skeleton[l_idx][0] # idx of start point
+ e = skeleton[l_idx][1] # idx of end point
+ cv2.line(img,
+ (int(circles_list[bbox_idx][s][0]), int(circles_list[bbox_idx][s][1])),
+ (int(circles_list[bbox_idx][e][0]), int(circles_list[bbox_idx][e][1])),
+ pose_link_color[l_idx], thickness)
+
+ if show:
+ mmcv.imshow(img, wait_time=0)
+ if img_path is None:
+ if img_name is not None:
+ img_path = img_name
+ else:
+ img_path = 'demo.jpg'
+ if vis_out_flag:
+ out_file = osp.join(vis_out_flag, osp.basename(img_path))
+ mmcv.imwrite(img, out_file)
+ if pred_out_flag:
+ pred_list = []
+ for bbox_idx in range(len(bbox_list)):
+ bbl = bbox_list[bbox_idx].tolist()
+ pred_list.append(dict(
+ keypoints=keypoints_list[bbox_idx],
+ keypoint_scores=keypoint_scores_list[bbox_idx],
+ bbox=[bbl],
+ bbox_score=bbox_score_list[bbox_idx],
+ ))
+ # replace .jpg or .png with .json
+ out_file = osp.join(pred_out_flag, osp.basename(img_path).rsplit('.', 1)[0] + '.json')
+ json.dump(pred_list, open(out_file, 'w'))
+
+ return img
diff --git a/Model/Model6/model6_inference.py b/Model/Model6/model6_inference.py
new file mode 100644
index 0000000000000000000000000000000000000000..4b2fd561e6f07e09b7cb9d6a962c60df7fe43e0d
--- /dev/null
+++ b/Model/Model6/model6_inference.py
@@ -0,0 +1,270 @@
+"""old name: test_runtime_model6.py"""
+
+import json
+import os
+import subprocess
+import sys
+import warnings
+from time import time
+from typing import Union, Tuple, Any
+
+import pandas as pd
+from mmdet.apis import inference_detector
+from mmdet.apis import init_detector as det_init_detector
+from mmpose.apis import inference_topdown
+from mmpose.apis import init_model as pose_init_model
+from mmpretrain import ImageClassificationInferencer
+from mmpretrain.utils import register_all_modules
+from .extensions.vis_pred_save import save_result
+
+register_all_modules()
+
+st = ist = time()
+# irt = time() - st
+# print(f'==Packages importing time is {irt}s==\n')
+
+print('==Start==')
+
+# DEVICE = 'cuda:0,1,2,3'
+DEVICE = 'cpu'
+abs_path = os.path.dirname(os.path.abspath(__file__))
+yolo_config = os.path.join(abs_path, 'Model6_0_ClothesDetection/mmyolo/configs/custom_dataset/yolov6_s_fast.py')
+yolo_checkpoint = os.path.join(abs_path, 'Model6_0_ClothesDetection/mmyolo/work_dirs/yolov6_s_df2_0.4/epoch_64.pth')
+pretrain_config = os.path.join(abs_path, 'Model6_2_ProfileRecogition/mmpretrain/configs/resnext101_4xb32_2048e_3c_noF.py')
+pretrain_checkpoint = os.path.join(abs_path, 'Model6_2_ProfileRecogition/mmpretrain/work_dirs/'
+ 'resnext101_4xb32_2048e_3c_noF/best_accuracy_top1_epoch_1520.pth')
+pose_configs = {
+ 'short_sleeved_shirt': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192.py',
+ 'long_sleeved_shirt': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192.py',
+ 'short_sleeved_outwear': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192.py',
+ 'long_sleeved_outwear': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192.py',
+ 'vest': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192.py',
+ 'sling': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192.py',
+ 'shorts': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192.py',
+ 'trousers': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192.py',
+ 'skirt': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192.py',
+ 'short_sleeved_dress': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192.py',
+ 'long_sleeved_dress': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192.py',
+ 'vest_dress': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192.py',
+ 'sling_dress': 'Model/Model6/Model6_1_ClothesKeyPoint/mmpose_1_x/configs/fashion_2d_keypoint/topdown_heatmap/deepfashion2/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192.py',
+}
+
+pose_checkpoints = {
+ 'short_sleeved_shirt': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb32-60e_deepfashion2_short_sleeved_shirt_256x192/best_PCK_epoch_50.pth',
+ 'long_sleeved_shirt': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_long_sleeved_shirt_256x192/best_PCK_epoch_60.pth',
+ 'short_sleeved_outwear': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb8-150e_deepfashion2_short_sleeved_outwear_256x192/best_PCK_epoch_120.pth',
+ 'long_sleeved_outwear': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-120e_deepfashion2_long_sleeved_outwear_256x192/best_PCK_epoch_100.pth',
+ 'vest': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_vest_256x192/best_PCK_epoch_90.pth',
+ 'sling': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_sling_256x192/best_PCK_epoch_60.pth',
+ 'shorts': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_shorts_256x192/best_PCK_epoch_160.pth',
+ 'trousers': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-60e_deepfashion2_trousers_256x192/best_PCK_epoch_30.pth',
+ 'skirt': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-120e_deepfashion2_skirt_256x192/best_PCK_epoch_110.pth',
+ 'short_sleeved_dress': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_short_sleeved_dress_256x192/best_PCK_epoch_100.pth',
+ 'long_sleeved_dress': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb16-150e_deepfashion2_long_sleeved_dress_256x192/best_PCK_epoch_120.pth',
+ 'vest_dress': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-150e_deepfashion2_vest_dress_256x192/best_PCK_epoch_80.pth',
+ 'sling_dress': 'Model/Model6/Model6_1_ClothesKeyPoint/work_dirs_1-x/td_hm_res50_4xb64-210e_deepfashion2_sling_dress_256x192/best_PCK_epoch_140.pth',
+}
+
+start_load = time()
+yolo_inferencer = det_init_detector(yolo_config, yolo_checkpoint, device=DEVICE)
+print('=' * 2 + 'The model loading time of MMYolo is {}s'.format(time() - start_load) + '=' * 2)
+
+start_load = time()
+pretrain_inferencer = ImageClassificationInferencer(model=pretrain_config,
+ pretrained=pretrain_checkpoint,
+ device=DEVICE)
+print('=' * 2 + 'The model loading time of MMPretrain is {}s'.format(time() - start_load) + '=' * 2)
+
+
+def get_bbox_results_by_classes(result) -> dict:
+ """
+ :param result: the result of mmyolo inference
+ :return: a dict of bbox results by classes
+ """
+ bbox_results_by_classes = {
+ 'short_sleeved_shirt': [],
+ 'long_sleeved_shirt': [],
+ 'short_sleeved_outwear': [],
+ 'long_sleeved_outwear': [],
+ 'vest': [],
+ 'sling': [],
+ 'shorts': [],
+ 'trousers': [],
+ 'skirt': [],
+ 'short_sleeved_dress': [],
+ 'long_sleeved_dress': [],
+ 'vest_dress': [],
+ 'sling_dress': [],
+ }
+ pred_instances = result.pred_instances
+ _bboxes = pred_instances.bboxes
+ _labels = pred_instances.labels
+ _scores = pred_instances.scores
+ labels = _labels[[_scores > 0.3]]
+ bboxes = _bboxes[[_scores > 0.3]]
+ # use enumerate to get index and value
+ for idx, value in enumerate(labels):
+ class_name = list(bbox_results_by_classes.keys())[value]
+ x1 = bboxes[idx][0]
+ y1 = bboxes[idx][1]
+ x2 = bboxes[idx][2]
+ y2 = bboxes[idx][3]
+ bbox_results_by_classes[class_name].append([x1, y1, x2, y2])
+ return bbox_results_by_classes
+
+
+def mmyolo_inference(img: Union[str, list], model) -> tuple:
+ mmyolo_st = time()
+ result = inference_detector(model, img)
+ mmyolo_et = time()
+
+ return result, (mmyolo_et - mmyolo_st)
+
+
+def mmpose_inference(person_results: dict, use_bbox: bool,
+ mmyolo_cfg_path: str, mmyolo_ckf_path: str,
+ img: str, output_path_root: str, save=True, device='cpu') -> float:
+ """
+ :param person_results: the result of mmyolo inference
+ :param use_bbox: whether to use bbox to inference the pose results
+ :param mmyolo_cfg_path: the file path of mmyolo config
+ :param mmyolo_ckf_path: the file path of mmyolo checkpoint
+ :param img: the path of the image to inference
+ :param output_path_root: the root path of the output
+ :param save: whether to save the inference result, including the image and the predicted json file.
+ If `save` is False, `output_path_root` will be invalid.
+ :param device: the device to inference
+ """
+ mmpose_st = time()
+ poses = {
+ 'short_sleeved_shirt': {},
+ 'long_sleeved_shirt': {},
+ 'short_sleeved_outwear': {},
+ 'long_sleeved_outwear': {},
+ 'vest': {},
+ 'sling': {},
+ 'shorts': {},
+ 'trousers': {},
+ 'skirt': {},
+ 'short_sleeved_dress': {},
+ 'long_sleeved_dress': {},
+ 'vest_dress': {},
+ 'sling_dress': {}
+ }
+ for label, person_result in person_results.items():
+ if len(person_result) == 0:
+ continue
+ pose_config = pose_configs[label]
+ pose_checkpoint = pose_checkpoints[label]
+ if not use_bbox:
+ from mmpose.apis import MMPoseInferencer
+
+ warnings.warn('use_bbox is False, '
+ 'which means using MMPoseInferencer to inference the pose results without use_bbox '
+ 'and may be wrong')
+ inferencer = MMPoseInferencer(
+ pose2d=pose_config,
+ pose2d_weights=pose_checkpoint,
+ det_model=mmyolo_cfg_path,
+ det_weights=mmyolo_ckf_path
+ )
+ result_generator = inferencer(img, out_dir='upload_to_web_tmp', return_vis=True)
+ result = next(result_generator)
+ # print(result)
+ else:
+ pose_model = pose_init_model(
+ pose_config,
+ pose_checkpoint,
+ device=device
+ )
+ pose_results = inference_topdown(pose_model, img, person_result, bbox_format='xyxy')
+ poses[label]['pose_results'] = pose_results
+ poses[label]['pose_model'] = pose_model
+ mmpose_et = time()
+ if save:
+
+ save_result(img, poses, out_dir=output_path_root)
+
+ return mmpose_et - mmpose_st
+
+
+def mmpretrain_inference(img: Union[str, list], model) -> tuple:
+ mmpretain_st = time()
+ cls_result = model(img)
+ mmpretain_et = time()
+ return cls_result, (mmpretain_et - mmpretain_st)
+
+
+def main(img_path: str, output_path_root='upload_to_web_tmp', use_bbox=True, device='cpu', test_runtime=False) -> dict:
+ """
+ :param img_path: the path of the image or the folder of images
+ :param output_path_root: the root path of the output
+ :param use_bbox: whether to use bbox to inference the pose results
+ :param device: the device to inference
+ :param test_runtime: whether to test the runtime
+
+ :return: the results of model6_2 in form of dictionary
+ """
+ if os.path.isdir(img_path):
+ img_names = os.listdir(img_path)
+ img_paths = [os.path.join(img_path, img_name) for img_name in img_names]
+ elif os.path.isfile(img_path):
+ img_paths = [img_path]
+ else:
+ print('==Img_path must be a path of an imgage or a folder!==')
+ raise ValueError()
+
+ runtimes = [['img_name',
+ 'runtime_mmyolo', 'percent1',
+ 'runtime_mmpose', 'percent2',
+ 'runtime_mmpretrain', 'percent3',
+ 'runtime_total']]
+
+ cls_results = {}
+
+ for img in img_paths:
+ print(f'==Start to inference {img}==')
+ yolo_result, runtime_mmyolo = mmyolo_inference(img, yolo_inferencer)
+ print(f'==mmyolo running time is {runtime_mmyolo}s==')
+
+ person_results = get_bbox_results_by_classes(yolo_result)
+
+ runtime_mmpose = mmpose_inference(
+ person_results=person_results,
+ use_bbox=use_bbox,
+ mmyolo_cfg_path=yolo_config,
+ mmyolo_ckf_path=yolo_checkpoint,
+ img=img,
+ output_path_root=output_path_root,
+ save=True,
+ device=device
+ )
+ print(f'mmpose running time is {runtime_mmpose}s')
+
+ cls_result, runtime_mmpretrain = mmpretrain_inference(img, pretrain_inferencer)
+ print(f'mmpretrain running time is {runtime_mmpretrain}s')
+ cls_results[os.path.basename(img)] = cls_result
+ if test_runtime:
+ runtime_total = runtime_mmyolo + runtime_mmpose + runtime_mmpretrain
+ percent1 = str(round(runtime_mmyolo / runtime_total * 100, 2)) + '%'
+ percent2 = str(round(runtime_mmpose / runtime_total * 100, 2)) + '%'
+ percent3 = str(round(runtime_mmpretrain / runtime_total * 100, 2)) + '%'
+ img_name = os.path.basename(img)
+ runtimes.append([img_name,
+ runtime_mmyolo, percent1,
+ runtime_mmpose, percent2,
+ runtime_mmpretrain, percent3,
+ runtime_total])
+ if test_runtime:
+ df = pd.DataFrame(runtimes, columns=runtimes[0])
+ df.to_csv('runtimes.csv', index=False)
+
+ return cls_results
+
+
+if __name__ == "__main__":
+ # main(1)
+ main('data-test/')
+ # main('data-test/000002.jpg')
+ rt = time() - st
+ print(f'==Totol time cost is {rt}s==')
diff --git a/Model/__init__.py b/Model/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/[gradio]model_display.py b/[gradio]model_display.py
new file mode 100644
index 0000000000000000000000000000000000000000..39efa4bbb1dc564fe5435904870656f5dddb6531
--- /dev/null
+++ b/[gradio]model_display.py
@@ -0,0 +1,323 @@
+import numpy as np
+import gradio as gr
+import requests
+import base64
+import pandas as pd
+import cv2
+from typing import Tuple
+from PIL import Image
+from io import BytesIO
+
+import os
+
+from Model.Model6.model6_inference import main as model6_inferencer
+from mmyolo.utils import register_all_modules
+
+register_all_modules()
+
+
+def get_access_token(refatch=False) -> str:
+ """获取百度AI的access_token
+ :param refatch:是否重新获取access_token
+ :return:返回access_token"""
+ if refatch:
+ # client_id 为官网获取的AK, client_secret 为官网获取的SK
+ client_id = '7OtH60uo01ZNYN4yPyahlRSx'
+ client_secret = 'D5AxcUpyQyIA7KgPplp7dnz5tM0UIljy'
+ host = 'https://aip.baidubce.com/oauth/2.0/token?' \
+ 'grant_type=client_credentials&client_id=%s&client_secret=%s' % (client_id, client_secret)
+ response = requests.get(host)
+ # print(response)
+ if response:
+ return response.json()['access_token']
+ else:
+ r"""
+ {"refresh_token":"25.24b9368ce91f9bd62c8dad38b3436800.315360000.2007815067.282335-30479502",
+ "expires_in":2592000,
+ "session_key":
+ "9mzdWT\/YmQ7oEi9WCRWbXd0YCcrSYQY6kKZjObKunlcKcZt95j9\/q1aJqbVXihpQOXK84o5WLJ8e7d4cXOi0VUJJcz5YEQ==",
+ "access_token":"24.becefee37aba38ea43c546fc154d3016.2592000.1695047067.282335-30479502",
+ "scope":"public brain_all_scope brain_body_analysis brain_body_attr brain_body_number brain_driver_behavior
+ brain_body_seg brain_gesture_detect brain_body_tracking brain_hand_analysis wise_adapt
+ lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian
+ ApsMisTest_Test\u6743\u9650 vis-classify_flower lpq_\u5f00\u653e cop_helloScope
+ ApsMis_fangdi_permission smartapp_snsapi_base smartapp_mapp_dev_manage iop_autocar oauth_tp_app
+ smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi
+ smartapp_opensource_recapi fake_face_detect_\u5f00\u653eScope
+ vis-ocr_\u865a\u62df\u4eba\u7269\u52a9\u7406 idl-video_\u865a\u62df\u4eba\u7269\u52a9\u7406
+ smartapp_component smartapp_search_plugin avatar_video_test b2b_tp_openapi b2b_tp_openapi_online
+ smartapp_gov_aladin_to_xcx","session_secret":"5c8c3dbb80b04f58bb33aa8077758679"
+ }
+ """
+ access_token = "24.becefee37aba38ea43c546fc154d3016.2592000.1695047067.282335-30479502"
+ return access_token
+
+
+def resize_image(img, max_length=2048, min_length=50) -> Tuple[np.ndarray, bool]:
+ """Ensure that the longest side is shorter than 2048px and the shortest side is longer than 50px.
+ :param img: 前端传入的图片
+ :param max_length: 最长边像素
+ :param min_length: 最短边像素
+ :return: 返回处理后的图片和是否进行了resize的标志
+ """
+ flag = False
+ max_side = max(img.shape[0], img.shape[1])
+ min_side = min(img.shape[0], img.shape[1])
+ if max_side > max_length:
+ scale = max_length / max_side
+ img = cv2.resize(img, (int(img.shape[1] * scale), int(img.shape[0] * scale)))
+ flag = True
+ if min_side < min_length:
+ scale = min_length / min_side
+ img = cv2.resize(img, (int(img.shape[1] * scale), int(img.shape[0] * scale)))
+ flag = True
+ return img, flag
+
+
+def model1_det(x):
+ """人体检测与属性识别
+ :param x:前端传入的图片
+ :return:返回检测结果
+ """
+
+ def _Baidu_det(img):
+ """调用百度AI接口进行人体检测与属性识别
+ :param img:前端传入的图片,格式为numpy.ndarray
+ :return:返回检测结果
+ """
+ request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_attr"
+ # 保存图片到本地
+ cv2.imwrite('test.jpg', img)
+ # 二进制方式打开图片文件
+ f = open('test.jpg', 'rb')
+ hex_image = base64.b64encode(f.read())
+ # 选择二进制图片和需要输出的属性(12个)
+ params = {
+ "image": hex_image,
+ "type": "gender,age,upper_wear,lower_wear,upper_color,lower_color,"
+ "orientation,upper_cut,lower_cut,side_cut,occlusion,is_human"
+ }
+ access_token = get_access_token()
+ request_url = request_url + "?access_token=" + access_token
+ headers = {'content-type': 'application/x-www-form-urlencoded'}
+ response = requests.post(request_url, data=params, headers=headers)
+ if response:
+ return response.json()
+
+ def _get_attributes_list(r) -> dict:
+ """获取人体属性列表
+ :param r:百度AI接口返回的json数据
+ :return:返回人体属性列表
+ """
+ all_humans_attributes_list = {}
+ person_num = r['person_num']
+ print('person_num:', person_num)
+ for human_idx in range(person_num):
+ attributes_dict = r['person_info'][human_idx]['attributes']
+ attributes_list = []
+ for key, value in attributes_dict.items():
+ attribute = [key, value['name'], value['score']]
+ attributes_list.append(attribute)
+ new_value = ['attribute', 'attribute_value', 'accuracy']
+ attributes_list.insert(0, new_value)
+ df = pd.DataFrame(attributes_list[1:], columns=attributes_list[0])
+ all_humans_attributes_list[human_idx] = df
+ return all_humans_attributes_list
+
+ def _show_img(img, bboxes):
+ """显示图片
+ :param img:前端传入的图片
+ :param bboxes:检测框坐标
+ :return:处理完成的图片 """
+ line_width = int(max(img.shape[1], img.shape[0]) / 400)
+ for bbox in bboxes:
+ left, top, width, height = bbox['left'], bbox['top'], bbox['width'], bbox['height']
+ right, bottom = left + width, top + height
+ for i in range(left, right):
+ img[top:top + line_width, i] = [255, 0, 0]
+ img[bottom - line_width:bottom, i] = [255, 0, 0]
+ for i in range(top, bottom):
+ img[i, left:left + line_width] = [255, 0, 0]
+ img[i, right - line_width:right] = [255, 0, 0]
+ return img
+
+ result = _Baidu_det(x)
+ HAs_list = _get_attributes_list(result)
+ locations = []
+ for i in range(len(result['person_info'])):
+ locations.append(result['person_info'][i]['location'])
+
+ return _show_img(x, locations), f"模型检测到的人数为:{result['person_num']}人"
+
+
+def model2_rem(x):
+ """背景消除
+ :param x: 前端传入的图片
+ :return: 返回处理后的图片
+ """
+
+ def _Baidu_rem(img):
+ """调用百度AI接口进行背景消除
+ :param img: 前端传入的图片,格式为numpy.ndarray
+ :return: 返回处理后的图片
+ """
+ request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg"
+ bgr_image = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
+ cv2.imwrite('test.jpg', bgr_image)
+ f = open('test.jpg', 'rb')
+ hex_image = base64.b64encode(f.read())
+ params = {"image": hex_image}
+ access_token = get_access_token()
+ request_url = request_url + "?access_token=" + access_token
+ headers = {'content-type': 'application/x-www-form-urlencoded'}
+ response = requests.post(request_url, data=params, headers=headers)
+ if response:
+ encoded_image = response.json()["foreground"]
+ decoded_image = base64.b64decode(encoded_image)
+ image = Image.open(BytesIO(decoded_image))
+ image_array = np.array(image)
+ return image_array
+
+ resized_x, resized_f = resize_image(x)
+ new_img = _Baidu_rem(resized_x)
+ if resized_f:
+ resized_f = "图片尺寸已被修改至合适大小"
+ else:
+ resized_f = "图片尺寸无需修改"
+
+ return new_img, resized_f
+
+
+def model3_ext(x: np.ndarray, num_clusters=12):
+ """主色调提取
+ :param x: 前端传入的图片
+ :param num_clusters: 聚类的数量
+ :return: 返回主色调条形卡片"""
+
+ # TODO: 编写颜色名称匹配算法[most important]
+ # TODO: 修改颜色条形卡片呈现形式,要求呈现颜色名称和比例[important]
+ def _find_name(color):
+ """根据颜色值查找颜色名称
+ :param color:颜色值
+ :return:返回颜色名称
+ """
+ pass
+
+ def _cluster(img, NUM_CLUSTERS):
+ """K-means 聚类提取主色调
+ :param img: 前端传入的图片
+ :param NUM_CLUSTERS: 聚类的数量
+ :return: 返回聚类结果
+ """
+ h, w, ch = img.shape
+ reshaped_x = np.float32(img.reshape((-1, 4)))
+ new_data_list = []
+ for i in range(len(reshaped_x)):
+ if reshaped_x[i][3] < 100:
+ continue
+ else:
+ new_data_list.append(reshaped_x[i])
+ reshaped_x = np.array(new_data_list)
+ reshaped_x = np.delete(reshaped_x, 3, axis=1)
+ criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
+ NUM_CLUSTERS = NUM_CLUSTERS
+ ret, label, center = cv2.kmeans(reshaped_x, NUM_CLUSTERS, None, criteria,
+ NUM_CLUSTERS, cv2.KMEANS_RANDOM_CENTERS)
+ clusters = np.zeros([NUM_CLUSTERS], dtype=np.int32)
+ for i in range(len(label)):
+ clusters[label[i][0]] += 1
+ clusters = np.float32(clusters) / float(len(reshaped_x))
+ center = np.int32(center)
+ x_offset = 0
+ card = np.zeros((50, w, 3), dtype=np.uint8)
+ for c in np.argsort(clusters)[::-1]:
+ dx = int(clusters[c] * w)
+ b = center[c][0]
+ g = center[c][1]
+ r = center[c][2]
+ cv2.rectangle(card, (x_offset, 0), (x_offset + dx, 50),
+ (int(b), int(g), int(r)), -1)
+ x_offset += dx
+
+ return card, resized_f
+
+ resized_x, resized_f = resize_image(x)
+ card, resized_f = _cluster(resized_x, num_clusters)
+ if resized_f:
+ resized_f = "图片尺寸已被修改至合适大小"
+ else:
+ resized_f = "图片尺寸无需修改"
+
+ return card, resized_f
+
+
+def model4_clo(x_path: str):
+ def _get_result(input_path: str, cls_results: dict) -> pd.DataFrame:
+ """convert the results of model6_2 to a dataframe
+ :param input_path: the (absolute) path of the image
+ :param cls_results: the results of model6_2
+
+ :return: a dataframe to display on the web
+ """
+ result_pd = []
+ img_name = os.path.basename(input_path)
+ pred_profile = cls_results[img_name][0]['pred_class']
+ pred_score = round(cls_results[img_name][0]['pred_score'], 2)
+ result_pd.append([img_name, pred_profile, pred_score])
+ df = pd.DataFrame(result_pd, columns=None)
+ return df
+
+ output_path_root = 'upload_to_web_tmp'
+ if not os.path.exists(output_path_root):
+ os.mkdir(output_path_root)
+ cls_result = model6_inferencer(x_path, output_path_root)
+
+ if cls_result:
+ # use np to read image·
+ x_name = os.path.basename(x_path)
+ pred_x = np.array(Image.open(os.path.join(output_path_root, 'visualizations', x_name)))
+
+ return pred_x, _get_result(x_path, cls_result), "识别成功!"
+ # TODO: 完善识别失败时的处理(model6_inference.py中)[important]
+ return x_path, pd.DataFrame(), "未检测到服装"
+
+
+with gr.Blocks() as demo:
+ gr.Markdown("# Flip text or image files using this demo.")
+ with gr.Tab("人体检测模型"):
+ with gr.Row():
+ model1_input = gr.Image(height=400)
+ model1_output_img = gr.Image(height=400)
+ # model1_output_df = gr.DataFrame()
+ model1_button = gr.Button("开始检测")
+ with gr.Tab("背景消除模型"):
+ with gr.Row():
+ model2_input = gr.Image(height=400)
+ model2_output_img = gr.Image(height=400)
+ model2_button = gr.Button("开始消除")
+ with gr.Tab('主色调提取'):
+ with gr.Row():
+ with gr.Column():
+ # TODO: 参照“蒙娜丽莎”尝试修改前端界面[not important]
+ # TODO: 修改布局,使其更美观[moderately important]
+ model3_input = gr.Image(height=400, image_mode='RGBA')
+ model3_slider = gr.Slider(minimum=1, maximum=20, step=1, value=12,
+ min_width=400, label="聚类数量")
+ model3_output_img = gr.Image(height=400)
+ model3_button = gr.Button("开始提取")
+ with gr.Tab("廓形识别"):
+ with gr.Row():
+ model4_input = gr.Image(height=400, type="filepath")
+ model4_output_img = gr.Image(height=400)
+ model4_output_df = gr.DataFrame(headers=['img_name', 'pred_profile', 'pred_score'],
+ datatype=['str', 'str', 'number'])
+ model4_button = gr.Button("开始识别")
+ # 设置折叠内容
+ with gr.Accordion("模型运行信息"):
+ running_info = gr.Markdown("等待输入和运行...")
+
+ model1_button.click(model1_det, inputs=model1_input, outputs=[model1_output_img, running_info])
+ model2_button.click(model2_rem, inputs=model2_input, outputs=[model2_output_img, running_info])
+ model3_button.click(model3_ext, inputs=[model3_input, model3_slider], outputs=[model3_output_img, running_info])
+ model4_button.click(model4_clo, inputs=model4_input, outputs=[model4_output_img, model4_output_df, running_info])
+demo.launch(share=True)
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..64fa7cb246a7694cc07b7d9e564f962a413a9c76
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,14 @@
+mmcv==2.0.0
+mmdet==3.0.0
+mmengine==0.8.4
+mmpose==1.1.0
+mmpretrain==1.0.2
+mmyolo==0.6.0
+numpy==1.23.5
+opencv-python==4.7.0.72
+openmim==0.3.7
+pandas==2.0.0
+pillow==9.4.0
+pip==23.0.1
+pycocotools==2.0.7
+scipy==1.10.1