Познакомьтесь с алгоритмами, которые позволяют компьютерам воспринимать

Введение

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

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

Пример

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

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

Алгоритмы

Прежде чем я начну упоминать алгоритмы в компьютерном зрении, я хочу подчеркнуть термин «частота». Частота изображения — это скорость изменения интенсивности. Высокочастотные изображения имеют большое изменение интенсивности. Низкочастотное изображение относительно однородно по яркости или интенсивность меняется медленно. Применяя преобразование Фурье к изображению, мы получаем амплитудный спектр, который дает информацию о частоте изображения. Концентрированная точка в центре изображения в частотной области означает, что в изображении присутствует много низкочастотных компонентов. К высокочастотным компонентам относятся — края, углы, полосы и т. д. Мы знаем, что изображение — это функция x и y f(x,y). Чтобы измерить изменение интенсивности, мы просто берем производную функции f(x,y).

Трезвый фильтр

Оператор Собеля используется в обработке изображений и компьютерном зрении для алгоритмов обнаружения границ. Фильтр создает изображение с подчеркиванием краев. Он вычисляет аппроксимацию наклона/градиента функции интенсивности изображения. В каждом пикселе изображения выходом оператора Собеля является как соответствующий вектор градиента, так и норма этого вектора. Оператор Собеля сворачивает изображение с помощью небольшого целочисленного фильтра в горизонтальном и вертикальном направлениях. Это делает оператор недорогим с точки зрения сложности вычислений. Фильтр Sx обнаруживает края в горизонтальном направлении, а фильтр Sy обнаруживает края в вертикальном направлении. Это фильтр верхних частот.

Усредняющий фильтр

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

Фильтр размытия по Гауссу

Фильтр размытия по Гауссу является фильтром нижних частот и имеет следующие функции:

  1. Сглаживает изображение
  2. Блокирует высокочастотные части изображения
  3. Сохраняет края

Математически, применяя размытие по Гауссу к изображению, мы фактически сворачиваем изображение с функцией Гаусса.

В приведенной выше формуле x — это горизонтальное расстояние от исходной точки, y — вертикальное расстояние от исходной точки, а σ — это стандартное отклонение распределения Гаусса. В двух измерениях формула представляет собой поверхность, профили которой представляют собой концентрические окружности с гауссовым распределением от начальной точки.

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

Осторожный детектор краев

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

  1. Это широко используемый алгоритм точного обнаружения границ.
  2. Отфильтровывает шум с помощью Gaussian Blur
  3. Находит силу и направление краев с помощью фильтра Собеля
  4. Применяет немаксимальное подавление, чтобы изолировать самые сильные края и сделать их тонкими до линии в один пиксель.
  5. Использует гистерезис (метод двойного порога) для изоляции лучших краев

Хаар Каскад

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

  1. Края
  2. Линии
  3. Прямоугольные узоры

Для обнаружения вышеуказанных закономерностей используются следующие признаки:

Сверточные слои

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

Полностью связанные слои вместе с функцией SoftMax в конце классифицируют входящее изображение по одной из категорий, на которых оно обучается. Выходная оценка является вероятностной оценкой в ​​диапазоне от 0 до 1.

Вывод

Обзор наиболее распространенных алгоритмов, используемых в Computer Vision, был рассмотрен в этом блоге вместе с общим конвейером. Эти алгоритмы составляют основу более сложных алгоритмов, таких как SIFT, SURF, ORB и многих других.