Задача
Сеть офлайн-магазинов хотела честную аналитику трафика: вход/выход, тепловые карты зон, длина очереди у касс. Жёсткое ограничение — никакой биометрии: распознавание лиц запрещено и законом, и внутренней политикой приватности. Параллельно — толпа в часы пик с взаимными перекрытиями, где наивный детектор начинает либо дублировать, либо терять людей.
Второе ограничение — железо. В торговой точке нет места и бюджета на серверную стойку, нужен дешёвый узел, который ставится рядом с камерой и не требует обслуживания.
Подход
Privacy-by-design на уровне архитектуры: кадр обрабатывается на edge-узле и не покидает точку, наружу уходят только агрегаты — счётчики, тепловые карты, длина очереди. Лиц мы не извлекаем в принципе, идентичность не хранится.
Детектор людей квантовали в INT8 и скомпилировали под целевой ускоритель. Трекинг — лёгкий ассоциативный алгоритм по траекториям без re-id по внешности: связываем не «кто это», а «тот же объект между кадрами». Перекрытия в толпе давили счётчиком по линии пересечения и сглаживанием траекторий, чтобы не дублировать и не терять. Очередь считаем геометрически по плотности в зоне касс, а не по узнаванию конкретных людей. watchdog следит за температурой и троттлингом: под нагрузкой узел деградирует предсказуемо, а не падает молча.
Стек
edge NPU · ONNX Runtime · INT8 quantization · line-crossing counter · Rust (демон агрегации)
Результат
- 98.1% — точность подсчёта вход/выход в пиковый трафик с перекрытиями.
- 4 камеры на один edge-узел в реальном времени.
- 0 байт видео наружу — за пределы точки уходят только обезличенные агрегаты.
- ×7 — масштаб от пилота до сети точек на одной платформе.