Постановка задачи детектирования объектов

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

рис.4 Пример работы детектора

Большинство возможных решений задачи детектирования объектов состоят из 3 этапов:

1) Сгенерировать по изображению прямоугольники, в которых возможно будут находиться объекты [35] [36] [37].

2) Классифицировать объекты в найденных прямоугольниках.

3) Агрегировать полученную информацию и выделить наиболее значимые результаты.

Обзор существующих подходов к задаче

В качестве известных подходов к задаче детектирования рассматриваются:

1) R-CNN [20],

2) Multi-Box [21],

3) Fast R-CNN [22].

Все подходы основываются на применении глубоких сверточных нейронных сетей. Наиболее чаще встречающиеся архитектуры нейронных сетей: GoogLeNet [23], Network in Network [24], AlexNet [8].

R-CNN подход

R-CNN подход был предложен Ross Girshick в 2012 году [20]. Суть данного подхода заключается в следующем:

  • На первом этапе используется алгоритм генерации возможных объектов-кандидатов Selective Search [25]
  • С помощью глубокой нейронной сети для каждого из кандидатов извлекаются высокоуровневые признаки (выходы с последних сверточных слоев)
  • Затем тренируется N классификаторов, используя машину опорных векторов (Support Vector Machine).
  • После классификации всех окон-кандидатов результаты уточняются в том смысле, что если некоторые окна перекрываются и при этом классы объектов внутри окон совпадают, то они заменяются одним усредненным окном.

<p>

рис.5. R-CNN детектор

Главный недостаток данного метода заключается в том, что для каждого окна-кандидата необходимо делать прямой проход сети, что занимает значительное время, учитывая, что в среднем для 1 картинки алгоритм Selective Search возвращает 2 000 окон-кандидатов.

Multi-Box подход

Multi-Box подход был предложен в 2013 году исследователями из компании Google: Dumitru Erhan, Christian Szegedy, Alexander Toshev и Dragomir Anguelov. [21] [26]

Суть данного метода заключается в том, что вместо Selective Search алгоритма используется нейронная сеть, которая должна возвращать координаты окон-кандидатов и значение c ? [0,1], которое интерпретируется как вероятность того, что в окне содержится какой-либо объект (любой из заданных категорий).

Для создания полноценного детектора затем используется нейронная сеть GoogLeNet, показавшая отличные результаты в задаче классификации [23].

Данный подход работает значительно быстрее, чем R-CNN, но требует значительных инженерных усилий в реализации.

Fast R-CNN подход

Данный метод был предложен в 2015 году Ross Girshick [22]. По большому счету, данный подход является преемником обычного R-CNN. Основное достоинство этого метода заключается в том, что в сравнении с R-CNN удалось достичь значительного ускорения в тестовом режиме.

Данный успех обусловлен тем, что вместо множественных проходов по сети (для каждого окна-кандидата), делается всего 1 проход [27].

Аналогично подходу Multi-Box сеть пытается получить на выходе координаты окаймляющего прямоугольника и значение вероятности. Но также имеется существенное различие между данными подходами. Если в Multi-Box подходе c ? [0,1] – вероятность того, что внутри прямоугольника находится какой-то из существующих классов, то в данном методе c ? [0,1] вычисляется для каждого их классов.

Скорость обучения Fast – RCNN для PASCAL VOC 2012 по сравнению с обычным R-CNN возросла ~ 9x раз. Скорость работы детектора в тестовом режиме возросла примерно в 213 раз.

рис.6 Fast R-CNN

По сравнению двумя первыми перечисленными детекторами данный подход был применен только к базе данных PASCAL VOC 2012 & PASCAL VOC 2007 с 20 категориями объектов.

Главная цель настоящей работы заключается в адаптации данного метода для базы данных ImageNet 2014. Адаптация включает: выбор по возможности наилучшего количества слоев, типов функций активации, параметров оптимизационного алгоритма и т.д. Напрямую данный подход не может быть использован, в частности, потому, что количество классов в ImageNet & PASCAL VOC существенно различается (200 и 20 соответственно).

Обзор наборов данных

ImageNet 2014

ImageNet – наиболее известное соревнование в области компьютерного зрения [28] [39]. Набор данных включает в себя 200 категорий объектов среди 516840 изображений. 60658 изображений были собраны с сервиса Flickr. Изображения подобраны с учетом множества различных факторов, таких как размер объекта на изображении, уровень шума и др.

