Fall Detection

The camera sees someone fall and raises the alarm.

On-device fall detection — pose estimation, a per-person temporal state machine and one MQTT event, all local. All-in-one camera, or your existing RTSP cameras on a Jetson, Rockchip NPU or Hailo-8 host.

Intermediate30minVision & Video AISource Code

Confirmed fall on reComputer J30 / J40 — skeleton, track state and evidence count from the live MQTT message

State transition from normal to fallen, shown in the reCamera Pro App Center preview

Camera placement — a side or corner view at 2-3 m works; straight-down and long-shot or occluded views do not

Alarm panel, site overview — rooms, cameras and zones, a 24-hour alarm trend split by type, and one card per room carrying its own live thumbnail and open-alarm count. Local replay, not a field measurement — room and zone fixture names are English too, not just the UI chrome

Zone configuration on the live picture — Chinese UI showing two zone rectangles drawn on a 4:3 stream; the letterbox bars stay outside the boxes because coordinates map to the picture, not the container. Local replay.

Alarm states — an evidence window, an operator window, then notification, with escalation on a missed deadline. Default windows are 5 s, 60 s and a 5 s notification deadline

Reusable Site Templates

Indoor fixed views, someone often on their own, and a fall that has to be known within minutes.

Care homes and home care

Care homes and home care

Bedrooms, bathroom doorways, corridors. A fall no longer waits for the next round.

Rehab centres and ward corridors

Rehab centres and ward corridors

Training areas and night-time ward corridors. A second pair of eyes when nobody is on the floor.

People living alone

People living alone

A living room, outside the bathroom. One fall entity in Home Assistant switches on a light, pushes a notification or starts a call.

Not a fit: top-down views, long-corridor wide shots, heavy furniture occlusion. If someone is already lying down when the detector starts, it reports the posture but raises no event.

How it works

A camera captures the view, a detector host makes the decision, and alerts go to your existing receiving system. Add an alarm-panel host when an operator screen is needed.

Fall detection device composition: IP cameras hand RTSP to one AI host, reCamera 2002 / reCamera Pro publish MQTT events without a host, both routes reach the alarm panel host over MQTT, and the panel serves an HTTP page plus Webhook / MQTT alerts

Three things: a camera that produces the picture, a host that runs the detection, and whatever consumes the event; add an alarm-panel host if you want an operator screen (it can share the detection host, or be a small box when you use reCamera). Camera and host sit on site — video never leaves the device. What crosses the network is a few hundred bytes of JSON.

Cameras

Two ways in, and which one you take is usually already decided by what is on the wall:

  • You already have IP cameras. Point the detector at the RTSP stream. Nothing on the camera side changes, and one host can take several streams.
  • You don't. reCamera 2002 and reCamera Pro carry the camera and the accelerator in one unit — power it up and it works, no separate host. The trade: the detector takes the camera over, so Node-RED and any other vision app on that camera stop.

Placement decides accuracy more than the hardware does. A fixed indoor view, 2–3 m, side-on or at an angle, shoulders and hips visible. The fall itself has to happen inside the frame: if someone is already lying down when the detector starts, it reports the posture but raises no event. Top-down mounts, long-corridor wide shots and heavy furniture occlusion all measure worse.

How well it works

What the on-duty carer sees and operates in a browser — the alarm panel.

Every room on one screen

  • One card per room: latest frame + status colour
  • Offline rooms turn black; open alarms counted on the card
  • Alarm trend by type, last 24 h or 7 days

Clear alarms one at a time

  • Alarm table: time, type, zone, status
  • [object Object]
  • Confirming records who handled it

Draw the zones on the picture

  • Drag zones directly on the live snapshot
  • Per-zone no-person / no-motion timeout in seconds
  • Live view stays local; alerts carry no images

Config is versioned; conflicts are caught

  • Save bumps the version; history logs who and when
  • Conflicting edits trigger a warning, never silent overwrite
  • Choose to cancel or reload the latest config
Measured results

An engineering benchmark on a public dataset — not a medical or life-safety certification.

What the site getsTypicalDevice
Fall to alert1.4 sThe same across platforms
Fall recall, frozen configurations95.8%27-clip held-out set
Everyday activity not raising an alert77.8%Same held-out set
Streams one host carries16reComputer R2000 Series (R2035-12, Hailo-8)
Fall to alert received with the alarm panel in the loopP50 2.83 sreComputer R2000 Series (R2035-12, Hailo-8), shortened confirmation windows

Stream count follows the host: 1 each on reCamera and the RK series, 7 and 8 on reComputer J30 and J40, all at 15 FPS input — a starting point for your own load test rather than a rated capacity. All five packages score alike on accuracy, so choose hardware by stream count, not by accuracy.

On an external dataset with wide shots and occlusion, recall drops to 52.9%–58.8% — the limiting factor is the pose model's person-detection rate, not the fall decision.

The panel row is the whole chain — camera to detector to panel to webhook — with the evidence and auto-confirm windows each set to 1 s. With the shipped defaults (5 s plus 60 s) the same path takes just over a minute, which is the confirmation design.

What you get out of it

Once deployed, these topics are the whole interface.

Topic / portPayloadRetained
<device>/fall-detection/resultsOne JSON per frame: state, fall_detected, fall_event, event_id, person_count, fallen_count, plus track_id / state / bbox for each entry in persons[]No
<device>/fall-detection/statusonline / offline, published via the MQTT last willYes
homeassistant/Auto-discovery: fall sensor, state, event id, presenceYes
RTSP 8554 /live0Live video for preview and NVR (reCamera packages)—

