Задача
Пансионаты для пожилых и производственные зоны: нужно ловить падения и опасные позы (лежит неподвижно, осел вдоль стены) и поднимать персонал за секунды. Жёсткое требование заказчика — никакой биометрии: лица не распознаются, личность не идентифицируется, видео не покидает периметр объекта.
Основная сложность — отличить реальное падение от бытовых поз: человек сел на пол, нагнулся, прилёг на кушетку. Плюс работа ночью и в низком свете, где RGB-детекция деградирует. Отдельно — стоимость false-positive: при потоке ложных тревог персонал начинает их игнорировать, и система превращается в шум.
Подход
Отказались от детекции по силуэту в пользу оценки позы (скелета): модель отдаёт ключевые точки тела, а классификатор работает по геометрии и динамике скелета — угол корпуса, высота центра масс, скорость снижения, время неподвижности после события. Лица и текстура кадра логике не нужны, поэтому privacy-by-design здесь не надстройка, а следствие архитектуры.
Падение подтверждается не одним кадром, а коротким окном: резкое снижение центра масс плюс отсутствие восстановления позы за заданный интервал. Это отсекает «сел» и «нагнулся». Под ночь и низкий свет добавили ИК-подсветку и обучали на смешанных данных. Инференс целиком на edge-узле, в облако не уходит ни кадр. Watchdog следит за температурой и троттлингом — под нагрузкой узел деградирует предсказуемо.
Стек
RPi 5 + NPU · pose estimation (INT8) · ONNX Runtime · IR illumination · Rust (демон алертов)
Результат
- 1.4 s — от момента падения до алерта на пульт персонала.
- 97.8% — recall по падениям на отложенной выборке.
- ~0.7 в сутки — ложных тревог на узел, поток алертов остаётся рабочим.
- 0 биометрии — лица не распознаются, видео остаётся внутри периметра.