Project 02 · DST-FallNet · Multimodal Fall Detection

DST-FallNet
Real-Time Multimodal Fall Detection via
Audio-Visual Fusion and DST on Edge Devices

DST-FallNet is a real-time multimodal fall detection system that integrates visual (MoveNet, CNN) and audio (LSTM) models, utilizing Dempster-Shafer Theory for decision-level fusion. Designed for resource-constrained embedded devices such as Jetson Nano 2GB, with GPIO output for alerts — suitable for long-term automated monitoring.

  • 0.97Audio LSTM accuracy
  • 0.997Audio AUC
  • 87.4%CNN 5-class accuracy
  • ~50 µsDST fusion latency
  • MoveNet
  • 5-class CNN
  • MFCC + LSTM
  • Dempster-Shafer Theory
  • ONNX
  • Jetson Nano 2GB

Main features

  • Visual fall detection — MoveNet pose estimation and CNN action classification
  • Audio anomaly detection — MFCC features with LSTM
  • Dempster-Shafer Theory (DST) decision-level fusion
  • GPIO output for LED / buzzer alerts
  • CLI dashboard for real-time system status over SSH

Why multimodal, and why on the edge?

With an aging population, falls are a leading cause of injury and death among the elderly. Most detection systems rely on a single modality — a camera or a microphone — and each has blind spots.

Limits of single-modality systems

  • Accuracy ceiling: vision suffers under poor lighting and occlusion; audio is fooled by background noise — both cause false alarms and misses.
  • Heavy compute: most deep models assume a powerful PC or cloud, unsuitable for constrained hardware.
  • Privacy & latency: uploading frames to the cloud raises privacy concerns and cannot give real-time alerts.

Design goals

Fuse vision + audio to lift accuracy, run fully on a low-power Jetson Nano 2GB, and drive real-time hardware alerts (LED / buzzer) — all without sending video off-device.

Hardware used

  • Jetson Nano 2GB
  • USB camera
  • USB microphone
  • LED and buzzer (GPIO control)

Dempster-Shafer Theory over naive averaging

Simple score averaging breaks down under uncertainty and conflict: the camera may be unsure in dim light, the microphone may misread noise. Averaging those scores can actively hurt accuracy.

Handles uncertainty

Belief can be explicitly assigned to "unknown" — more expressive than a single probability.

Fuses conflict

When vision and audio disagree, DST computes a conflict coefficient K and reweights toward the more reliable source.

Dynamic weights

No manual vision/audio weight — DST decides per input which modality to trust.

Four cooperating threads

The system runs as four concurrent threads so sensing, fusion, and hardware control never block each other — essential for real-time behavior on a 2GB board.

  1. Visual pose inference: capture frames, preprocess, run MoveNet ONNX → 17 keypoints + confidence; compute body tilt to flag suspicious postures.
  2. Audio recognition: record 3-second clips, convert to MFCC, run the LSTM ONNX → a fall-sound score (0–1).
  3. Fusion & CNN verification: fuse vision + audio scores with DST; if above threshold, a 5-class CNN confirms the action and decides whether to fire GPIO.
  4. GPIO & button monitoring: drive LED / buzzer outputs, watch the reset button, clear fall events, and reset system state.

Core components

MoveNet pose estimation · MFCC + LSTM audio · DST decision fusion · custom 5-class CNN (standing / sitting / lying / bending / crawling) · ONNX inference on Jetson Nano 2GB.

MoveNet pose + custom CNN verification

MoveNet pose estimation

MoveNet gives fast, accurate 17-keypoint pose estimation, ideal for embedded devices. Keypoints and confidence feed a body-tilt and center-of-gravity estimate as the first fall cue. The model is quantized to INT8 and converted from TFLite to ONNX, shrinking size and compute with minimal accuracy loss for stable real-time use on Jetson Nano.

Custom 5-class CNN verification

When the DST fusion score crosses the threshold, a custom CNN classifies the action into standing, sitting, lying, bending, or crawling with a confidence score. This second stage sharply cuts false positives.

  • Dataset: public Fall Detection Dataset — 15,402 labeled images.
  • Split: 80% train / 20% validation, with live accuracy & loss monitoring.
  • Input: 192×192×4; inference ~20–40 ms; accuracy 87.4%.

MFCC features + LSTM sound classifier

The microphone continuously records, segmenting into 3-second clips. After noise reduction and volume normalization, each clip becomes a 40-dimension MFCC feature map (3 s, 22050 Hz) fed to the LSTM.

Model & training

  • Architecture: LSTM(64) → Dropout(0.5) → Dense(32, ReLU) → Dense(1, sigmoid)
  • Loss / optimizer: binary cross-entropy / Adam
  • Training: 30 epochs, batch 16, 80/20 split
  • Dataset: AFE — Sound Analysis for Fall Event detection

Test-set metrics

MetricValue
Accuracy0.97
Precision0.9792
Recall0.9691
F1-score0.9741
AUC0.9973

Confusion matrix [[91, 2], [3, 94]] — a near-perfect ROC curve.

Late fusion at the decision level

Each modality produces its own decision; their scores become belief assignments and DST fuses them into a unified confidence plus a conflict coefficient K. This late (decision-level) fusion lets each model play to its strengths and stays robust when one modality is noisy.

  • Threshold & trigger: once fused confidence passes the threshold, the CNN confirms; a high-risk action (lying / crawling) above the alert threshold fires the buzzer / LED and logs the event.
  • Conflict handling: when modalities disagree, K reallocates trust to the more reliable source, preventing single-sensor failure.
  • Configurable: choose vision-only, audio-only, or both, and tune thresholds per environment (quiet home vs. noisy public space).

Lightweight monitoring for embedded use

A text-based dashboard shows live status in organized tables with color coding (red = alert, green = normal). It runs over SSH, ideal for headless edge devices.

  • Runtime status: memory, CPU, latency
  • MoveNet keypoints & confidence
  • Audio MFCC features & LSTM scores
  • DST fusion score & conflict coefficient
  • CNN multi-class results & alert state
  • Event log with time, score, and action type

Model performance summary

Model Input shape Latency Accuracy Status
CNN (5-class)192×192×420–40 ms87.4%Deployed
LSTM (audio)1×8×40 (MFCC)30–50 ms86.3%Deployed
Pose estimation250–350 msDeployed
DST fusion50–60 µsUnder evaluation

The DST fusion step adds only microseconds, so multimodal robustness comes essentially for free relative to the model inference cost.

Source code & how to run

The full embedded system lives in the DST-FallNet repository on GitHub. Separate repos hold the CNN and LSTM training code; exported ONNX models are loaded at runtime.

Project directory structure

DST-FallNet/
├── src/                # Main source code
├── models/             # ONNX model files
├── assets/             # Documentation images
├── abnormal_images/    # Runtime abnormal captures
├── requirements.txt    # Python dependencies
└── README.md

Installation

  1. Install Python 3.8 or above
  2. Install dependencies: pip install -r requirements.txt

How to run

  1. Enter the src/ directory
  2. Run the main program: python main.py

Model files

Place downloaded ONNX models in the models/ directory before running. Model download links are documented in the GitHub README or available on request.

Notes

  • Jetson Nano 2GB and correct GPIO wiring are required
  • All .onnx model files must be present under models/
  • Runtime-generated images and temporary files are not recommended for GitHub upload

Where it goes next

  • Convert ONNX models to TensorRT to further speed up edge inference.
  • Move from public datasets to custom-collected data for higher real-world relevance.
  • Add a notification system for instant caregiver alerts on a detected fall.
  • Benchmark single-model vs. multimodal accuracy in real-world validation.
← Back to projects Back to home