File size: 4,335 Bytes
b94b2ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# 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 labels
- `A_Dense_test_X.npy`: Test features (shape: samples×390)
- `A_Dense_test_y.npy`: Test labels
- `A_Dense_train_aug_X.npy`: Augmented training features
- `A_Dense_train_aug_y.npy`: Augmented training labels
- `A_Dense_test_aug_X.npy`: Augmented test features
- `A_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 labels
- `A_CNN_test_X.npy`: Test features (shape: samples×10×13×3)
- `A_CNN_test_y.npy`: Test labels
- `A_CNN_train_aug_X.npy`: Augmented training features
- `A_CNN_train_aug_y.npy`: Augmented training labels
- `A_CNN_test_aug_X.npy`: Augmented test features
- `A_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 labels
- `B_Dense_test_X.npy`: Test features (shape: samples×260)
- `B_Dense_test_y.npy`: Test labels
- `B_Dense_train_aug_X.npy`: Augmented training features
- `B_Dense_train_aug_y.npy`: Augmented training labels
- `B_Dense_test_aug_X.npy`: Augmented test features
- `B_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 labels
- `B_CNN_test_X.npy`: Test features (shape: samples×10×13×2)
- `B_CNN_test_y.npy`: Test labels
- `B_CNN_train_aug_X.npy`: Augmented training features
- `B_CNN_train_aug_y.npy`: Augmented training labels
- `B_CNN_test_aug_X.npy`: Augmented test features
- `B_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

```python
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