В погоне за совершенством: от глубоко машинного обучения к искусственному интеллекту в системах оптической инспекции (АОИ) Maker- Ray. Часть 2
И. Рожков, ООО «Новые Технологии», генеральный директор, управляющий партнер, rozhkov@nt-smt.ru.
А. Гаранин, ООО «Новые Технологии», технический директор, управляющий партнер, garanin@nt-smt.ru.
Д. Подольский, ООО «Новые Технологии», ведущий менеджер по продуктам, podolsky@nt-smt.ru.
По версии словаря английского языка Collins English Dictionary, главным словосочетанием в 2023 году является аббревиатура AI (искусственный интеллект, ИИ), означающая «моделирование мыслительных функций человека с помощью компьютерных программ». По мнению Collins употребление аббревиатуры AI за год выросло в четыре раза и «стало преобладающим термином в разговорах в 2023 году». Данный вывод непосредственно касается систем автоматической оптической инспекции (АОИ) компании Maker-Ray, которые умеют самообучаться, выявлять дефекты сборки печатных плат и вместо оператора способны исключать ложные срабатывания. Для этого потребовалась эволюция применяемых методов глубокого обучения и дальнейшее развитие программных инструментов в направлении решения прикладных задач при производстве электроники – сегодня системы АОИ Maker-Ray стали, по сути, IT-проектами по внедрению искусственного интеллекта. В статье описывается проблематика построения умной системы анализа изображений печатных плат.
В первой части статьи, которая была опубликована в журнале «ЭЛЕКТРОНИКА: Наука, Технология, Бизнес» №10 за 2023 год, мы рассмотрели обоснование эффективности применения искусственного интеллекта (ИИ) как следующего этапа развития алгоритмов машинного обучения при анализе изображений. Также мы описали положения и ограничения для формирования задачи и сбора вводных данных для алгоритмов ИИ с применением многоступенчатой обработки изображений, классификации дефектов и компонентов, ввели понятие «ложноотрицательных» компонентов.
Продолжим рассмотрение теории и практики построения виртуальной модели для работы искусственного интеллекта, применяемого в системах оптической инспекции компании Maker-Ray.
БАЗА ДАННЫХ ИЗОБРАЖЕНИЙ АОИ
Для первоначального обучения ИИ АОИ Maker-Ray использует исходный набор данных, полученных с производственной линии поверхностного монтажа печатных плат одного из своих партнеров. Это реальное загруженное производство, где применяются установки АОИ Maker-Ray. Для обработки используется 6 500 изображений, в том числе 1 235 истинно-негативных и 5 265 ложно-негативных изображений компонентов. Дополнительное применение методов обработки изображения позволяет увеличить общее количество изображений, чтобы количество истинно-негативных изображений было примерно равным количеству ложно-негативных изображений.
ОБРЕЗКА (ФРАГМЕНТИРОВАНИЕ) ИЗОБРАЖЕНИЯ
На этом этапе определяется положение целевого электронного компонента, а затем изображение обрезается так, чтобы компонент можно было разместить в центре фрагмента. Как показано на рис. 1а, АОИ помечает целевой компонент красной линией. Следовательно, можно найти кадр с красной линией, чтобы отследить целевой компонент. Однако в результате исследований было обнаружено, что красную линию на изображении практически невозможно различить по нескольким причинам.
Рис. 1. Общая модель обучения ИИ
Рис. 2. Статистические результаты измерения количества красных пикселей R: а – количество красных пикселей R
на красной линии; б – количество красных пикселей R в другой области
Для решения вышеуказанных проблем в АОИ Maker-Ray применяется метод обрезки изображения, как показано на рис. 3. Для поиска изменений на границе красной линии задается функция преобразования f (x, y) для оценки изменений для каждого пикселя (x, y). Однако, поскольку до обрезки изображения в нем слишком много пикселей, вычисление функции преобразования для каждого пикселя не целесообразно, поскольку является слишком затратным с точки зрения вычислительных ресурсов системы. Поэтому применяется RGB-фильтр для фильтрации большинства пикселей. Пред-полагая, что значения R, G, B пикселя (x, y) равны со-ответственно Rx,y, Gx,y и Bx,y, получим для оценки следующий набор пикселей:
{ (x, y) | R x,y > R thre, G x,y < G thre, B x,y < B thre }, (1)
где Rthre, Gthre, Bthre – пороговые значения цветовых каналов RGB. В ходе экспериментов они были установлены равными 90, 150 и 90 соответственно.
Рис. 3. Алгоритм применения фрагментирования и функции преобразования пикселей
Поскольку красные линии образуют прямоугольник, окружающий электронный компонент, функция преобразования пикселей была создана такой, чтобы определить, является ли один пиксель углом прямоугольника. Как показано на рис. 4а, например, для верхнего левого угла прямоугольника, для каждого пикселя (x, y) исследуется изменение пикселей в направлениях как вправо, так и вниз. Для пикселя в правом направлении (x+m, y) определяется разница между двумя пикселями Vm 1 = | Rx+m,y – Rx+m,y+m |. На рис. 4a для каждого m ∈ [dmin, dmax] обрабатывается массив пикселей следующим образом:
V1 = { | R x+m,y – R x+m,y+m | | d min < m < d max}. (2)
Рис. 4. Иллюстрация описания функции преобразования f(x, y)
В ходе экспериментов dmin и dmax были установлены равными 3 и 13 соответственно. Затем выбираются другие направления для расчета и аналогичным образом получают четыре разных набора V1, V2, V3 и V4 (см. рис. 4б). Для одного пикселя, расположенного в углу прямоугольника, нужно найти больше пикселей с более высоким значением Vm из набора V. Поэтому используется пороговое значение α, чтобы определить, является ли значение Vm более высоким, и в нашем случае α устанавливается равным 30. Далее для каждого набора V определяется вероятность P следующим образом:
P = I (V > α) / (max – min + 1), (3)
где I(V > α) указывает на количество элементов в наборе V, больших, чем α.
Затем вычисляются P1, P2, P3 и P4 для четырех V соответственно, и P сравнивается с порогом ϐ, установленным равным 80%. Когда все четыре P превышают ϐ, можно считать, что пиксель (x, y) находится в углу. Таким образом можно получить координату пикселя в левом верхнем углу прямоугольника.
Далее таким же способом можно найти остальные три угла прямоугольника и окончательно вычислить центральную точку прямоугольника. Эта точка устанавливается в качестве центра и обрезается часть изображения размером 448 × 448 пикселей, что подходит для моделей машинного обучения (исходные изображения обычно содержат 1 024 × 740 пикселей). Центр компонента может оказаться рядом с краем изображения.
В этом случае область 448 × 448 пикселей невозможно обрезать напрямую. Пусть, например, центр компонента находится рядом с правым краем изображения. Если мы установим центр компонента в качестве центра обрезки, между центром и правым краем изображения будет не хватать 224 пикселя. Поэтому переместим центр влево до тех пор, пока центр не окажется на расстоянии 224 пикселя от края. Используем аналогичный подход для всех случаев, когда центр находится рядом с другими краями изображения. В результате целевое поле изображения для обрезки будет всегда иметь ширину 448, а высоту 448 пикселей.
Заметим, что можно было найти несколько других углов с высоким значением P. Например, когда нужно вычислить P путем поиска пикселя в уравнении (1), можно сначала выбрать пиксели из верхних левых частей набора, чтобы найти верхний левый угол прямоугольника. Как только будет найден первый пиксель, удовлетворяющий условию P > ϐ, поиск прекращается. Результаты экспериментов показывают, что с помощью предложенного метода обрезаются правильно 98,46% изображений. В итоге, тестируемый компонент оказывается в обрезанном изображении, причем, оно не искажается, поскольку остальная часть исходного изображения не содержит полезной информации.
ПОВЫШЕНИЕ ИНФОРМАТИВНОСТИ ИЗОБРАЖЕНИЙ
Машинное обучение требует большого количества данных для достижения удовлетворительной точности. Однако установки АОИ регистрируют только ограниченное количество электронных компонентов (всего 0,3–0,5%), неправильно установленных на печатной плате. Как увеличить объем данных для более точного обучения модели?
Эффективный метод расширения набора данных – повышение информативности изображения. Основная идея состоит в том, чтобы перевернуть и обрезать изображения или настроить яркость, контрастность и оттенок изображений. Таким образом, мы можем получить из одного изображения множество изображений, что позволяет значительно увеличить набор обучающих данных. Кроме того, повышение информативности изображения также является эффективным методом предотвращения «переобучения» нашей модели, когда обученные параметры подходят только для набора обучающих данных, а не для набора тестовых данных. Рассмотрим способы, направленные на увеличение объема данных (рис. 5).
Рис. 5. Методика повышения информативности изображений
Переворот
Для изображения, содержащего 448 × 448 пикселей, можно использовать следующий метод для реализации переворота. Для каждого пикселя, расположенного в координатах (x, y), переворачивается изображение в направлении влево и вправо, меняя местами пиксель (x, y) и (448 – x + 1, y).
Аналогичным образом переворачивается изображение в направлении вверх и вниз, меняя местами пиксели (x, y) и (x, 448 – y + 1). Переворот может дать симметричное изображение, как показано на рис. 5. Следует отметить, что переворачивание выполняется только для изображений компонентов, которые признаны «истинно отрицательными».
Кадрирование
Случайным образом обрезается область по краю одного изображения площадью от 10 до 20% от исходной площади. Вышеописанный шаг неизбежно изменил бы соотношение высоты и ширины полигона. Чтобы решить эту проблему, меняется масштаб обрезанного изображения для дальнейшей обработки.
Изменение яркости, контрастности и оттенка
Затем меняется цвет изображений для повышения информативности. Основная идея заключается в настройке компонентов изображения H (оттенок), S (насыщенность), B (яркость). Оттенок относится к внешней фазе цвета, то есть цвету, который человеческий глаз ощущает по-разному при освещении световыми волнами разной длины. Например, оттенок красного составляет 0 градусов (360 градусов), 60 градусов для желтого цвета и 120 градусов для зеленого цвета. Насыщенность относится к яркости и интенсивности цвета, и цвета кажутся чище, когда насыщенность увеличивается. Яркость означает яркость или темноту определенного цвета: от черного (отсутствие яркости) до белого (полная яркость). В ходе экспериментов можно получить компоненты H, S, B каждого пикселя изображения. Затем случайным образом они меняются на значения в диапазоне от 1 – θ до 1 + θ от исходного значения. Эмпирически было установлено значение θ равным 0,3.
Добавление цифрового шума
Для улучшения изображения можно также использовать цифровой шум освещения. Для реализации этого способа используется метод усиления шума на основе PCA в стиле AlexNet (сверточная нейронная сеть для классификации изображений).
Восстановление изображений
Методы повышения информативности изображения, описанные выше, применяются один за другим по порядку. Затем изображение масштабируется до размера 224 × 224 пикселей, чтобы подготовиться к последующему процессу машинного обучения. После нормализации масштаба набор данных изображений можно расширить и эффективно предотвратить проблему переобучения. В результате размер исходного набора данных увеличивается в семь раз.
КЛАССИФИКАЦИЯ КОМПОНЕНТОВ
Поскольку полный набор данных состоит из изображений различных компонентов, необходимо классифицировать эти компоненты по разным категориям. Компоненты включают резисторы, индуктивности, конденсаторы, микросхемы в различных корпусах и др. Категории определяются в зависимости от внешнего вида компонентов, выделенных красной линией. Также используются достижения в разработке концепции ResNet — Residual Network (дословно — «остаточная сеть»). Глубокие сверточные нейронные сети ResNet извлекают низко-, средне- и высокоуровневые признаки сквозным многослойным способом, а увеличение количества связанных между собой слоев может повысить информативность изображения.
На рис. 6 показаны три класса изображений. Конденсатор, который принадлежит, например, к классу В, по внешнему виду отличается от других компонентов. Внешний вид резистора похож на конденсатор, поэтому их можно отнести к одной категории. У микросхем (класс Б) на поверхности компонентов имеется несколько букв, а поверхность индуктивности (класс А) не содержит символов. Следовательно, нужно классифицировать изображения на конденсаторы, индуктивности и микросхемы. Эти категории изображений будут в дальнейшем использованы в процедуре проверки компонентов.
Рис. 6. Формирование классов изображений
Для классификации различных компонентов используется глубокое обучение. Построение модели осуществляется на основе трех моделей: ResNet-18, ResNet-34 и ResNet-50. ResNet широко используется при классификации изображений и позволяет добиться удовлетворительных результатов. Эти три модели имеют одинаковую структуру, но разные слои. Модель строится помощью набора инструментов машинного обучения. Возьмем в качестве примера ResNet-34 (см. рис. 6). Модель использует функции, извлеченные с помощью набора инструментов ResNet-34 в качестве входных данных небольшой выходной сети, состоящей из двух полностью связанных слоев, которые содержат 128 и три узла соответственно. В качестве функции активации первого полносвязного слоя используется выпрямленная линейная единица (ReLu), что способствует ускорению процесса обучения. В качестве функции потерь используется многопеременная логистическая функция Softmax, а на выходе второго полносвязного слоя формируется вероятность каждого класса. Хотя в нашем наборе данных всего три класса, обученную модель можно использовать для извлечения признаков и распознавания гораздо большего количества классов. Таким образом, данный метод можно использовать для других типов печатных плат, он позволяет классифицировать больше типов компонентов.
ПРОВЕРКА КОМПОНЕНТОВ
Для выполнения процесса проверки компонентов используются три набора данных, полученных после классификации. В частности, необходимо классифицировать компоненты на неправильно оцененные компоненты и неисправные компоненты, которые соответственно представляют собой ложноотрицательные и истинноотрицательные результаты. С этой целью создается индивидуальная модель, которая используется для обучения и тестирования. Чтобы решить проблему переобучения, применяется метод исключения для работы со стандартной нейронной сетью (рис. 7). Процесс проверки включает в себя два этапа.
Рис. 7. Метод отсева (dropout)
Построение модели
Цель построения модели — выявить особенности изображения. Чтобы добиться большей точности и большей скорости, создается модель с меньшим количеством слоев, в отличие от модели, основанной на ResNet-18, ResNet-34 и ResNet-50. Слой свертки с каждой итерацией использует меньший размер ядра от 9 до 3, а в сеть добавляются максимальные слои для понижения выборки выходных данных предыдущего слоя. В качестве функции активации для ускорения процесса обучения по-прежнему используется ReLu. Кроме того, чтобы избежать переобучения, используется метод отсева.
Метод отсева
Чтобы предотвратить проблему переобучения, в модели используется метод отсева (dropout). Метод отсева – это метод, при котором случайно выбираются связи, которые не будут участвовать в обучении на каждой итерации. Это помогает предотвратить переобучение и повысить обобщающую способность.
В полностью связанном слое модели случайным образом выбираются узлы, которые нужно оставить, и растягиваются остальные узлы (см. рис. 7). Для полностью связанных слоев значение скрытого узла hi рассчитывается следующим образом:
h i = φ (x1w1i + x2w2i + x3w3i + x4w4i + b i ), (4)
где φ, x, w – соответственно, функция активации, входной и весовой параметр в сети.
Используя метод исключения, узлы в скрытом слое имеют вероятность исключения pd, которой нужно пренебречь, и вероятность 1 – pd, разделенную на 1 – pd для реализации распределения. pd – это суперпараметр метода исключения. Задается случайная величина ξi, вероятность которой равна 0 и 1 соответственно pd и 1 – pd, а математическое ожидание ξi равно 1 – pd. Значение нового скрытого узла hi можно рассчитать следующим образом:
Математическое ожидание hi можно рассчитать следующим образом:
Можно найти ожидание hi , которое не изменится при использовании метода исключения, что сохраняет стабильность нашей модели. Следовательно, процедура обучения не зависит от частичных узлов, и переобучение поддается контролю или может быть ограничено.
На рис. 7 показано, как узел h3 случайно удаляется и тогда, если сеть зависит от удаленного узла, потери будут очень высокими. Таким образом, после процедуры обучения модель не будет полагаться на несколько определенных узлов, и проблема переобучения может быть уменьшена.
Этапы обучения и тестирования реализуются в специальных алгоритмах с применением метода исключения и без этого метода, с помощью которых сеть глубокого обучения можно должным образом обучить и использовать в процессе оптической инспекции печатных плат с минимальным уровнем ложноотрицательных дефектов.
ЗАКЛЮЧЕНИЕ
В современной электронной промышленности установки автоматической оптической инспекции используются в качестве инструмента контроля для достижения наилучшего качества конечных изделий. При этом одной из главных задач современных систем АОИ является снижение количества ложных срабатываний, при которых компонент неправильно идентифицирован как «неисправный», но является корректно установленным и припаянным. Опытный оператор вынужден выполнять ручную оптическую проверку печатных плат после проверки АОИ. Оператор должен классифицировать компоненты, которые АОИ идентифицирует как «неисправные».
Применение искусственного интеллекта (ИИ) помогает классифицировать дефекты, выявленные на этапе проверки АОИ, на ложноотрицательные и истинноотрицательные. Тем самым достигается основная цель внедрения ИИ – существенное снижение степени вовлеченности оператора в процесс инспекции печатных плат и как результат значительное повышение скорости и качества контроля.
В статье мы рассмотрели вводную теорию применения ИИ в анализе разнородных графических данных и ее практическую реализацию в системах оптической инспекции. Самостоятельно оценить возможности применения искусственного интеллекта в АОИ Maker-Ray можно в демонстрационной зоне компании «Новые Технологии» (https://nt-smt.ru) в Санкт-Петербурге.
- Комментарии