Ночная смена, цех отгрузки, три часа ночи. Инфракрасная подсветка дешевой камеры выхватывает из мрака летящую пылинку. Для уставшего оператора за пультом это просто мотылек. Для коробочной нейросети — человек в запретной зоне. Сирена воет в сто тридцать пятый раз за сутки. Оператор с ненавистью бьет по кнопке квитирования, даже не поднимая глаз на монитор, и продолжает пить остывший кофе. Через десять минут в ту же зону заезжает реальный погрузчик и сносит ограждение, но всем уже плевать. Ложные срабатывания видеоаналитики убили систему безопасности ровно в тот момент, когда человек привык игнорировать тревогу.
Почему вы вообще решили, что нейросеть, скачанная из интернета или купленная у вендора в виде черного ящика, будет работать на вашем заводе? Вы правда верите в эти маркетинговые 99 процентов точности в даташите? Эти проценты получены на вылизанных открытых датасетах, где люди позируют при идеальном дневном свете, а камеры висят строго на уровне глаз. Ваша реальность — это двухмегапиксельная матрица, засиженная мухами, контровое солнце из ворот цеха и рабочие, которых видно только сверху под углом в шестьдесят градусов. Коробка не знает, что такое блик от лужи мазута или засветка от сварочного аппарата. Она видит пиксели, которые отдаленно напоминают выученные паттерны, и честно отрабатывает заложенную архитектуру. Коробка не бракованная, она просто чужая.
Ложные срабатывания видеоаналитики: анатомия провала
Вся индустрия бьется за красивые метрики, но на проде вас интересует только одно: соотношение пропущенных событий и ложных тревог. Это качели. Выкручиваете порог уверенности модели до девятки — получаете тишину в эфире, но нейросеть перестает видеть реальные инциденты. Опускаете порог до пятерки — оператор тонет в алертах на каждую тень. Чудес не бывает, у любой модели есть ROC-кривая, и ваша задача — найти на ней ту самую точку, где стоимость ложной тревоги уравновешивается стоимостью пропущенного инцидента.
Какова цена ошибки на вашем объекте? Если мы детектируем отсутствие каски, ложный алерт стоит копейки: ну подошел мастер, поругался, ушел. А если это система экстренной остановки прокатного стана? Тут каждое ложное срабатывание — это миллионные убытки от простоя. Соответственно, архитектура решения и балансировка порогов должны отталкиваться от бизнес-рисков, а не от дефолтных настроек пайплайна. Вам продают универсальность, пытаясь научить модель видеть всё и везде. На деле универсальная модель одинаково посредственно работает в любых специфических условиях. Если вы пытаетесь детектировать задымление, то сеть, натренированная на лесных пожарах, сойдет с ума от пара из вентиляционной трубы комбината.
Секрет часто кроется в постобработке. У вас может быть идеальный детектор, но если вы не настроили алгоритм подавления немаксимумов (NMS), один и тот же рабочий будет распознан как пять разных людей, стоящих друг в друге. Вы правите порог Intersection over Union, чтобы схлопнуть дубликаты, но получаете новую проблему: когда два человека идут плечом к плечу, модель сливает их в одного. Любой тюнинг универсального решения — это перетягивание короткого одеяла.
Физика процесса: свет, ракурсы и деградация оптики
До того, как лезть в веса нейросети, посмотрите на железо. Нейросеть не вытащит признаки объекта из белого пятна. Если у камеры нет аппаратного WDR, широкий динамический диапазон не спасет никакая программная коррекция — у вас просто сгорят пиксели при открытии ворот цеха на солнечную улицу. Матрицы деградируют со временем. ИК-фильтры заклинивает на половине хода, и картинка заливается розовым шумом, который аналитика радостно интерпретирует как открытое пламя. Вы покупаете китайскую поворотную камеру, а у нее после ста циклов появляется люфт механики. В итоге пресет сбивается на пару градусов, маски приватности съезжают, и зона детекции теперь захватывает безопасную пешеходную дорожку вместо опасного станка. Оператор снова получает шквал алертов. Вы вините искусственный интеллект, а проблема в дешевых пластиковых шестеренках.
Забавно наблюдать, как интеграторы пытаются накрутить сложнейшие эвристики и трекинг объектов там, где достаточно было просто заменить фокусное расстояние объектива, чтобы человек занимал не двадцать пикселей по высоте, а хотя бы сто. Вы можете бесконечно тюнить тяжеловесные трансформеры, но физику вы не обманете. Половина проблем с машинным зрением лечится ведром воды, тряпкой и переносом камеры на два метра правее.
Конвейер тюнинга под объект
Если оптика выстроена оптимально, а коробка всё еще генерирует мусор, остается только один путь — глубокое дообучение под конкретную локацию. Забудьте про скачанные датасеты. Ваша обучающая выборка — это видеопоток с ваших же камер. Первый этап всегда начинается с тихой работы системы в режиме теневого мониторинга. Вы ставите модель на поток, собираете все ее предсказания и сажаете разметчиков фильтровать этот бред. Обязательно собираются хардовые негативы — те самые тени, блики и мотыльки, на которых модель срабатывает ложно. Это самый ценный материал. Модели нужно скормить тысячи примеров того, как выглядит норма в вашем цехе, чтобы она научилась игнорировать агрессивный фон.
Когда мы в Morana Labs катили систему детекции брака на ленте конвейера золотодобывающей фабрики, коробочные сегментаторы сходили с ума от пульсации ртутных ламп и специфических теней от кусков мокрой руды. Мы не стали изобретать новую архитектуру. Мы просто выгрузили терабайты сырого видео с этой конкретной ленты, разметили сотни ложноположительных артефактов и зафайнтьюнили тяжелую модель исключительно на этот ракурс и этот свет. После этого модель была сдистиллирована до легкой версии, чтобы влезать в edge-устройство прямо над конвейером. Точность выросла с мусорных шестидесяти процентов до стабильных девяноста восьми, и система перестала дергать заслонку вхолостую.
Затем идет жесткая балансировка классов. Вы собрали тысячу примеров касок и всего пять примеров того, как на человека падает кран-балка. Если скормить это в лоб, сеть просто выучит, что падающих грузов не существует, так как вероятность их появления статистически ничтожна. Приходится применять аугментацию: искусственно накладывать шум, менять контрастность, использовать focal loss, чтобы заставить сеть обращать внимание на редкие, но критически важные события. Вы загоняете веса в инференс-движок, квантуете модель до восьми бит, чтобы она летала на дешевом железе прямо на объекте. Почему на объекте? Потому что вы не протащите сотни мегабит несжатого видео в облако через заводской Wi-Fi, который ложится при каждом включении дуговой печи. Данные не должны покидать периметр.
Даже идеально переобученная модель деградирует. Наступила зима, изменился угол падения солнечных лучей через грязные окна, рабочим выдали спецовки другого оттенка, электрик повесил новые диодные прожекторы. Распределение входных данных поплыло, и система снова начала ошибаться. Этот data drift неизбежен. Без непрерывного мониторинга в эксплуатации ваш тюнинг потеряет смысл за пару месяцев. Нужно выстраивать процесс, при котором оператор, отменяя ложную тревогу, автоматически отправляет этот кадр в пул на доразметку. При падении метрик ниже критического порога запускается автоматическое дообучение на свежих данных. Видеоаналитика — это живой механизм, требующий постоянного надзора, а не магический черный ящик, который можно установить и забыть.