Как устроен конвейер машинного зрения на производстве

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

Какие задачи решает конвейер машинного зрения и где он не нужен

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

От простого датчика присутствия камера отличается тем, что даёт не один бит «есть/нет», а изображение, из которого программа считает много признаков сразу: размер, форму, положение, цвет. От ручного контроля — тем, что решение принимается одинаково от детали к детали и не зависит от усталости смены. Но плата за это — настройка: камера не «понимает» задачу, пока вы не зададите ей, что считать нормой.

Есть и границы. Если дефект виден только на ощупь или внутри материала, оптика его не поймает. Если номенклатура меняется каждый час и детали лежат как попало, потребуется либо перенастройка под каждый тип, либо обученная модель и предварительные испытания на реальных образцах. Проще всего обсудить это с интегратором до закупки, принеся ему образцы годных и бракованных деталей.

Свет как первый элемент цепочки: почему его выбирают раньше камеры

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

  • Кольцевая подсветка вокруг объектива даёт ровное поле и подходит для плоских деталей с контрастными элементами.
  • Боковой свет, падающий под острым углом, подчёркивает рельеф — так ищут царапины и вмятины на металле.
  • Купольная подсветка рассеивает свет со всех сторон и гасит блики на блестящих и неровных поверхностях.
  • Подсветка на просвет ставится за деталью и превращает её в силуэт — удобно для контроля отверстий и прозрачных материалов.

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

Камера над конвейером: что определяет качество кадра

Объектив с определённым фокусным расстоянием и рабочим расстоянием до детали задаёт поле зрения — участок, который камера видит целиком. Число пикселей матрицы делится на это поле, и получается размер минимальной различимой детали. Чем шире поле при том же разрешении, тем крупнее дефект, который ещё можно заметить.

Пример расчёта: камера с матрицей 2448×2048 пикселей (около 5 Мп) при поле зрения 200×167 мм даёт примерно 0,08 мм на пиксель. Дефект размером 0,3 мм займёт около 4 пикселей — его можно уверенно заметить, если контраст достаточный. Хотите ловить дефект 0,1 мм — либо сужайте поле, либо берите матрицу с большим числом пикселей.

Что меняем Как это отражается на кадре Когда это нужно
Сужаем поле зрения Мельче видимая деталь, но в кадр попадает меньше детали Мелкие дефекты на небольшой зоне
Берём матрицу с большим числом пикселей Мельче видимая деталь при том же поле Нужно видеть всю деталь и мелкие дефекты
Увеличиваем рабочее расстояние Меняется поле и глубина резкости Камеру нельзя поставить близко к ленте

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

Запуск по датчику: как съёмка попадает в нужный момент

Конвейер движется, и кадр нужно сделать, когда деталь полностью в поле зрения. Фотодатчик или энкодер даёт сигнал «деталь здесь», программа делает снимок и передаёт его на обработку. Без синхронизации кадр окажется смазанным или снятым мимо детали.

На практике это выглядит так: датчик стоит за 50 мм до зоны съёмки. Программа ждёт сигнала, отсчитывает задержку по скорости линии и только тогда снимает — так деталь оказывается по центру кадра. Время экспозиции подбирают так, чтобы за время съёмки деталь не успела сдвинуться на заметное расстояние: на быстрой линии короткая выдержка важнее, чем большая яркость кадра.

Если датчик пропустил срабатывание, программа не получит кадр и деталь пройдёт без проверки. Поэтому в системе предусматривают счётчик пропусков: оператор видит, что часть деталей не проверена, и может остановить линию или отправить их на повторный контроль.

Обработка изображения: от кадра к решению

Программа сначала готовит кадр: выделяет область интереса, где лежит деталь, и отбрасывает лишний фон. Затем находит деталь по контуру, шаблону или обученной модели и измеряет нужные признаки — размер, положение, наличие элемента, цвет. Результат — «годен» или «брак» с указанием причины.

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

Сигнал отбраковки: как решение превращается в действие

Между моментом съёмки и моментом, когда деталь доедет до толкателя, проходит время. Программа должна выдать команду точно к этому моменту, иначе толкатель сбросит соседнюю деталь. Задержку рассчитывают по расстоянию и скорости линии.

Пример: от зоны съёмки до толкателя 800 мм, скорость линии 0,4 м/с. Задержка — 800 мм ÷ 400 мм/с = 2 с. Программа ставит команду в очередь с этой задержкой. Сигнал уходит либо дискретным выходом на пневмоклапан, либо по промышленной сети на контроллер линии; оператору при этом выводится сообщение с причиной брака.

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

Наглядный пример: контроль этикетки на бутылке

Линия разливает бутылки, камера проверяет наличие и положение этикетки. Скорость линии 0,4 м/с, от зоны съёмки до толкателя 800 мм. Прямой верхний свет даёт блик на пластике и «засвечивает» край этикетки, поэтому ставят кольцевую подсветку под углом — блик уходит, граница этикетки становится различимой.

  1. Датчик фиксирует бутылку в зоне съёмки, программа делает кадр.
  2. Программа находит контур этикетки и сравнивает её положение с допуском ±2 мм.
  3. Если этикетка смещена или отсутствует, программа ставит команду отбраковки с задержкой 2 с.
  4. Через 2 с толкатель сбрасывает бутылку с линии.

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

Зачем нужно машинное зрение, если есть датчики?

Датчик отвечает на один вопрос — «есть объект или нет». Камера даёт изображение, из которого программа считает сразу несколько признаков: размер, форму, положение, цвет. Поэтому зрение нужно там, где важно не просто присутствие, а состояние детали.

Можно ли поставить камеру без подсветки?

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

Почему толкатель иногда сбрасывает не ту деталь?

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

Что нужно принести интегратору для обсуждения системы?

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