Spaces:
Running
Running
A newer version of the Gradio SDK is available: 6.15.0
Classification Problems Definition
This directory contains prepared data for 2 classification problems with 2 approaches each, derived from the processed skeleton data.
Problem Definitions
Problem A: 3D Classification (Kinect-based)
- Input: 3D joint coordinates from Kinect sensor
- Structure: 13 joints × 3 dimensions (x, y, z) = 39 features per frame
- Temporal: 10 frames per sequence
- Total features: 39 × 10 = 390 features per sequence
- Task: Classify movement quality as Good (1) or Bad (0)
Approaches:
- ADense: Flattened features for dense neural networks
- Shape: (samples, 390)
- ACNN: Structured features for convolutional neural networks
- Shape: (samples, 10, 13, 3) - [time_steps, joints, coordinates]
Problem B: 2D Classification (PoseNet-based)
- Input: 2D joint coordinates from PoseNet/MediaPipe
- Structure: 13 joints × 2 dimensions (x, y) = 26 features per frame
- Temporal: 10 frames per sequence
- Total features: 26 × 10 = 260 features per sequence
- Task: Classify movement quality as Good (1) or Bad (0)
Approaches:
- BDense: Flattened features for dense neural networks
- Shape: (samples, 260)
- BCNN: Structured features for convolutional neural networks
- Shape: (samples, 10, 13, 2) - [time_steps, joints, coordinates]
Data Organization
The prepared data is organized in the prepared_data/ directory:
ADense Files (3D, Flattened):
A_Dense_train_X.npy: Training features (shape: samples×390)A_Dense_train_y.npy: Training labelsA_Dense_test_X.npy: Test features (shape: samples×390)A_Dense_test_y.npy: Test labelsA_Dense_train_aug_X.npy: Augmented training featuresA_Dense_train_aug_y.npy: Augmented training labelsA_Dense_test_aug_X.npy: Augmented test featuresA_Dense_test_aug_y.npy: Augmented test labels
ACNN Files (3D, Structured):
A_CNN_train_X.npy: Training features (shape: samples×10×13×3)A_CNN_train_y.npy: Training labelsA_CNN_test_X.npy: Test features (shape: samples×10×13×3)A_CNN_test_y.npy: Test labelsA_CNN_train_aug_X.npy: Augmented training featuresA_CNN_train_aug_y.npy: Augmented training labelsA_CNN_test_aug_X.npy: Augmented test featuresA_CNN_test_aug_y.npy: Augmented test labels
BDense Files (2D, Flattened):
B_Dense_train_X.npy: Training features (shape: samples×260)B_Dense_train_y.npy: Training labelsB_Dense_test_X.npy: Test features (shape: samples×260)B_Dense_test_y.npy: Test labelsB_Dense_train_aug_X.npy: Augmented training featuresB_Dense_train_aug_y.npy: Augmented training labelsB_Dense_test_aug_X.npy: Augmented test featuresB_Dense_test_aug_y.npy: Augmented test labels
BCNN Files (2D, Structured):
B_CNN_train_X.npy: Training features (shape: samples×10×13×2)B_CNN_train_y.npy: Training labelsB_CNN_test_X.npy: Test features (shape: samples×10×13×2)B_CNN_test_y.npy: Test labelsB_CNN_train_aug_X.npy: Augmented training featuresB_CNN_train_aug_y.npy: Augmented training labelsB_CNN_test_aug_X.npy: Augmented test featuresB_CNN_test_aug_y.npy: Augmented test labels
Data Sources
The data was extracted from the original processed sequences by interpreting the first portion of each frame as joint coordinates:
- For 3D problem: First 39 values per frame interpreted as 13 joints × 3 coordinates
- For 2D problem: First 26 values per frame interpreted as 13 joints × 2 coordinates
Usage Examples
import numpy as np
# Load ADense data for training a dense network
X_train = np.load('prepared_data/A_Dense_train_X.npy')
y_train = np.load('prepared_data/A_Dense_train_y.npy')
X_test = np.load('prepared_data/A_Dense_test_X.npy')
y_test = np.load('prepared_data/A_Dense_test_y.npy')
# Load ACNN data for training a CNN
X_train_cnn = np.load('prepared_data/A_CNN_train_X.npy')
y_train_cnn = np.load('prepared_data/A_CNN_train_y.npy')
Note on Augmented Data
All datasets include both original and augmented versions:
- Original data maintains the original 91 training + 23 test samples
- Augmented data includes 4 additional versions per original sample (mirror, rotate ±10°, stretch)
- Total augmented data: 455 training + 115 test samples