Add code of GaitBase (#115)

* add resnet9 backbone and regular da ops

* add gait3d config

* fix invalid path CASIA-B* in windows

* add gaitbase config for all datasets

* rm unused OpenGait transform
This commit is contained in:
Junhao Liang
2023-03-20 14:59:08 +08:00
committed by GitHub
parent 9b74b39f80
commit 638c657763
16 changed files with 656 additions and 161 deletions
+108
View File
@@ -0,0 +1,108 @@
data_cfg:
dataset_name: CASIA-B
dataset_root: your_path
dataset_partition: ./datasets/CASIA-B/CASIA-B.json
num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: CASIA-B
evaluator_cfg:
enable_float16: true
restore_ckpt_strict: true
restore_hint: 0
save_name: GaitBase_DA
#eval_func: GREW_submission
sampler:
batch_shuffle: false
batch_size: 16
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: BaseSilCuttingTransform
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: 74
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
- 20000
- 40000
- 50000
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: 60000
save_name: GaitBase_DA
sync_BN: true
total_iter: 60000
sampler:
batch_shuffle: true
batch_size:
- 8 # TripletSampler, batch_size[0] indicates Number of Identity
- 16 # batch_size[1] indicates Samples sequqnce for each Identity
frames_num_fixed: 30 # fixed frames number for training
frames_num_max: 40 # max frames number for unfixed training
frames_num_min: 20 # 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: Compose
trf_cfg:
- type: BaseSilCuttingTransform
- type: RandomRotate
prob: 0.3
- type: RandomErasing
prob: 0.3
+110
View File
@@ -0,0 +1,110 @@
data_cfg:
dataset_name: Gait3D
dataset_root: your_path
dataset_partition: ./datasets/Gait3D/Gait3D.json
num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: Gait3D
evaluator_cfg:
enable_float16: true
restore_ckpt_strict: true
restore_hint: 60000
save_name: GaitBase_DA
eval_func: evaluate_Gait3D
sampler:
batch_shuffle: false
batch_size: 16
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: BaseSilTransform
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
- 20000
- 40000
- 50000
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: 20000
save_name: GaitBase_DA
sync_BN: true
total_iter: 60000
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: 10 # min frames number for unfixed traing
sample_type: unfixed_unordered # fixed control input frames number, unordered for controlling order of input tensor; Other options: unfixed_ordered or all_ordered
type: TripletSampler
transform:
- type: Compose
trf_cfg:
- type: RandomPerspective
prob: 0.2
- type: BaseSilTransform
- type: RandomHorizontalFlip
prob: 0.2
- type: RandomRotate
prob: 0.2
+108
View File
@@ -0,0 +1,108 @@
data_cfg:
dataset_name: GREW
dataset_root: your_path
dataset_partition: ./datasets/GREW/GREW.json
num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: GREW
evaluator_cfg:
enable_float16: true
restore_ckpt_strict: true
restore_hint: 180000
save_name: GaitBase_DA
eval_func: GREW_submission
sampler:
batch_shuffle: false
batch_size: 16
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: BaseSilCuttingTransform
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: 20000
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
- 80000
- 120000
- 150000
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: 60000
save_name: GaitBase_DA
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: 40 # max frames number for unfixed training
frames_num_min: 20 # min frames number for unfixed traing
sample_type: unfixed_unordered # fixed control input frames number, unordered for controlling order of input tensor; Other options: unfixed_ordered or all_ordered
type: TripletSampler
transform:
- type: Compose
trf_cfg:
- type: RandomPerspective
prob: 0.2
- type: BaseSilCuttingTransform
- type: RandomHorizontalFlip
prob: 0.2
- type: RandomRotate
prob: 0.2
+103
View File
@@ -0,0 +1,103 @@
data_cfg:
dataset_name: OUMVLP
dataset_root: your_path
dataset_partition: ./datasets/OUMVLP/OUMVLP.json
num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: OUMVLP
evaluator_cfg:
enable_float16: true
restore_ckpt_strict: true
restore_hint: 120000
save_name: GaitBase
#eval_func: GREW_submission
sampler:
batch_shuffle: false
batch_size: 16
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: BaseSilCuttingTransform
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: 5153
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
- 60000
- 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: 60000
save_name: GaitBase
sync_BN: true
total_iter: 120000
sampler:
batch_shuffle: true
batch_size:
- 32 # TripletSampler, batch_size[0] indicates Number of Identity
- 8 # batch_size[1] indicates Samples sequqnce for each Identity
frames_num_fixed: 30 # fixed frames number for training
frames_num_max: 40 # max frames number for unfixed training
frames_num_min: 20 # 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: BaseSilCuttingTransform
+1 -1
View File
@@ -8,7 +8,7 @@ Gait is one of the most promising biometrics to identify individuals at a long d
## CASIA-B*
Since the silhouettes of CASIA-B were obtained by the outdated background subtraction, there exists much noise caused by the background and clothes of subjects. Hence, we re-annotate the
silhouettes of CASIA-B and denote it as CASIA-B*. You can visit [this link](http://www.cbsr.ia.ac.cn/english/Gait%20Databases.asp) to apply for CASIA-B*. More details about CASIA-B* can be found in [this link](../../datasets/CASIA-B*/README.md).
silhouettes of CASIA-B and denote it as CASIA-B*. You can visit [this link](http://www.cbsr.ia.ac.cn/english/Gait%20Databases.asp) to apply for CASIA-B*. More details about CASIA-B* can be found in [this link](../../datasets/CASIA-B/README.md).
## Performance
| Model | NM | BG | CL | TTG-200 (cross-domain) | Configuration |
+1 -1
View File
@@ -3,7 +3,7 @@ data_cfg:
dataset_name: CASIA-B*
dataset_root: your_path
data_in_use: [true, false, false, false]
dataset_partition: ./datasets/CASIA-B*/CASIA-B*.json
dataset_partition: ./datasets/CASIA-B/CASIA-B.json
num_workers: 1
remove_no_gallery: false
test_dataset_name: CASIA-B
+1 -1
View File
@@ -3,7 +3,7 @@ data_cfg:
dataset_name: CASIA-B*
dataset_root: your_path
data_in_use: [false, false, true, true]
dataset_partition: ./datasets/CASIA-B*/CASIA-B*.json
dataset_partition: ./datasets/CASIA-B/CASIA-B.json
num_workers: 1
remove_no_gallery: false
test_dataset_name: CASIA-B
+1 -1
View File
@@ -2,7 +2,7 @@ data_cfg:
dataset_name: CASIA-B*
dataset_root: your_path
data_in_use: [false, true, true, true]
dataset_partition: ./datasets/CASIA-B*/CASIA-B*.json
dataset_partition: ./datasets/CASIA-B/CASIA-B.json
num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: CASIA-B
+1 -1
View File
@@ -2,7 +2,7 @@ data_cfg:
dataset_name: CASIA-B*
dataset_root: your_path
data_in_use: [false, true, true, true]
dataset_partition: ./datasets/CASIA-B*/CASIA-B*.json
dataset_partition: ./datasets/CASIA-B/CASIA-B.json
num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: CASIA-B