Технологии
Ложные срабатывания видеоаналитики: почему возникают и как свести к минимуму

Охранник на третью ночь перестаёт смотреть на монитор. Система пиликала сорок раз за смену — кошка, ветка, дождь, снова кошка, фары соседской машины. Из сорока тревог реальной не было ни одной. И когда на сорок первой через забор реально перелезает человек, охранник эту тревогу просто смахивает не глядя. Привык. Система, которая кричала «волки» всю ночь, его этому и научила.
Вот это и есть главная беда плохо настроенной видеоаналитики. Не то, что она что-то не увидит, — а то, что она увидит слишком много, и ей перестанут верить. Ложные срабатывания видеоаналитики убивают систему не технически, а психологически: алерт, которому не доверяют, всё равно что выключенный.
Разберём по-честному: откуда они берутся и что с ними реально можно сделать.
Откуда вообще берутся ложные тревоги
Камера не понимает мир — она видит, что в кадре что-то изменилось. Старые системы на вычитании фона так и работали: было пусто, стало не пусто, значит движение, значит тревога. А «не пусто» бывает по сотне безобидных причин.
Самые частые источники false positive, которые я ловил на реальных объектах:
- Животные и птицы. Кошка во дворе, собака вдоль забора, голубь, севший прямо на объектив, летучая мышь ночью в луче ИК-подсветки. Для тупого детектора движения это всё «нарушитель».
- Тени и блики. Движущаяся тень от облака, тень от собственного забора, которая ползёт за солнцем, солнечный зайчик от лобового стекла, отражение в луже.
- Осадки и погода. Дождь и снег в кадре — это тысячи движущихся точек. Туман меняет всю картинку целиком. Капли на стекле объектива бликуют и «дышат».
- Растительность. Качающиеся на ветру ветки, высокая трава, флаг, баннер, ветка, которая лезет прямо перед камерой и закрывает полкадра.
- Свет. Фары въезжающей машины, прожектор, который включился по своему таймеру, засветка от фонаря, резкая смена освещения на рассвете и закате.
- Насекомые и паутина. Мошка и паук, которые в ИК-подсветке светятся ярко и крупно прямо у линзы, — классика ночных ложных тревог. Паутина с каплей росы качается и даёт «движение» каждую ночь.
- Сама камера. Камеру качает ветром на мачте, она чуть сместилась после монтажника — и вся сцена «поехала», детектор считает, что движется всё.
Заметьте: почти ничего из этого не лечится «покруче нейросетью». Часть лечится головой при настройке. И вот тут начинается работа.
Геометрия: зоны, маски и линии
Первое, что отсекает половину мусора, — это не алгоритм, а правильно нарисованная карта кадра.
Зоны детекции. Не надо анализировать весь кадр. Реагировать нужно только на ту область, где нарушение имеет смысл: полоса вдоль забора, ворота, дорожка к складу. Небо, кроны деревьев, проезжая часть за периметром, газон у дороги — всё это выносится за пределы зоны. Качающаяся верхушка тополя больше не ваша проблема, если она не в зоне.
Маски исключения. Поверх зоны накладываются вырезы: вот тут флаг, вот тут куст, вот тут вечно бликует лужа — игнорировать. Маска статична, рисуется один раз, и эти конкретные источники замолкают навсегда.
Линии пересечения (tripwire). Вместо «движение в области» — «пересечение линии в заданном направлении». Это сразу убирает кучу ложных: тень, которая колышется на месте, линию не пересекает. Кошка, идущая вдоль линии, а не через неё, — тоже. Срабатывает только то, что реально переходит рубеж снаружи внутрь. Именно так строится грамотная охрана периметра — не «что-то шевельнулось», а «кто-то пересёк рубеж в запретном направлении».
Геометрия — самый дешёвый и самый недооценённый фильтр. Большинство «задолбавших» систем на самом деле просто не настроены по зонам и анализируют небо вместе с забором.
Физика объекта: размер, скорость, время
Следующий слой — отсев по физическим свойствам того, что движется.
Фильтр размера. Человек на въезде занимает в кадре определённую долю площади. Мошка у линзы — крошечную, хоть и яркую. Машина — большую. Задав минимальный и максимальный размер объекта для зоны, вы выкидываете и насекомых снизу, и «всё небо поехало» сверху. Размер привязывается к перспективе: у дальнего края зоны человек мельче, у ближнего крупнее — нормальная система это учитывает.
Фильтр скорости. Птица проносится через кадр за доли секунды — слишком быстро для человека. Тень от облака ползёт неестественно медленно и плавно по всему кадру. Отсекая аномально быстрые и аномально медленные объекты, гасим обе категории.
Фильтр направления. На tripwire задаётся, какое пересечение тревожное. Выход с территории — норма, вход снаружи в запретной зоне — тревога. Половина «движения» отваливается сразу.
Накопление подтверждающих кадров. Объект должен присутствовать несколько кадров подряд, а не мелькнуть на одном. Капля дождя, блик, единичный сбой сжатия живут один кадр — их выкидывает требование устойчивости. Это, по моему опыту, один из самых эффективных тихих фильтров: он почти не виден в настройках, но срезает добрую долю одиночных вспышек.
Главный сдвиг: классификация вместо детекции движения
Всё перечисленное — это фильтры вокруг старого подхода «есть движение / нет движения». Настоящий перелом случился, когда место вычитания фона заняла нейросеть-классификатор.
Разница принципиальная. Старая система спрашивала: «что-то изменилось в кадре?» Новая спрашивает: «что именно в кадре — человек, машина, животное, или просто шум?» Она не реагирует на движение как таковое — она ищет объект нужного класса.
Это сразу снимает целые семейства ложных тревог:
- Кошка, собака, птица детектятся как «животное» и в охранном сценарии игнорируются осознанно — система знает, что это животное, а не «не справилась».
- Качающаяся ветка, тень, дождь, блик вообще не относятся ни к одному значимому классу — для классификатора это фон, а не объект.
- Фары и засветка не превращаются в «человека», потому что у человека есть форма, которую модель выучила, а у пятна света — нет.
Поэтому когда меня спрашивают, чем нейросетевая аналитика лучше детектора движения из коробки регистратора, я отвечаю просто: она отличает кошку от человека. Старая — нет. Подробнее про сами блоки распознавания — в материале про функции и модули видеоаналитики, а если нужна общая картина, с чего вообще всё начинается, — что такое видеоаналитика.
Привязка к времени и условиям
Контекст тоже фильтр. Одно и то же движение днём и ночью значит разное.
Расписание. Человек в цеху в рабочую смену — норма, тот же человек в той же зоне в три ночи — событие. Аналитика, привязанная к расписанию, не сыплет тревогами по тем, кто работает легально, и обостряется в часы, когда никого быть не должно.
Время суток и подсветка. Ночь — отдельная боль: ИК-подсветка, в которой светятся мошки и паутина у линзы, контрастные тени от прожекторов, фары. Часть ночных ложных лечится правильной ИК-подсветкой — разнесённой от объектива, чтобы насекомых не тянуло прямо к линзе, — и отдельным набором порогов для ночного режима, а не теми же, что днём.
Ракурс. Камера, смотрящая сверху-вдоль зоны под нормальным углом, даёт чистую детекцию. Камера, направленная в небо, на дорогу за забором или против солнца, обречена ловить мусор, какую модель ни поставь. Половина проблем с ложными тревогами родом не из софта, а из того, как и куда привинтили камеру.
Метрика, которой меряют: «тревог в сутки»
Как понять, настроена система или «задалбывает»? Я меряю одной цифрой — число тревог в сутки и долю реальных среди них.
Свежеповешенная, ненастроенная аналитика на уличном периметре легко выдаёт десятки и сотни событий в сутки, из которых полезных — единицы или ноль. Это нерабочее состояние, такой системе никто не верит. Цель настройки — увести поток к нескольким осмысленным тревогам в сутки, где каждая стоит того, чтобы на неё посмотреть.
Именно поэтому так важен пилот. За пару недель наблюдения видно, что именно сыплет на конкретном объекте: вот этот фонарь, вот эта ветка, вот эта кошка ходит каждую ночь по одному маршруту. Настройка — это не один правильный пресет на все объекты, а итерация: посмотрели логи, дорисовали маску, подняли минимальный размер, перенаправили tripwire, прогнали ещё неделю. Без этого цикла любая, даже самая умная модель будет шуметь — потому что мир у каждого забора свой.
KPI «тревог в сутки» хорош ещё и тем, что его понимает заказчик. Не «точность модели 0.94», а «было сорок пустых тревог за ночь, стало две, и обе по делу». Вот это разговор, после которого охранник снова начинает смотреть на монитор.
Честно: ноль ложных недостижим
Не буду обещать стерильность. Полностью ложные срабатывания не уберёт никто — ни мы, ни любой вендор, который скажет иначе.
Всегда есть пограничные сцены: густой снегопад, который глушит картинку; туман, в котором тонет половина зоны; человек, ведущий собаку прямо по линии, — формально и тот, и другой объект налицо. И всегда есть обратная сторона медали: чем агрессивнее давишь ложные, тем выше риск пропустить настоящее. Закрутишь фильтр размера слишком высоко — пропустишь пригнувшегося человека. Зальёшь полкадра масками — оставишь слепое пятно, куда и полезут. Это всегда баланс, а не кнопка «сделать идеально».
Поэтому честная цель формулируется не как «ноль ложных», а так: алертов должно быть мало, и им должны доверять. Лучше десять тревог в сутки, где девять реальных, чем две, одна из которых пропускает нарушителя ради красивой цифры. Система ценна не тишиной, а тем, что на её сигнал реагируют не глядя в потолок.
Если у вас аналитика уже стоит и «задолбала» — почти наверняка проблема не в железе, а в том, что её повесили и не настроили. Это лечится без замены оборудования: видеоаналитика накатывается на действующие камеры как софт, и большая часть работы по ложным тревогам — это зоны, маски, пороги и две недели наблюдения, а не новые камеры.
Хотите, посмотрим на ваш объект — сколько тревог в сутки он даёт сейчас и до скольких реально его довести. Обсудить пилот — самый честный способ это проверить: цифры на вашей площадке убедительнее любых обещаний.
// связанные услуги
Хотите так же на вашем объекте?
Покажем видеоаналитику на ваших камерах и рассчитаем окупаемость. Бесплатно.