Fall Detection Model
A small detector trained only on our synthetic CCTV Fall & Incident Detection Dataset and measured on real footage it never saw: 97% of people lying on the floor caught at 5% false alarms. Two sizes, Small and Nano.
Round 1 measured on real footage. Weights follow after round 2 (targeted top-up data and public-space tests); early access on request.
Headline results
Measured on real footage the model never saw
Small
10.2 M params · GPU servers and Jetson Orin-class edge boxes where accuracy matters most.- 97.4%
- Lying frames caught at 5% false alarms
- 0.985
- Frame AP
- 90.1%
- End-on lying caught
- 82.3% / 89.9%
- Falls caught in a different home
Test 1
Test 1
Test 1, 5% false alarms
Test 2, at 5% / 10% clip false alarms
Single training run.
Nano
3.7 M params · Smaller edge boxes and multi-camera servers where cost per stream matters.- 90.2–92.7%
- Lying frames caught at 5% false alarms
- 0.937–0.972
- Frame AP
- 54–64%
- End-on lying caught
- 83.5–87.3%
- Falls caught in a different home
Test 1, three seeds
Test 1, three seeds
Test 1, the round-2 target
Test 2, at 10% clip false alarms
Three seeds; the strict 1% setting varies most (52–84% on Test 1). We report the range, never the best seed.
Specification
What it is
- Task
- Detects a person lying on the ground or floor in a CCTV frame, and stays quiet for sitting, kneeling, standing and walking.
- Architecture
- Small: D-FINE Small (DETR-style detector), fine-tuned from the public COCO checkpoint. Nano: D-FINE Nano, fine-tuned from the public COCO checkpoint with the same recipe.
- Parameters
- Small 10.2 M · Nano 3.7 M
- Licence
- Apache-2.0 (planned release)
- Trained on
- CCTV Fall & Incident Detection Dataset only: 1,000 synthetic CCTV images, 178 confusers, no real frames.
- Training recipe
- Fine-tuned from public COCO checkpoints for 60 epochs, with the pretrained feature layers at a 10× lower learning rate than the head. Trained on the 1,000-image CCTV Fall & Incident Detection Dataset only (900 train, 100 validation, 178 confuser images: sitting, kneeling, crouching, squatting); no real frames.
- Speed
- Small: 22 ms per 640 px frame on an Apple M4 Pro GPU, 140 ms on its CPU, measured while another job was training (indicative only). Nano: Not yet measured on an idle machine.
- Edge and camera chips
- GPU and Jetson class. D-FINE does not convert to the 8-bit format Axis and Hailo camera chips run; an in-camera student model (1.4–2.2 M parameters) is in preparation.
- Release
- Apache-2.0 weights for Small and Nano on Hugging Face after round 2, with the round-2 scorecard, the scoring code and a Kaggle notebook.
Real test sets
Tested on
CAUCAFall, subjects 6–10 (Test 1)
1,923 frames, 615 lying; one staged room, never trained on
CC BY 4.0 →Full table
Every model and data combination we scored
| Model | Train data | Params | T1 AP | T1 @5% FA | T1 @1% FA | T1 end-on @5% | T2 clip AP | T2 falls @5% | T2 falls @10% |
|---|---|---|---|---|---|---|---|---|---|
| D-FINE Small | synthetic | 10.2 M | 0.985 | 97.4% | 83.1% | 90.1% | 0.984 | 82.3% | 89.9% |
| D-FINE Nano (seed 0) | synthetic | 3.7 M | 0.972 | 92.7% | 74.8% | 64.0% | 0.953 | 59.5% | 87.3% |
| D-FINE Nano (seed 1) | synthetic | 3.7 M | 0.937 | 90.2% | 51.7% | 54.0% | 0.967 | 67.1% | 83.5% |
| D-FINE Nano (seed 2) | synthetic | 3.7 M | 0.971 | 91.9% | 83.6% | 61.3% | 0.961 | 65.8% | 83.5% |
| D-FINE Nano | real only | 3.7 M | 1.000 | 100% | 100% | 100% | 0.850 | 22.8% | 24.1% |
| D-FINE Nano | mixed | 3.7 M | 1.000 | 100% | 99.5% | 100% | 0.958 | 57.0% | 89.9% |
| Two-stage (MobileNetV4 crop classifier) | synthetic | 6.3 M | 0.895 | 77.6% | 71.2% | 6.3% | 0.978 | 84.8% | 88.6% |
| Two-stage | real only | 6.3 M | 0.881 | 77.1% | 39.2% | 73.9% | 0.914 | 49.4% | 54.4% |
| Two-stage | mixed | 6.3 M | 0.948 | 91.2% | 80.6% | 73.9% | 0.973 | 86.1% | 92.4% |
| RF-DETR Nano | synthetic | 30.2 M | 0.898 | 88.3% | 16.1% | 61.3% | 0.955 | 46.8% | 93.7% |
| YOLO26nAGPL reference | synthetic | 2.5 M | 0.449 | 19.4% | 19.4% | 1.8% | 0.755 | 7.6% | 13.9% |
| YOLO26n, feature layers frozenAGPL reference | synthetic | 2.5 M | 0.813 | 73.0% | 41.8% | 40.5% | 0.884 | 26.6% | 26.6% |
| YOLO26nAGPL reference | real only | 2.5 M | 0.866 | 70.9% | 13.7% | 82.9% | 0.746 | 10.1% | 15.2% |
| YOLO26nAGPL reference | mixed | 2.5 M | 0.940 | 87.8% | 39.4% | 82.9% | 0.801 | 20.2% | 31.6% |
| YOLO26sAGPL reference | synthetic | 10.0 M | 0.380 | 12.5% | 11.1% | 0.0% | 0.668 | 2.5% | 11.4% |
Test 1: CAUCAFall subjects 6–10 (1,923 frames, 615 lying), one staged room; in-domain for the real-only and mixed models, which trained on subjects 1–4 of the same set. Test 2: GMDCSA-24, 160 clips from a different home, the fair cross-domain test for every model. Bed and sofa clips are left out. YOLO26 is Ultralytics' AGPL-3.0 model, measured as a reference and never distributed.
Honest limits
Caveats and what we do not claim
Caveats
- Both real tests are staged, small and indoor, with few actors.
- End-on lying is the Nano version's weak spot; the round-2 top-up data targets it.
- Latency was measured on a busy machine.
Not claimed until measured
- Public spaces, night, long distance or crowds: not measured yet (round 2 adds public-space CCTV tests).
- The falling motion itself: the model reports a person lying on the ground or floor, so the alarm comes when someone is down, not mid-fall.
- Lying in bed or on a sofa: out of scope; a care-home bed product needs its own negatives.
- Production readiness or medical use: these are research previews measured on two staged indoor sets.
Read more
The training data, the test and the method
Training dataset
CCTV Fall & Incident Detection Dataset: license it to train your own model
Case study
A lying-on-the-ground detector trained only on synthetic CCTV images, tested on real footage from two homes
Engineering guide
Training a lying-on-the-ground detector on synthetic data only: D-FINE vs RF-DETR vs YOLO
Want the fall detection model on your cameras?
Tell us your cameras and use case. We give early access to the model, or fine-tune it on your views with our data and report the same real-footage metrics on your footage.
