Коротко про Основы Компьютерного зрения в службах ИИ Azure
Вступление
Компьютерное зрение, основная область искусственного интеллекта, включает разработку решений, позволяющих приложениям ИИ интерпретировать и понимать визуальный мир. Хотя компьютеры не обладают биологическими глазами, они способны обрабатывать изображения из различных источников, таких как камеры или цифровые носители. Эта способность позволяет создавать программное обеспечение, имитирующее визуальное восприятие человека.
Обработка изображений
Для компьютера изображение представляет собой массив числовых значений пикселей. Рассмотрим массив который состоит из семи строк и семи столбцов, представляя значения пикселей для изображения размером 7x7 пикселей (так называемое разрешение изображения). Каждый пиксель имеет значение между 0 (черный) и 255 (белый); значения в этом диапазоне представляют оттенки серого. Изображение, представленное этим массивом, выглядит примерно так (увеличенное изображение).

Массив значений пикселей для этого изображения организован двумерно, представляя строки и столбцы (или координаты x и y), определяя прямоугольную сетку значений пикселей. Однослойный массив такого рода обозначает изображение в оттенках серого. Однако на практике цифровые изображения обычно являются многомерными и состоят из трех слоев, известных как каналы, представляющих красные, зеленые и синие (RGB) цветовые оттенки.
Один из распространенных способов выполнения задач обработки изображений - применение фильтров, которые изменяют значения пикселей изображения для создания визуального эффекта. Фильтр определяется одним или несколькими массивами значений пикселей, называемыми ядрами фильтров. Например, вы можете определить фильтр с ядром размером 3x3, как показано в этом примере.
Ядро затем сворачивается по изображению, вычисляя взвешенную сумму для каждого 3x3 участка пикселей и присваивая результат новому изображению. Легче понять, как работает фильтрация, исследуя пошаговый пример.
Сначала мы применяем ядро фильтра к верхнему левому участку изображения. Это включает в себя умножение каждого значения пикселя на соответствующее значение веса в ядре и суммирование результатов.
Результат (-255) становится первым значением в новом массиве. Затем мы перемещаем ядро фильтра на один пиксель вправо и повторяем операцию.
Фильтр проходит по всему изображению, вычисляя новый массив значений. Некоторые из значений могут выходить за пределы диапазона значений пикселей от 0 до 255, поэтому они корректируются, чтобы поместиться в этот диапазон. Из-за формы фильтра внешний край пикселей не учитывается, поэтому применяется значение заполнения (обычно 0). Полученный массив представляет собой новое изображение, на котором фильтр преобразовал исходное изображение. В данном случае фильтр создал эффект выделения краев форм на изображении.

Машинное обучение для компьютерного зрения
Возможность использовать фильтры для применения эффектов к изображениям полезна в задачах обработки изображений, таких как те, которые могут выполняться с помощью программного обеспечения для редактирования изображений. Однако цель компьютерного зрения часто заключается в извлечении смысла или, по крайней мере, в получении оперативных инсайтов изображений, что требует создания моделей машинного обучения, обученных распознавать признаки на основе больших объемов существующих изображений.
Сверточная нейронная сеть (CNN)
Одной из наиболее распространенных архитектур машинного обучения для компьютерного зрения является сверточная нейронная сеть (CNN). CNN использует фильтры для извлечения числовых карт признаков из изображений, которые затем подаются на вход модели глубокого обучения для генерации прогноза метки. Например, в сценарии классификации изображений метка представляет основной объект на изображении (то есть, что изображено на изображении?). Вы можете обучить модель CNN с изображениями различных видов фруктов (таких как яблоки, бананы и апельсины), чтобы она предсказывала тип фрукта на данном изображении.
В ходе процесса обучения CNN ядра фильтров вначале определяются с использованием случайно сгенерированных значений весов. По мере продвижения обучения предсказания модели сравниваются с известными значениями меток, и веса фильтров корректируются для повышения точности. В конечном итоге обученная модель классификации изображений фруктов использует веса фильтров, которые наилучшим образом извлекают признаки, помогающие идентифицировать разные виды фруктов.

- Сеть обучается с использованием изображений с известными метками (например, 0: яблоко, 1: банан или 2: апельсин).
- Одно или несколько слоев фильтров используются для извлечения признаков из каждого изображения во время обхода сети. Эти фильтры начинают с случайно инициализированных весов и формируют массивы числовых значений, известных как карты признаков.
- Карты признаков преобразуются в одномерный массив значений признаков.
- Значения признаков подаются на вход полносвязной нейронной сети.
- Выходной слой нейронной сети использует функцию softmax или аналогичную для генерации результата, содержащего вероятностное значение для каждого возможного класса, например, [0.2, 0.5, 0.3].
Во время обучения предсказанные вероятности сравниваются с фактической меткой класса. Например, если изображение банана принадлежит классу 1, ожидаемый вывод должен быть [0.0, 1.0, 0.0]. Разница между предсказанными и фактическими баллами класса определяет потери модели, и эти потери используются для корректировки весов в полносвязной нейронной сети и ядер фильтрации в слоях извлечения признаков с целью их минимизации.
Этот процесс обучения повторяется в течение нескольких эпох, пока модель не выучит оптимальный набор весов. После этого веса сохраняются, что позволяет модели предсказывать метки для новых изображений с неизвестными классификациями.
Преобразователи и многомодальные модели
Свёрточные нейронные сети (CNN) уже многие годы являются основой решений в области компьютерного зрения. Хотя их основное применение заключается в решении задач классификации изображений, как описано ранее, они также являются основой для более сложных моделей компьютерного зрения. Например, модели обнаружения объектов объединяют слои извлечения признаков CNN с идентификацией областей интереса на изображениях для обнаружения нескольких классов объектов в одном и том же изображении.
Преобразователи
Прогресс в области компьютерного зрения на протяжении десятилетий в значительной степени определяется улучшениями в моделях на основе сверточных нейронных сетей (CNN). Однако в другой области искусственного интеллекта - обработки естественного языка (NLP) - появление другой архитектуры нейронных сетей, называемой трансформером, позволило разработать сложные модели для обработки языка. Трансформеры работают путем обработки огромных объемов данных и кодирования языковых токенов (представляющих отдельные слова или фразы) в виде векторных вложений (массивы числовых значений). Вы можете представить себе вложение как набор измерений, каждое из которых представляет собой какой-то семантический атрибут токена. Вложения создаются таким образом, что токены, часто используемые в одном контексте, находятся ближе друг к другу по мере изменения размерности, чем несвязанные слова.
Приведу простой пример: на следующей диаграмме показаны некоторые слова, закодированные как трехмерные векторы и отображенные в трехмерном пространстве.

Токены с схожими семантическими значениями кодируются близко друг к другу, формируя семантическую языковую модель. Это позволяет создавать продвинутые решения в области обработки естественного языка для таких задач, как анализ текста, перевод, генерация языка и другие.
Многомодальные модели
Успех преобразования как способа создания языковых моделей заставил исследователей в области искусственного интеллекта задуматься, будет ли такой же подход эффективен для обработки изображений. В результате этого были разработаны мульти-модальные модели, в которых модель обучается с использованием большого объема изображений с подписями, без фиксированных меток. Энкодер изображений извлекает признаки изображений на основе значений пикселей и объединяет их с вложениями текста, созданными энкодером языка. Общая модель учитывает взаимосвязь между вложениями токенов естественного языка и признаками изображения, как показано здесь.

