Обнаружение на основе позы: как GuardianAI видит без лиц

Первый этап конвейера GuardianAI преобразует каждый кадр видео в список скелетов из 17 точек. Всё последующее работает только с этими скелетами — никогда с исходными пикселями.

Last updated: 26 апреля 2026

Почему поза, а не пиксели

Традиционная модель видеоаналитики работает напрямую с RGB-кадрами. Она обрабатывает лицо человека, одежду, походку и окружение, и учится срабатывать на паттерны пикселей, коррелирующие с насилием. Это работает, и одновременно создаёт систему, которую потенциально можно перепрофилировать для идентификации конкретного ученика.

Мы не хотим, чтобы система была на это способна. Поэтому конвейер разделён на два этапа.

Первый этап — описан здесь — преобразует каждый кадр в 17 кортежей (x, y, достоверность) на каждого человека. Второй этап — граф-классификатор — работает только с этими числами. Классификатор никогда не видит исходные пиксели. По своей архитектуре он не может идентифицировать человека; он описывает только движение.

Модель: YOLO11n-Pose

Ultralytics YOLO11n-Pose — наименьший вариант серии YOLO11 с головой для оценки позы.

  • Скорость. ~3 мс на кадр на NVIDIA Jetson Orin Nano (8 ГБ). Реальное время при 30 fps со значительным запасом.
  • Точность на COCO. 50,0 mAP@.50:.95 для позы. Достаточно для нашей нисходящей задачи.
  • Размер модели. 2,9 М параметров, 7,6 ГФлопс. Умещается в памяти Jetson Orin Nano вместе с CTR-GCN.

17-точечный скелет COCO

Стандарт COCO определяет 17 ключевых точек тела: нос, глаза, уши, плечи, локти, запястья, бёдра, колени и щиколотки. Каждая точка описывается тремя числами: нормализованные координаты x и y(от 0 до 1 в пределах кадра) и оценка достоверности обнаружения conf (от 0 до 1). Вот и весь выход первого этапа — кадр полностью отбрасывается.

Отслеживание нескольких людей

Одиночные кадры не дают достаточно информации для классификации насилия; нужна последовательность движений. GuardianAI использует ByteTrack для присвоения постоянного track_id каждому скелету между кадрами. Это позволяет второму этапу наблюдать за движением двух человек на протяжении 64 кадров (~2 с при 30 fps), что является входным окном для CTR-GCN.

При появлении нового человека в кадре буфер для него заполняется нулями (padding нулями) до достижения 64 кадров. При уходе человека из кадра track-ID деактивируется после 30 кадров отсутствия.

Что именно не хранится

После того как YOLO11n-Pose обработал кадр и вернул скелеты, кадр удаляется из памяти. В постоянное хранилище не попадает ни одного RGB-пикселя — только скелетные координаты с временными метками. 30-секундный буфер кадров до события хранится в ОЗУ edge-узла исключительно для того, чтобы оператор мог посмотреть контекст при подтверждении инцидента. После отклонения буфер немедленно очищается.

Почему это важно для школ

Когда данные первого этапа — это только числа, а не изображения, система не попадает под действие законов о биометрических данных, которые во многих юрисдикциях требуют согласия и раскрытия информации для каждой идентифицированной персоны. GuardianAI обрабатывает движение, а не личности. Это архитектурная конфиденциальность, а не политика.

Читайте далее: как CTR-GCN классифицирует агрессию на основе скелетных последовательностей из первого этапа.