Некоторые изображения не содержат объекты ни одной из 200 категорий.

Таблица 1. Описание базы данных ImageNet 2014

Вид выборки Количество изображений
ImageNet2014 train
ImageNet2014 validation
ImageNet2014 test

рис.7 Изображение из выборки ImageNet 2014

рис.8 Изображение из выборки ImageNet 2014

Pascal VOC 2012

База данных Pascal VOC 2012 [29]. Выборка включается в себя 20 категорий объектов. Всего содержит 22531 изображения.

Таблица 2. Описание базы данных Pascal VOC 2012

Вид выборки Количество изображений
PASCAL VOC 2012 train
PASCAL VOC 2012 validation
PASCAL VOC 2012 test

рис.9 Изображение из PASCAL VOC 2012

Используемые инструменты

Для реализации поставленной задачи были использованы следующие инструменты:
1) Caffe

2) C++

3) Python

4) Matlab R2014b

5) QT Creator

Caffe [30] – известная open-source (BSD-2) библиотека глубинного обучения. Caffe разрабатывается и поддерживается BVLC (Berkeley Vision and Learning Center), написан на языке С++ в 2013 году, также имеет обертки для использования из Python, atlab. бертки для использования из спользовался известный фреймворк глубинного обучения Matlab.

Преимущества Caffe над другими фреймворками:

1) Удобная архитектура

2) Повторное использование натренированных моделей

3) Быстрая реализация алгоритмов тренировки с помощью технологии CUDA

4) Поддержка со стороны сообщества и разработчиков

Caffe позволяет создавать многослойные нейронные сети состоящие из следующих основных слоев:

  • CONVOLUTION – базовый сверточный слой. Обязательными параметрами являются количество фильтров, и размер ядра (высота и ширина каждого из фильтров). Дополнительными параметрами задаются начальная инициализация весов, сдвиг для каждого из фильтров, параметры дополнения изображения.

Рис. 10 Свертка

  • POOLING – cубдискретизирующий слой или слой подвыборки, уменьшающий размерность карт признаков.

Рис. 11 Субдескритизация

  • INNER PRODUCT – полносвязный слой, в котором каждый нейрон текущего слоя соединен с каждым нейроном из предыдущего слоя.

Рис. 12 Полносвязный слой

  • ReLU – Rectified-Linear Unit (активационный слой).

Функция активации данного слоя:

  • TANH – гиперболический тангенс (активационный слой).

Функция активации данного слоя:

  • SIGMOID – логистическая функция активации.

Функция активации данного слоя:

  • EUCLIDEAN LOSS – квадратичная функция потерь.

Реализация квадратичной функции потерь:

  • SIGMOID CROSS-ENTROPY LOSS

  • ACCURACY – чаще всего используется в классификации. Считает точность как отношение правильно классифицированных объектов к числу всех объектов в выборке.
  • SOFTMAX – активационный слой. Иногда может быть использован для приведения данных к промежутку [0,1].

  • LOCAL RESPONSE NORMALIZATION – локально нормализующий слой.

Значения каждого пикселя из локальной окрестности преобразуются следующим образом:

  • DROPOUT – слой регуляризации. Значение, заданное параметром d (обычно 0.4, 0.5), используется для игнорирования на стадии тренировки количества связей INNER PRODUCT слоя.

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

В качестве алгоритмов оптимизации разработчики Caffe предлагают:

1) Стохастический градиентный спуск [31],

2) Градиентный спуск Нестерова [32] [34],

3) Адаптивный градиентный спуск [33].

Рандомно подобранные статьи с сайта:

Постановка задачи


Похожие статьи:

  • Объекты задач

    Процессы можно объединять в объекты задач (job objects), что позволяет управлять процессами как группой, устанавливать лимиты ресурсов для всех…

  • Uml. основные виды диаграмм на уровне постановки задачи

    Диаграмма — это просто графическая проекция элементов, составляющих систему. Например, в проекте корпоративной системы управления человеческими ресурсами…

  • Содержательная постановка задачи

    Лабораторная работа №4 по дисциплине: «Языки и технология программирования» тема: «Одномерные массивы и указатели» вариант № 1 Выполнил: ст. гр. БИ-12-02…

admin