В статье автор исследует возможность внедрения аппаратно-программного комплекса для автоматизации контроля качества готовой продукции на производстве. Рассмотрены вопросы, связанные с подготовкой и сбором информации и последующим процессом обучения системы для выявления несоответствия готовой продукции указанным критериям качества.
Ключевые слова: машинное зрение, нейросетевая модель, обучение нейросети, объект контроля, камера.
При производстве какой-либо продукции возникает вопрос проверки ее по определенным показателям на соответствие требованиям ГОСТ, и параметрам, на которые обращает внимание потребитель. Иметь свой отдел контроля качества могут позволить немногие производители. В ряде случаев производители обращаются в сторонние лаборатории, что приводит к дополнительным расходам, и трате времени на осуществление данных проверок.
Но существует ряд показателей, которые могут быть проверены непосредственно на производстве, к ним относятся контроль качества сырьевого материала: размер, цвет, включения сторонних предметов и примесей, наличие запыленности и грязи, а также контроль на выходе полученной продукции, что может быть осуществлено с использованием визуального контроля. При небольшой производительности выпуска продукции данный контроль могут выполнять люди-операторы, но в случае непрерывного производства и большого количества производимой продукции контроль становится затрудненным для них. В этом случае возможным выходом является внедрение на разных этапах технологического процесса автоматических систем контроля за необходимыми параметрами.
Автоматизированный визуальный контроль может быть реализован на основе аппаратно-программного комплекса машинного зрения [1]. Структура которого состоит из аппаратной части и программного обеспечения.
Аппаратная часть приведена на рис.1. Над объектом контроля устанавливается специальная камера, на объект контроля направлен осветитель (для увеличения освещения снимаемого объекта и улучшения качества снимаемого материала камерой). Данные, полученные с камеры, направляются на контроллер, который подключен к камере с использованием одного из интерфейсов: последовательный порт; параллельный порт; ISA, PLC, VME шины. К контроллеру подключен также монитор с устройством ввода (сенсорный экран; мышка, трекбол).
Рис. 1. Аппаратная часть системы автоматического контроля
Для выбора камеры необходимо вначале выяснить технические параметры, такие как скорость подачи продукции, ее габаритные размеры, наличие цветного покрытия, и т. п. Что позволит выбрать тип сенсора CCD (ПЗС) или CMOS (КМОП). Их отличие заключается в архитектуре, КМОП сенсор быстрее считывает данные изображения, что хорошо сказывается на производстве, где используется конвейерная лента с высокой скоростью. Необходимо также учитывать при выборе камеры такие параметры как: разрешение, сенсор и размер пикселя, частоту съемки (кадры/сек), цветопередачу (градации серого в случае монохромной камеры).
В качестве контроллера системы автоматического контроля выбирается современное оборудование (процессор, видеокарта), которое поддерживает аппаратное ускорение для работы с нейронными сетями, обладает достаточным объемом оперативной памяти и объемом хранения и обработки полученной информации, а также имеет скоростные интерфейсы для получения анализируемой информации. Так же в качестве контроллера может использоваться менее мощная система, если ее целью будет лишь получение информации с камеры и дальнейшая передача по сети на более мощную систему для хранения и обработки.
Программная часть использует полученную информацию с камеры в виде изображений, производит обработку и выдает необходимую информацию на монитор, может уведомлять оператора через другие каналы коммуникации.
Программное обеспечение для решения задачи нахождения дефектов использует сверточную нейронную сеть.
В качестве построения и обучения нейронной сети [2] могут быть использованы открытые библиотеки:
– Keras API, написанная на языке Python и позволяющая создавать модели послойно для большинства задач;
– TensorFlow библиотека для машинного обучения, которая разработана компанией Google для решения задач создания и обучения нейронной сети с целью автоматического нахождения и классификации объектов, достигая качества человеческого восприятия. Интерфейс прикладного программирования (API) для работы с библиотекой реализован для Python. Интеграция TensorFlow с Python обеспечивается дистрибутивом Anaconda.
Разработка данной системы состоит из нескольких этапов:
– Постановка задачи;
– Метод идентификации;
– Обучение нейронной сети;
– Идентификация дефектов в проверяемой продукции
При постановке задачи решается задача сегментации дефектов на изображениях проверяемой продукции. Задача сводится к решению задачи бинарной классификации изображений. В качестве основной информации используются исходные изображения (фотографии продукции), в которых содержатся различные дефекты. В качестве дополнительной информации применяются бинарные маски, сделанные человеком, соответствующие этим изображениям. Они показывают наличие или отсутствие дефектов на исходном изображении. В таблице 1 приведены примеры исходных изображений с дефектами и их бинарные маски созданных человеком.
В качестве метода идентификации выбран метод машинного обучения. Сверточные нейронные сети и модели [3], реализующие их всевозможные модификации, показывают отличные результаты. Исходное изображение подается на вход системы, на выходе получается бинарное изображение-маска. В результате имеем сегментированное изображение, которое идентифицирует наличие или отсутствие дефекта.
Обучение нейронной сети состоит из нескольких этапов. На первом этапе сеть обучается на небольшом объеме данных (около трети от основного набора). На втором этапе нейронная сеть обучается на полном объеме данных.
Таблица 1
Исходное изображение и бинарная маска
Исходное изображение с дефектом |
Бинарная маска |
|
|
|
|
|
|
Заключительным этапом является идентификация дефектов, на этом этапе проводится подача тестовых изображений на вход нейронной сети, а на выходе получается сгенерированная бинарная маска наличия дефекта. Полученная маска сравнивается с истинным значением. По результату сравнения делается вывод о корректности сегментации дефектов нейронной сетью.
Качество подготовленного набора данных оказывает влияние на процесс обучения и результаты использования сети. Периодически, в результате ее работы, можно наблюдать ситуации, в которых отсутствуют дефекты на реальных изображениях, а на изображениях разметки дефект показан, либо наоборот. Это сказывается на общей оценке качества работы модели. Для более точной оценки модели необходимо ввести функцию потерь, используемую в процессе обучения и расширить набор метрик.
Получив необходимое качество распознавания дефектов моделью, ее можно использовать для дальнейшей разработки программного обеспечения для контроллера, либо компьютера, на который контроллер передает информацию.
Преимуществом автоматизированной системы контроля на основе «машинного зрения» является ее возможность установки на производственной линии без ее модернизации. Возможность дальнейшего использования при изменении контролируемой продукции, путем обновления программного обеспечения. Так для этой цели может быть создано программное обеспечение, которое позволит на основе новых исходных изображений и бинарных масок, обучить модель для распознавания дефектов в новой продукции.
Литература:
- Л. Шапиро, Дж. Стокман Компьютерное зрение, пер. с англ. 2-е изд. — М.: БИНОМ. Лаборатория знаний, 2013. — 752 с.
- Коул Анирад, Ганджу Сиддха, Казам Мехер Искусственный интеллект и компьютерное зрение. Реальные проекты на Python, Keras и TensorFlow. — СПб.: Питер, 2023. — 624 с.
- Николенко С., Кадурин А., Архангельская Е. Глубокое обучение. — СПб.: Питер, 2018. — 480 с.