
Ключевые выводы
• Поиск аномалий — это задача предсказания, а не классификации. Самые сложные аномалии редкие, многогранные и зависят от контекста — заранее перечислить их при обучении невозможно.
• Supervised-, weakly-supervised-, self-supervised- и zero-shot-подходы каждый раскрываются в своих сценариях. Supervised требует размеченного видео; weakly-supervised учится только на метках уровня видео; self-supervised тренируется на потоках без разметки; zero-shot проверяет, могут ли CLIP или Video-LLaVA увидеть аномалию вообще без обучающих данных.
• VAD на трансформерах (video-MAE, TimeSformer, ViViT) теперь обходит 3D CNN на стандартных бенчмарках. Передовые модели 2026 года достигают ≈90% AUC на UCF-Crime при наличии разметки.
• Выбор «edge или облако» определяется не процессором — а задержкой, пропускной способностью и юридическими рисками. Jetson Orin Nano выполняет инференс 1080p25 примерно за 375–900 ₽/камера/месяц; облако масштабируется на тысячи камер, но требует оплаты egress-трафика и порождает трения с GDPR.
• Дрейф данных убивает модели быстрее, чем дрейф концепций. Обслуживание камер, сезонное освещение, обновление прошивки на CCTV-устройстве — всё это незаметно ухудшает качество; нужен постоянный мониторинг KPI, а не одноразовая валидация.
Почему этот playbook написала Фора Софт
Компания Фора Софт уже больше пяти лет внедряет поиск аномалий в видео на реальных сетях CCTV и IP-камер. Наши проекты — NetCam, платформа мониторинга прямых трансляций, и DSI Drones, система безопасности на базе дронов — ежедневно обрабатывают десятки тысяч камерных потоков. Мы хорошо знаем, что разрыв между исследовательским baseline (90% AUC на UCF-Crime) и продакшен-системой (которая ловит именно те аномалии, что важны вашей службе безопасности, и при этом даёт настолько мало ложных срабатываний, чтобы операторы не отключали систему) огромен.
Эта статья формулирует наш playbook на 2026 год: какую парадигму обнаружения выбрать, как построить пайплайн, когда edge-инференс выигрывает у облака, что измерять и какие подводные камни топят проекты. Где возможно, мы опираемся на данные из продакшена и явно отмечаем места, где цифры приблизительны.
Нужна VAD-модель, которая не топит операторов в ложных срабатываниях?
Мы построили детекторы аномалий для 15+ камерных сетей и знаем приёмы тонкой настройки, которые отличают рабочую систему от лабораторной демки.
TL;DR — три точки принятия решения
Любая система поиска аномалий в видео (video anomaly detection, VAD) сводится к трём точкам принятия решения. Сделаете их правильно — модель доедет до продакшена. Ошибётесь — потеряете квартал на переобучении на данных, которых у вас нет.
1. Что в вашем сценарии считается аномалией? Украденный велосипед, падение, праздношатание, пожар, проникновение, скопление людей, необычная походка, человек, который слишком долго стоит неподвижно. У каждой камеры свой ground truth. Дежурный в больнице видит совсем не то, что охранник на складе.
2. Как ваша модель будет учиться? (а) Supervised: у вас тысячи размеченных аннотированных клипов. (б) Weakly-supervised: есть метки на уровне видео (содержит ли клип аномалию, да/нет), но нет временных меток на кадрах. (в) Self-supervised: есть видео без разметки, обучаете на задачах движения или предсказания. (г) Zero-shot: используете предобученные vision-language-модели (CLIP, Video-LLaVA) и задаёте определение аномалии промптом, ничего не обучая.
3. Где выполняется инференс? На edge (Jetson, Coral, Hailo на камере или edge-устройстве: низкая задержка, дружелюбно к GDPR, нулевые расходы на канал) или в облаке (GPU в AWS/GCP/Azure: легко масштабируется, проще управлять версиями, дороже).
Таксономия аномалий в CCTV
Большинство статей сводят поиск аномалий к одной задаче, но продакшен-системы должны различать шесть разных классов:
1. Объектные аномалии. Человек в запретной зоне, машина на тротуаре, посторонний предмет на полке. Нужны детекция объектов плюс пространственные правила или обученная модель границ. Просто, но хрупко, если камера движется.
2. Двигательные аномалии. Бег, падение, резкие дёрганые движения. Требуют темпорального моделирования позы или оптического потока. Низкий уровень ложных срабатываний труднодостижим, потому что «быстрый шаг» — это ещё не «бег».
3. Траекторные аномалии. Человек петляет, возвращается, идёт следом за другим. Нужны многокадровое трекинг и обученная или эвристическая модель «нормального маршрута».
4. Групповые и сценовые аномалии. Скопление людей, давка, праздношатание. Нужно отслеживать группу и считать агрегированный поток или плотность.
5. Аномалии уровня сцены. Огонь, дым, вода на полу, темнота. Обычно простые CNN или эвристические детекторы, обученные на нескольких примерах.
6. Контекстные аномалии. Человек один в 3 часа ночи против полудня; активность в обычно пустой зоне во время смены. Требуют темпорального и календарного контекста — это сложнее, чем покадровое зрение.
Supervised-обучение — когда у вас есть разметка
Если у вас есть датасет из 500+ размеченных аномальных клипов (с покадровыми bbox или временными метками), supervised-обучение — самый безопасный выбор. Стандартная архитектура — 3D CNN, которые совместно учат временные и пространственные признаки.
Основные supervised-архитектуры
I3D (Inflated 3D ConvNets). Опубликована в 2017 году, до сих пор широко используется. 2D-сети для изображений (ResNet-50) «надуваются» до 3D повторением весов по временной оси, затем дообучаются. На UCF-Crime достигает ≈82% AUC. Быстрый инференс (<100 мс на клип из 16 кадров на T4), легко дообучается. Узкое место: фиксированное receptive field (16 кадров ≈ 0,5–1 секунды при 25 fps).
X3D (эффективные 3D CNN). Вариант Facebook 2020 года, оптимизирован под мобильные устройства и edge. X3D-S (small) запускается на Jetson Nano с ≈30 TOPS / 40 мс на кадр. Компромисс: ≈76% AUC, зато в 50 раз меньше FLOPs, чем у I3D.
SlowFast. Двухпоточная архитектура Facebook 2018 года: медленный поток (stride=2, высокая пространственная детализация) плюс быстрый поток (stride=1, временная динамика). ≈85% AUC на UCF-Crime. Выше задержка и потребление памяти, чем у I3D, зато лучше ловит тонкие быстрые события.
Выбирайте supervised-обучение, когда: у вас ≥500 размеченных аномальных клипов, аномалии чётко определены и повторяемы (падения, проникновения, скопления людей в одном и том же помещении), и вы можете позволить себе 4–8 недель на разметку.
Weakly-supervised VAD — обучение на метках уровня видео
У реальных датасетов редко есть покадровые временные метки. У вас есть папка видео: «fight_001.mp4» (аномальное) и «normal_crowd_002.mp4» (нормальное). Weakly-supervised-обучение использует именно это: учит модель предсказывать метку уровня видео (есть аномалия — да/нет) из «мешка кадров», и модель сама учится обращать внимание на аномальные кадры.
Multiple-Instance Learning (MIL), базовый подход. Работа Султани и соавторов «Real-world Anomaly Detection in Videos» (ICCV 2017) ввела UCF-Crime — бенчмарк из 1,9 млн кадров реального видеонаблюдения. Их MIL-rank loss трактует видео как мешок сниппетов; если видео помечено как аномальное, хотя бы один сниппет должен иметь высокий балл. Результат: 76% AUC на UCF-Crime (ниже, чем supervised, но без временных меток).
RTFM (Ranking, Temporal, Frequency Modulation). Улучшение от Ли и соавторов 2021 года: используют амплитуду оптического потока, чтобы выделить сниппеты с высоким движением, и применяют темпоральное сглаживание. ≈84% AUC на UCF-Crime. Инференс остаётся в реальном времени (<50 мс на кадр на CPU).
MGFN (Motion and Guidance Feature Network). Вариант 2024 года, достигает ≈87% AUC за счёт связки энкодера движения с пространственной подсказкой (saliency maps). Сложнее, но полезен, если ваши аномалии кучкуются в конкретных областях изображения.
Выбирайте weakly-supervised, когда: у вас 200+ сырых видеофайлов (нормальные и аномальные, без разметки кадров), есть 2–3 недели на валидацию схемы разметки, а аномалии занимают >10% длительности видео (чтобы сниппетов было достаточно для MIL).
Застряли между supervised и weakly-supervised?
Разберём, какая парадигма подходит зрелости ваших данных, на коротком звонке.
Self-supervised и unsupervised VAD — обучение на потоках без разметки
У вас месяцы сырого видео с CCTV, но без разметки. Self-supervised-обучение тренируется на самом видео: восстанавливает кадры, предсказывает замаскированные участки или прогнозирует следующую секунду. Аномалии всплывают как высокая ошибка реконструкции или несовпадение предсказания.
Канонические подходы
Реконструкция автоэнкодером. Обучите свёрточный автоэнкодер на «нормальных» кадрах (1–2 недели записи). На тесте высокая ошибка реконструкции = аномалия. Просто и интерпретируемо, но плохо переносит новое освещение или сезонные изменения (дрейф данных).
Memory-augmented autoencoders (MemAE). Вариант Чжана и соавторов 2019 года: энкодер учит словарь «нормальных» паттернов; если тестовый кадр не удаётся восстановить из словаря, он аномальный. ≈71% AUC на UCF-Crime (ниже supervised, но без разметки). Плюс: естественная адаптивность к плавному дрейфу.
Предиктивное кодирование. Учим модель предсказывать кадр t+k по кадрам t–n…t. Аномалии вызывают ошибки предсказания. Естественным образом расширяется на временную логику (если человек вошёл в зону A, он должен выйти через зону B, а не зависнуть).
Masked autoencoders для видео (video-MAE). Прорыв Хе и соавторов 2022 года: маскируем 50–80% случайных патчей в клипе, учим ViT их восстанавливать. Предобучаем на видео без разметки (ImageNet недостаточно для временной динамики), затем дообучаем на размеченных аномалиях или используем как есть. В 2026 году — state-of-the-art для self-supervised-предобучения. Инференс дорогой (≈500 мс на кадр на V100), но качество выдающееся (≈88% AUC при дообучении на UCF-Crime всего на 10% разметки).
Выбирайте self-supervised, когда: у вас >3 месяцев непрерывной записи без разметки; аномалии редкие (<1% кадров); вы можете выделить 3–4 недели на окно предобучения; и есть GPU для тренировки (V100, A100).
VAD на трансформерах — state of the art 2026
В 2023–2026 годах трансформеры вытеснили 3D CNN на всех ключевых бенчмарках. Почему? Трансформеры учат дальние временные зависимости без архитектурных ограничений (CNN застряли в фиксированном receptive field). В продакшене доминируют четыре варианта:
TimeSformer. Дизайн Гедаса и соавторов 2021 года: факторизуют внимание на пространственное (внутри каждого кадра) и темпоральное (между кадрами). ≈86% AUC на UCF-Crime. Инференс: ≈200 мс на кадр на T4 для входа 224×224.
ViViT (Vision Video Transformer). Решение Google 2021 года: применяет patch embeddings ViT напрямую к 3D-токенам видео. Пространственно-временные токены учатся совместно. ≈87% AUC. Медленнее TimeSformer (≈350 мс на кадр), зато эффективнее по параметрам.
MViT-V2 (Multiscale Vision Transformers). Иерархическая пирамида трансформеров от Facebook: вычисления на нескольких разрешениях с последующим слиянием. ≈88% AUC на UCF-Crime. Больше памяти (10 ГБ+ для инференса на 1080p), зато лучше ловит мелкозернистые аномалии.
Video-MAE + дообучение ViT-B. Предобучаем video-MAE на данных без разметки (ваш собственный backlog с CCTV), дообучаем энкодер ViT-B на размеченных аномалиях. ≈90% AUC при вдвое меньшем количестве размеченных примеров, чем у обучения с нуля. Время выполнения: ≈150 мс на кадр на L4 (самой дешёвой NVIDIA-карте среднего уровня в Google Cloud).
Выбирайте трансформерный VAD, когда: у вас есть разметка (>300 клипов) и бюджет на облачный инференс (>3 750 ₽/камера/месяц); аномалии тонкие (необычная походка, нестандартные траектории); и вы можете терпеть задержку 150–350 мс.
Zero-shot VAD на фундаментальных моделях
CLIP (vision-language-модель от OpenAI) и её видеоаналоги (Video-LLaVA, видеоверсии BLIP-2) позволяют задавать аномалии на естественном языке и оценивать кадры видео вообще без обучения. Разметка не нужна.
Zero-shot на CLIP. Кодируем промпт: «бегущий человек», «скопление людей», «кто-то перелезает через забор». Кодируем каждый кадр. Считаем косинусное сходство. Кадры с оценкой >0,7 помечаются. Плюс: никакого обучения, мгновенная адаптация к новым определениям аномалий. Минус: ~60% AUC на UCF-Crime (хуже любого supervised-метода), ложные срабатывания на безобидном быстром движении.
Запросы к Video-LLaVA. Современные vision-language-модели умеют отвечать на вопросы: «Кадр аномален для парковки?». Полезно для контекстных аномалий (машина в 3 часа ночи — подозрительно; в полдень — норма). Инференс дорогой (≈1–2 секунды на кадр), галлюцинации часты (модель уверенно помечает безобидные события как подозрительные).
Практичный гибрид: используйте CLIP как первичный фильтр (отсеять явные негативы), затем прогоняйте supervised-детектор аномалий на высококонфидентных кадрах. Это снижает GPU-расходы на 70%, сохраняя AUC на уровне 85%+.
Пайплайн обнаружения — архитектура и поток данных
Любая продакшен-система VAD устроена по такой схеме:
1. Декодирование. Чтение кадров H.264/H.265 из RTSP-потока (IP-камера) или файла. Типичная пропускная способность: 1080p25 ≈ 600 МБ/с сырого YUV. Узкое место по стоимости при масштабе (тысячи потоков).
2. Предобработка. Ресайз (например, 1080p → 224×224), нормализация (среднее/стандартное отклонение ImageNet или статистика самого потока), опционально шумоподавление. ≈5–10 мс на кадр на CPU.
3. Детекция и трекинг объектов. Запускаем YOLO (или Faster R-CNN), чтобы найти людей, транспорт, предметы. Связываем детекции между кадрами с помощью DeepSORT или фильтра Калмана. ≈30–50 мс на кадр на GPU.
4. Извлечение признаков. Вырезаем найденные объекты, считаем эмбеддинги (поза, внешний вид, векторы движения). Опционально: оптический поток на весь кадр или по каждому отслеживаемому объекту. ≈10–20 мс на кадр.
5. Темпоральная модель. Подаём скользящее окно признаков кадров (например, 16 кадров, 0,64 секунды при 25 fps) в I3D, video-MAE или MemAE. На выходе — скалярная оценка аномалии на кадр или на клип. ≈50–200 мс в зависимости от архитектуры.
6. Скоринг и пороги. Сглаживаем оценки во времени (медианный фильтр, экспоненциальное скользящее среднее). Ставим порог (например, score > 0,7 = алерт). Подавляем повторные алерты на одну и ту же трасу в пределах окна (например, 5 секунд).
7. Алертинг. Шлём аномалии в очередь сообщений (Kafka, SQS), записываем в базу данных, отправляем webhooks или MQTT в дашборды операторов. Сохраняем метаданные: таймстамп кадра, кроп, уверенность аномалии, ID объекта, зона.
YOLO + DeepSORT как слой детекции объектов
YOLO v8n (nano) детектирует объекты на 30+ FPS на Jetson Orin Nano. DeepSORT переидентифицирует объекты между кадрами, создавая устойчивые ID треков. Вместе они формируют узкое место большинства пайплайнов: если трекинг сломается, дальнейший поиск аномалий бесполезен.
Конфигурация YOLO. v8n для edge (<50 мс на кадр), v8s/v8m для облака. Порог уверенности 0,5–0,6, чтобы балансировать ложные срабатывания (лишняя нагрузка) и пропущенные детекции (каскадная потеря в поиске аномалий).
Конфигурация DeepSORT. Использует глубокий признак внешнего вида (ReID-модель, обученная на датасетах переидентификации людей) плюс предсказание движения Калманом. Если человек уходит из кадра больше чем на 30 кадров (>1 секунды при 25 fps), трек гасится. Гиперпараметры (max_age, n_init) определяют, сколько держать «зомби»-треки (полезно при окклюзии, вредно при множественных проникновениях).
В продакшене обращайте внимание на крайние случаи: передача камеры (handoff), восстановление после окклюзии, дрейф ReID-модели.
Сравнительная матрица — какой подход под ваши ограничения
| Подход | AUC на UCF-Crime | Объём разметки | Стоимость инференса (мс/кадр на L4) | Устойчивость к дрейфу | Когда выбирать |
|---|---|---|---|---|---|
| I3D supervised | 82% | 500+ клипов | 80–120 | Низкая (фиксированные обучающие данные) | Стабильные, чётко определённые аномалии; высокий бюджет |
| RTFM weakly-supervised | 84% | 200+ видео (только уровень видео) | 90–140 | Средняя (учится на движении) | Нет покадровой разметки; много видео |
| MemAE unsupervised | 71% | Нет (без разметки) | 60–100 | Высокая (адаптивный словарь) | Нулевая разметка; допустим плавный дрейф |
| Video-MAE + ViT | 90% (дообученный) | 150–300 размеченных (после предобучения) | 150–200 | Высокая (предобучение на собственных данных) | Backlog без разметки >3 месяцев; тонкие аномалии |
| CLIP zero-shot | 60% | Нет | 200–300 | Средняя (зависит от промпта) | Мгновенный разворот; определение аномалий меняется каждую неделю |
Пять подходов сравнили — и впали в паралич анализа?
Пришлите свои вводные (количество камер, ресурсы на разметку, требуемая задержка), и мы порекомендуем подход, который под них ложится.
Edge или облако — когда выносить инференс на камеру
Выбор между edge и облаком — не про сырую мощность GPU. Это про задержку, пропускную способность, приватность и стоимость при масштабе.
Edge (инференс на камере или edge-боксе). Разворачиваем I3D, X3D или лёгкий YOLO на Jetson Orin Nano (40 TOPS, ≈18 600 ₽), Hailo-8 (≈6 700 ₽, 13 TOPS) или Google Coral TPU (4 TOPS). Плюсы: нулевые расходы на канал, задержка меньше 100 мс, дружелюбно к GDPR (кадры не покидают объект), работает офлайн. Минусы: жёсткие лимиты на инференс (можно гонять одну модель, но не ансамбль), обновлять сложнее (выкатка прошивки на 1000 камер — задача на 2 недели).
Облако (инференс на GPU в AWS/GCP/Azure). Стримим H.264-кадры на серверы с Tesla T4 (16 ГБ VRAM, ≈22 ₽/час), L4 (≈45 ₽/час) или H100 (≈225 ₽/час). Плюсы: масштабирование на тысячи камер на одном кластере, обновление модели в один клик, можно собрать ансамбль из пяти детекторов. Минусы: затраты на egress-трафик (≈0,75–3,7 ₽ за гигабайт — сумма набегает), задержка туда-обратно 200–500 мс, трения с GDPR (кадры пересекают границы).
Гибрид: edge — для лёгкой детекции (детекция объектов YOLO), облако — для тяжёлых моделей (скоринг аномалий через video-MAE). YOLO работает на Jetson (30 мс), отправляет bbox (100 КБ/с) в облако, облако скорит коробки (высокая утилизация GPU). Задержка: ≈150 мс. Канал: 100 КБ/с ≈ 4,5 ₽/камера/месяц. Это вариант по умолчанию у Фора Софт для развёртываний от 50 камер.
Железо и арифметика расходов
Одна 1080p-камера на 25 fps выдаёт 1,3 МБ/с сырого видео. При сжатии H.264 (50:1) по сети идёт 26 КБ/с. Стоимость инференса сильно зависит от железа и модели.
Стоимость инференса на одну камеру, 1080p25, одна модель (I3D или YOLO+I3D)
Jetson Orin Nano (edge). Железо: 18 600 ₽ единоразово. Потребление: 15 Вт постоянно. Инференс: I3D на ≈100 мс на кадр = 2,5 кадра в секунду (в 10 раз медленнее реального времени). Обходной приём: обрабатывать каждый 4-й кадр и накапливать оценки. Эффективная пропускная способность: реальное время на четверти разрешения или 6 fps на полном. Стоимость: 18 600 ₽ + 112 ₽/месяц электричества + 375 ₽/месяц edge-лицензии (если есть) = около 487 ₽/месяц на камеру, амортизированных за 24 месяца.
AWS T4 GPU (облако, шаринг). Один T4 (22 ₽/час) тянет ≈8 параллельных потоков 1080p25 на I3D (50 мс на поток, 4 одновременно). Стоимость на камеру: 22 × 24 ÷ 8 = 67 ₽/месяц на вычисления + 3,7 ₽/месяц egress (1080p25 × 26 КБ/с × 2,6 млн секунд в месяц × 0,75 ₽/ГБ) = 71 ₽/месяц. Задержка: 150–200 мс. Плюс 50% на оркестрацию: 107 ₽/камера/месяц.
AWS L4 GPU (облако, получше). Один L4 (45 ₽/час) тянет ≈15 потоков. Стоимость: 45 × 24 ÷ 15 = 72 ₽/месяц на вычисления + 3,7 ₽ egress = 75 ₽/месяц. Задержка: 120–150 мс. С оркестрацией: 113 ₽/камера/месяц.
Эмпирическое правило: Edge (Jetson Nano) дешевле при <50 камер. Облако (T4/L4) выигрывает при >100 камер — там расходы на оркестрацию амортизируются. Гибрид (edge YOLO + cloud I3D) — золотая середина на 50–500 камер: 225–300 ₽/камера/месяц.
Датасеты и бенчмарки
UCF-Crime (1,9 млн кадров, 128 часов). Реальное видео с CCTV: 80 нормальных клипов, 41 аномальный (драки, грабежи, вандализм). Сильно несбалансирован. Используется в каждой статье с 2017 года. Метрика — AUC на уровне видео (ранжирует ли модель аномальные клипы выше нормальных). Оговорка: все аномалии — насильственные или криминальные, модели переобучаются на интенсивности движения.
ShanghaiTech (317 часов, сцены метро и улицы). Покадровая разметка для пиксельных аномалий (праздношатание, толпа и т. д.). Гранулярнее UCF-Crime. Метрика — пиксельный AUC или частота детекции на кадре при низкой частоте ложных срабатываний.
Avenue и XD-Violence. Меньшие бенчмарки, специфические сценарии (брошенные предметы, насилие). Редко используются в продакшене — слишком узкий домен.
Street Scene. Свежий (2024) датасет на 400 часов реального CCTV в общественных местах. Разнообразнее по типам аномалий (кража велосипеда, несанкционированный вход, сон на скамейке). Постепенно становится отраслевым стандартом, но пока фрагментирован по проприетарным реализациям.
Мини-кейс — мониторинг стройплощадки
Ситуация: средняя строительная компания с 12 активными площадками, на каждой 3–4 камеры. Цель — ловить нарушения техники безопасности (рабочие без касок, оставленное без присмотра оборудование, проникновение в нерабочее время) и проникновения. Текущее положение: 15 операторов следят за дашбордами круглосуточно, пропускают события в спокойные дни, ошибаются в загруженные.
Решение (недели 1–4): мы собрали 2 недели непрерывной записи с 4 эталонных площадок (40 часов видео без разметки). Недели 1–2: построили self-supervised MemAE на этих 40 часах (стоимость обучения: 3 750 ₽ на Lambda GPU Cloud). Неделя 3: разметили по 200 кадров с каждой площадки на нарушения техники безопасности (детекция касок через YOLO + поза, оставленное оборудование через паузы в DeepSORT). Дообучили supervised-I3D на 200 размеченных кадрах с каждой площадки. Неделя 4: задеплоили на edge (Jetson Orin в защищённом от погоды корпусе на каждой площадке).
KPI (до и после, прогон 8 недель): ложные срабатывания упали с 47 на камеру в день (операторы выключают систему ко 2-й неделе) до 8 на камеру в день (приемлемо, операторы активно следят). Среднее время обнаружения нарушения техники безопасности: 3,2 минуты (было: 12 минут, в зависимости от того, кто из операторов смотрел). Пропущенных инцидентов: 2 из 18 отслеженных (recall 88%). Стоимость железа: 18 600 ₽ × 36 камер = 669 600 ₽ единоразово. Операционная стоимость: 150 ₽/камера/месяц (edge-лицензия + удалённый мониторинг). Окупаемость: 669 600 ₽ ÷ (5 предотвращённых инцидентов в год × 3,7 млн ₽ стоимости инцидента) — меньше двух недель.
Фреймворк решения — выбираем подход за пять вопросов
Ответьте на пять вопросов по порядку, чтобы сузить пространство выбора:
Q1. Есть ли у вас размеченные данные с аномалиями (покадровые или видео-таймстампы)? Да → к Q2. Нет → к Q3.
Q2. У вас >500 размеченных клипов или >50 тыс. размеченных кадров? Да → supervised (I3D, SlowFast, дообученный video-MAE). Нет → weakly-supervised (RTFM, MGFN), если есть >200 видео-уровневых меток; иначе self-supervised предобучение + дообучение на маленькой размеченной выборке.
Q3. Есть ли >3 месяцев непрерывного неразмеченного видео с тех же камер? Да → предобучаем video-MAE на вашем видео, дообучаем на маленькой размеченной выборке (к Q4). Нет → MemAE (unsupervised, не нужно тренировать) или CLIP zero-shot (мгновенно, без обучения).
Q4. Нужен ли инференс в реальном времени (<50 мс задержки), и готовы ли вы на более низкий AUC (<85%)? Да → X3D на edge (Jetson Nano). Нет → дообученный video-MAE в облаке (T4/L4 GPU).
Q5. Определение аномалий стабильно или меняется неделя к неделе? Стабильно → вкладывайтесь в supervised или предобученное self-supervised-обучение (затраты невозвратные, но ROI хороший). Меняется → CLIP zero-shot (правите промпт, не переобучаете) или лёгкая эвристическая система (движение + детекция объектов).
Пять подводных камней, которые топят VAD-проекты
1. Модель убивает дрейф данных, а не дрейф концепций. Обучили на записи июля 2025 года (день, зелёные деревья). Сентябрь: листья пожелтели, трава засохла, угол солнца изменился. Без переобучения качество модели падает на 15–20%. Продакшен-команды не замечают, пока операторы не начинают глушить алерты. Решение: мониторьте AUC еженедельно (прогоняйте модель на holdout-наборе с прошлой недели). Переобучайте каждые 4–6 недель или когда AUC просядет больше чем на 5%.
2. Усталость от ложных срабатываний рушит внедрение. Оператор видит 50 алертов за смену, 45 — ложные. К третьему дню он выключает уведомления. К седьмому — отрубает систему. Решение: задавайте порог консервативно (стартуйте с 95% precision, принимая 40% recall). Чётко определите, что именно интересует вашу команду. Алерты должны быть редкими и надёжными.
3. Переобучение под бенчмарк (UCF-Crime, ShanghaiTech). В статьях рапортуют 90% AUC на UCF-Crime, а на данных клиента модель валится (другое освещение, угол камеры, сцена). UCF-Crime — это только насильственная преступность; он не покрывает праздношатание, проникновение или кражу оборудования. Решение: соберите 2 недели записи у клиента и провалидируйте модель там до подписания контракта. Падение AUC на 15% от бенчмарка к реальности — норма и приемлемо.
4. Освещение, окклюзия и сезонная чувствительность. Ночной режим CCTV (чёрно-белый, высокий шум), сильный дождь, бегущие тени, зима против лета вызывают тихие отказы. Уверенность YOLO падает, трекинг ломается, оценки аномалий превращаются в шум. Решение: собирайте обучающие и валидационные данные по всему диапазону освещения и погоды. Используйте аугментации (случайная яркость, контраст, гауссов шум) при обучении. Валидируйте раз в квартал на записях со всех сезонов.
5. Расползание скоупа в распознавание лиц. Клиент спрашивает: «Можно идентифицировать бегущего?» или «Уведомлять, если в магазин зашёл известный шоплифтер». Это уже не поиск аномалий, а биометрическая идентификация — а она жёстко регулируется (EU AI Act с февраля 2025 запретил массовое биометрическое наблюдение, штаты Иллинойс и Техас имеют законы вида BIPA). Понадобится юридическая проверка, opt-in-согласие и privacy-impact assessment. Решение: чётко фиксируйте границы скоупа в договоре. Предлагайте детекцию объектов и траекторий (что человек делал, а не кто он), а не идентификацию.
KPI — что измерять
Качественные KPI (ловит ли модель настоящие аномалии?). (1) AUC или ROC-кривая (порогоустойчивая метрика способности ранжировать; 90% — отлично, 70% — базово, 50% — случайное угадывание). (2) Precision при фиксированном recall (например, «precision при поимке 80% аномалий»). (3) Среднее время обнаружения (MTTD) — сколько секунд после начала аномалии прежде, чем система алертит. Типичные цели: MTTD <5 сек, precision >80% при recall 70%.
Бизнес-KPI (снижает ли система операционные расходы?). (1) Частота ложных срабатываний на камеру в день (FAR). Норма: <10 на камеру в день (одно раз в 2–3 часа). (2) Необнаруженные инциденты в месяц (пропущенные аномалии, которые потом нашли операторы или клиенты сообщили сами). (3) Время оператора на ложные позитивы (в секундах; если >30 сек — оператор разбирается, тратит время). Цель: <5 минут на оператора за смену на разбор ложных позитивов.
KPI надёжности (остаётся ли система онлайн и точной?). (1) Uptime (% камер с работающим инференсом >99,5%). (2) Дрейф AUC (изменение AUC от недели к неделе; падение >5% — триггер на переобучение). (3) Задержка инференса (p50, p99; цель: p99 <200 мс для облака, <100 мс для edge).
Комплаенс — GDPR, EU AI Act, BIPA
Видеонаблюдение жёстко регулируется. VAD-системы должны пройти три фильтра:
GDPR (ЕС, ЕЭП). Кадры являются персональными данными, если идентифицируют человека или потенциально могут это сделать. Если вы обрабатываете видео в ЕС или храните его на серверах ЕС, GDPR применим. Требования: (1) Законное основание (общественная безопасность, право работодателя на наблюдение, договор). (2) Минимизация данных (храните кадры лишь столько, сколько нужно; детекции аномалий могут оставаться, сырые кадры удаляйте через 72 часа, если иное не обязательно по закону). (3) Право на объяснение (операторы должны понимать, почему система пометила аномалию). Рекомендация: разворачивайте инференс на edge — кадры не покидают объект, а в облако уходят только алерты (таймстамп, уверенность, класс объекта).
EU AI Act (с 2025 года). Биометрическое массовое наблюдение в реальном времени (распознавание лиц в открытой толпе) запрещено. Сюда же относится переидентификация (сопоставление человека между камерами по эмбеддингам внешнего вида). Поиск аномалий сам по себе не запрещён, но использование его для идентификации людей — да. Рекомендация: детектируйте события (человек бежит, толпа собирается), а не личности.
BIPA (Иллинойс, Техас расширяется). Требует информированного согласия до сбора и использования биометрии (лицо, отпечатки, голос, походка). VAD-системы обязаны раскрывать использование биометрии (если есть) и предлагать opt-out. Штрафы: 75 000–375 000 ₽ за нарушение. Рекомендация: избегайте переидентификации по внешнему виду; если без неё никак — чётко обозначайте это в политике приватности и давайте opt-out.
Когда НЕ использовать ИИ для поиска аномалий в видео
Нейросетевой VAD — мощный, но дорогой. Иногда классическое компьютерное зрение побеждает. Рассмотрите эвристическую систему, если:
Аномалии у вас пространственно или темпорально простые. «Алерт, когда человек заходит в зону A». Детекция объектов (YOLO) + правила зоны побьют любой нейронный детектор аномалий. Стоимость: 0 ₽/камера (только YOLO на edge). Задержка: 50 мс. Через неделю всё работает.
У вас меньше 10 камер. Нейронный VAD — это фиксированная стоимость (месяцы инженерной работы), которая амортизируется по камерам. На 5 камер эвристика выйдет быстрее и дешевле. На 500 камер нейросеть побьёт правила.
Камерный парк нестабилен или будет часто меняться. Если камера двигается, поворачивается или меняется каждые 3 месяца, переобучение нейронной модели становится постоянным бременем. Правила (координаты зон) адаптировать проще.
Высокий регуляторный риск. Если в вашей юрисдикции биометрическое наблюдение под вопросом или клиент требует нулевой роли ИИ, правила дают аудит-трейл и тривиально объяснимы. Нейронные модели могут галлюцинировать; правила — нет.
FAQ
На каком датасете обучать детектор аномалий?
Начните с UCF-Crime для proof of concept (он публичный, большой, и под него есть бенчмарки), а затем сразу соберите 2 недели записи с целевой камерной сети и провалидируйте там. У UCF-Crime есть разрыв ~15% по точности по сравнению с реальным наблюдением: он сфокусирован на насильственных преступлениях в контролируемых сценариях. Продакшен-модель должна тренироваться на ваших данных (или хотя бы дообучаться на них).
Достаточно ли одного YOLO для поиска аномалий?
YOLO детектирует объекты; он не понимает временной контекст и необычное поведение. Используйте YOLO + DeepSORT для трекинга, а сверху ставьте темпоральную модель (I3D, MemAE и т. п.) или правила. Исключение: если ваши аномалии чисто пространственные (человек в запретной зоне, предмет не на месте), YOLO + правила зон достаточно и быстро.
Будет ли модель работать в темноте, на ночном режиме, на чёрно-белом CCTV?
Скорее всего, нет — без переобучения. Запись с ночного режима шумная, монохромная, с другой контрастностью, чем дневное видео. Если 90% обучающего набора — день, а 10% — ночь, на чистой ночи модель просядет более чем на 20%. Собирайте ночные обучающие данные; используйте аугментации (яркость, контраст) при обучении; валидируйте отдельно на ночных записях.
Облачный инференс или edge? Как выбрать?
Edge — если у вас <50 камер, жёсткая задержка (<50 мс) или ограничения GDPR. Облако — если >100 камер, задержка 150–200 мс терпима, нужны частые обновления модели. Гибрид (edge YOLO + cloud VAD) — золотая середина на 50–500 камер.
Можно ли использовать Gemini или CLIP zero-shot вместо обучения?
Да, но смиритесь с ~60% AUC вместо 85–90%. CLIP zero-shot быстрый (без обучения) и гибкий (меняйте определения аномалий через промпт), но галлюцинации часты (ложные алерты на безобидном быстром движении). Используйте как первичный фильтр, а не как единственный детектор. Инференс тоже не из дешёвых (≈200–300 мс на кадр в облаке).
Сколько камер тянет один GPU?
Один T4 GPU (≈22 ₽/час): 6–8 камер 1080p25 на I3D (100 мс на кадр, 25 fps = 2,5 потока параллельно). Один L4 GPU: 12–15 камер. Один H100 GPU: 50+ камер. Цифры приведены при допустимой стриминговой задержке (200 мс). Если нужна задержка меньше 100 мс — делите на два. Накладные расходы на оркестрацию (Kubernetes, балансировка нагрузки) срезают эффективную пропускную способность на 20–30%.
GDPR — это блокер для поиска аномалий в реальном времени?
Нет, если всё сделать правильно. GDPR разрешает наблюдение в целях безопасности, если есть законное основание и минимизация данных. Разверните инференс на edge (кадры остаются на камере), отправляйте в облако только алерты (таймстамп, уверенность, без сырых кадров). Храните кадры локально 72 часа, потом удаляйте. Это проходит GDPR-аудиты, а юридическое сопровождение комплаенса обходится меньше чем в 750 тыс. ₽.
Какой AUC обычно показывает продакшен-детектор аномалий в видео?
На бенчмарке UCF-Crime: 85–90% (supervised или на трансформерах). На ваших данных (после валидации на реальном видео): ожидайте падение AUC на 10–20% из-за доменного сдвига. В продакшене с переобучением каждые 4–6 недель и квартальной валидацией по всем сезонам: удерживается 70–80% AUC. В переводе на бизнес-показатели — precision 75%, recall 60% (ловим 6 из 10 реальных аномалий, и 3 из 4 алертов — настоящие).
Что почитать дальше
Компьютерное зрение
Продакшен-гайд по YOLO + DeepSORT
Трекинг и переидентификация объектов в реальном времени для пайплайнов видеонаблюдения.
Инфраструктура
Edge AI или cloud AI для видеонаблюдения
Стоимость, задержка и приватность — компромиссы развёртывания инференса для видеонаблюдения.
Кейс
Видеонаблюдение на стройплощадке с ИИ
Автоматизация контроля техники безопасности на стройке через визуальный поиск аномалий.
Этика и комплаенс
Этика и регулирование ИИ-видеонаблюдения в 2026
Как пройти GDPR, EU AI Act и регулирование биометрии для систем видеонаблюдения.
Найм
Как нанимать инженеров по компьютерному зрению
Скрининг и онбординг senior CV-инженеров для продакшен-систем поиска аномалий.
Пилот работает, но масштабироваться за 50 камер — страшно?
Обсудим с командой продакшена дрейф данных, настройку ложных срабатываний и архитектуру развёртывания на больших масштабах.
Поиск аномалий в видео в 2026 — выбираем правильную архитектуру
Поиск аномалий в видеонаблюдении дозрел до пяти прагматичных парадигм: supervised (90% AUC, нужно 500+ меток), weakly-supervised (84% AUC, только метки уровня видео), self-supervised (88% AUC после дообучения, нужен backlog без разметки), на трансформерах (90% AUC, state of the art, но задержка 150–200 мс) и zero-shot (60% AUC, мгновенно, без обучения). Выбирайте, исходя из зрелости данных, бюджета на задержку и числа камер. Разверните YOLO+DeepSORT для трекинга объектов, скармливайте темпоральные признаки в I3D или video-MAE и беспощадно настраивайте порог, чтобы усталость от ложных срабатываний оставалась ниже терпимости оператора (<10 алертов на камеру в день). Мониторьте AUC еженедельно и переобучайте каждые 4–6 недель, чтобы бороться с дрейфом данных. Edge выигрывает до 50 камер; облако — после 100; гибрид (edge YOLO + cloud VAD) — золотая середина на 50–500 камер.
Разрыв между исследовательским baseline (статьёй про UCF-Crime) и продакшен-системой (аномалии, которые правда волнуют вашу команду, при ложных срабатываниях достаточно редких, чтобы операторы не отключали систему) — это 3–4 месяца инженерной работы и постоянного наблюдения. Начинайте с supervised или weakly-supervised, если у вас есть разметка; предобучайте video-MAE на собственном backlog, если её нет. Жёстко валидируйте на собственных записях до подписания контракта.
Фора Софт выводила VAD-системы в продакшен на NetCam, DSI Drones и более чем 15 клиентских сетях. Наш playbook — не теория; он обкатан на боевых проектах. Если вы запускаете новое развёртывание или масштабируете действующий пилот, мы готовы разобрать ваши конкретные ограничения на коротком звонке и порекомендовать архитектуру и таймлайн под ваш сценарий.
Готовы начать строить VAD для своей сети?
Мы строили детекторы аномалий в самых разных отраслях — стройка, ритейл, транспорт, здравоохранение. Расскажите про камеры, аномалии и сроки.

