Я несколько лет занимаюсь системами машинного зрения для производства и почти каждый раз вижу одну и ту же картину. Проект доходит до ИТ-службы в последний момент. Технологи выбрали дефект, камера и свет стоят, станция контроля прошла приёмку, и только тогда кто-то спрашивает, куда система складывает результаты. Вопросы простые, но если не решить их до запуска, через полгода данные контроля качества окажутся на локальном диске станции и пропадут при первой замене оборудования.

Что система оставляет после себя

Станция контроля работает по жёсткой схеме. Датчик позиции даёт триггер, камера снимает деталь, программа ищет дефекты или меряет геометрию, сравнивает с допуском и выносит вердикт «годен» или «брак». На каждую деталь остаётся кадр с разметкой, измеренными значениями и решением. Оператору линии нужен только сигнал на отбраковку, и нужен он доли секунды. Всем остальным, от отдела качества до разработчиков модели, нужен кадр, и нужен месяцами.

Почему счётчика брака мало

Счётчик за смену отвечает на вопрос «сколько». На вопрос «почему» отвечают кадры. Пришла рекламация, и отдел качества хочет увидеть, что камера видела при проверке этой партии. Доля брака выросла на одной смене, и по снимкам понятно, был ли это настоящий дефект, грязная оптика или сдвинутый свет. Технологи спорят, считать ли мелкую пору браком, и спор идёт по одним и тем же снимкам, а не по пересказу. Когда архива нет, все эти разговоры превращаются в мнения.

Есть и причина, о которой на старте обычно не думают. Самые ценные примеры для дообучения модели — редкие дефекты. Собрать их дольше, чем обучить модель, и взять их можно только из архива решений с линии. Если кадры не сохранять с первого дня, через год модель придётся улучшать на тех же немногих примерах, что были на пилоте.

Что хранить и сколько

Непрерывное видео с камеры контроля почти никогда не нужно, и я бы не стал под него строить хранилище. Хранить стоит кадры решений: весь брак, выборку годных деталей и все случаи, которые система отправила человеку на осмотр. Объём зависит от темпа линии и разрешения камеры. Считать его лучше на пилоте по реальному потоку, а не по паспорту оборудования, цифры обычно расходятся. Срок хранения удобно привязать к сроку, в течение которого по партии могут прийти претензии, и к циклу дообучения модели.

Связь с учётом

Кадр без номера партии, смены и линии почти бесполезен: найти его потом можно только по времени, и то если часы станции не уходили. Поэтому номер партии должен приходить на станцию из MES или учётной системы, а обратно уходить вердикт с причиной брака. Тогда отчёт по качеству живёт там же, где остальная производственная статистика, и из строки отчёта можно открыть конкретный кадр. Способ обмена (сигнал контроллера, API, выгрузка файлов) я советую согласовать до монтажа, пока ещё можно выбирать.

Кто за что отвечает на приёмке

Технологи на приёмке проверяют точность: долю пропусков и ложных отбраковок на реальном потоке. У ИТ-службы свои пункты. Куда пишутся кадры, у кого к ним доступ, что будет с архивом при замене станции или камеры, где лежит резервная копия и кто её проверяет. Эти вопросы стоит записать в протокол приёмки рядом с цифрами точности. Тогда их не придётся решать задним числом, когда диск станции заполнится.

Машинное зрение даёт цеху сплошной контроль вместо выборочного. Будет ли у предприятия через год ещё и разобранный архив брака, решается в тот момент, когда выбирают камеру и свет. Мой совет коллегам из ИТ простой: просите позвать вас на это обсуждение, а не на приёмку.