заглушки Как работает классификация изображений? - Unite.ИИ
Свяжитесь с нами:
Мастер-класс по ИИ:

AI 101

Как работает классификация изображений?

mm
обновленный on

Как ваш телефон может определить, что это за объект, просто сфотографировав его? Как сайты социальных сетей автоматически отмечают людей на фотографиях? Это достигается за счет распознавания и классификации изображений на базе искусственного интеллекта.

Распознавание и классификация изображений — это то, что делает возможным многие из самых впечатляющих достижений искусственного интеллекта. Но как компьютеры учатся обнаруживать и классифицировать изображения? В этой статье мы рассмотрим общие методы, которые компьютеры используют для интерпретации и обнаружения изображений, а затем рассмотрим некоторые из наиболее популярных методов классификации этих изображений.

Уровень пикселей и классификация на основе объектов

Методы классификации изображений в основном можно разделить на две разные категории: классификация на основе пикселей и объектная классификация.

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

Существуют различные методы классификации, используемые для классификации на основе пикселей. К ним относятся минимальное расстояние до среднего, максимальное правдоподобие и минимальное расстояние Махаланобиса. Эти методы требуют, чтобы были известны средние значения и дисперсии классов, и все они работают, исследуя «расстояние» между средними значениями класса и целевыми пикселями.

Методы классификации на основе пикселей ограничены тем фактом, что они не могут использовать информацию от других соседних пикселей. Напротив, методы классификации на основе объектов могут включать другие пиксели и, следовательно, они также используют пространственную информацию для классификации элементов. Обратите внимание, что «объект» относится только к смежным областям пикселей, а не к тому, есть ли целевой объект в этой области пикселей.

Предварительная обработка данных изображения для обнаружения объектов

Самые последние и надежные системы классификации изображений в основном используют схемы классификации на уровне объектов, и для этих подходов данные изображения должны быть подготовлены особым образом. Объекты/регионы должны быть выбраны и предварительно обработаны.

Прежде чем изображение и объекты/области внутри этого изображения можно будет классифицировать, данные, составляющие это изображение, должны быть интерпретированы компьютером. Изображения необходимо предварительно обработать и подготовить для ввода в алгоритм классификации, и это делается посредством обнаружения объектов. Это важная часть подготовки данных и изображений для обучения классификатора машинного обучения.

Обнаружение объекта осуществляется с помощью разнообразие методов и техник. Начнем с того, что наличие нескольких интересующих объектов или одного интересующего объекта влияет на то, как обрабатывается предварительная обработка изображения. Если есть только один интересующий объект, изображение подвергается локализации изображения. Пиксели, составляющие изображение, имеют числовые значения, которые интерпретируются компьютером и используются для отображения правильных цветов и оттенков. Объект, известный как ограничительная рамка, рисуется вокруг интересующего объекта, что помогает компьютеру узнать, какая часть изображения важна и какие значения пикселей определяют объект. Если на изображении есть несколько представляющих интерес объектов, используется метод, называемый обнаружением объектов, чтобы применить эти ограничивающие рамки ко всем объектам на изображении.

Фото: Адриан Роузброк через Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

Еще одним методом предварительной обработки является сегментация изображения. Функция сегментации изображения заключается в разделении всего изображения на сегменты на основе сходных признаков. Различные области изображения будут иметь одинаковые значения пикселей по сравнению с другими областями изображения, поэтому эти пиксели группируются вместе в маски изображения, которые соответствуют форме и границам соответствующих объектов в изображении. Сегментация изображения помогает компьютеру изолировать особенности изображения, которые помогут ему классифицировать объект, как это делают ограничивающие рамки, но они обеспечивают гораздо более точные метки на уровне пикселей.

После завершения обнаружения объекта или сегментации изображения к рассматриваемым областям применяются метки. Эти метки вместе со значениями пикселей, составляющих объект, передаются в алгоритмы машинного обучения, которые изучают шаблоны, связанные с различными метками.

Алгоритмы машинного обучения

После того, как данные подготовлены и помечены, они передаются в алгоритм машинного обучения, который обучается на данных. Мы рассмотрим некоторые из наиболее распространенных видов машинного обучения. алгоритмы классификации изображений внизу.

K-Ближайшие соседи

K-ближайшие соседи — это алгоритм классификации, который исследует ближайшие обучающие примеры и просматривает их метки, чтобы определить наиболее вероятную метку для данного тестового примера. Когда дело доходит до классификации изображений с использованием KNN, векторы признаков и метки обучающих изображений сохраняются, и только вектор признаков передается в алгоритм во время тестирования. Затем векторы признаков обучения и тестирования сравниваются друг с другом на предмет сходства.

Алгоритмы классификации на основе KNN чрезвычайно просты и довольно легко работают с несколькими классами. Однако KNN вычисляет сходство по всем признакам одинаково. Это означает, что он может быть подвержен неправильной классификации при наличии изображений, где для классификации изображения важно только подмножество признаков.

Поддержка векторных машин

Метод опорных векторов — это метод классификации, который размещает точки в пространстве, а затем проводит разделительные линии между точками, помещая объекты в разные классы в зависимости от того, на какую сторону разделительной плоскости попадают точки. Машины опорных векторов способны выполнять нелинейную классификацию с помощью метода, известного как трюк с ядром. Хотя классификаторы SVM часто очень точны, существенным недостатком классификаторов SVM является то, что они, как правило, ограничены как размером, так и скоростью, при этом скорость снижается по мере увеличения размера.

Многослойные персептроны (нейронные сети)

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

Алгоритмы глубокого обучения (CNN)

Фото: APhex34 через Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)

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

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

Сверточные нейронные сети состоят из двух разных частей. Сверточные слои — это то, что извлекает особенности изображения и преобразует их в формат, который слои нейронной сети могут интерпретировать и изучать. Ранние сверточные слои отвечают за извлечение самых основных элементов изображения, таких как простые линии и границы. Средние сверточные слои начинают захватывать более сложные формы, такие как простые кривые и углы. Более поздние, более глубокие сверточные слои извлекают высокоуровневые характеристики изображения, которые передаются в часть нейронной сети CNN, и это то, что изучает классификатор.

Блогер и программист со специализацией в Машинное обучение и Глубокое обучение темы. Дэниел надеется помочь другим использовать возможности ИИ на благо общества.