Основы ИИ
Как работает классификация изображений?
Как ваш телефон может определить, какой объект на фотографии? Как социальные сети автоматически тегируют людей на фотографиях? Это достигается с помощью системы распознавания и классификации изображений на основе искусственного интеллекта.
Распознавание и классификация изображений – это то, что позволяет компьютерам добиться многих впечатляющих результатов в области искусственного интеллекта. Но как компьютеры учатся обнаруживать и классифицировать изображения? В этой статье мы рассмотрим общие методы, которые компьютеры используют для интерпретации и обнаружения изображений, и затем рассмотрим некоторые из наиболее популярных методов классификации изображений.
Пиксельная классификация vs. Объектная классификация
Техники классификации изображений можно разделить на две основные категории: пиксельная классификация и объектная классификация.
Пиксели – это базовые единицы изображения, и анализ пикселей – это основной способ классификации изображений. Однако алгоритмы классификации могут использовать либо только спектральную информацию внутри отдельных пикселей для классификации изображения, либо учитывать пространственную информацию (ближайшие пиксели) вместе со спектральной информацией. Пиксельные методы классификации используют только спектральную информацию (интенсивность пикселя), в то время как объектные методы классификации учитывают как пиксельную спектральную информацию, так и пространственную информацию.
Существуют различные техники классификации, используемые для пиксельной классификации. Это включает в себя минимальное расстояние до среднего, максимальную вероятность и минимальное расстояние Махаланобиса. Эти методы требуют, чтобы средние значения и дисперсии классов были известны, и они все работают, анализируя “расстояние” между средними значениями классов и целевыми пикселями.
Пиксельные методы классификации ограничены тем, что они не могут использовать информацию из соседних пикселей. В отличие от этого, объектные методы классификации могут включать другие пиксели и, следовательно, также используют пространственную информацию для классификации объектов. Обратите внимание, что “объект” просто относится к контигуальным областям пикселей и не означает, что внутри этой области пикселей есть целевой объект.
Предварительная обработка изображений для обнаружения объектов
Самые современные и надежные системы классификации изображений в основном используют схемы классификации на уровне объектов, и для этих подходов изображения необходимо подготовить определенным образом. Объекты/области необходимо выбрать и предварительно обработать.
Прежде чем изображение и объекты/области внутри этого изображения можно классифицировать, данные, составляющие это изображение, должны быть интерпретированы компьютером. Изображения необходимо предварительно обработать и подготовить для ввода в алгоритм классификации, и это делается с помощью обнаружения объектов. Это является критической частью подготовки данных и подготовки изображений для обучения классификатора с помощью машинного обучения.
Обнаружение объектов осуществляется с помощью различных методов и техник. Во-первых, наличие нескольких объектов интереса или одного объекта интереса влияет на то, как обрабатывается предварительная обработка изображения. Если есть только один объект интереса, изображение проходит локализацию. Пиксели, составляющие изображение, имеют числовые значения, которые интерпретируются компьютером и используются для отображения правильных цветов и оттенков. Объект, называемый ограничивающим прямоугольником, рисуется вокруг объекта интереса, что помогает компьютеру определить, какая часть изображения важна и какие значения пикселей определяют объект. Если в изображении есть несколько объектов интереса, используется техника, называемая обнаружением объектов, для применения этих ограничивающих прямоугольников ко всем объектам внутри изображения.

Фото: Adrian Rosebrock via 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 via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)
Наиболее часто используемый алгоритм классификации изображений в последнее время – это Свёрточная Нейронная Сеть (CNN). CNN – это специализированные версии нейронных сетей, которые объединяют многослойные нейронные сети с особыми слоями, способными извлекать наиболее важные и актуальные особенности для классификации объекта. CNN могут автоматически обнаруживать, генерировать и учиться особенностям изображений. Это значительно снижает необходимость ручного помечания и сегментации изображений для подготовки их к алгоритмам машинного обучения. У них также есть преимущество над сетями MLP, поскольку они могут справляться с не выпуклыми функциями потерь.
Свёрточные Нейронные Сети получили свое название от того, что они создают “свёртки”. CNN работают путем перемещения фильтра над изображением. Вы можете представить это себе как просмотр участков пейзажа через подвижное окно, сосредотачиваясь только на особенностях, видимых через окно в любой момент времени. Фильтр содержит числовые значения, которые умножаются на значения пикселей самих по себе. Результатом является новый кадр, или матрица, полная чисел, представляющих исходное изображение. Этот процесс повторяется для выбранного количества фильтров, и затем кадры объединяются в новое изображение, которое немного меньше и менее сложно, чем исходное изображение. Техника, называемая пулингом, используется для выбора только наиболее важных значений внутри изображения, и цель состоит в том, чтобы свёрточные слои в конечном итоге извлекли только наиболее важные части изображения, которые помогут нейронной сети распознать объекты в изображении.
Свёрточные Нейронные Сети состоят из двух разных частей. Свёрточные слои – это то, что извлекает особенности изображения и преобразует их в формат, который слои нейронной сети могут интерпретировать и учиться. Ранние свёрточные слои отвечают за извлечение наиболее базовых элементов изображения, таких как простые линии и границы. Средние свёрточные слои начинают захватывать более сложные формы, такие как простые кривые и углы. Более поздние, более глубокие свёрточные слои извлекают высокоуровневые особенности изображения, которые вводятся в часть нейронной сети CNN, и это то, что классификатор учится.












