SkeletonGait: Gait Recognition Using Skeleton Maps
This paper has been accepted by AAAI 2024.
Generating Heatmap and Training Steps
Step 1: Generating Heatmap
Leveraging the power of Distributed Data Parallel (DDP), we've streamlined the heatmap generation process. Below is the script to initiate the generation:
CUDA_VISIBLE_DEVICES=0,1,2,3 \
python -m torch.distributed.launch \
--nproc_per_node=4 \
datasets/pretreatment_heatmap.py \
--pose_data_path=<your pose .pkl files path> \
--save_root=<your_path> \
--dataset_name=<dataset_name>
Parameter Guide:
--pose_data_path: Specifies the directory containing the pose data files (.pkl, ID-Level). This is required.--save_root: Designates the root directory for storing the generated heatmap files (.pkl, ID-Level). This is required.--dataset_name: The name of the dataset undergoing preprocessing. This is required.--ext_name: An optional suffix for the 'save_root' directory to facilitate identification. Defaults to an empty string.--heatmap_cfg_path: Path to the configuration file of the heatmap generator. The default setting isconfigs/skeletongait/pretreatment_heatmap.yaml.
Note: If your pose data follows the COCO 18 format (for instance, OU-MVLP pose data or data extracted using OpenPose in COCO format), ensure to set transfer_to_coco17 to True in the configuration file configs/skeletongait/pretreatment_heatmap.yaml.
Optional
Step 2: Creating Symbolic Links for Heatmap and Silhouette Data
The script to symlink heatmaps and silouettes is as follows:
python datasets/ln_sil_heatmap.py \
--heatmap_data_path=<path_to_your_heatmap_folder> \
--silhouette_data_path=<path_to_your_silhouette_folder> \
--output_path=<path_to_your_output_folder>
Parameter Guide:
--heatmap_data_path: The absolute path to your heatmap data. This is required.--silhouette_data_path: The absolute path to your silhouette data. This is required.--output_path: Designates the directory for linked output data. This is required.--dataset_pkl_ext_name: An optional parameter to specify the extension for.pklsilhouette files. Defaults to.pkl. CCPG isaligned-sils.pkl, SUSTech-1K isCamera-Sils_aligned.pkl, and other is.pkl.
Step3: Training SkeletonGait or SkeletonGait++
The script to SkeletonGait is as follows:
CUDA_VISIBLE_DEVICES=0,1,2,3 \
python -m torch.distributed.launch \
--nproc_per_node=4 opengait/main.py \
--cfgs ./configs/skeletongait/skeletongait_Gait3D.yaml \
--phase train --log_to_file
The script to SkeletonGait++ is as follows:
CUDA_VISIBLE_DEVICES=0,1,2,3 \
python -m torch.distributed.launch \
--nproc_per_node=4 opengait/main.py \
--cfgs ./configs/skeletongait/skeletongait++_Gait3D.yaml \
--phase train --log_to_file
Performance for SkeletonGait and SkeletonGait++
SkeletonGait
| Datasets | Rank1 |
Configuration |
|---|---|---|
| CCPG | CL: 52.4, UP: 65.4, DN: 72.8, BG: 80.9 | skeletongait_CCPG.yaml |
| OU-MVLP (AlphaPose) | TODO | skeletongait_OUMVLP.yaml |
| SUSTech-1K | Normal: 54.2, Bag: 51.7, Clothing: 21.34, Carrying: 51.59, Umberalla: 44.5, Uniform: 53.37, Occlusion: 67.07, Night: 44.15, Overall: 51.46 | skeletongait_SUSTech1K.yaml |
| Gait3D | 38.1 | skeletongait_Gait3D.yaml |
| GREW | TODO | skeletongait_GREW.yaml |
SkeletonGait++
| Datasets | Rank1 |
Configuration |
|---|---|---|
| CCPG | CL: 90.1, UP: 95.0, DN: 92.9, BG: 97.0 | skeletongait++_CCPG.yaml |
| SUSTech-1K | Normal: 85.09, Bag: 82.90, Clothing: 46.53, Carrying: 81.88, Umberalla: 80.76, Uniform: 82.50, Occlusion: 86.16, Night: 47.48, Overall: 81.33 | skeletongait++_SUSTech1K.yaml |
| Gait3D | 77.40 | skeletongait++_Gait3D.yaml |
| GREW | 87.04 | skeletongait++_GREW.yaml |