CTR-GCN: пространственно-временные граф-сети для обнаружения насилия
Второй этап конвейера GuardianAI принимает последовательности скелетов из 64 кадров и классифицирует паттерны движения как «насилие» или «норма» — работая исключительно с координатами суставов, без пикселей.
Last updated: 26 апреля 2026
Что такое граф-свёрточная сеть
Скелет человека — естественный граф: узлы — это суставы (запястье, локоть, плечо и т.д.), рёбра — это кости, их соединяющие. Вместо того чтобы сглаживать это в плоский вектор признаков, граф-свёрточная сеть (GCN) сохраняет структуру и обменивается информацией вдоль реальных соединений тела.
Добавьте временнóе измерение (последовательность кадров), и получите пространственно-временную GCN: каждый узел подключён к своим соседям по телу и к тому же суставу в соседних кадрах. Это даёт модели возможность одновременно видеть как и когда движется каждая часть тела.
Почему CTR-GCN, а не сквозная CNN
Сквозные видео-CNN (например, SlowFast или I3D) требуют тысяч видеоклипов для обобщения. Датасеты с боевыми сценами в школах — редкость и по этическим соображениям невозможно получить в большом объёме. CTR-GCN обучается эффективно на маленьких датасетах, потому что входное пространство уже структурировано: 17 × 3 (x, y, conf) × 64 кадра на человека. Никакого фонового шума. Никакой вариации освещения. Только геометрия движения.
- Параметров. ~1,5 М — в 100 раз меньше, чем у сравнимой видео-CNN.
- Инференс. ~4 мс на клип на Jetson Orin Nano.
- Устойчивость к смещению. Скелеты удаляют цвет кожи, одежду и освещение — основные источники расовой предвзятости в пиксельных моделях.
Входной тензор
Для каждой пары (атакующий, жертва) второй этап получает тензор формы[2, 64, 17, 3] — 2 человека, 64 кадра, 17 ключевых точек, 3 значения (x, y, conf). Паддинг нулями применяется, если один из людей вошёл в кадр менее чем 64 кадра назад. Если в кадре больше двух людей, модель оценивает все пары и сообщает о паре с наивысшей оценкой.
Обучение и данные
Модель предобучена на NTU RGB+D 120 (скелетный датасет для распознавания действий) и дообучена на:
- UBI-Fights — датасет боевых сцен из уличного наблюдения.
- Кадрированные клипы из школьных CCTV-записей (строго анонимизированные).
- Отрицательные примеры: спорт, активные игры, объятия, рукопожатия.
Пороговое значение по умолчанию — 0,50. Для начальной школы рекомендуем 0,65+, чтобы снизить число ложных срабатываний на активные игры. Цикл обратной связи «подтвердить / ложная тревога» обновляет оптимальный порог для каждой конкретной школы в течение 90 дней.
Непрерывное улучшение
Каждый подтверждённый или отклонённый инцидент становится размеченной обучающей точкой. Ежеквартально мы проводим дообучение модели на агрегированных анонимных скелетных данных с флотом развёртываний (без пикселей, без возможности деанонимизации) и рассылаем обновлённые веса через защищённый канал обновлений.
Хотите узнать, как этапы объединяются в полный конвейер? Читайте о первом этапе — извлечении позы, или посмотрите как это применяется в школах K-12 и университетских кампусах.