How jho-yonsei/hd-gcn works
HD-GCN is a research implementation for skeleton-based action recognition. The main workflow prepares NTU skeleton sequences, configures joint or bone inputs and a dataset split, then trains or tests the HD-GCN through main.py; testing can save class scores for a separate ensemble step. NW-UCLA has its own feeder, while graph construction and temporal convolution support the model internally. The README documents the broader workflow; links to unsampled runtime modules are limited to those supported by the tree and documented entry points.
Main entry points: main.py Train and test · feeder_ntu.py NTU feeder · get_raw_skes_data.py Extract skeletons · ensemble.py Six-way ensemble
Components 22
Data preparation
- Extract skeletons
data/ntu/get_raw_skes_data.py - Denoise skeletons
data/ntu/get_raw_denoised_data.py - Transform and split
data/ntu/seq_transformation.py - Extract 120 skeletons
data/ntu120/get_raw_skes_data.py - Denoise 120 skeletons
data/ntu120/get_raw_denoised_data.py - Transform and split 120
data/ntu120/seq_transformation.py
Input pipelines
- Experiment configs
config - NTU feeder
feeders/feeder_ntu.py - UCLA feeder
feeders/feeder_ucla.py - Sequence transforms
feeders/tools.py
Recognition runtime
- Train and test
main.py - HD-GCN model
model/HDGCN.py - Hierarchical graph
graph/ntu_rgb_d_hierarchy.py - Graph utilities
graph/tools.py - Runtime utilities
torchlight/torchlight/util.py
Evaluation and results
- Model checkpoints
- Test score files
- Six-way ensemble
ensemble.py - Action predictions
Other components
- Researcher
- NTU skeletons
- NW-UCLA data
Connections 25
- Researcher → Extract skeletons: runs preparation
- NTU skeletons → Extract skeletons: provides skeletons
- Extract skeletons → Denoise skeletons: parsed skeletons
- Denoise skeletons → Transform and split: cleaned sequences
- NTU skeletons → Extract 120 skeletons: provides skeletons
- Extract 120 skeletons → Denoise 120 skeletons: parsed skeletons
- Denoise 120 skeletons → Transform and split 120: cleaned sequences
- Researcher → Train and test: starts experiment
- Experiment configs → Train and test: configures run
- Transform and split → NTU feeder: supplies splits
- Transform and split 120 → NTU feeder: supplies splits
- NW-UCLA data → UCLA feeder: provides sequences
- Train and test → NTU feeder: loads NTU data
- Train and test → UCLA feeder: loads UCLA data
- NTU feeder → Sequence transforms: uses transforms
- Train and test → HD-GCN model: trains or evaluates
- HD-GCN model → Hierarchical graph: constructs adjacency
- Hierarchical graph → Graph utilities: builds graph
- Train and test → Runtime utilities: uses runtime utilities
- Train and test → Model checkpoints: saves or loads weights
- Train and test → Test score files: saves test scores
- Researcher → Six-way ensemble: runs ensemble
- Test score files → Six-way ensemble: provides modality scores
- Six-way ensemble → Action predictions: combines scores
- Train and test → Action predictions: produces class scores