Update ParsingGait (#160)

* Update ParsingGait

* Clear up the confusion

Clear up the confusion about gait3d and gait3d-parsing.

* Update 0.get_started.md

* Add BaseParsingCuttingTransform

* Update gcn.py

* Create gaitbase_gait3d_parsing_btz32x2_fixed.yaml

* Add gait3d_parsing config file

* Update 1.model_zoo.md

Update Gait3D-Parsing checkpoints

* Update 1.model_zoo.md

add configuration

* Update 1.model_zoo.md

center text

---------

Co-authored-by: Junhao Liang <43094337+darkliang@users.noreply.github.com>
This commit is contained in:
Zzier
2023-10-29 21:53:02 +08:00
committed by GitHub
parent 44fb2414f2
commit 609aa0e9aa
17 changed files with 1422 additions and 3 deletions
@@ -0,0 +1,103 @@
data_cfg:
dataset_name: Gait3D-Parsing
dataset_root: your_path
dataset_partition: ./datasets/Gait3D/Gait3D.json # Uses the same Gait3D.json as Gait3D dataset
# data_in_use: [true, false]
num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: Gait3D-Parsing
evaluator_cfg:
enable_float16: true
restore_ckpt_strict: true
restore_hint: 120000
save_name: GaitBase_btz32x2_fixed
eval_func: evaluate_Gait3D
sampler:
batch_shuffle: false
batch_size: 4
sample_type: all_ordered # all indicates whole sequence used to test, while ordered means input sequence by its natural order; Other options: fixed_unordered
frames_all_limit: 720 # limit the number of sampled frames to prevent out of memory
metric: euc # cos
transform:
- type: BaseParsingCuttingTransform
loss_cfg:
- loss_term_weight: 1.0
margin: 0.2
type: TripletLoss
log_prefix: triplet
- loss_term_weight: 1.0
scale: 16
type: CrossEntropyLoss
log_prefix: softmax
log_accuracy: true
model_cfg:
model: Baseline
backbone_cfg:
type: ResNet9
block: BasicBlock
channels: # Layers configuration for automatically model construction
- 64
- 128
- 256
- 512
layers:
- 1
- 1
- 1
- 1
strides:
- 1
- 2
- 2
- 1
maxpool: false
SeparateFCs:
in_channels: 512
out_channels: 256
parts_num: 16
SeparateBNNecks:
class_num: 3000
in_channels: 256
parts_num: 16
bin_num:
- 16
optimizer_cfg:
lr: 0.1
momentum: 0.9
solver: SGD
weight_decay: 0.0005
scheduler_cfg:
gamma: 0.1
milestones: # Learning Rate Reduction at each milestones
- 40000
- 80000
- 100000
scheduler: MultiStepLR
trainer_cfg:
enable_float16: true # half_percesion float for memory reduction and speedup
fix_BN: false
with_test: false
log_iter: 100
restore_ckpt_strict: true
restore_hint: 0
save_iter: 40000
save_name: GaitBase_btz32x2_fixed
sync_BN: true
total_iter: 120000
sampler:
batch_shuffle: true
batch_size:
- 32 # TripletSampler, batch_size[0] indicates Number of Identity
- 2 # batch_size[1] indicates Samples sequqnce for each Identity
frames_num_fixed: 30 # fixed frames number for training
frames_num_max: 50 # max frames number for unfixed training
frames_num_min: 10 # min frames number for unfixed traing
sample_type: fixed_unordered # fixed control input frames number, unordered for controlling order of input tensor; Other options: unfixed_ordered or all_ordered
type: TripletSampler
transform:
- type: BaseParsingCuttingTransform
+74
View File
@@ -0,0 +1,74 @@
# Note : *** the batch_size should be equal to the gpus number at the test phase!!! ***
data_cfg:
dataset_name: Gait3D-Parsing
dataset_root: your_path
dataset_partition: ./datasets/Gait3D/Gait3D.json # Uses the same Gait3D.json as Gait3D dataset
num_workers: 1
remove_no_gallery: false
test_dataset_name: Gait3D-Parsing
evaluator_cfg:
enable_float16: false
restore_ckpt_strict: true
restore_hint: 180000
save_name: GaitGL
eval_func: evaluate_Gait3D
metric: cos
sampler:
batch_size: 4
sample_type: all_ordered
type: InferenceSampler
transform:
- type: BaseParsingCuttingTransform
loss_cfg:
- loss_term_weight: 1.0
margin: 0.2
type: TripletLoss
log_prefix: triplet
- loss_term_weight: 1.0
scale: 1
type: CrossEntropyLoss
log_accuracy: true
label_smooth: false
log_prefix: softmax
model_cfg:
model: GaitGL
channels: [32, 64, 128]
class_num: 3000
optimizer_cfg:
lr: 1.0e-3
momentum: 0.9
solver: Adam
weight_decay: 5.0e-4
scheduler_cfg:
gamma: 0.1
milestones:
- 30000
- 90000
scheduler: MultiStepLR
trainer_cfg:
enable_float16: true
with_test: false
log_iter: 100
restore_ckpt_strict: true
restore_hint: 0
save_iter: 30000
save_name: GaitGL
sync_BN: true
total_iter: 180000
sampler:
batch_shuffle: true
batch_size:
- 32
- 4
frames_num_fixed: 30
frames_skip_num: 0
sample_type: fixed_ordered
type: TripletSampler
transform:
- type: BaseParsingCuttingTransform
@@ -0,0 +1,86 @@
data_cfg:
dataset_name: Gait3D-Parsing
dataset_root: your_path
dataset_partition: ./datasets/Gait3D/Gait3D.json # Uses the same Gait3D.json as Gait3D dataset
num_workers: 1
remove_no_gallery: false
test_dataset_name: Gait3D-Parsing
evaluator_cfg:
enable_float16: false
restore_ckpt_strict: true
restore_hint: 180000
save_name: GaitPart
eval_func: evaluate_Gait3D
metric: cos
sampler:
batch_size: 16
sample_type: all_ordered
type: InferenceSampler
transform:
- type: BaseParsingCuttingTransform
loss_cfg:
loss_term_weight: 1.0
margin: 0.2
type: TripletLoss
log_prefix: triplet
model_cfg:
model: GaitPart
backbone_cfg:
in_channels: 1
layers_cfg:
- BC-32
- BC-32
- M
- FC-64-2
- FC-64-2
- M
- FC-128-3
- FC-128-3
type: Plain
SeparateFCs:
in_channels: 128
out_channels: 128
parts_num: 16
bin_num:
- 16
optimizer_cfg:
lr: 0.001
momentum: 0.9
solver: Adam
weight_decay: 0.0005
scheduler_cfg:
gamma: 0.1
milestones:
- 30000
- 90000
scheduler: MultiStepLR
trainer_cfg:
enable_float16: true
log_iter: 100
with_test: false
restore_ckpt_strict: true
restore_hint: 0
save_iter: 30000
save_name: GaitPart
sync_BN: false
total_iter: 180000
sampler:
batch_shuffle: false
batch_size:
- 32
- 4
frames_num_fixed: 30
frames_num_max: 50
frames_num_min: 25
frames_skip_num: 10
sample_type: fixed_ordered
type: TripletSampler
transform:
- type: BaseParsingCuttingTransform
@@ -0,0 +1,81 @@
data_cfg:
dataset_name: Gait3D-Parsing
dataset_root: your_path
dataset_partition: ./datasets/Gait3D/Gait3D.json # Uses the same Gait3D.json as Gait3D dataset
num_workers: 1
remove_no_gallery: false
test_dataset_name: Gait3D-Parsing
evaluator_cfg:
enable_float16: false
restore_ckpt_strict: true
restore_hint: 180000
save_name: GaitSet
eval_func: evaluate_Gait3D
metric: cos
sampler:
batch_size: 16
sample_type: all_ordered
type: InferenceSampler
transform:
- type: BaseParsingCuttingTransform
loss_cfg:
loss_term_weight: 1.0
margin: 0.2
type: TripletLoss
log_prefix: triplet
model_cfg:
model: GaitSet
in_channels:
- 1
- 32
- 64
- 128
SeparateFCs:
in_channels: 128
out_channels: 256
parts_num: 62
bin_num:
- 16
- 8
- 4
- 2
- 1
optimizer_cfg:
lr: 0.001
momentum: 0.9
solver: Adam
weight_decay: 0.0005
scheduler_cfg:
gamma: 0.1
milestones:
- 30000
- 90000
scheduler: MultiStepLR
trainer_cfg:
enable_float16: true
log_iter: 100
with_test: false
restore_ckpt_strict: true
restore_hint: 0
save_iter: 30000
save_name: GaitSet
sync_BN: false
total_iter: 180000
sampler:
batch_shuffle: false
batch_size:
- 32
- 4
frames_num_fixed: 30
frames_num_max: 50
frames_num_min: 25
sample_type: fixed_unordered
type: TripletSampler
transform:
- type: BaseParsingCuttingTransform
@@ -0,0 +1,97 @@
data_cfg:
dataset_name: Gait3D-Parsing
dataset_root: your_path
dataset_partition: ./datasets/Gait3D/Gait3D.json # Uses the same Gait3D.json as Gait3D dataset
num_workers: 1
cache: false
remove_no_gallery: false
test_dataset_name: Gait3D-Parsing
evaluator_cfg:
enable_distributed: true
enable_float16: false
restore_ckpt_strict: true
restore_hint: 180000
save_name: GLN_P1
eval_func: evaluate_Gait3D
metric: cos
sampler:
batch_size: 8
sample_type: all_ordered
type: InferenceSampler
transform:
- type: BaseParsingCuttingTransform
loss_cfg:
- loss_term_weight: 1.0
margin: 0.2
type: TripletLoss
log_prefix: triplet
# - loss_term_weight: 0.1
# scale: 1
# type: CrossEntropyLoss
# log_prefix: softmax
model_cfg:
model: GLN
class_num: 3000
lateral_dim : 256
hidden_dim : 256
dropout : 0.9
in_channels:
- 1
- 32
- 64
- 128
SeparateFCs:
in_channels: 256
out_channels: 256
parts_num: 93
bin_num:
- 16
- 8
- 4
- 2
- 1
Lateral_pretraining: true
optimizer_cfg:
lr: 0.001
momentum: 0.9
solver: Adam
weight_decay: 0.0005
# lr: 0.0001
# momentum: 0.9
# solver: Adam
# weight_decay: 0.0005
scheduler_cfg:
gamma: 0.1
milestones:
- 30000
- 90000
scheduler: MultiStepLR
trainer_cfg:
enable_float16: true
fix_layers: false
with_test: false
log_iter: 100
optimizer_reset: false
restore_ckpt_strict: true
restore_hint: 0
save_iter: 30000
save_name: GLN_P1
sync_BN: true
total_iter: 180000
sampler:
batch_shuffle: false
batch_size:
- 32
- 4
frames_num_fixed: 30
frames_skip_num: 0
sample_type: fixed_ordered
type: TripletSampler
transform:
- type: BaseParsingCuttingTransform
@@ -0,0 +1,93 @@
data_cfg:
dataset_name: Gait3D-Parsing
dataset_root: your_path
dataset_partition: ./datasets/Gait3D/Gait3D.json # Uses the same Gait3D.json as Gait3D dataset
num_workers: 1
remove_no_gallery: false
test_dataset_name: Gait3D-Parsing
evaluator_cfg:
enable_distributed: true
enable_float16: false
restore_ckpt_strict: true
restore_hint: 180000
save_name: GLN_P2
eval_func: evaluate_Gait3D
metric: cos
sampler:
batch_size: 4
sample_type: all_ordered
type: InferenceSampler
transform:
- type: BaseParsingCuttingTransform
loss_cfg:
- loss_term_weight: 1.0
margin: 0.2
type: TripletLoss
log_prefix: triplet
- loss_term_weight: 0.1
scale: 16
type: CrossEntropyLoss
log_prefix: softmax
model_cfg:
model: GLN
class_num: 3000
lateral_dim : 256
hidden_dim : 256
dropout : 0.9
in_channels:
- 1
- 32
- 64
- 128
SeparateFCs:
in_channels: 256
out_channels: 256
parts_num: 93
bin_num:
- 16
- 8
- 4
- 2
- 1
Lateral_pretraining: false
optimizer_cfg:
lr: 0.001
momentum: 0.9
solver: Adam
weight_decay: 0.0005
scheduler_cfg:
gamma: 0.1
milestones:
- 30000
- 90000
scheduler: MultiStepLR
trainer_cfg:
enable_distributed: true
enable_float16: true
fix_layers: false
log_iter: 100
optimizer_reset: true
scheduler_reset: true
restore_ckpt_strict: false
restore_hint: output/Gait3D-Parsing/GLN/GLN_P1/checkpoints/GLN_P1-180000.pt
save_iter: 30000
save_name: GLN_P2
sync_BN: true
total_iter: 180000
sampler:
batch_shuffle: false
batch_size:
- 32
- 4
frames_num_fixed: 30
frames_skip_num: 0
sample_type: fixed_ordered
type: TripletSampler
transform:
- type: BaseParsingCuttingTransform
@@ -0,0 +1,109 @@
data_cfg:
dataset_name: Gait3D-Parsing
dataset_root: your_path
dataset_partition: ./datasets/Gait3D/Gait3D.json # Uses the same Gait3D.json as Gait3D dataset
# data_in_use: [true, false]
num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: Gait3D-Parsing
evaluator_cfg:
enable_float16: true
restore_ckpt_strict: true
restore_hint: 120000
save_name: ParsingGait
eval_func: evaluate_Gait3D
sampler:
batch_shuffle: false
batch_size: 4
sample_type: all_ordered # all indicates whole sequence used to test, while ordered means input sequence by its natural order; Other options: fixed_unordered
frames_all_limit: 720 # limit the number of sampled frames to prevent out of memory
metric: euc # cos
transform:
- type: BaseParsingCuttingTransform
loss_cfg:
- loss_term_weight: 1.0
margin: 0.2
type: TripletLoss
log_prefix: triplet
- loss_term_weight: 1.0
scale: 16
type: CrossEntropyLoss
log_prefix: softmax
log_accuracy: true
model_cfg:
model: ParsingGait
backbone_cfg:
type: ResNet9
block: BasicBlock
channels: # Layers configuration for automatically model construction
- 64
- 128
- 256
- 512
layers:
- 1
- 1
- 1
- 1
strides:
- 1
- 2
- 2
- 1
maxpool: false
SeparateFCs:
in_channels: 512
out_channels: 256
parts_num: 21
SeparateBNNecks:
class_num: 3000
in_channels: 256
parts_num: 21
bin_num:
- 16
gcn_cfg:
fine_parts: 11
coarse_parts: 5
only_fine_graph: false
only_coarse_graph: true
combine_fine_coarse_graph: false
optimizer_cfg:
lr: 0.1
momentum: 0.9
solver: SGD
weight_decay: 0.0005
scheduler_cfg:
gamma: 0.1
milestones: # Learning Rate Reduction at each milestones
- 40000
- 80000
- 100000
scheduler: MultiStepLR
trainer_cfg:
enable_float16: true # half_percesion float for memory reduction and speedup
fix_BN: false
with_test: True
log_iter: 100
restore_ckpt_strict: true
restore_hint: 0
save_iter: 40000
save_name: ParsingGait
sync_BN: true
total_iter: 120000
sampler:
batch_shuffle: true
batch_size:
- 32 # TripletSampler, batch_size[0] indicates Number of Identity
- 2 # batch_size[1] indicates Samples sequqnce for each Identity
frames_num_fixed: 30 # fixed frames number for training
frames_num_max: 50 # max frames number for unfixed training
frames_num_min: 10 # min frames number for unfixed traing
sample_type: fixed_unordered # fixed control input frames number, unordered for controlling order of input tensor; Other options: unfixed_ordered or all_ordered
type: TripletSampler
transform:
- type: BaseParsingCuttingTransform
@@ -0,0 +1,107 @@
data_cfg:
dataset_name: Gait3D-Parsing
dataset_root: your_path
dataset_partition: datasets/Gait3D/Gait3D.json # Uses the same Gait3D.json as Gait3D dataset
data_in_use: [true, false, true]
num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: Gait3D-Parsing
evaluator_cfg:
enable_float16: true
restore_ckpt_strict: true
restore_hint: 180000
save_name: SMPLGait
eval_func: evaluate_Gait3D
metric: cos # cos euc
sampler:
batch_shuffle: false
batch_size: 4
sample_type: all_ordered # all indicates whole sequence used to test, while ordered means input sequence by its natural order; Other options: fixed_unordered
frames_all_limit: 720 # limit the number of sampled frames to prevent out of memory
transform:
- type: BaseParsingCuttingTransform
img_w: 64
- type: NoOperation
loss_cfg:
- loss_term_weight: 1.0
margin: 0.2
type: TripletLoss
log_prefix: triplet
- loss_term_weight: 0.1
scale: 16
type: CrossEntropyLoss
log_prefix: softmax
log_accuracy: true
model_cfg:
model: SMPLGait
backbone_cfg:
in_channels: 1
layers_cfg: # Layers configuration for automatically model construction
- BC-64
- BC-64
- M
- BC-128
- BC-128
- M
- BC-256
- BC-256
# - M
# - BC-512
# - BC-512
type: Plain
SeparateFCs:
in_channels: 256
out_channels: 256
parts_num: 31
SeparateBNNecks:
class_num: 3000
in_channels: 256
parts_num: 31
bin_num:
- 16
- 8
- 4
- 2
- 1
optimizer_cfg:
lr: 0.001
momentum: 0.9
solver: Adam
weight_decay: 0.0005
scheduler_cfg:
gamma: 0.1
milestones: # Learning Rate Reduction at each milestones
- 30000
- 90000
scheduler: MultiStepLR
trainer_cfg:
enable_float16: true # half_percesion float for memory reduction and speedup
fix_BN: false
log_iter: 100
with_test: false
restore_ckpt_strict: true
restore_hint: 0
save_iter: 30000
save_name: SMPLGait
sync_BN: true
total_iter: 180000
sampler:
batch_shuffle: true
batch_size:
- 32 # TripletSampler, batch_size[0] indicates Number of Identity
- 4 # batch_size[1] indicates Samples sequqnce for each Identity
frames_num_fixed: 30 # fixed frames number for training
frames_num_max: 50 # max frames number for unfixed training
frames_num_min: 25 # min frames number for unfixed traing
sample_type: fixed_unordered # fixed control input frames number, unordered for controlling order of input tensor; Other options: unfixed_ordered or all_ordered
type: TripletSampler
transform:
- type: BaseParsingCuttingTransform
img_w: 64
- type: NoOperation