Каждый инженер по машинному обучению заинтересован в работе с изображениями, поскольку они дают более широкое представление о новых концепциях автоматизации машин и действительно являются очень интересной областью для изучения. В отличие от числовых и категориальных данных, данные изображения имеют большую размерность (2d и 3d), поэтому мы не можем работать с ними так же, как с обычными данными. Сегодня мы бы поняли основные концепции, связанные с классификацией изображений, широко используемые модели машинного обучения для классификации изображений и то, как эти модели учатся на этих изображениях. Прежде чем мы перейдем непосредственно к понятиям, давайте сначала разберемся, что такое изображение.

Изображение

В общем, изображение — это визуальное представление вещи (человека, фрукта и т. д.). Как люди, мы можем смотреть на образ и понимать его. Далее, память нашего мозга может вспомнить любую ситуацию, связанную с изображением, или любое подобное происшествие, но как машина понимает изображение?

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

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

Каждый пиксель изображения представляет значение данных. Чтобы понять это, во-первых, нам нужно знать типы изображений, у нас есть два типа изображений,

  1. Изображение в градациях серого: оно черно-белое.
  2. Изображение RGB: когда изображение использует цвета в спектре RGB,

Р — красный

Г — зеленый

Б — Синий

Изображение RGB

Изображения RGB обычно представляют собой цветные изображения, которые мы видим регулярно. Они представлены массивом из 3 чисел, которые действительно являются тремя цветами (R, G, B) в диапазоне от 0 до 255.

0 — Черный
255 — Белый

Эти три цвета вместе определяют цвет пикселя. Например, рассмотрим приведенные ниже значения,

R, G, B = [0,0,0] ==> означает, что пиксель черный.
R, G, B = [255,255,255] ==> означает, что пиксель белый.
/> RGB = [51,255,51] ==> это означает, что пиксель светло-зеленый.

Эти три цвета называются каналами.

Изображение в оттенках серого

Изображения в градациях серого являются черно-белыми изображениями, в отличие от цветных изображений, изображения в градациях серого имеют только одно число, представляющее цвет в диапазоне от 0 до 255. Это означает, что значение представляет только интенсивность света, а не цвет.

Итак, когда мы говорим об изображении размером 10X10, мы говорим, что высота изображения равна 10, а ширина изображения равна 10. А как насчет цвета?

Как правило, размеры изображения в градациях серого представлены как AxB, где A — высота, а B — ширина. Размеры изображения RGB представлены как AxBxC, где A — высота, B — ширина, а C — цветовые каналы (R, G, B).

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

R,G,B = [100,10,120]==›минимум([100,10,120])==›10

R,G,B = [100,10,120]==›максимум([100,10,120])==›120

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

мин(R,G,B) + макс(R,G,B) / 2.

Это один из методов преобразования изображения RGB в оттенки серого, который называется метод яркости. У нас есть еще один метод, называемый Метод среднего, который включает в себя получение среднего значения каждого пикселя в изображении RGB.

R+G+B/3

Самый распространенный и широко используемый метод преобразования изображения RGB в изображение в градациях серого называется метод яркости. Здесь мы берем средневзвешенное значение каждого цвета в пикселе, предлагаемая формула для этого,

0.3*R + 0.59*G + 0.11*B

Как правило, мы не преобразовываем RGB-изображение в оттенки серого вручную, мы используем такие библиотеки, как OpenCV.

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

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

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

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

  1. Гистограмма ориентированных градиентов (HOG)
  2. Локальный двоичный шаблон (LBP)
  3. Масштабно-инвариантное преобразование признаков (SIFT)
  4. Ускоренные надежные функции (SURF)

Мы рассмотрим каждый из дескрипторов функций во второй части классификации изображений.

Можем ли мы использовать все модели машинного обучения для классификации изображений?

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

  1. Метод опорных векторов (SVM)
  2. Случайный лес (РФ)
  3. Деревья решений (DT)

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

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

  1. Сверточные нейронные сети (CNN)
  2. Предварительно обученные CNN, такие как AlexNet, ImageNet, GoogleNet
  3. Искусственные нейронные сети (ИНС)

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

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

Обо мне

В настоящее время я работаю стажером по науке о данных, чтобы получить некоторые практические знания о том, чему я научился в магистратуре. Я предпочитаю делиться своими знаниями через свои блоги, которые могут быть полезны для начинающих студентов, изучающих науку о данных. Если вам нравится моя работа, пожалуйста, свяжитесь со мной через LinkedIn (Гопи Кришна Дуввада)