Сколько уведомлений за смену способна переварить охрана, прежде чем перестанет смотреть в монитор? Пятьдесят? Сто? Правильный ответ — около двадцати. Дальше оператор слепнет. В Morana Labs мы строим индустриальный ИИ, пишем reinforcement learning и вытягиваем тяжелый инференс на edge-железе заказчика без связи с облаком. Данные не покидают периметр. Мы насмотрелись на последствия внедрений коробочных YOLO-решений, которые интеграторы лепят на замену ушедшим вендорам. Вам показывают гладкий дневной демо-ролик с точностью 98%. Вы подписываете акт. А потом садится солнце и наступает та самая первая боевая ночь видеоаналитики: 600+ ложных алертов на фары, тени и ворон за 72 часа — и как мы это вычистили, я сейчас разберу по костям.
Первая боевая ночь видеоаналитики: 600+ ложных алертов на фары, тени и ворон за 72 часа — и как мы это вычистили
Открываем дамп логов с периметра склада. Цифры с реального объекта. Шестьсот четырнадцать мусорных детекций за три смены. Разбираем по категориям. Около сорока процентов — свет и засветка. Соседние ворота открываются, срабатывает прожектор с датчиком движения, и освещенность за миллисекунду прыгает с нуля до двух тысяч люкс. ИК-сенсор камеры сходит с ума, выдавая артефакты, в которых сеть радостно находит человека. Еще двадцать пять процентов — движущиеся тени на снегу от тех же прожекторов и проезжающих фур. Почему cv срабатывает на тени? Потому что контур контрастный и динамичный. Двадцать процентов забирают насекомые и осадки. Мотылек пролетает в пяти сантиметрах от объектива, отражает инфракрасную подсветку и перекрывает полкадра светящимся пятном. Оставшиеся пятнадцать процентов приходятся на фауну. Вороны на заборе. Бродячие собаки.
Демо-датасет всегда врет. В нем нет смены освещения. Нет ночи, ливня и бабочек-мутантов. Там ходят аккуратно вырезанные пешеходы при дневном свете. Поэтому ложные срабатывания видеоаналитики ночью — это диагноз для любой системы «из коробки».
Анатомия фильтра: детекция людей в темноте без галлюцинаций
Замена весов модели не решает проблему. Ее решает инженерный пайплайн. Первым слоем мы наложили жесткое ROI-маскирование, отрезав небо, ветки и дальнюю трассу. Но это база. Дальше в бой вступает temporal filtering и трекинг против мгновенных всплесков. Мы подключили ByteTrack. Нейросеть может легко увидеть контур на тени от фуры в течение двух-трех кадров. Это нормально. Ненормально — поднимать из-за этого тревогу.
Человек обладает кинематикой. Тень — нет. Мы ввели жесткий порог по времени присутствия. Если объект не удерживает стабильный трек дольше полутора секунд, система считает его шумом. В этот момент отваливается половина мусора.
def process_frame_detections(detections, tracker, fps, min_time_sec=1.5):
tracks = tracker.update(detections)
valid_alerts = []
min_frames = fps * min_time_sec
for track in tracks:
if track.is_confirmed() and track.hits >= min_frames:
if not track.alert_sent:
valid_alerts.append(track)
track.alert_sent = True
return valid_alertsСледом идет работа с железом. ИК-калибровка экспозиции обязательна. Выдержку камеры нужно зажимать, чтобы матрица не пыталась высветлить кромешную тьму, порождая снегопад пикселей. Финальный удар — дообучение на hard negatives. Мы собрали те самые шестьсот ложняков прямо с объекта. Всех ворон, все светящиеся фары и тени мы разметили как фон и скормили сети, жестко штрафуя функцию потерь за малейшую реакцию на них.
Метрика, которую прячут
Alert fatigue видеоаналитика хоронит проект быстрее, чем кривой код. На пятый день спама охрана молча отключает звук уведомлений. В акте написано «работает», а по факту периметр дырявый. Видеоаналитика ложные тревоги генерировать не должна. Главная метрика — это не полнота детекции (recall), а false-alarm-rate на смену. Целевой показатель здоровой системы — меньше пяти ложных срабатываний за ночь. Маркетинг прячет эту цифру, потому что коробочный софт пробивает потолок в сотни раз.
Чек-лист приёмки любого CV-решения состоит из одного пункта: двухнедельный боевой прогон. Обязательный захват ночей, снегопада, дождя и тумана. Мы в Morana Labs пилотируем проекты только с тюнингом под ваш реальный видеопоток, ваш свет и вашу погоду. Индустриальная видеоаналитика принимается исключительно по FAR за две недели эксплуатации, а не по дневному ролику на плазме.