Так как это для студенческого проекта, я сделаю акцент на обработке изображений больше, чем на других аспектах приложения. См. Нижний раздел для рассмотрения реальных приложений.
Кроме того, общий комментарий: реализовать концепцию контроля качества (QC) сложно. Если проверяемый продукт является дешевым (например, кольцо, небольшая пластиковая деталь), и если результатом визуального осмотра является пограничный пропуск / неудача или неопределенность, вы можете отклонить деталь. Если подлежащая проверке деталь является дорогой (например, большая сборка для трактора, отдельных процессоров, медицинских устройств вблизи конца производственной линии), то у вас должны быть очень четко определенные спецификации, и система должна быть надежной. насколько возможно.
Как правило, вы хотите оптимизировать визуализацию для каждого типа дефекта. Например, местоположение камеры, объектив и освещение для обнаружения царапин могут сильно отличаться от того, что необходимо для измерения размеров (например, измерение размеров).
Машинное зрение против компьютерного зрения
Когда вы ищете в Интернете алгоритмы, оборудование и методы, специфичные для систем промышленной автоматизации, включая контроль качества деталей на производственных линиях, то для англоязычных веб-сайтов предпочтение отдается термину «машинное зрение» вместо «компьютерное зрение».
https://en.wikipedia.org/wiki/Machine_vision
Машинное зрение - это общепринятый в отрасли термин для обработки изображений (+ камеры + освещение + ...) для промышленного использования. Хотя разные люди могут использовать разную терминологию, и эта терминология не так важна, как методы обучения, вы найдете много материала в поиске «машинного зрения». Термин «компьютерное зрение», как правило, используется для непромышленных приложений и для академических исследований, хотя в языках, отличных от английского, термины «машинное зрение» и «компьютерное зрение» могут совпадать. Для сравнения, «медицинская визуализация» аналогична машинному зрению, но включает применение обработки изображений для медицинских применений.
Освещение
Самое главное, вы должны контролировать освещение. Окружающее освещение, такое как настольные лампы, верхнее освещение и т. Д., Не только бесполезно для системы контроля зрения, проверяющей детали в производстве, но и, как правило, мешает обработке изображений. Вы можете обнаружить некоторые дефекты, иногда с плохо контролируемым освещением, но для получения наиболее стабильных результатов вам необходимо установить источники света в определенных местах, включить источники света с определенной, поддающейся проверке интенсивностью и иметь ваше зрение. Система обнаруживает, когда что-то не так с освещением.
Существуют «лампы машинного зрения», разработанные специально для конкретных применений, таких как обнаружение царапин на блестящих поверхностях, придание блестящим поверхностям меньшего блеска, подсветка деталей (что полезно для измерения размеров), подсветка деталей под низкими углами и скоро. Читайте о различных типах освещения.
https://smartvisionlights.com/
https://www.vision -systems.com / содержание / дамба / VSD / solutionsinvision / Ресурсы / lighting_tips_white_paper.pdf
Вместо того, чтобы тратить много денег на специальные фонари, вы можете смоделировать их:
- светодиодный фонарик или одиночный светодиод (в качестве «точечного» источника света)
- Яркий свет + полупрозрачный лист пластика (для подсветки)
- Белая папиросная бумага или другой рассеивающий материал перед ярким светом
- ...
Важность освещения нельзя недооценивать. Управление условиями освещения повышает шансы на успех и, как правило, необходимо для достижения точности измерения или оценки «пройдено / не пройдено», требуемой в реальных условиях.
Точность, правильность, полезность
В какой-то момент вы, вероятно, задаетесь вопросом, является ли машинное обучение полезным или необходимым для приложения. Вопрос, который вы должны задать себе (или клиенту), таков: какой процент дефектов нужно будет обнаружить?
Например, если на ринге отсутствует чип, который может быть фатальным. Используется ли кольцо в каком-либо критически важном приложении? В таком случае проверка зрения для контроля качества должна быть чрезвычайно надежной.
Даже если вы знакомы с терминами «точность» и «точность», убедитесь, что они имеют очень четкое значение, поскольку вы рассматриваете проблемы обработки изображений:
https://en.wikipedia.org/wiki/Accuracy_and_precision
Итак, какой процент дефектов должен быть найден? 90%? 95%? 98%?
Если использовать термин «точный» в более широком смысле, это означает, что «система зрения правильно измеряет и / или обнаруживает дефекты, о которых мы знаем, что есть», какова точность наиболее точного алгоритма машинного обучения, о котором вы когда-либо читали? Или, по крайней мере, что можно квалифицировать как достаточно впечатляющую точность для машинного обучения? 95%? 98%?
Если вы производите измерения деталей машин на производственной линии, то обычно требуется, чтобы точность измерений размеров и обнаружения дефектов составляла 99% или более. Для ценных продуктов и таких продуктов, как электронные компоненты, которые очень чувствительны к дефектам, точность может составлять 99,999% или выше. Подумайте об этом следующим образом: если производитель производит тысячи или десятки тысяч деталей, он не хочет, чтобы мусорные детали проходили мимо вашей системы зрения несколько раз в день.
Машинное обучение для обработки изображений существует уже давно. Скорость обработки, память и размеры обучающих наборов улучшились, также были улучшены алгоритмы, но важно отметить, что машинное обучение подходит только для некоторых приложений и с треском провалится в других приложениях.
Методы
Для начала я прикрепил изображение кольца, которое нам нужно сделать для контроля качества.
из.
Ring_for_QC
Ring diameter = 3 inch
Получите точный диаметр, включая допуски. Если номинальный диаметр составляет 3000 дюймов, тогда допуск может быть выражен в тысячах дюймов. Возможно, вам не нужно знать об этом для студенческого проекта, но если вы предлагаете решение для владельца фабрики, вы не захотите даже предлагать цену или график поставки, не имея полных спецификаций для детали и многочисленных образцов часть.
Из одного изображения невозможно быть слишком точным относительно того, как может выглядеть дефект - одна и та же деталь может иметь разные дефекты на разных заводах или даже на разных производственных линиях одного и того же завода - но мы можем сделать некоторые догадки.
1.Поверхностное покрытие отслоившегося кольца
Из одного изображения неясно, как должно выглядеть поверхностное покрытие или что находится под ним. Вы должны предоставить хотя бы одно изображение хорошей детали и хотя бы одно изображение для каждого типа дефекта.
Что такое покрытие поверхности? Анодирование? Покрасить? Эмаль? Пластиковые? Сыр? В любом случае, зная, какой это материал, и как этот материал разлагается, вы получите некоторые подсказки о том, какой тип настройки зрения может помочь обнаружить проблемы с покрытием. Изменения в качестве покрытия могут повлиять на видимую текстуру (например, содержание кромок), яркость / темноту (интенсивность), цвет, блеск и т. Д.
В настоящий момент давайте предположим, что отслаивание покрытия изменяет яркость или текстуру поверхности без покрытия по сравнению с оставшейся поверхностью с покрытием. Тогда ваша обработка изображений может выглядеть примерно так:
- Определите, есть ли кольцо на изображении
- Снимите кольцо с фона. То есть используйте алгоритм, такой как подключенные компоненты (findContours () OpenCV), SIFT или какой-либо другой метод, чтобы определить наличие и местоположение жесткого объекта известного размера и формы на фоне.
- Изолировать дальнейшую обработку только на те пиксели, которые соответствуют поверхности детали.
- Используйте некоторую технику, чтобы найти кластеры с различными текстурными различиями, яркостными различиями и т. Д. Здесь требуется лучшее описание покрытия. Если параметры освещения и линзы "фиксированы", вы можете рассмотретьгенерирование гистограммы значений яркости на изображении (0 = черный, 255 = белый) и затем сравнение гистограммы хороших и плохих частей - есть ли статистическая разница?Или же вы можете использовать подключенные компоненты (findContours () снова) для кластеризации пикселей разных цветов, предполагая, что отсутствие покрытия меняет видимый цвет детали: возможно, покрытие коричневое, а часть серебристая.
Трудно догадаться, какая техника будет здесь уместна без фотографий и / или гораздо более конкретного описания покрытия.Надеюсь, это проясняет, почему спецификации важны.
Покрытия могут отсутствовать по-разному: отслаивание, небольшие пропуски (пустоты), частичное выскабливание и т. Д. Может быть трудно заранее предсказать, какая форма иРазмер отсутствующего покрытия может быть.
Когда размер и форму дефекта трудно предсказать, но когда дефект связан с различием в интенсивности изображения (яркости пикселя) или цвете, тогда изучите эти идеи:
- Создание «краевого изображения», в котором вы найдете переходы яркости / цвета.Вы начинаете с изображения в градациях серого или цветного изображения, затем используете Sobel или Canny или какой-либо другой алгоритм для создания изображения интенсивностей краев.
- Применяйте статистические методы, чтобы определить, насколько "острым" является изображение.Есть ли более N пикселей (или более 5% всех пикселей) с силой края, превышающей S?
Если у вас есть какой-то базовый алгоритм, который определяет разницу между хорошими деталями и деталями с отсутствующим покрытием, тогда вы можете рассмотреть возможность использования машинного обучения для просмотра партий (партий!) Образцов, чтобы помочь определить лучшийпараметризация.Например, как вы узнаете, какое количество краевых пикселей или их интенсивность следует считать «плохими»?
2.Прочность отколотого кольца
Зависит от того, видна ли микросхема только с контура детали.Например, если вы поместите деталь на стол с подсветкой (он же «подсветка»), вы бы всегда видели дефект, который считается "чипом"?Или же микросхема может находиться на верхней поверхности, обращенной к камере?
Чтобы найти микросхемы по краям, наличие детали на задней подсветке значительно упрощает вопросы.
- Определите местоположение и ориентациюдетали (например, с использованием соединительных компонентов, нормализованной корреляции, SIFT или любого другого алгоритма, подходящего для детали и требуемой точности определения местоположения).
- Найти ребра, соответствующие внешнему и внутреннему кольцам детали.
- Установите круг или эллипс, близкий к кругу, к краевым точкам с помощью подгонки по кругу, подгонки окружности RANSAC или подгонки по кругу наименьших квадратов, параметризованной по известным размерам (в пикселях) диаметров внешнего кольца и внутренней кожуры.
- Для точек, используемых для подгонки окружности, найдите кратчайшее расстояние точка-круг (или точка-эллипс).Чем больше это расстояние, тем больше вероятность того, что у вас есть чип или недостающий кусок.
- Чтобы убедиться, что вы находите отпечатки, микросхемы или что-то еще, а не только отдельные граничные точки «шума», исследуйте точки по часовой стрелке или против часовой стрелки и рассматривайте только ряд точек периметра как дефекты, если Nпоследующие точки имеют медиану или, возможно, среднее расстояние от точки до края больше, чем N.
Более простой подход мог бы состоять в том, чтобы соответствовать черно-белой маске - шаблону - представляющему хорошийчасть к текущему местоположению и повороту проверяемой части.Если шаблон и примерная часть выровнены очень точно, и если вы выполняете вычитание изображения, то вам может повезти получить кластеры или пиксели, где есть дефекты.Но этот метод довольно грубый, и его сложнее сделать надежным.
Существуют методики машинного обучения, позволяющие идентифицировать микросхемы по краям, но для обучения методам потребуется много образцов деталей.При желании, если у вас недостаточно образцов, вы можете использовать образцы образцов со слегка измененным освещением, в разных местах изображения, с добавленными вручную дефектами и т. Д., Чтобы помочь обучить алгоритм.Но это совсем другое обсуждение.
3. Царапина на поверхности кольца
См. Ссылку выше о различных типах освещения.Вам нужно будет поэкспериментировать с несколькими различными конфигурациями освещения, чтобы выяснить, что работает для вашей детали.
Как правило, царапины, скорее всего, будут иметь различие в яркости и "резкости" (содержании края изображения) относительноостальная часть.Если вам повезет, царапина может показать другой цвет.
Царапины могут настолько различаться по внешнему виду, площади и форме, что было бы трудно параметризовать алгоритм, чтобы поймать их всех.Еще раз, статистический анализ содержания кромок, яркости и цвета имеет тенденцию быть полезным.
В целом: для достижения наилучших результатов при конкретной проверке контроля качества, вам необходимо разработать систему специально для детали,Ваша система видения может быть настраиваемой, и могут быть разные комбинации источников света и камер для разных типов контроля качества, но для любого конкретного обнаружения дефекта вы хотите максимально контролировать внешний вид детали.Полагаясь на программное обеспечение для выполнения всей работы, вы получаете менее надежную систему, которую клиенты обычно вытаскивают и выбрасывают.
4. Ширина кольца неравномерна
Этопочти пример измерения размеров или оптического измерения.Если вы просто ищете неровности, вам необязательно измерять диаметр в технических единицах, таких как миллиметры: вы можете просто измерять пиксели.НО усилия, необходимые для обеспечения точности ваших измерений в пикселях, как правило, в любом случае приведут вас к измерениям в миллиметрах.
При условии, что оптическая установка правильна и (более или менее) откалибрована, что я опишу ниже, вотбазовый процесс:
- Определение положения и местоположения детали
- Из алгоритма, который находит деталь, или из алгоритма, который определяет края пикселей (например, Собел,Canny, ...), найдите краевые пиксели только для внешнего диаметра кольца.
- Выполните подгонку окружности / эллипса к краевым пикселям и удалите посторонние пиксели, которые на самом деле не принадлежат кругу/ellipse.
- Пусть ваш алгоритм начнется с 1-го пикселя в списке краевых пикселей, соответствующих внешнему диаметру.
- Начиная с этого 1-го пикселя, найдите краевой пиксель как можно дальше.В идеале это точка диаметрально противоположная.
- Циклически перебирайте все пиксели, находя расстояние до самого дальнего пикселя.(Это не оптимально с точки зрения скорости, но проще для кодирования.)
- Создание гистограммы всех расстояний.
- Определение хорошего / плохого на основе гистограммы "точка-точка"расстояния между точками.
Вы можете назвать деталь "плохой" для одного или нескольких из следующих условий:
- Как минимум N межточечных расстояний превышает aрасстояние P пикселей
- Стандартное отклонение расстояний между точками превышает некоторый порог T
- ...
Измерение расстояния зависит от согласованностирасстояния от точки к точке в разных местах на изображении.Если вы выполните точные и точные измерения расстояния, вы заметите, что объект фиксированной длины, кажется, изменяется по длине в зависимости от его местоположения на изображении: если объект расположен в центре изображения, он может казаться равным 57,5.в пикселях, но в одном углу изображения он может иметь длину 56,2 пикселя.
Чтобы исправить эти нарушения, вы можете ...
- Выполнить нелинейную коррекцию плоскостности.Это также исправит ненормальное выравнивание камеры по части, хотя вы хотите начать с оптической оси камеры как можно более нормальной (перпендикулярной) поверхности детали. E.
- Makeнесколько быстрых измерений, чтобы оценить, насколько различаются измерения.
5.Надежите на кольце
6.Выступная поверхность кольца не полностью горизонтальна относительно плоскости;возможно, из-за некоторой вмятины часть кольца опирается на плоскую поверхность, создавая угол в 1 или 2 градуса (на отмеченном рисунке я обозначил № 6 как «неровная поверхность»)
Используйте камеры с боковых изображений.Убедитесь, что фон прост.
Разницу в 1-2 градуса может быть трудно обнаружить с помощью камеры, расположенной над головой.Если вам повезет, вы можете обнаружить, что внешний край детали более эллиптический, чем круглый, но способность определять это будет зависеть от цвета и толщины детали.Кроме того, вы не обязательно сможете различить деформированную деталь и деталь, лежащую под углом - но для некоторых проверок это нормально, так как обе являются дефектами.
ОДНАКО, в реальных приложениях клиент может быть недоволен, если вы отклоняете детали, которые в остальном хороши, но оказываются под небольшим углом.Механическое приспособление может решить проблему, убедившись, что детали лежат ровно.
Я также приложил другое изображение, отмечающее проблемы качества, обнаруженные на случайном кольце. Повышенный вид с отмеченными проблемами контроля качества
Изображение недостаточно четкое.Поместите деталь на более простой фон и повозитесь с освещением, чтобы было более очевидно, в чем разница между хорошим и плохим.
One single ring can have one or more than one of the above mentioned 6 defects
Запускайте один алгоритм за другим.Возможно, вам также придется включать и выключать различные источники света перед запуском каждого алгоритма (точнее, каждой цепочки алгоритмов).
Issue 1 & 3 can occur at either surface of the ring and we need to check both the surfaces
We need to QC on one single ring at a time
Возможно, вам придется написать алгоритм, чтобы определить,случается, что присутствуют несколько колец.Даже если вас не просили сделать это специально, это происходит в производстве, и ваш профессор может вас удивить.По крайней мере, у вас есть представление о том, как вы могли бы обнаружить наличие нескольких колец.
Это еще один аспект концепции: вы можете начать думать о том, какие алгоритмы и освещение необходимы для решения «проблемы», но вы такжепотратьте много времени на выяснение всего, что может пойти не так, и на написание программного обеспечения для обнаружения этих условий, чтобы гарантировать, что вы не дадите ложный результат.Например, что произойдет, если свет выключится?Что если два кольца присутствуют?Что делать, если кольцо не полностью в поле зрения?Что, если грязь попадет на поверхность, на которой лежит деталь?Что, если линза испачкается (что будет)?
Несколько принципов:
- Обеспечить наилучшее изображение для обработки изображения до Вы считаете, какой алгоритм будетработать лучше
- Поймите, какая точность / успех необходима, и измерьте ее.
- Получите как можно больше образцов: сотни, тысячи, если это возможно.Полезно иметь возможность измерить «онлайн» (в реальном производстве).
Реальные приложения Если бы это было реальное приложение - то есть, если выпрофессионально попал в поле зрения - есть еще много шагов, которые могут показаться менее сложными, но они оказываются критическими:
- Как кольца попадают в поле зрения (или в «станцию»):на движущемся конвейере?размещены роботом?в каком-нибудь контейнере?
- Что вызывает проверку зрения кольца - программируемый логический контроллер, «световая завеса», через которую проходит кольцо, или сама система зрения должна определить, когда кольцо готово к проверке.
- Как результаты передаются на другое оборудование.(Это может быть очень хлопотно, и в противном случае клиент может отказаться от системы хорошего зрения, если связь не спроектирована и не реализована должным образом.)
- Гарантированно ли видеть только одно кольцо за раз
Нельзя сказать, что университет - это не реальный мир: просто вы, вероятно, не потеряете десятки или сотни тысяч евро / фунтов / долларов, если вы что-то упустили.