Uncategorized

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

Где ваше предприятие находится на кривой внедрения ИИ? Примите участие в нашем опросе AI, чтобы узнать.


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

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

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

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

Одним из ключевых компонентов большинства приложений компьютерного зрения, основанных на глубоком обучении, является сверточная нейронная сеть (CNN). CNN, изобретенные в 1980-х пионером глубокого обучения Яном ЛеКуном, представляют собой тип нейронной сети, которая эффективно фиксирует шаблоны в многомерных пространствах. Это делает CNN особенно хорошими для изображений, хотя они также используются для обработки других типов данных. (Чтобы сосредоточиться на визуальных данных, в этой статье мы будем рассматривать сверточные нейронные сети как двумерные.)

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

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

Визуализация свойств нейронной сети

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

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

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

архитектура сверточной нейронной сети

Вверху: Архитектура сверточной нейронной сети (CNN).

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

Вы всегда можете создать и протестировать собственную сверточную нейронную сеть с нуля. Но большинство исследователей и разработчиков машинного обучения используют одну из нескольких проверенных и проверенных сверточных нейронных сетей, таких как AlexNet, VGG16 и ResNet-50.

Наборы данных обнаружения объектов

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

Выше: сети обнаружения объектов необходимо обучать на точно аннотированных изображениях.

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

Сети обнаружения объектов очень похожи на сети классификации изображений и используют сверточные слои для обнаружения визуальных особенностей. Фактически, большинство сетей обнаружения объектов используют CNN классификации изображений и перепрофилируют ее для обнаружения объектов.

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

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

Вверху: Пример файла аннотации для обучающих данных по обнаружению объектов.

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

Теперь давайте рассмотрим несколько архитектур нейронных сетей с обнаружением объектов.

Модель глубокого обучения R-CNN

Архитектура R-CNN

Вверху: архитектура R-CNN.

Сверточная нейронная сеть на основе регионов (R-CNN) была предложена исследователями искусственного интеллекта из Калифорнийского университета в Беркли в 2014 году. R-CNN состоит из трех ключевых компонентов.

Во-первых, селектор области использует алгоритм «выборочного поиска», который находит области пикселей в изображении, которые могут представлять объекты, также называемые «областями интереса» (RoI). Селектор регионов генерирует около 2000 областей интереса для каждого изображения.

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

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

Обнаружение объекта R-CNN

Вверху: обнаружение объекта с помощью R-CNN.

В исходной статье R-CNN предлагается сверточная нейронная сеть AlexNet для извлечения признаков и машина опорных векторов (SVM) для классификации. Но за годы, прошедшие после публикации статьи, исследователи использовали новые сетевые архитектуры и модели классификации для повышения производительности R-CNN.

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

Быстрый R-CNN

Быстрая архитектура R-CNN

Вверху: архитектура Fast R-CNN.

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

Fast R-CNN получает изображение и набор RoI и возвращает список ограничивающих рамок и классов объектов, обнаруженных в изображении.

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

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

Быстрее R-CNN

быстрее r-cnn

Вверху: более быстрая архитектура R-CNN.

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

Более быстрый R-CNN принимает изображение в качестве входных данных и возвращает список классов объектов и их соответствующих ограничивающих рамок.

Архитектура Faster R-CNN во многом похожа на архитектуру Fast R-CNN. Его главным нововведением является «сеть предложений региона» (RPN), компонент, который берет карты характеристик, созданные сверточной нейронной сетью, и предлагает набор ограничивающих рамок, в которых могут быть расположены объекты. Предложенные регионы затем передаются на уровень объединения RoI. В остальном процесс аналогичен Fast R-CNN.

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

ЙОЛО

YOLO архитектура

Вверху: архитектура YOLO.

В 2016 году исследователи из Вашингтонского университета, Института ИИ Аллена и Facebook AI Research предложили «You Only Look Once» (YOLO), семейство нейронных сетей, которые улучшили скорость и точность обнаружения объектов с помощью глубокого обучения.

Основное улучшение в YOLO – это интеграция всего процесса обнаружения и классификации объектов в единую сеть. Вместо того, чтобы извлекать объекты и регионы по отдельности, YOLO выполняет все за один проход через единую сеть, отсюда и название «You Only Look Once».

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

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

Бен Диксон – инженер-программист и основатель TechTalks, блога, в котором исследуются способы решения и создания проблем с помощью технологий.

Эта история изначально появилась на Bdtechtalks.com. Авторское право 2021 г.

VentureBeat

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

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

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

Стать членом

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button