You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -290,7 +291,7 @@ These applications are designed for specific use cases with optimized models and
290
291
| 3 | [motor_bearing_fault](examples/motor_bearing_fault/) | Multivariate | Classify 5 bearing fault types + normal operation from vibration data. |
291
292
| 4 | [blower_imbalance](examples/blower_imbalance/) | Multivariate | Detect blade imbalance in HVAC blowers using 3-phase motor currents. |
292
293
| 5 | [fan_blade_fault_classification](examples/fan_blade_fault_classification/) | Multivariate | Detect faults in BLDC fans from accelerometer data. |
293
-
| 6 | [gearbox_fault_detection](examples/gearbox_fault_detection/) | Multivariate | Classify gearbox operating conditions (healthy vs broken tooth) from vibration. |
294
+
| 6 | [gearbox_fault_detection](examples/gearbox_fault_detection/) | Multivariate | Classify gearbox operating conditions (healthy vs broken tooth) from vibration. |
294
295
| 7 | [electrical_fault](examples/electrical_fault/) | Multivariate | Classify transmission line faults using voltage and current (2-class and 6-class variants). |
295
296
| 8 | [grid_stability](examples/grid_stability/) | Multivariate | Predict power grid stability from node parameters. |
296
297
| 9 | [gas_sensor](examples/gas_sensor/) | Multivariate | Identify gas type and concentration from sensor array data. |
@@ -299,6 +300,7 @@ These applications are designed for specific use cases with optimized models and
| 13 | [PLAID_nilm_classification](examples/PLAID_nilm_classification/) | Multivariate | Appliance identification using the PLAID dataset. |
301
302
| 14 | [pir_detection](examples/pir_detection/) | Multivariate | Detect presence/motion using PIR sensor data. |
303
+
| 15 | [fall_detection_classification](examples/fall_detection_classification/) | Multivariate | Detect and classify Human Fall vs Activities of Daily Living (ADL). |
The Human Fall Detection Classification application is an Edge AI solution that classifies human movement into two states: Activities of Daily Living (ADL) or Fall, using accelerometer data in real-time. This enables safety monitoring on embedded devices and provides immediate alerts in belt-mounted safety systems for vulnerable individuals such as elderly users or industrial workers.
6
+
7
+
## Problem and Solution
8
+
9
+
- Falls are a leading cause of injury and fatality among elderly individuals and in industrial environments
10
+
- Traditional fall detection systems rely on cloud connectivity or bulky wearable hardware
11
+
- Early and accurate fall detection enables timely emergency response and reduces injury severity
12
+
- Edge AI enables real-time fall classification directly on resource-constrained microcontrollers without cloud connectivity
13
+
14
+
## Key Performance Targets
15
+
16
+
- Real-time classification of human movement into ADL or Fall
17
+
- High accuracy on accelerometer-based fall detection (≥97.5%)
18
+
- Low memory footprint suitable for MCU deployment
19
+
20
+
## System Components
21
+
22
+
**1. Hardware:**
23
+
24
+
- MSPM0G5187 microcontroller with integrated NPU https://www.ti.com/product/MSPM0G5187
25
+
- TIDA-010997 EdgeAI Boosterpack with BMI270 accelerometer
26
+
27
+
**2. Software:**
28
+
29
+
- Code Composer Studio 12.x or later
30
+
- MSPM0 SDK 2.11.00 or later
31
+
- TI Edge AI Studio
32
+
33
+
## Dataset Information
34
+
35
+
The example uses the **SisFall** dataset as the primary training dataset:
36
+
37
+
-**Source:**[SisFall: A Fall and Normal Movement Dataset](https://www.mdpi.com/1424-8220/17/1/198)
38
+
-**Classes:** 2 (ADL, Fall)
39
+
-**Total Files:**~4500
40
+
41
+
Each file contains readings from three sensors:
42
+
-**ADXL345** — 13-bit triaxial accelerometer
43
+
-**ITG3200** — triaxial gyroscope
44
+
-**MMA8451Q** — triaxial accelerometer
45
+
46
+
### Data Cleaning and Preprocessing
47
+
48
+
The SisFall dataset contains data from three sensors, but only the **ADXL345 accelerometer** data is used for this example to match the single-accelerometer hardware setup (BMI270 on TIDA-010997). The following cleaning and preprocessing steps are applied:
49
+
50
+
**1. Sensor Filtering:**
51
+
- Only ADXL345 (13-bit triaxial accelerometer) columns are retained
52
+
- ITG3200 (gyroscope) and MMA8451Q (accelerometer) columns are discarded
53
+
54
+
**2. Bit-Depth Scaling:**
55
+
- The ADXL345 is a 13-bit accelerometer, while the target hardware uses the BMI270 which is a 16-bit accelerometer
56
+
- To match the input resolution expected by the firmware, all ADXL345 readings are scaled up from 13-bit to 16-bit resolution using the formula: `scaled_value = raw_value * (2^16 / 2^13) = raw_value * 8`
57
+
- This ensures consistency between the training data distribution and the live sensor data fed during inference on the MCU
58
+
59
+
**3. Format Conversion:**
60
+
- The cleaned and scaled dataset is converted into a format compatible with tinyml-tensorlab for model training
61
+
- Each file is parsed, labeled (ADL or Fall), and exported into the required input structure
62
+
63
+
## Feature Extraction Pipeline
64
+
65
+
1. Sensor Input: 3-axis accelerometer data (x, y, z) from ADXL345 (scaled to 16-bit)
66
+
2. Real FFT: 256-point FFT using ARM CMSIS-DSP
67
+
3. Complex Magnitude Calculation
68
+
4. DC Removal
69
+
5. Binning: Average 16 adjacent FFT bins → 8 features
70
+
6. Frame Concatenation: Stack 8 frames (64 total features per axis)
71
+
72
+
## Model Architecture
73
+
74
+
A generic time-series classification CNN model is used:
_NOTE: The above statistics was measured on LP-MSPM0G5187 Launchpad_
81
+
82
+
The model uses:
83
+
- INT8 quantization for reduced memory footprint
84
+
- 3-channel input (x, y, z axes)
85
+
86
+
## Training and Deployment Process
87
+
88
+
NOTE: Running the config yaml handles everything including dataset loading, data cleaning, feature extraction, training, quantization, and compilation.
89
+
90
+
1.**Training:**
91
+
- Use TI Edge AI Studio (GUI) or tinyml-tensorlab (CLI)
92
+
- Batch size: 256
93
+
- Training epochs: 50
94
+
95
+
2.**Quantization:**
96
+
- INT8 quantization for reduced model size
97
+
- Maintains accuracy while enabling MCU deployment
98
+
99
+
3.**Compilation:**
100
+
- TI Neural Network Compiler converts the trained model
101
+
- Generates model artifacts for device deployment
102
+
103
+
## How to Run
104
+
105
+
After completing the repository setup, run the following command from the `tinyml-modelzoo` directory:
0 commit comments