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

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

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

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

Первый этап — описан здесь — преобразует каждый кадр в **17 кортежей (x, y, достоверность) на каждого человека**. Второй этап — [граф-классификатор](https://guardianai.tech/ru/technology/spatiotemporal-graph/index.md) — работает только с этими числами. Классификатор никогда не видит исходные пиксели. По своей архитектуре он не может идентифицировать человека; он описывает только движение.

## Модель: 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 обрабатывает *движение*, а не *личности*. Это архитектурная конфиденциальность, а не политика — её нельзя «отключить» неудачной настройкой.

## Связанное чтение
- [Этап 2 — CTR-GCN классифицирует агрессию](https://guardianai.tech/ru/technology/spatiotemporal-graph/index.md)
- [Школы K-12](https://guardianai.tech/ru/use-cases/schools/index.md)
- [Университетские кампусы](https://guardianai.tech/ru/use-cases/campuses/index.md)

---
*Markdown-зеркало страницы https://guardianai.tech/ru/technology/pose-detection.*
