Задача: убрать ручную проверку, не усложняя автомат
Чешская компания 3iD разрабатывает автоматы для приёма многоразовых стаканов. После возврата каждого стакана нужно решить, пригоден ли он для следующего цикла или должен быть отбракован. Раньше эту операцию выполнял человек, поэтому рост парка автоматов означал бы пропорциональный рост ручной сортировки.
Проверка включала три разных объекта контроля:
- дно — трещины, деформации и загрязнения;
- стенка — царапины, разрывы и другие повреждения поверхности;
- ручка или держатель — изгиб, отрыв и отклонение формы.
Компания обратилась в EDIH-DIGIMAT и испытательный центр INTEMAC по программе Test Before Invest. Цель была узкой: до разработки серийного автомата проверить, сможет ли недорогой встроенный компьютер выполнять контроль в реальном времени.
Это полезная постановка для малого производства. Команда не начинала с закупки GPU, сбора большого датасета и обучения нейросети. Сначала она проверила, можно ли описать дефект через наблюдаемые геометрические и цветовые признаки.
Архитектура прототипа
Стенд состоял из Raspberry Pi 5 с 8 ГБ оперативной памяти, 12-мегапиксельной камеры Raspberry Pi Camera Module 3 и направленного светильника SmartView. По данным опубликованного кейса, компоненты стоили 2 748 чешских крон, или примерно €110 на момент проекта. Это стоимость вычислительной и оптической части стенда, а не готовой промышленной станции.
Обработка была реализована на Python и OpenCV тремя независимыми правилами.
Для стенки стакана алгоритм Canny дважды искал границы: на пороговом изображении и на его инверсии. Так система замечала и светлые, и тёмные дефекты. Количество пикселей границ сравнивалось с настраиваемым порогом; превышение переводило стакан в категорию NOK.
Для дна использовалась круглая маска области интереса. Она исключала фон вокруг стакана, после чего Canny искал трещины и деформации только внутри основания. Для ручки изображение переводилось в HSV, синий объект выделялся диапазоном цвета, а по крупнейшему контуру вычислялся угол наклона. Отклонение за пределы допуска означало брак.
Интерфейс на CustomTkinter показывал живое изображение, результат обработки и счётчики OK/NOK. Он нужен не ради красивой панели, а для настройки света, порогов и механики на реальных образцах.
Все операции выполнялись на Raspberry Pi без GPU и облачного соединения. Для автомата это означает короткий локальный контур: камера, вычисление, решение и команда исполнительному механизму могут находиться внутри одного устройства.
Почему здесь победили правила, а не модель
Классическое компьютерное зрение хорошо подходит, когда объект расположен предсказуемо, освещение контролируется, а признак можно измерить. Трещина создаёт границу, круг ограничивает дно, цвет выделяет ручку, угол описывает её деформацию. Решение прозрачно: инженер видит маску, контур и порог, вызвавший браковку.
Нейросеть стала бы оправданной, если бы внешний вид дефектов сильно менялся, геометрию нельзя было стабилизировать или ручные признаки перестали разделять хорошие и плохие изделия. Но тогда появились бы новые расходы: разметка, контроль дисбаланса редких дефектов, переобучение при смене материала и мониторинг дрейфа.
В этом кейсе данных для обучения было мало, а задача была хорошо определена. Поэтому простые алгоритмы быстрее дали проверяемый прототип. Это не аргумент против машинного обучения вообще. Это правило выбора самого дешёвого метода, который надёжно закрывает конкретный риск.
Свет и механика важнее сложности кода
Главный урок испытаний — начинать с контролируемого освещения. Геометрия источника, направление, спектр, отражения и внешняя засветка определяют, будет ли дефект заметен камере. Увеличение модели не исправит трещину, исчезнувшую в блике.
В опубликованном прототипе одна камера не видела всю окружность стенки. Для полного контроля авторы рекомендуют механическое вращение стакана. Это меняет архитектуру: потребуются привод, фиксация нескольких кадров, синхронизация с подсветкой и правило объединения результатов.
Практический порядок работ выглядит так:
1. Зафиксировать положение объекта и допустимое движение.
2. Подобрать свет, фон, выдержку и фокус под каждый тип дефекта.
3. Ограничить область интереса, чтобы фон не создавал ложные границы.
4. Реализовать самое простое измеримое правило.
5. Лишь после этого сравнивать его с ML-моделью на одном тестовом наборе.
Такой порядок переносится на контроль упаковки, крышек, этикеток, деталей и поверхностей. Нередко «задача ИИ» сначала оказывается задачей оснастки и оптики.
Что действительно доказал прототип
По сообщению EDIH, все три алгоритма работали на Raspberry Pi 5 в реальном времени, а прототип подтвердил техническую осуществимость недорогого встроенного контроля. Источник сообщает о надёжном обнаружении повреждений стенки, деформаций дна и отклонения ручки. Тонкие трещины с недостаточным контрастом система могла пропустить; авторы кейса сочли их некритичными для решения о повторном использовании.
Однако опубликованная карточка не указывает размер тестовой выборки, число изделий каждого типа, матрицу ошибок, фактическую скорость линии и длительность непрерывной работы. Утверждение о высокой точности поэтому нельзя переносить в бизнес-план как готовый процент. Нет и подтверждения серийной эксплуатации: результатом стали технический чертёж решения и прототипный код, после которых компания могла перейти к созданию функционального автомата.
Стоимость €110 также нельзя считать ценой внедрения. В неё не входят корпус, промышленная защита камеры, вращатель, отбраковочный механизм, электрика, интеграция, сертификация, монтаж, журналирование, запасные части и обслуживание.
Как проверить качество без самообмана
Для производственного решения одной общей accuracy недостаточно. Нужна матрица ошибок отдельно по каждому виду дефекта и двум бизнес-рискам:
- false accept — дефектный стакан признан годным;
- false reject — годный стакан отправлен в брак.
Цена этих ошибок различается. Первый риск может влиять на безопасность и доверие клиента, второй — на оборот тары и себестоимость. Порог Canny или допустимый угол ручки нужно выбирать не по красивой картинке, а по согласованной стоимости ошибок.
Тестовый набор собирают из реального потока: новые и изношенные партии, влажные и сухие стаканы, загрязнения, разные оттенки материала, блики, небольшие смещения, все допустимые дефекты и пограничные случаи. Образцы, на которых настраивали пороги, нельзя использовать как единственное финальное испытание.
Минимальный отчёт пилота должен содержать:
- число образцов и распределение классов;
- recall дефектов и долю пропущенного брака;
- precision браковки и долю ложных срабатываний;
- результаты по каждому типу и тяжести дефекта;
- p95 времени решения и пропускную способность;
- стабильность после часов непрерывной работы;
- поведение при грязной линзе, сдвиге камеры и отказе подсветки.
Если камера не уверена или контрольный кадр не соответствует эталону освещения, безопаснее направить предмет на повторный снимок или ручную проверку, а не автоматически считать его годным.
Экономика для малого производства
В этом проекте не опубликованы фактическая экономия труда и срок окупаемости, поэтому расчёт может быть только модельным. Сначала измеряются объём проверок в час, время оператора на один предмет, стоимость ошибки, доля повторной проверки и простой оборудования.
Годовой эффект можно оценить так:
`эффект = высвобождённые часы ручного контроля + предотвращённые потери от ошибок − обслуживание − электричество − амортизация − повторная проверка`.
Полная стоимость пилота включает не только Raspberry Pi и камеру, но и механику, свет, разработку, сбор эталонной выборки, приёмочные испытания и время технолога. Для малой серии инженерные работы легко окажутся дороже электроники — и это нормально.
Экономический порог лучше задавать через стоимость тысячи корректно проверенных изделий, а не через цену платы. Если простое правило достигает целевого качества, добавление ML увеличит стоимость жизненного цикла без гарантии бизнес-эффекта.
Пилот на четыре шага
Первый шаг — описать дефекты и цену двух типов ошибок вместе с технологом. Не «найти всё плохое», а установить измеримые признаки и допустимые пограничные случаи.
Второй — построить стенд с фиксированной камерой и управляемым светом, затем собрать репрезентативные OK/NOK-образцы. На этом этапе человек остаётся источником эталонного решения.
Третий — сравнить простые правила и небольшую модель на одинаковом отложенном наборе. В зачёт идут матрица ошибок, задержка, стабильность и стоимость сопровождения.
Четвёртый — провести теневой прогон на реальном потоке: система классифицирует, но физическую браковку подтверждает оператор. Только после согласованного периода без неприемлемых пропусков можно подключать исполнительный механизм. Откат должен возвращать автомат в ручной режим без остановки основного процесса.
Что взять руководителю
История 3iD показывает не «дешёвый ИИ за €110», а грамотную последовательность: проверить оптику и простые признаки на стенде до инвестиций в серийное устройство. Для ограниченной визуальной задачи локальный OpenCV на компактном компьютере может оказаться достаточным.
Следующий шаг — выбрать один повторяемый контроль, собрать реальные хорошие и плохие образцы и заказать короткий тест оптики, механики и порогов. Если простые правила не достигают заранее заданной матрицы ошибок, только тогда переходить к обучаемой модели.
