Пищевое производство: брак ловится на линии, а не в рекламации
Две линии упаковки, 2,2 млн упаковок в месяц. Дефекты шва, перекос этикетки и нечитаемая маркировка уезжали в сети: 320 000 ₽ штрафов в месяц и 13 600 возвращённых упаковок. За 20 недель собрали контроль на камерах, сигнал на отбраковщик и статистику причин по сменам и партиям.

С чем пришли
Владелец пришёл с претензионной папкой, а не с идеей автоматизации. Сети разворачивали паллеты на приёмке из-за нечитаемого кода и кривой этикетки, штрафы за качество и срыв поставки доходили до 400 000 ₽ в месяц, возвраты утилизировались за счёт производства. Внутри при этом никто не мог сказать, на какой линии и в какую смену рождается брак: журнал ОТК фиксировал факт, но не причину. Задача — ловить дефект упаковки до паллетирования и получить цифры, по которым можно предъявить претензию собственному цеху. Условие: линии не останавливать дольше, чем на плановую мойку, оборудование не менять, работать программной надстройкой поверх того, что уже стоит.
Что делали по неделям — включая сложности
В реальных проектах всегда есть грабли. Мы показываем их здесь честно — потому что умение их проходить и есть то, за что вы платите.
Замер базовой линии и разбор претензий
Две недели считали, ничего не трогая. Подняли все акты о расхождениях за 12 месяцев, разложили штрафы по статьям договоров и сопоставили с номерами партий в 1С. Картина разошлась с ожиданиями владельца: он считал главной бедой шов, а 44% денег забирала нечитаемая маркировка — сеть не может пробить товар на кассе и разворачивает паллету целиком, включая исправные упаковки. Отдельно посчитали генерацию дефектов: ОТК выборочно снимал около 20 000 упаковок в месяц, ещё 41 800 уезжали — то есть линии рождали примерно 62 000 дефектных упаковок ежемесячно, 2,8% выпуска. До проекта эту цифру не знал никто.
Оптика и подсветка: плёнка бликует
Здесь проект встал первый раз. Из 22 камер к контролю годились четыре — на зонах сварки шва и этикетировщика, остальные смотрели на ворота и склад. Но глянцевая плёнка под цеховым освещением давала блик, который перекрывал ровно ту зону, где живёт дефект шва: на кадре либо пересвеченное пятно, либо тёмная упаковка. Дообучением это не лечится, мусор на входе остаётся мусором. Мы удалённо перебрали 11 комбинаций угла камеры, высоты и типа подсветки по кадрам, которые нам снимал технолог по нашему списку, и остановились на направленном поляризованном свете сбоку под 35° с поляризационным фильтром на объективе. Спецификацию — координаты кронштейнов, фокусные, выдержку, схему питания — отдали подрядчику клиента, монтаж делал он. Одну камеру он поставил на 12 см выше и повернул на 8°, часть отснятого пришлось выбросить. С тех пор мы принимаем монтаж по контрольному кадру, а не по фотографии кронштейна.
Датасет: шесть недель съёмки и разметки
Дефект упаковки — редкое событие: при 2,8% брака и требовании к модели видеть четыре класса нужно набрать тысячи примеров каждого. Снимали шесть недель, параллельно с остальными работами, чтобы захватить обе линии, обе смены, три сорта плёнки и период после мойки, когда дефектов заметно больше. Дважды останавливали набор и просили технолога намеренно воспроизвести редкие случаи: перегретый нож и смещение рулона этикетки. Разметку вели сами по правилам, которые письменно согласовали с начальником ОТК, — иначе модель учится не тому, что цех считает браком. Итог: 34 000 размеченных кадров, четыре класса — дефект шва, перекос и отслоение этикетки, нечитаемая маркировка, посторонний предмет под плёнкой.
Первая линия в режиме наблюдателя
Модель на первой линии (3 600 упаковок в час) запустили молча: она размечала поток и писала события, но толкателем не управляла. Четыре недели ОТК сравнивал её вердикты со своими на одних и тех же паллетах. Первая неделя дала 9% ложных срабатываний — модель считала браком блик от шва на тёмной плёнке. Добрали 4 000 кадров именно этого случая, ложные срабатывания упали до 1,1%, пропуски — до 0,4%. Только после этих цифр начальник ОТК письменно согласился отдать системе решение об отбраковке.
Вторая линия: поток быстрее, модели не хватило
Вторая сложность стоила трёх недель и денег. На второй линии поток вдвое быстрее — 7 200 упаковок в час, две штуки в секунду. Существующая камера при такой скорости давала смаз: на выдержке, которая убирает смаз, картинка темнела, а на светлой выдержке дефект расплывался. Поставили камеру с глобальным затвором и подняли подсветку, но упёрлись в вычисления: одна видеокарта не тянула два потока с требуемой частотой, инференс уходил за бюджет времени. Бюджет здесь физический — от камеры до толкателя 1,2 метра, лента идёт 0,5 м/с, значит на решение есть 2,4 секунды, из которых модели отведено не больше 250 мс. Вариантов было два: резать частоту кадров и терять дефекты либо ставить вторую видеокарту. Выбрали второе и обучили под линию отдельную модель — на быстром потоке дефект выглядит иначе, общая модель работала хуже обеих специализированных. Плюс 320 000 ₽ к смете, согласовали с владельцем расчётом: одна развёрнутая паллета в месяц дороже.
Сигнал на отбраковку, пост доработки и статистика по сменам
Подключили вердикт модели к штатному толкателю через сухой контакт и Modbus TCP, добавили световую колонну и счётчик отбраковки на панель оператора. В первый месяц пост доработки принимал около 57 000 упаковок и захлебнулся — контроль стал строже, чем ОТК выборкой. Тогда и сработала статистика: система пишет к каждому событию линию, смену, партию, время и класс дефекта, и первый же разрез показал, что 60% дефектов даёт одна смена, преимущественно на второй линии, в первые два часа после мойки. Причина оказалась бытовой: заправка рулона плёнки после мойки делалась на глаз и нож выходил на режим без прогрева. Переписали регламент пересменки, провели обучение, поставили на панель контрольную процедуру запуска. Генерация дефектов упала с 2,8% до 1,9% выпуска, поток на доработку — до 37 400 упаковок в месяц. Эта правка не стоила ни рубля и убрала треть брака.
Сопровождение
Раз в неделю разбираем спорные кадры, которые ОТК пометил как ошибку системы, и дообучаем модель — накопительно, с сохранением предыдущих версий и возможностью отката за десять минут. При смене поставщика плёнки или макета этикетки набираем контрольную выборку заранее, до перехода: смена плёнки — самая частая причина деградации точности. Раз в месяц сверяем счётчик отбраковки с журналом поста доработки: расхождение больше 2% считаем инцидентом. Отдельно держим сценарий отказа — при потере связи с инференс-сервером линия работает как раньше, толкатель не блокируется, а оператор видит на колонне, что контроль выключен.
- Инференс-сервер на площадке: промышленный ПК с двумя видеокартами, две отдельные модели — под линию 3 600 упаковок в час и под линию 7 200 упаковок в час. Видео и кадры не покидают контур предприятия, наружу уходит только служебная телеметрия по VPN.
- Камеры: четыре существующие на зонах сварки шва и этикетировщика плюс две новые на маркировке, одна из них с глобальным затвором на быстрой линии. Монтаж и кабель выполнил подрядчик клиента по нашей спецификации: координаты, фокусные, выдержка, схема питания.
- Направленная поляризованная подсветка под 35° с фильтром на объективе — единственный способ снять блик глянцевой плёнки, найденный перебором 11 схем на реальных кадрах.
- Сигнальный контур: вердикт модели идёт на штатный отбраковщик через сухой контакт и Modbus TCP, дублируется световой колонной и счётчиком на панели оператора. Бюджет времени от кадра до срабатывания толкателя — 2,4 секунды, фактическая задержка модели 90–180 мс.
- Хранилище событий: к каждому срабатыванию пишется кадр, класс дефекта, линия, смена, номер партии из 1С и время. Кадры хранятся 45 суток, события — бессрочно.
- Дашборд для владельца, технолога и начальника ОТК: доля брака по линиям и сменам, разрез по типам дефектов, привязка к партиям и отгрузкам, отдельная строка — сколько упаковок снято с потока и сколько вернулось после доработки.
Цифры до и после
- Сроки в проектах компьютерного зрения задаёт физика, а не модель. Мы заложили на подготовку съёмки две недели, а потратили три: глянцевая плёнка бликовала ровно в зоне шва, и никакая архитектура сети не читает пересвеченное пятно. Перебрали 11 схем угла и подсветки, прежде чем картинка стала пригодной, и только после этого начали набирать датасет — шесть недель, потому что дефект редкий и его нужно поймать на обеих линиях, в обеих сменах и на трёх сортах плёнки. Теперь мы не даём срок, пока технолог заказчика не снимет нам две сотни пробных кадров по нашему списку: это два дня, которые экономят месяц.
- Одна модель на две линии не поехала, и это стоило 320 000 ₽ и трёх недель. На потоке 7 200 упаковок в час дефект выглядит иначе, чем на 3 600, а бюджет времени от камеры до толкателя жёсткий — 2,4 секунды при ленте 0,5 м/с. Пришлось ставить камеру с глобальным затвором, вторую видеокарту и обучать отдельную модель под каждую линию. Вывод учли в методике: скорость потока в упаковках в секунду и расстояние до исполнительного механизма мы теперь спрашиваем на первой встрече, до цифры в предложении, а не после подписания. Формулировка заказчика про то, что камеры уже есть, ничего о пригодности этих камер не говорит.
- Самое дешёвое улучшение оказалось не в коде. Разрез статистики по сменам показал, что 60% дефектов даёт одна смена в первые два часа после мойки — рулон плёнки заправляли на глаз, сварочный нож выходил на режим без прогрева. Переписанный регламент пересменки и обучение стоили ноль рублей и убрали треть генерации брака: с 2,8% до 1,9% выпуска. До проекта этих данных не существовало — журнал ОТК фиксировал факт брака, но не смену и не партию. Мы с тех пор ставим сбор статистики в первый же контур, даже когда заказчик просит только сигнал на отбраковку: измерение окупается быстрее автоматики.
- Ужесточение контроля стоит денег, и мы вычли их из экономии, а не спрятали. Система снимает с потока 37 400 упаковок в месяц, которые раньше уезжали в сети: 34 400 возвращаются после переклейки и переупаковки (2 ₽ за упаковку — 69 000 ₽), 3 000 списываются полностью (126 000 ₽ по отпускной цене). Итого минус 195 000 ₽ в месяц. Экономия при этом складывается из штрафов (320 000 ₽ падают до 48 000 ₽) и возвратов (462 000 ₽ падают до 58 000 ₽), то есть 676 000 ₽ валовых. Чистая модельная экономия — 481 000 ₽ в месяц; за вычетом поддержки 120 000 ₽ и эксплуатации 16 000 ₽ (электричество сервера, хранение кадров, канал и мониторинг) остаётся 345 000 ₽, и 2 400 000 ₽ внедрения возвращаются за 7 месяцев. В смету входит 1 790 000 ₽ нашей работы и 610 000 ₽ оборудования и монтажа силами подрядчика клиента. В расчёт мы сознательно не включили риск вывода позиции из матрицы сети, время технолога на разбор претензий и простои линии при разбраковке паллет — пусть остаётся запасом прочности модели.