<device> is yours to choose at deploy time (default recamera on the reCamera packages, recomputer on the reComputer ones) — it is only the first topic segment, so name it by room or floor. With multiple streams the stream id is appended to the topic and also written into the payload. fall_event is set only at the state transition, so an automation fires once per fall rather than for as long as the person is on the floor.

Porting It to Your Own System

The reusable unit is not "falling" — it is the chain pose estimation → per-person tracking → temporal state machine → MQTT event. Only the last-but-one link is bound to this particular event: the features and thresholds that define what a fall looks like. Everything else — the camera placement rules, the four accelerator runtimes, the model delivery paths, the topic structure, the Home Assistant discovery and the commissioning preview — carries over unchanged.

LayerWhat porting costs you
Camera placement rules and framing requirementsreuse as-is
Pose estimation and the four runtimes (NPU / TensorRT / RKNN / Hailo)reuse as-is
Per-person trackerreuse as-is
MQTT topic structure, Home Assistant discovery, preview toolingreuse as-is
Features and thresholds in the state machinerewrite for the new event
Temporal weights and the held-out test setcollect and retrain, split by person the same way

Events with the same shape — defined by a skeleton over time rather than by an object class — sit inside this range: getting out of bed, lying still for too long, climbing onto something, crouching to the floor, not standing back up after a fall.

Where this shape does not fit

  • Fine manual actions — whether a hand movement follows a procedure. 17 keypoints do not resolve that; you need a different model class, not a different threshold.
  • Long shots and heavy occlusion — measured recall on an external long-shot set drops to 52.9–58.8%. The failure is upstream in the pose model; state-machine tuning does not change this figure.
  • Anything where "no alert" has to mean "nothing happened" — medical or life-safety compliance. This design carries no certification and makes no guarantee about missed detections.

How to deploy

Tell us about your site — we work out the hardware, then you connect the data and follow the steps.

Existing Cameras

Do you already have cameras?

Or compare them yourself: preset specificationsDeployment Guide · 30min →
SetupRoleDeviceQty
reCamera 2002AI CamerareCamera 20021
Alarm Panel Host (optional)reComputer R1000 Series / Existing Docker Host(either one)1
reCamera ProCamerareCamera Pro1
Alarm Panel Host (optional)reComputer R1000 Series / Existing Docker Host(either one)1
IP Camera + reComputer J30 / J40Detector HostreComputer J30 Series (Jetson Orin Nano) / reComputer J40 Series (Jetson Orin NX)(either one)1
IP CameraIP Camera1
IP Camera + reComputer RK3576 / RK3588Detector HostreComputer RK3588 Series / reComputer RK3576 Series(either one)1
IP CameraIP Camera1
IP Camera + reComputer R2000 (Hailo)Detector HostreComputer Industrial R20 Series1
IP CameraIP Camera1
PresetVideo sourceDetector hostModel deployed todayStreamsNotes
reCamera 2002Built-inSame deviceYOLO11n-Pose INT81Local broker and RTSP 8554 included; installing takes the camera from Node-RED and any other vision app
reCamera ProBuilt-inSame deviceYOLO11n-Pose INT81Newer all-in-one hardware; the detector ships in the device's App Center and this preset activates it
IP Camera + reComputer J30 / J40Your own RTSPJ30 (Orin Nano) / J40 (Orin NX)YOLO11s / YOLO11m FP16Start at 4 (YOLO11s on Orin Nano) or 3 (YOLO11m on Orin NX)First deploy builds the TensorRT engine on the device, 10-20 min; needs 10 GB free disk
IP Camera + reComputer RKYour own RTSPRK3576 / RK3588YOLO11n-Pose FP161Needs the host librknnrt.so; the .rknn is compiled per SoC, so selecting the wrong target leaves the model unable to load
IP Camera + reComputer R2000 Series (R2035-12, Hailo-8)Your own RTSPreComputer R2000 series + Hailo-8YOLOv8s-Pose INT82ABI-locked to HailoRT 4.21; nothing else may hold the accelerator

All five presets were run end to end on one stream. The stream counts above discount the throughput tables below for decode, tracking and MQTT; treat them as the starting point for your own load test, not a rating.

Difficulty is rated intermediate; a reCamera deployment takes about 30 minutes, a Jetson one longer because of the engine build.

Per-preset accuracy, per-frame latency and multi-stream throughput — and how they were measured — are in the engineering wiki.

The alarm panel is optional on the two reCamera presets and included on the other three. On reComputer J30 / J40, RK and R2000 it comes up in the same compose stack as the detector, on port 8080. On reCamera 2002 and reCamera Pro the camera cannot host it, so it is an extra step onto a separate box that needs no AI accelerator — a reComputer R1000 Series, or a Docker host you already run. Skip that step and the cameras publish MQTT events and nothing else, exactly as before.

FAQ

Yes. Pose estimation, tracking, the fall decision and the MQTT broker all run on the detector host — reCamera uses its own local broker, and the reComputer presets bring up mosquitto alongside the detector on port 1883. The internet is only involved if you forward the event outward yourself.

Didn't find your answer?
Contact Us
We Are Glad to Be Your Hardware Partner !
Next