Представление различных проблем компьютерного зрения, решаемых с помощью алгоритмов машинного обучения

Вступление

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

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

Классификация

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

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

Наконец, что действительно произвело революцию в компьютерном зрении, так это введение Янном Лекуном сверточных нейронных сетей (CNN) в его модели LeNet, которая, как было доказано, превосходит другие основанные на зрении техники машинного зрения в 2012 году, когда AlexNet была первой моделью на основе CNN, выигравшей знаменитый конкурс ImageNet.

Постановка проблемы

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

В случае использования всего двух классов (например: кошка и нет кошки, текст и фон и т. Д.) Проблема известна как проблема двоичной классификации, для которой последний уровень сети будет содержать 1 нейрон с функцией активации сигмовидной кишки.

А в случае использования более двух классов (например, цифр, животных, транспортных средств и т. Д.) Проблема считается проблемой многоклассовой классификации, для которой последний слой будет содержать n нейроны. (n = Number Of Classes) с функцией активации softmax.

Наборы данных и контрольные показатели

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

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

Во-первых, он используется в качестве эталона для оценки новых сетевых архитектур в рамках ежегодного конкурса, проводимого с 2010 по 2017 год, и до сих пор используется для оценки новых последующих архитектур. Во-вторых, он широко используется для установки предварительно обученных весов других сетей, поскольку этот набор данных настолько вариативен, что может научить сети обнаруживать важные особенности в изображениях, которые можно использовать в других задачах компьютерного зрения.

Есть много других наборов данных для классификации изображений, которые неоднократно использовались в исследованиях, такие как STL-10, CIFAR-10 и CIFAR-100 - аналогично ImageNet, но с меньшим количеством данных и меньшего размера. размеры изображения.

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

Важные модели

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

LeNet5 (ЛеКун и др.)

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

VGG (Симонян, Зиссерман)

Эта сеть показала, что чем глубже сеть, тем большему она может научиться. Его эффективность была доказана в ходе экспериментов с использованием разного количества уровней в сети. Хотя эта сеть сейчас считается довольно маленькой, она все еще может выполнять различные задачи при использовании ImageNet для предварительного обучения (веса уже доступны).

GoogleNet (Google) - он же InceptionNet

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

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

RestNet (Microsoft)

Используя остаточные слои (связь), эта сеть пытается решить проблему глубины - чем глубже сеть, тем сложнее ее обучать. Таким образом, добавляя к сети быстрые соединения, которые пропускают один или несколько уровней, сеть может выполнять сопоставление идентификаторов, что означает, что она не может работать хуже, чем сеть с меньшим количеством уровней. Используя эту технику, они успешно обучили сеть в 8 раз глубже, чем VGG.

MobileNet (Google)

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

Локализация и обнаружение объектов

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

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

Постановка проблемы

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

А для локализации объекта сеть выводит четыре переменных, представляющих ограничивающую рамку, которая может быть (x, y, w, h), где x, y представляет либо центр, либо верхний правый угол ограничивающей рамки.

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

Наборы данных и контрольные показатели

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

Наборы данных COCO, PASCAL и ImageNet считаются основными наборами данных, используемыми для оценки новых архитектур обнаружения объектов. Они состоят из большого количества изображений общих объектов, таких как люди, животные, автомобили, самолеты и т. Д., С аннотациями, описывающими ограничивающие рамки и классы для объектов на изображении. Эти наборы данных также используются для сегментации, которую мы обсудим в следующей части.

Важные модели

Для построения моделей для обнаружения объектов используются разные методы. Некоторые модели основаны на извлечении предложений по регионам и классификации каждого региона по отдельности, другие используют области интереса (ROI) в качестве входных данных для модели, в то время как другие подходы просто используют одноразовую сеть для решения проблемы.

Раздвижное окно (модели деформируемых деталей)

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

R-CNN

Подход R-CNN основан на извлечении предложений по регионам посредством выборочного поиска. Затем каждый регион упаковывается и направляется в CNN, предварительно обученную в ImageNet для извлечения признаков. Наконец, извлеченные признаки направляются в SVM для классификации каждого региона. Этот подход оказался более точным, чем подход со скользящим окном, но процесс вывода занимает больше времени, учитывая отдельные этапы сети.

Улучшения R-CNN

Другие архитектуры, основанные на предложениях регионов, следовали подходу R-CNN. Fast R-CNN имеет лучшую производительность и скорость по сравнению с R-CNN, поскольку он объединяет извлечение признаков и классификацию в одну и ту же CNN. Таким образом, сеть имеет изображение и несколько областей интереса в качестве входных данных и выводит прогноз как для класса, так и для ограничивающей рамки для каждой области интереса.

Более быстрый R-CNN пошел дальше, извлекая ROI через сеть, что снова повысило точность и скорость. Причина в том, что у сети больше свободы для решения проблемы. Веса можно обновлять по всей сети с помощью сквозного обучения, поэтому сеть имеет полный контроль над ROI и извлечением функций.

ЙОЛО

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

Для каждой ячейки есть B5 + C тензоров, представляющих B прогнозы ограничивающей рамки, и массив с длиной C, представляющий класс. Из-за этой детали реализации сеть ограничена числом ближайших объектов, которые она может предсказать, поскольку для каждой ячейки сетки ss она может предсказать только один класс.

SSD

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

Сегментация

Сегментация изображений используется в различных приложениях (медицина, робототехника, анализ спутниковых изображений и т. Д.), Чтобы не только понять расположение объектов на изображениях и видеокадрах, но и более точно отобразить границы между различными объектами на одном изображении.

Постановка проблемы

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

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

Наборы данных и контрольные показатели

Излишне говорить, что создание наборов данных сегментации требует больше всего времени. Опять же, наборы данных COCO и PASCAL - это два самых больших набора данных для сегментации изображений с использованием общих объектов, как упоминалось ранее.

Другие наборы данных созданы для более конкретных приложений. Для медицинских приложений существует множество наборов данных, таких как BraTS и Lits, которые нацелены на такие задачи, как сегментация опухоли в разных частях тела и различные типы заболеваний. Наборы данных, такие как SpaceNet и база данных Agriculture-Vision, состоят из спутниковых снимков, которые могут использоваться в различных приложениях для маркировки крупных объектов, таких как улицы, здания, водоемы и т. Д.

Важные модели

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

U-Net

Архитектура U-Net - это полноценная CNN, которая использует ConvLayers, уменьшая пространственный размер и увеличивая глубину, а затем наоборот, используя транспонированные ConvLayers. Кроме того, важной деталью, влияющей на точность сети, является прямое распространение, используемое между ранними уровнями сети и более поздними уровнями с такими же пространственными размерами, что может предоставлять недостающую информацию из-за уменьшения размера окна.

Маска R-CNN

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

Более сложные задачи

Компьютерное зрение также может решать различные задачи, которые выходят за рамки данной статьи; однако мы предложим простые описания для некоторых примеров других задач.

Генерация данных

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



Адаптация домена

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

Передача нейронного стиля

Еще одно интересное применение CNN - передача нейронного стиля, при котором изображение содержимого и изображение стиля используются для вывода изображения с тем же содержимым, что и изображение содержимого, но со стилем изображения стиля. Используя это, мы можем преобразовать обычные изображения в версию, созданную Ван Гогом или Пикассо.

Заключение

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

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

Являясь независимой редакцией, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и группам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим участникам и не продаем рекламу.

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее создавать лучшие модели машинного обучения.