Компьютерное зрение стремительно развивается и становится одним из ключевых факторов в автоматизации различных сфер деятельности человека. Современные технические системы получают возможность “видеть” окружающий мир, а интеграция с нейронными сетями позволяет им не только распознавать, но и разумно реагировать на воспринимаемую информацию. В результате, такие системы способны в различных ситуациях осуществлять более быструю и точную идентификацию объектов и принятие решений по сравнению с человеком.
В данной статье исследуется потенциал применения машинного зрения и технологий распознавания объектов для автоматизации производственных процессов. Приводится описание архитектуры сверточной нейронной сети и алгоритма обнаружения объектов, играющих важную роль в реализации этой технологии.
Введение
В эпоху стремительной цифровой трансформации предприятий, автоматизация производства приобретает первостепенную важность. Использование роботизации, мехатронных модулей и других инновационных технологий становится ключевым фактором для повышения эффективности и конкурентоспособности [1].
Промышленные роботы обладают рядом существенных преимуществ перед ручным трудом: они способны работать непрерывно в течение длительного времени, демонстрируя высокую точность, повторяемость и скорость выполнения операций.
В связи с этим, предприятия все активнее стремятся к автоматизации ручного труда, стремясь достичь экономической эффективности, соответствующей современным требованиям рынка. В контексте обеспечения конкурентоспособности, данная тенденция приобретает характер неотложной необходимости.
Использование роботов в промышленности имеет ряд преимуществ не только с точки зрения экономической эффективности, но и обеспечения безопасности персонала. Роботы исключают контакт людей с опасными веществами и предотвращают травмы, связанные с монотонной работой. В условиях многообразных производственных опасностей применение роботов становится обязательным.
Современные промышленные роботы оснащены системами компьютерного зрения, искусственного интеллекта (ИИ) и другими технологиями, что делает их всё более интеллектуальными и безопасными. Они способны выполнять сложные задачи, а коллаборативные роботы могут работать непосредственно с людьми, дополняя их возможности в тех областях, которые пока не поддаются полной автоматизации. Беспилотный транспорт также находит широкое применение на предприятиях благодаря своей точности, безопасности и экономичности.
Широкие возможности промышленных роботов, особенно оснащенных системами машинного зрения, открывают огромный потенциал для их использования в различных отраслях. По данным отчета World Robotics 2021, количество установленных промышленных роботов достигло рекордных 3 миллионов по всему миру и terus meningkat.
Лидерами по количеству установок промышленных роботов являются Китай, Япония, США, Южная Корея и Германия. Китай занимает лидирующую позицию как по числу установок, так и по производству роботов с защитой интеллектуальной собственности.
Наиболее широко роботы используются в автомобилестроении, электронике, металлургии, машиностроении и химической промышленности. В ближайшем будущем массовое распространение промышленных роботов сделает их неотъемлемой частью различных производств и других отраслей.
Уникальные возможности роботов обусловлены технологиями компьютерного зрения, которые позволяют им распознавать детали, определять их качество, позиционирование на конвейере, проводить измерения и расчеты, считывать маркировку, распознавать людей на пути движения и выполнять множество других функций.
Биологические принципы зрения и их влияние на развитие компьютерного зрения
Открытия нейрофизиологов в конце 1950-х годов, проливающие свет на механизмы обработки зрительной информации в коре головного мозга млекопитающих, сыграли ключевую роль в развитии технического зрения. Эти исследования, увенчанные Нобелевской премией Торстен Визеля и Дэвида Хьюбела, показали, как нейроны первичной зрительной коры (расположенной в наружном слое мозга) реагируют на простые линии и края, формируя электрические сигналы различной частоты в зависимости от ориентации этих линий.
Рисунок 1 – Обработка визуальной информации нейронами мозга
Совокупность таких нейронов, каждый из которых специализируется на определенном угле, способна распознавать все линии и края сложной фигуры. Информация о линиях передается далее к сложным нейронам, которые объединяют их в более сложные фигуры, такие как углы или кривые. Этот процесс многоступенчатой обработки продолжается до тех пор, пока не произойдет полное распознавание объекта.
Помимо ориентации краев, нейроны первичной зрительной коры реагируют на направление движения, цвет, частоту и стереоскопические различия между глазами.
Эти фундаментальные открытия послужили основой для создания систем компьютерного зрения. Первоначально использовались традиционные методы машинного обучения, но впоследствии, с развитием науки, получили распространение глубокие нейронные сети. В 2015 году системы компьютерного зрения на основе глубокого обучения превзошли человека по точности распознавания, и с тех пор их эффективность только растет.
Машинное зрение: Теория и практика
Машинное зрение представляет собой область науки и техники, посвященную созданию систем, способных обнаруживать, отслеживать и классифицировать объекты. Оно находит широкое применение в промышленности и производстве под названием “промышленное зрение”.
Реализация машинного зрения осуществляется с помощью цифровых интеллектуальных камер, специализированного программного обеспечения для обработки получаемых данных, а также дополнительных компонентов, таких как источники света (светодиоды) и датчики синхронизации. В некоторых случаях могут использоваться actuator-системы для сортировки или удаления бракованных деталей.
Датчик синхронизации определяет момент прохождения детали под камерой на конвейере и запускает систему освещения и съемки. Освещение настроено таким образом, чтобы выделить важные характеристики детали и затенять менее значимые.
Программное обеспечение обрабатывает полученное изображение в несколько этапов:
- Уменьшение шума: удаление случайных помех из изображения.
- Обнаружение дефектов: выявление несоответствий заданным параметрам.
- Измерение параметров: определение размеров и других необходимых характеристик объекта.
При обнаружении брака, программное обеспечение посылает сигнал actuator-системе для удаления детали.
В качестве исходных данных для машинного зрения могут использоваться как фотографии, так и видеопотоки с цифровых камер.
Наиболее интересным направлением в этой области является разработка программного обеспечения, способного распознавать необходимые элементы на изображениях и видео, а также делать прогнозы на основе полученных данных. Для решения таких задач эффективно используются методы искусственного интеллекта, такие как нейронные сети и глубокое обучение, которые демонстрируют высокую точность и скорость обработки по сравнению с человеком.
Сверточная нейронная сеть
Ввиду того, что входными данными являются графические изображения, для эффективного распознавания объектов на них предпочтительнее использовать нейронные сети, основанные на сверточных слоях (см. рисунок 2). Такие сети способны более эффективно обрабатывать пространственные структуры.
Рисунок 2 – Нейронная сеть со сверточными слоями
Основной принцип сверточной нейронной сети (Convolutional Neural Networks, CNN) заключается в том, что обработка фрагмента изображения не зависит от его местоположения на изображении. Это означает, что распознавание детали возможно, даже если ее элементы расположены на значительном расстоянии друг от друга.
Хотя взаимное расположение элементов детали на изображении важно, все эти элементы должны быть распознаны независимо от их положения на объекте, представленном на изображении. Свертка представляет собой линейное преобразование входных данных.
Рисунок 3 – Монохромное изображение 28х28 пикселов
Представление исходных данных
Любое изображение может быть представлено в виде совокупности пикселей. Каждый пиксель описывается 8-битным числом, определяющим интенсивность серого цвета от белого (0) до чёрного (255).
Так, изображение размером 28х28 пикселей содержит 784 пикселя. Пиксели белого цвета имеют значение 0, пиксели с оттенками серого — значения от 0 до 255 в зависимости от интенсивности, а пиксели чёрного цвета — значение 255 (см. рис. 3).
Цветное изображение RGB (Red, Green, Blue) формируется путем смешивания излучений красного, зелёного и синего цветов. Отсутствие излучения соответствует чёрному цвету, равномерное смешение всех трёх цветов — белому. Смешивание зеленого и красного даёт желтый цвет, а различные комбинации этих трех цветов позволяют получить широкий спектр оттенков.
Следовательно, цветное изображение может быть представлено в виде пикселей, каждый из которых характеризуется тремя значениями (по одному для каждого основного цвета). Таким образом, цветное изображение 28х28 пикселей будет состоять из 784х3=2352 пикселов.
В итоге, входной информацией для обработки является массив пикселей.
Рисунок 4 – Свертывание (сканирование) изображения (а), ядро размером Зх3х1 (6), ядро ЗхЗхЗ (в)
Сверточные слои нейронных сетей состоят из набора ядер, которые также называются фильтрами. Эти фильтры сканируют изображение по принципу свертки, аналогично чтению текста на странице, начиная с верхнего левого угла и двигаясь построчно до нижнего правого.
Размер ядра обычно составляет 3×3 пикселя, хотя могут использоваться и размеры 5×5 или 7×7. Как и в случае полносвязных нейронных сетях, ядро имеет веса w, представленные матрицей того же размера (например, 3×3), что означает наличие девяти весовых значений. Важно отметить, что при обработке цветного RGB-изображения с тремя цветовыми каналами (красный, зеленый, синий) количество весов увеличивается в три раза, достигая 27 значений (3x3x3).
Помимо весов, каждый сверточный фильтр имеет еще один параметр – смещение b. Таким образом, для черно-белого изображения ядро содержит 10 параметров (9 весов + 1 смещение), а для цветного изображения – 28 параметров (27 весов + 1 смещение).
Начальные значения весов w и смещения b устанавливаются произвольно и остаются неизменными в процессе свертки. Это означает, что при перемещении фильтра по изображению веса не изменяются. В результате количество весовых значений в сверточных нейронных сетях существенно меньше, чем в полносвязных сетях, где количество связей и, соответственно, весов может достигать сотен или тысяч.
Снижение числа расчетов является одним из преимуществ сверточных нейронных сетей. Расчет суммарного сигнала осуществляется по той же формуле, что и в полносвязных сетях.
где z – суммарный сигнал признака, Хi – значение пикселов на входе, w – веса фильтра, Ь – смещение фильтра. Только в данном случае расчет осуществляется следующим образом (рис. 5).
Рисунок 5- расчет значения Z
А математически расчет величины z реализовывается в следующем виде:
При обработке изображений с использованием сверточных фильтров для повышения наглядности процесса умножения матриц применяется метод суперпозиции (наложения). Фильтр последовательно перемещается по изображению по горизонтали на один пиксель, каждый раз вычисляется значение z. Этот процесс повторяется до тех пор, пока фильтр не достигнет правого нижнего угла изображения. Результатом является карта признаков, представляющая собой таблицу значений z для всех позиций фильтра на изображении.
Рисунок 6 – Значения пикселов – х в RGВ-изображении размером ЗхЗ пиксела
Для ускорения процесса распознавания допускается перемещение фильтра более чем на один пиксель. Однако следует иметь в виду, что увеличение шага смещения приводит к снижению точности. Оптимальное значение шага определяется спецификой решаемой задачи.
Рисунок 7 – Значение веса – w для каждого цветового канала
В случае цветных изображений вычисление z выполняется для всех цветовых каналов. Например, для изображения размером 3×3 пикселя с тремя цветовыми каналами (см. рис. 6) необходимо добавить нулевое обрамление по краям, чтобы обеспечить соответствие входных данных карте признаков z.
Рисунок 8 – Вычисление значения Z в карте признаков
Ядро свёртки 3х3 обрабатывает изображение RGB по отдельным цветовым каналам. Каждая цветовая составляющая имеет свой набор весовых коэффициентов w (см. рис. 7).
Значение z для каждого положения ядра на изображении RGB вычисляется по формуле (1), показанной на рис. 8, с учётом смещения Ь.
Например, для первого положения ядра значение z будет равно 0, 1, а для второго положения, смещенного вправо на один пиксель, z = 2, 4.
После прохода ядром по всем позициям на изображении формируется двумерная карта признаков (см. рис. 9).
Рисунок 9 – Карта признаков
После вычисления значений z, можно определить значения активации σ(z) путём применения к каждому значению z функции активации, такой как ReLU, sigmoid, tanh и другие. В результате образуется карта активаций, на которой визуализируется расположение объекта, детектируемого данным фильтром на входном изображении. Максимальное значение активации соответствует области, где расположен данный объект. Этот процесс составляет этап прямого распространения в сверточной нейронной сети.
Сверточный слой обычно содержит множество фильтров. Аналогично тому, как простые нейроны, описанные выше в контексте биологического зрения, реагируют на различные простые элементы объекта, такие как линии под разными углами, каждый фильтр может быть специализирован на обнаружении определенного типа линий.
Например, один фильтр может сильнее всего реагировать на горизонтальные линии, другой — на линии под углом 45 градусов, третий — на дуги и так далее. Когда фильтр, определяющий вертикальные линии, обнаружит такую линию, он выдает наибольшее значение активации σ(z).
Таким образом, фильтры указывают местоположение в изображении тех или иных линий, цветов или объектов, за распознавание которых они отвечают.
Прохождение изображения через фильтр приводит к формированию карты активаций. Данная карта передается следующему слою нейронной сети. При этом, фильтр последующего слоя реагирует на более сложные фигуры и комбинации линий, представленные в карте активаций предыдущего слоя. Таким образом, более глубокие слои сети способны распознавать всё более сложные объекты на входном изображении до полного его анализа.
Использование нескольких фильтров в сверточном слое приводит к тому, что окончательная карта активаций приобретает параметр глубины. Вместо двумерной карты формируется трехмерная структура. Например, при наличии 5 фильтров в сверточном слое, карта активаций будет иметь глубину 5, что соответствует 5 картам активаций на выходе (см. рис. 10).
Рисунок 10 – Трехмерная карта активаций
Начальные значения весов *w* и смещений *b* задаются произвольно, но в процессе обучения нейронной сети посредством обратного распространения ошибки они корректируются, подобно полносвязным нейронным сетям.
Впоследствии полученные данные от сверточных слоев могут быть переданы в полносвязные слои (см. рис. 2). Последние не обрабатывают пространственные структуры и осуществляют окончательные прогнозы на основе вычислений, реализуемых в полносвязных нейронных сетях [4, 5].
Нейронные сети (НС), оснащённые сверточными слоями, способны идентифицировать объекты на изображениях. Однако, часто возникает необходимость не только в распознавании, но и в выявлении специфических характеристик у идентичных объектов. Например, обнаружение дефекта в сварном шве или чтение маркировки детали, определение комплектации изделия, проверка наличия всех элементов и отсутствие заусенцев.
Для решения подобных задач классификация объекта недостаточна. Требуется алгоритм обнаружения, который способен не только обнаруживать объект, но и классифицировать его. Такой алгоритм определяет местоположение интересующей области на изображении, выделяет её признаки и классифицирует её, оценивая соответствие объекта заданным параметрам. При этом, алгоритм выделяет нужный объект рамкой.
Например, алгоритм может обнаружить необходимую деталь и проверить количество отверстий на её торце.
Такие алгоритмы используют сверточные нейронные сети и активно задействуют карты активаций, получаемые от сверточных слоёв НС. В них содержится большое количество полезной информации, позволяющей выявлять дополнительные признаки для ускорения принятия сложных решений.
Оснащение роботов машинным зрением в сочетании с программным обеспечением на основе нейронных сетей и алгоритмов обнаружения позволит им самостоятельно принимать решения и справляться с более сложными и творческими задачами, которые сегодня требуют участия человека.
Подобные алгоритмы могут быть также применены в области автоматизации технологических процессов, где, на основе распознавания элементов детали, системы способны самостоятельно формировать технологический процесс. Их применение возможно и во многих других областях.
Заключение
Технологии, основанные на распознавании образов, прочно вошли в нашу жизнь и всё шире внедряются во все сферы деятельности. Автоматизация производственных процессов с помощью этих технологий способна существенно повысить эффективность и безопасность предприятий.
Роботы, оснащенные машинным зрением и искусственным интеллектом, могут решать более сложные задачи, принимая самостоятельные решения о браке изделия, сортировке, доработке и остановке конвейера, что невозможно реализовать традиционными методами. Успешные примеры внедрения технологий машинного зрения и ИИ демонстрируют их высокий потенциал.
Аналогичным образом возможно совершенствование систем автоматизации и проектирование технологических процессов на основе распознавания элементов детали.
Следовательно, необходимо переосмысление ключевых этапов промышленного производства на основе принципов распознавания. Это позволит получить значительный положительный эффект, повысив конкурентоспособность предприятий и обеспечив более высокий уровень безопасности на опасных производствах.
Литература
- Mikhalev O.N. CAD/CAM-system module for the design of automatic production/lNDUSTRY 4.0 // O.N. Mi khalev, A.S. Yanyushkin. – Vol. 5. – № 2. – 2020. – рр. 59-62. – Text: unmediated.
- Крон Д. Глубокое обучение в картинках. Визуальный гид по искусственному интеллекту / Д.Крон, Г.