Камера находит брак на конвейере не сама по себе: решение рождается в связке «свет — камера — датчик — программа — исполнительный механизм». Свет делает дефект различимым по яркости, оптика задаёт, насколько мелкую деталь видно, датчик привязывает кадр к нужной детали, программа сравнивает признаки с допуском, а команда отбраковки выдаётся с задержкой, равной времени хода детали до толкателя. Если хотя бы одно звено настроено не под задачу, вся цепочка даёт ложные срабатывания или пропуски.
Какие задачи решает конвейер машинного зрения и где он не нужен
Машинное зрение на конвейере обычно закрывает четыре типа задач: проверить, что деталь вообще есть на ленте; определить её положение и ориентацию перед следующим автоматом; найти дефекты поверхности — царапины, вмятины, загрязнения; проконтролировать сборку — наличие винта, этикетки, нужного элемента в нужном месте.
От простого датчика присутствия камера отличается тем, что даёт не один бит «есть/нет», а изображение, из которого программа считает много признаков сразу: размер, форму, положение, цвет. От ручного контроля — тем, что решение принимается одинаково от детали к детали и не зависит от усталости смены. Но плата за это — настройка: камера не «понимает» задачу, пока вы не зададите ей, что считать нормой.
Есть и границы. Если дефект виден только на ощупь или внутри материала, оптика его не поймает. Если номенклатура меняется каждый час и детали лежат как попало, потребуется либо перенастройка под каждый тип, либо обученная модель и предварительные испытания на реальных образцах. Проще всего обсудить это с интегратором до закупки, принеся ему образцы годных и бракованных деталей.
Свет как первый элемент цепочки: почему его выбирают раньше камеры
Камера измеряет яркость пикселей. Блик на глянце или тень в углублении меняют эту яркость сильнее, чем сам дефект, который вы ищете. Поэтому сначала подбирают освещение под задачу, а уже потом камеру и алгоритм: хороший свет упрощает обработку, плохой — не спасает никакая матрица.
- Кольцевая подсветка вокруг объектива даёт ровное поле и подходит для плоских деталей с контрастными элементами.
- Боковой свет, падающий под острым углом, подчёркивает рельеф — так ищут царапины и вмятины на металле.
- Купольная подсветка рассеивает свет со всех сторон и гасит блики на блестящих и неровных поверхностях.
- Подсветка на просвет ставится за деталью и превращает её в силуэт — удобно для контроля отверстий и прозрачных материалов.
Второй враг стабильности — внешний свет. Если на зону съёмки падает свет из окна или от лампы соседнего участка, яркость кадра гуляет в течение дня, и порог, настроенный утром, к вечеру даёт другие результаты. Зону съёмки закрывают кожухом и ставят постоянную подсветку, не зависящую от общего освещения цеха.
Камера над конвейером: что определяет качество кадра
Объектив с определённым фокусным расстоянием и рабочим расстоянием до детали задаёт поле зрения — участок, который камера видит целиком. Число пикселей матрицы делится на это поле, и получается размер минимальной различимой детали. Чем шире поле при том же разрешении, тем крупнее дефект, который ещё можно заметить.
Пример расчёта: камера с матрицей 2448×2048 пикселей (около 5 Мп) при поле зрения 200×167 мм даёт примерно 0,08 мм на пиксель. Дефект размером 0,3 мм займёт около 4 пикселей — его можно уверенно заметить, если контраст достаточный. Хотите ловить дефект 0,1 мм — либо сужайте поле, либо берите матрицу с большим числом пикселей.
| Что меняем | Как это отражается на кадре | Когда это нужно |
|---|---|---|
| Сужаем поле зрения | Мельче видимая деталь, но в кадр попадает меньше детали | Мелкие дефекты на небольшой зоне |
| Берём матрицу с большим числом пикселей | Мельче видимая деталь при том же поле | Нужно видеть всю деталь и мелкие дефекты |
| Увеличиваем рабочее расстояние | Меняется поле и глубина резкости | Камеру нельзя поставить близко к ленте |
Камеру жёстко крепят к раме конвейера, а не к вибрирующему оборудованию рядом: сдвиг на доли миллиметра сдвигает и координаты дефекта в кадре. Кожух защищает от пыли и брызг, а фиксация объектива не даёт настройке фокуса уехать от вибрации.
Запуск по датчику: как съёмка попадает в нужный момент
Конвейер движется, и кадр нужно сделать, когда деталь полностью в поле зрения. Фотодатчик или энкодер даёт сигнал «деталь здесь», программа делает снимок и передаёт его на обработку. Без синхронизации кадр окажется смазанным или снятым мимо детали.
На практике это выглядит так: датчик стоит за 50 мм до зоны съёмки. Программа ждёт сигнала, отсчитывает задержку по скорости линии и только тогда снимает — так деталь оказывается по центру кадра. Время экспозиции подбирают так, чтобы за время съёмки деталь не успела сдвинуться на заметное расстояние: на быстрой линии короткая выдержка важнее, чем большая яркость кадра.
Если датчик пропустил срабатывание, программа не получит кадр и деталь пройдёт без проверки. Поэтому в системе предусматривают счётчик пропусков: оператор видит, что часть деталей не проверена, и может остановить линию или отправить их на повторный контроль.
Обработка изображения: от кадра к решению
Программа сначала готовит кадр: выделяет область интереса, где лежит деталь, и отбрасывает лишний фон. Затем находит деталь по контуру, шаблону или обученной модели и измеряет нужные признаки — размер, положение, наличие элемента, цвет. Результат — «годен» или «брак» с указанием причины.
Простые правила работают через порог: например, для контроля отверстия программа находит тёмную область внутри контура детали, считает её площадь и сравнивает с порогом. Если площадь меньше порога, отверстие считается недосверлённым. Обучаемая модель действует иначе: её настраивают на множестве размеченных кадров, и она ищет дефекты, которые трудно описать правилом. Настройка в обоих случаях идёт на реальных образцах продукции, а не на картинках из инструкции.
Сигнал отбраковки: как решение превращается в действие
Между моментом съёмки и моментом, когда деталь доедет до толкателя, проходит время. Программа должна выдать команду точно к этому моменту, иначе толкатель сбросит соседнюю деталь. Задержку рассчитывают по расстоянию и скорости линии.
Пример: от зоны съёмки до толкателя 800 мм, скорость линии 0,4 м/с. Задержка — 800 мм ÷ 400 мм/с = 2 с. Программа ставит команду в очередь с этой задержкой. Сигнал уходит либо дискретным выходом на пневмоклапан, либо по промышленной сети на контроллер линии; оператору при этом выводится сообщение с причиной брака.
Логику отбраковки продумывают заранее: брак уходит на отсекатель, сомнительный случай — на повторную проверку или к оператору, а каждое событие фиксируется в журнале. Журнал нужен не для отчётности, а для настройки: по нему видно, какие дефекты ловятся стабильно, а какие дают ложные срабатывания.
Наглядный пример: контроль этикетки на бутылке
Линия разливает бутылки, камера проверяет наличие и положение этикетки. Скорость линии 0,4 м/с, от зоны съёмки до толкателя 800 мм. Прямой верхний свет даёт блик на пластике и «засвечивает» край этикетки, поэтому ставят кольцевую подсветку под углом — блик уходит, граница этикетки становится различимой.
- Датчик фиксирует бутылку в зоне съёмки, программа делает кадр.
- Программа находит контур этикетки и сравнивает её положение с допуском ±2 мм.
- Если этикетка смещена или отсутствует, программа ставит команду отбраковки с задержкой 2 с.
- Через 2 с толкатель сбрасывает бутылку с линии.
Оператор видит на экране кадр с отмеченной этикеткой и причину отбраковки. В реальном проекте пришлось бы настраивать порог по контрасту, допуск по положению, время экспозиции и задержку под фактическую скорость линии — числа в примере условные и подбираются под конкретную линию.
Зачем нужно машинное зрение, если есть датчики?
Датчик отвечает на один вопрос — «есть объект или нет». Камера даёт изображение, из которого программа считает сразу несколько признаков: размер, форму, положение, цвет. Поэтому зрение нужно там, где важно не просто присутствие, а состояние детали.
Можно ли поставить камеру без подсветки?
Можно, если дефект контрастен при общем освещении цеха. Но общий свет меняется в течение дня, и порог, настроенный утром, к вечеру даёт другие результаты. Постоянная подсветка в закрытой зоне съёмки делает картинку предсказуемой.
Почему толкатель иногда сбрасывает не ту деталь?
Скорее всего, неверно рассчитана задержка между съёмкой и срабатыванием. Её считают по расстоянию от зоны съёмки до толкателя и скорости линии. Если скорость линии меняется, задержку нужно пересчитывать или привязывать к энкодеру.
Что нужно принести интегратору для обсуждения системы?
Образцы годных и бракованных деталей, скорость линии, расстояние от зоны съёмки до места отбраковки и перечень дефектов, которые нужно ловить. По этим данным он подберёт свет, оптику и оценит, хватит ли разрешения камеры для самого мелкого дефекта.