Федеральное государственное автономное образовательное учреждение высшего профессионального образования Национальный исследовательский университет Высшая школа экономики НИУ ВШЭ-Нижний Новгород Факультет информатики, математики и компьютерных наук Выпускная квалификационная работа На тему Глубинное обучение в задачах компьютерного зрения Студент группы 11 ПМИ Груздев Алексей Оценка за работу____________ Руководитель: Д. ф.-м. н, доцент, Золотых Н.Ю. Нижний Новгород 2015 Содержание 1. Введение 1.1. Основные задачи компьютерного зрения 1.2. Методы машинного обучения 1.3. Глубинное обучение и свёрточные нейронные сети 2. Основная часть 2.1. Постановка задачи детектирования объектов 2.2. Обзор существующих методов решения задачи 2.2.1. R-CNN 2.2.2. Multi-Box 2.2.3. Fast R-CNN 2.3. Обзор наборов данных 2.3.1. ImageNet 2014 2.3.2. PASCAL VOC 2012 2.4. Используемые инструменты 2.5. Описание экспериментов и полученные результаты 3. Заключение 4. Список литературы 2 1. Введение В век глобального распространения информационных технологий компьютеры начинают перенимать человеческие способности к распознаванию объектов. Так же как и человеку, компьютеру в процессе распознавания каких-либо объектов необходимо опираться на предыдущий опыт. Информацию необходимо накапливать постоянно, что сказывается на времени ее обработки. В отличие от человеческого мозга, не каждый компьютер способен за приемлемое время обработать необходимый для распознавания объем информации. Компьютерное зрение – область науки, направленная на извлечение и последующее использование информации, полученной из изображений. Первоначальной задачей компьютерного зрения было восстановление пространственной структуры объекта (3D) по плоским изображениям (2D). Затем, данная задача была расширена в сторону анализа состояния объекта по изображениям. Компьютерное зрение решает в какой-то степени обратную задачу компьютерной графики. Если компьютерная графика пытается отобразить объект реального мира на изображениях, то компьютерное зрение выполняет обратную функцию: по изображениям объекта, восстановить сам объект или, в зависимости от задачи, его свойства или действия. Данная область тесно связана с такими дисциплинами как распознавание образов, обработка изображений, машинное зрение и фотограмметрия. Важной особенностью компьютерного зрения является необходимость научить машину обучаться, то есть принимать решения на основании предыдущего опыта. От того, на каком количестве объектов машина будет обучена (то есть, какой опыт она накопит), напрямую зависит качество выданного ей результата. Несмотря на сложность проблем компьютерного зрения, в настоящий момент распознавание различных образов уже занимает немаловажное место в повседневной жизни. Например, эта технология активно используется для 3 считывания специальными камерами автомобильных номеров [1], считывания штрих-кодов и QR-кодов [2], распознавания лиц [3] и т.д. В общем и целом, компьютерное зрение используется во множестве областей, таких как медицина (распознавание опухолей, измерение размеров органов и т.д.), промышленность, военное дело (обнаружение вражеских солдат и транспорта, управление ракетами), создание автономных транспортных средств и др. [4] 1.1. Основные задачи компьютерного зрения Компьютерное заключения зрение относительно призвано реальных формировать объектов на информативные основе анализа изображений, полученных с помощью камер или датчиков. Наиболее важными задачами компьютерного зрения являются распознавание, детектирование и сегментация образов, движение, восстановление сцен и изображений. Распознавание призванный образов – это классифицировать раздел и компьютерного идентифицировать зрения, объекты, характеризующиеся определенным набором свойств и признаков. Главная цель задачи классификации или идентификации отнести объект на изображении к одному из заранее известных классов. Задача классификации достаточно хорошо изучена, и существуют методы, которые достигают точность классификации выше, чем у человека [5] [6] [38]. В настоящее время, большинство таких методов используют различные модификации сверточных нейронных сетей для создания точных классификаторов.[7][8] Детектирование – еще один раздел компьютерного зрения, который предназначен для детектирования объектов на изображении. Отличие задачи детектирования от классификации заключается в том, что детектор не только определяет, к какому классу относится объект, но и 4 дает его точное местоположение на изображении. Например, применительно к задаче обработки людей на фотографии: детектор определит, где лица расположены на фотографии, в то время как классификатор может лишь сказать, что на фотографии присутствуют люди. [9] Сегментация – это задача компьютерного зрения разделить изображение на несколько частей по заданным правилам. Например, в задаче распознавания лиц на фотографии будет не только определено их точное количество, но и указано их расположение на изображении. Сегментация позволяет уточнить результаты детектирования и иногда может быть использована вместо него. Сегментацией можно назвать попиксельную классификацию изображения. [10] Движение – раздел компьютерного зрения, в котором некоторая последовательность изображений должна быть обработана с целью определения скорости каждой точки. Типичной задачей этого раздела является слежение за каким-либо объектом (например, человеком или транспортным средством). [11] [12] Восстановление сцены - задача, которая заключается в воссоздании трехмерного изображения на основе нескольких двухмерных, снятых с определенных ракурсов. [13] Восстановление изображения – задача компьютерного зрения, занимающаяся удалением шума с изображения (например, обработка размытых фотографий). [14] 1.2. Методы машинного обучения Машинное обучение — процесс, в результате которого машина (компьютер) способна показывать поведение, которое в нее не было явно заложено (запрограммировано). [15] В большинстве задач компьютерного зрения нельзя обойтись без применения методов машинного обучения. Машинное обучение является 5 одной из областей искусственного интеллекта. Методы данной области позволяют извлекать знания из данных с последующим их переиспользованием для новых данных. Несмотря на то, что компьютерное зрение является областью относительно новой, существует множество алгоритмов обучения. Их принято классифицировать следующим образом: Обучение с учителем (supervised learning) – метод обучения, в ходе которого происходит анализ пар типа «стимул – реакция», называемых так же обучающей выборкой. Результатом такого анализа будет являться алгоритм, способный дать точный ответ для каждого объекта. При этом входные данные (отдельные компоненты обучающей выборки) могут иметь разную структуру: - Признаковое описание – каждый объект характеризуется набором определенных признаков. - Матрица расстояний – каждый объект характеризуется расстояниями до всех остальных объектов выборки. - Временной ряд – каждый объект характеризуется набором определенных признаков в определенный момент времени. - Изображение - Видеоряд Обучение без учителя или самообучение (unsupervised learning) – метод машинного обучения, при котором система обучается спонтанно, и который не требует какого-либо вмешательства со стороны оператора. В этом случае алгоритм сам разбивает все имеющиеся объекты на некие подгруппы объектов, максимально схожих между собой и максимально отличающихся от объектов других подгрупп (в случае кластеризации). При этом объекты так же могут характеризоваться набором расстояний. 6 признаков или матрицей Нейронная сеть – один из методов машинного обучения, основанный на идее биологических нейронных сетей (центральная нервная система у животных, в частности человеческий мозг).[16] Нейронная ориентированный сеть (или искусственная граф, вершинам которого нейронная соответствуют сеть — функции (функции активации), а каждой входящей в вершину дуге (синапсу) — ее аргумент. Рис.1 Нейрон 1.3. Глубинное обучение и сверточные нейронные сети Глубинное обучение (deep learning) является подобластью машинного обучения, при котором настройке подвергаются многоуровневые нейронные сети – сети с большим количеством слоев, то есть с большой глубиной. Глубинное обучение отличается сложностью обучения многослойных сетей [17], в связи с чем классические методы обучения становятся практически неприменимы. Главная особенность глубинного обучения заключается в том, что архитектура нейронных сетей строится таким образом, чтобы моделировать сложные объекты реального мира с помощью более простых абстракций. 7 Глубинное обучение требует определенного вида нейронных сетей, одним из которых является сверточная нейронная сеть (convolutional neural network). Сверточная нейронная сеть – однонаправленная многослойная нейронная сеть, в которой чередуются слои двух видов – сверточные (convolution) и подвыборочные (subsampling). Сверточные слои предназначены для выполнения операции свертки – умножение каждой точки изображения на матрицу свертки. Подвыборочные слои отвечают за уменьшение размерности карты признаков, что помогает ускорить вычисления. Сверточная нейронная сеть благодаря своей архитектуре способна распознавать объекты со сложной иерархией признаков. В большей степени сверточные нейронные сети применяется в задачах обработки изображений. Архитектура сверточной нейронной сети представлена на рисунке 2. рис.2. Сверточная нейронная сеть Методы глубинного обучения не останавливаются на использовании сверточных нейронных сетей. Наряду с ними, со стороны исследователей растет интерес к рекуррентным нейронным сетям (recurrent neural network).[18][19]. В настоящее время данный вид сетей используется в широком спектре задач: распознавание действий по видеофрагменту, моделирование временных рядов и обработка естественного языка. Также среди методов глубинного обучения существуют методы обучения без учителя. Среди них можно выделить авто-кодировщики, разреженные авто-кодировщики а также ограниченные машины Больцмана. Данные методы чаще всего используются для предобучения нейронных 8 сетей, что помогает сократить время обучения и облегчает настройку многочисленных параметров обучения. рис.3 Автокодировщик 9 2. Основная часть В данной работе в качестве конкретной задачи компьютерного зрения была выбрана задача детектирования объектов. Решение задачи детектирования позволяет качественнее анализировать представленную сцену, а также узнавать взаимное расположение объектов. 2.1. Постановка задачи детектирования объектов Задача детектирования заключается в следующем: необходимо найти на изображении все объекты заданных классов и вычислить их положение в координатах пикселей данного изображения. рис.4 Пример работы детектора Большинство возможных решений задачи детектирования объектов состоят из 3 этапов: 1) Сгенерировать по изображению прямоугольники, в которых возможно будут находиться объекты [35] [36] [37]. 2) Классифицировать объекты в найденных прямоугольниках. 3) Агрегировать полученную информацию и выделить наиболее значимые результаты. 2.2. Обзор существующих подходов к задаче В качестве известных подходов к задаче детектирования рассматриваются: 1) R-CNN [20], 10 2) Multi-Box [21], 3) Fast R-CNN [22]. Все подходы основываются на применении глубоких сверточных нейронных сетей. Наиболее чаще встречающиеся архитектуры нейронных сетей: GoogLeNet [23], Network in Network [24], AlexNet [8]. 2.2.1. R-CNN подход R-CNN подход был предложен Ross Girshick в 2012 году [20]. Суть данного подхода заключается в следующем: На первом этапе используется алгоритм генерации возможных объектов-кандидатов Selective Search [25] С помощью глубокой нейронной сети для каждого из кандидатов извлекаются высокоуровневые признаки (выходы с последних сверточных слоев) Затем тренируется N классификаторов, используя машину опорных векторов (Support Vector Machine). После классификации всех окон-кандидатов результаты уточняются в том смысле, что если некоторые окна перекрываются и при этом классы объектов внутри окон совпадают, то они заменяются одним усредненным окном. рис.5. R-CNN детектор 11 Главный недостаток данного метода заключается в том, что для каждого окна-кандидата необходимо делать прямой проход сети, что занимает значительное время, учитывая, что в среднем для 1 картинки алгоритм Selective Search возвращает 2 000 окон-кандидатов. 2.2.2. 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, но требует значительных инженерных усилий в реализации. 2.2.3. Fast R-CNN подход Данный метод был предложен в 2015 году Ross Girshick [22]. По большому счету, данный подход является преемником обычного R-CNN. Основное достоинство этого метода заключается в том, что в сравнении с RCNN удалось достичь значительного ускорения в тестовом режиме. Данный успех обусловлен тем, что вместо множественных проходов по сети (для каждого окна-кандидата), делается всего 1 проход [27]. Аналогично подходу Multi-Box сеть пытается получить на выходе координаты окаймляющего прямоугольника и значение вероятности. Но также имеется существенное различие между данными подходами. Если в 12 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 соответственно). 2.3. Обзор наборов данных 2.3.1. ImageNet 2014 ImageNet – наиболее известное соревнование в области компьютерного зрения [28] [39]. Набор данных включает в себя 200 категорий объектов 13 среди 516840 изображений. 60658 изображений были собраны с сервиса Flickr. Изображения подобраны с учетом множества различных факторов, таких как размер объекта на изображении, уровень шума и др. Некоторые изображения не содержат объекты ни одной из 200 категорий. Таблица 1. Описание базы данных ImageNet 2014 Вид выборки Количество изображений ImageNet2014 train 456567 ImageNet2014 validation 20121 ImageNet2014 test 40152 рис.7 Изображение из выборки ImageNet 2014 рис.8 Изображение из выборки ImageNet 2014 14 2.3.2. Pascal VOC 2012 База данных Pascal VOC 2012 [29]. Выборка включается в себя 20 категорий объектов. Всего содержит 22531 изображения. Таблица 2. Описание базы данных Pascal VOC 2012 Вид выборки Количество изображений PASCAL VOC 2012 train 5717 PASCAL VOC 2012 validation 5823 PASCAL VOC 2012 test 10991 рис.9 Изображение из PASCAL VOC 2012 2.4. Используемые инструменты Для реализации поставленной задачи были использованы следующие инструменты: 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, Matlab. 15 Преимущества Caffe над другими фреймворками: 1) Удобная архитектура 2) Повторное использование натренированных моделей 3) Быстрая реализация алгоритмов тренировки с помощью технологии CUDA 4) Поддержка со стороны сообщества и разработчиков Caffe позволяет создавать многослойные нейронные сети состоящие из следующих основных слоев: CONVOLUTION – базовый сверточный слой. Обязательными параметрами являются количество фильтров, и размер ядра (высота и ширина каждого из фильтров). Дополнительными параметрами задаются начальная инициализация весов, сдвиг для каждого из фильтров, параметры дополнения изображения. Рис. 10 Свертка POOLING – cубдискретизирующий слой или слой подвыборки, уменьшающий размерность карт признаков. 16 Рис. 11 Субдескритизация INNER PRODUCT – полносвязный слой, в котором каждый нейрон текущего слоя соединен с каждым нейроном из предыдущего слоя. Рис. 12 Полносвязный слой ReLU – Rectified-Linear Unit (активационный слой). Функция активации данного слоя: 𝑥, 𝑥 > 0 𝑓(𝑥) = { 0, 𝑥 ≤ 0 TANH – гиперболический тангенс (активационный слой). Функция активации данного слоя: 𝑓(𝑥) = tanh(𝑥) SIGMOID – логистическая функция активации. Функция активации данного слоя: 17 𝑓(𝑥) = 1 1+ 𝑒 −𝑥 EUCLIDEAN LOSS – квадратичная функция потерь. Реализация квадратичной функции потерь: 1 𝐿(𝑥) = 2𝑁 ∗ 2 ∑𝑁 𝑖=1(𝑥𝑖 − 𝑥𝑖 ) SIGMOID CROSS-ENTROPY LOSS 𝑁 −1 𝐿(𝑥) = ∑[𝑝𝑛 ∗ 𝑙𝑜𝑔(𝑝𝑛′ ) + (1 − 𝑝𝑛 ) ∗ 𝑙𝑜𝑔(1 − 𝑝𝑛′ ) ] 𝑛 𝑖=1 ACCURACY – чаще всего используется в классификации. Считает точность как отношение правильно классифицированных объектов к числу всех объектов в выборке. SOFTMAX – активационный слой. Иногда может быть использован для приведения данных к промежутку [0,1]. 𝑓(𝑥𝑗 ) = LOCAL 𝑒 −𝑥𝑗 ∑𝑖 𝑒 −𝑥𝑖 RESPONSE NORMALIZATION – локально нормализующий слой. Значения каждого пикселя из локальной окрестности преобразуются следующим образом: 𝑥= x 𝛼 (1+(𝑛)∗∑𝑖 𝑥𝑖2 )𝛽 DROPOUT – слой регуляризации. Значение, заданное параметром d (обычно 0.4, 0.5), используется для игнорирования на стадии тренировки количества связей INNER PRODUCT слоя. Caffe также позволяет использовать другие слои, так как модульная архитектура самого фреймворка рассчитана на то, что каждый исследователь 18 может дописать нестандартные слои нейронных сетей и легко подключить их к уже доступным. В качестве алгоритмов оптимизации разработчики Caffe предлагают: 1) Стохастический градиентный спуск [31], 2) Градиентный спуск Нестерова [32] [34], 3) Адаптивный градиентный спуск [33]. 2.5. Описание экспериментов и полученные результаты Исходная нейронная сеть Fast- RCNN подхода: 1) Convolution (96 фильтров, сдвиг – 4, ядро – 11, дополнение – 5), 2) ReLU, 3) Pooling (сдвиг – 2, ядро – 3, дополнение – 1), 4) LRN (размер – 4, альфа – 0.001, бета – 0.75), 5) Convolution (256 фильтров, сдвиг – 1, ядро – 5, дополнение – 2), 6) ReLU, 7) Pooling (сдвиг – 2, ядро – 3, дополнение – 1), 8) LRN (размер – 4, альфа – 0.001, бета – 0.75), 9) Convolution (384 фильтра, сдвиг – 1, ядро – 3, дополнение – 1), 10) ReLU, 11) Convolution (384 фильтра, сдвиг – 1, ядро – 3, дополнение – 1), 12) ReLU, 13) Convolution (256 фильтров, сдвиг – 1, ядро – 3, дополнение – 1), 14) ReLU, 15) RoI Data Layer (ширина = длине = 6, пространственный коэф. = 1/16), 16) INNER PRODUCT (4096 нейронов), 17) ReLU, 18) DropOut (коэффициент регуляризации = 0.5), 18) INNER PRODUCT (FC8 21 нейрон), 19) ReLU, 20) INNER PRODUCT (FC9 84 нейрона), 19 21) Location Loss, 22) Confidence Loss. Для адаптации данной сети к ImageNet 2014 базе данных, изменяется количество нейронов в полностью связных слоях FC8 и FC9: - FC8 – вместо 21 нейрона – 201 (к-во классов + спец. класс для фона), - FC9 – вместо 84 нейронов – 804 (для каждого класса 4 координаты). Задача обучения нейронной сети заключается в минимизации следующей функции потерь: 𝐿 = 𝐿𝑐𝑜𝑛𝑓 + 𝐿𝑙𝑜𝑐 min p – вероятность принадлежности для конкретного прямоугольника к одному из классов 𝑘 ∗ − метка правильного класса 𝑡 ∗ = {𝑡 ∗ 𝑥 , 𝑡 ∗ 𝑦 , 𝑡 ∗ 𝑤 , 𝑡 ∗ ℎ } − значение для искомого прямоугольника 𝑡 = {𝑡𝑥 , 𝑡𝑦 , 𝑡𝑤 , 𝑡ℎ , } − предсказываемое значение для прямоугольника 𝐿𝑙𝑜𝑐 (𝑡, 𝑡 ∗ ) = ∑ 𝑠𝑚𝑜𝑜𝑡ℎ𝐿1 (𝑡𝑖 , 𝑡𝑖∗ ) 𝑖 𝜖{𝑥,𝑦,𝑤,ℎ} 0.5𝑥 2 , 𝑠𝑚𝑜𝑜𝑡ℎ𝐿1 (𝑥) = { |𝑥| − 0.5, |𝑥| < 1 |𝑥| ≥ 1 𝐿𝑐𝑜𝑛𝑓 (𝑝, 𝑘 ∗ ) = −log(𝑝𝑘 ∗ ) Также стоит отметить, что компонента, отвечающая за потерю для координат окаймляющего прямоугольника, считается только в том случае, если класс не совпадает с классом «фон». Далее для оптимизации заданной функции потерь используется вариация алгоритма стохастического градиентного спуска(mini-batch). При этом batch size для данного подхода равен 2. Для базы данных PASCAL VOC 2012 обучение занимает ~ 2.5 эпохи. При этом точность детектирования mAP – mean average precision ~ 68.4%. 20 Точность детектирования для отдельных классов объектов приведена ниже: Таблица 3. mAP для Pascal VOC 2012 Подход Fast R-CNN aero bike bird boat bottle bus car cat chair cow table 82.3 78.4 70.8 52.3 38.7 77.8 71.6 89.3 44.2 73 55 Таблица 4. mAP для Pascal VOC 2012 Подход Fast R-CNN dog horse mbike person plant sheep sofa train tv 87.5 80.5 80.8 72 35.1 68.3 65.7 80.4 64.2 Для сравнения с наиболее известным подходом Multi-Box, данный метод позволяет улучшить mAP на ~ 19% (Multi-Box mAP ~ 49.5%). График функции потерь в зависимости от количества пройденных итераций стохастического градиентного спуска приведен ниже: рис. 13. Функция потерь для PASCAL VOC 2012 Для ImageNet 2014 базы данных функция потерь выглядит следующим образом: 21 рис. 14. Функция потерь для ImageNet 2014 Некоторые результаты детектирования произвольных изображений, найденных по запросу в Google: рис 15. Результаты работы детектора 22 рис 16. Результаты работы детектора 23 3. Заключение Результатом проделанной работы является практическое применение методов глубинного обучения к задачам компьютерного зрения на примере адаптации Fast R-CNN подхода к задаче детектирования объектов базы данных ImageNet 2014. Данный подход показал себя одним из самых лучших на текущий момент по скорости обработки 1 тестового изображения и меры точности детектирования. По сравнению с самым передовым подходом детектирования объектов Multi-Box (mAP 0.43 для ImageNet 2014), Fast RCNN подход показал лучшие результаты (mAP 0.56 для ImageNet 2014). Данный детектор может быть использован для практического применения в промышленности, например для решения задач детектирования в робототехнике, а также систем видеонаблюдения. Настоящая работа может быть продолжена в сторону применения сверточных нейронных сетей к другим задачам компьютерного зрения, например семантической сегментации, локализации или распознавания действий. Кроме того, исследуемый подход, может быть расширен использованием других архитектур нейронных сетей. Изучение нейронных сетей применительно к задачам компьютерного зрения является актуальной задачей, о чем свидетельствуют многочисленные статьи на данную тему. В отличие от задачи классификации, задачи детектирования и сегментации остаются не до конца изученными и поэтому требуют более детального исследования. 24 4. Список литературы 1. Bar-Hen Ron, Johanan Erez. A Real-time vehicle License Plate Recognition (LPR). // VISL, Technion, 2003. 2. R. Cox. QArt Coder. // 2012. 3. Y. Sun, Y. Chen, X. Wang, and X. Tang. Deep learning face representation by joint identification-verification. In Proc. NIPS, 2014. 4. M. o Bertozzi, A. o Broggi, A. a Fascioli. Vision-based intelligent vehicles: State of the art and perspectives. Robotics and Autonomous systems., 32(1):1–16, 2000. 5. LeCun, Y. Learning algorithms for classification: A comparison on handwritten digit recognition. / Y. LeCun, L. Jackel, L. Bottou, C. Cortes, J. S. Denker, H. Drucker, I. Guyon, U. Muller, E. Sackinger, P. Simard, et al. // Neural networks: the statistical mechanics perspective, 261:276. – 1995. 6. Fukushima, K. Neural network model for a mechanism of pattern recognition unaffected by shift in position- neocognitron. / K. Fukushima. // ELECTRON. & COMMUN. JAPAN, 62(10):11–18. – 1979. 7. Chatfield, K. Return of the devil in the details: Delving deep into convolutional nets. / K. Chatfield, K. Simonyan, A. Vedaldi, A. Zisserman. // BMVC. – 2014. 8. Krizhevsky, A. Imagenet classification with deep convolutional neural networks. / A. Krizhevsky, I. Sutskever, G. E. Hinton. // Advances in neural information processing systems. – 2012. – pp. 1097–1105. 9. Felzenszwalb, P.F. Object detection with discriminatively trained partbased models. / P. F. Felzenszwalb, R. B. Girshick, D. McAllester, D. Ramanan. // Pattern Analysis and Machine Intelligence, IEEE Transactions on, 32(9):1627–1645. – 2010. 10. Carreira, J. Semantic segmentation with second-order pooling. / J. Carreira, R. Caseiro, J. Batista, C. Sminchisescu. // ECCV. – 2012. 11. Kristan, M. The visual object tracking VOT2014 challenge results. / M. Kristan // European Conference on Computer Vision Workshop. – 2014. 25 12. Hong, S. Online tracking by learning discriminative saliency map with convolutional neural network. / S. Hong, T. You, S. Kwak, B. Han. // arXiv preprint arXiv:1502.06796. – 2015. 13. Seitz, S. A Comparison and Evaluation of Multi-View Stereo Reconstruction Algorithms. / S. Seitz, B. Curless, J. Diebel, D, Scharstein, R. Szeliski. // CVPR 2006, vol. 1. – 2006. - pp. 519-526. 14. Alvarez, L. Image selective smoothing and edge detection by non- linear diffusion (II). / L. Alvarez, P-L. Lions, J-M. Morel. // SIAM Journal of numerical analysis 29. – 1992. - pp. 845-866. 15. Samuel, A.L. Some studies in Machine Learning Using the Game of Checkers. / A.L. Samuel. – 1959. 16. Gurney, K. An Introduction to Neural Networks London. / K. Gurney. // Routledge. – 1997. 17. Caruana, R. Multitask learning. / R. Caruana. // Machine learning. – 1997. 18. A. Graves and J. Schmidhuber. Framewise phoneme classification with bidirectional LSTM and other neural network architectures. Neural Networks, 18:602–610, 2005. 19. J. Martens, I. Sutskever. Training deep and recurrent networks with hessianfree optimization. In Neural Networks: Tricks of the Trade, pp. 479-535. Springer Berlin Heidelberg, 2012. 20. Girshick R. Rich feature hierarchies for accurate object detection and semantic segmentation. / R. Girshick, J. Donahue, T. Darrell, J. Malik. // Proceedings of the IEEE Conference on Comp. 21. Erhan, D. Scalable object detection using deep neural networks. / D. Erhan, C. Szegedy, A. Toshev, D. Anguelov. // Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on. – IEEE. – 2014. – pp. 2155–2162. 1, 2, 3, 6. 22. Girshick R. Fast R-CNN // 2015 26 23. C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going deeper with convolutions. arXiv preprint arXiv:1409.4842, 2014. 24.Min Lin, Qiang Chen, and Shuicheng Yan. Network in network. CoRR, abs/1312.4400, 2013. 25. Koen E. A. van de Sande, Jasper R. R. Uijlings, Theo Gevers, and Arnold W. M. Smeulders. Segmentation as selective search for object recognition. In Proceedings of the 2011 International Conference on Computer Vision, ICCV ’11, pages 1879–1886, Washington, DC, USA, 2011. IEEE Computer Society. 26. C. Szegedy, S. Reed, D. Anguelov, D. Erhan. Scalable, High-Quality Object Detection. arXiv preprint arXiv: 1412.1441v2, 2015. 27. He, K. Spatial pyramid pooling in deep convolutional networks for visual recognition. / K. He, X. Zhang, S. Ren, J. Sun. // Computer Vision –ECCV 2014. – Springer. – 2014. – pp. 346–361. 2014 28. ImageNet [Электронный ресурс] – Режим (Дата http://www.image-net.org/challenges/LSVRC/2014/ доступа: обращения: 07.03.2015). 29. PASCAL VOC [Электронный ресурс] – Режим доступа: http://pascallin.ecs.soton.ac.uk/ (Дата обращения: 24.12.2014). 30. Caffe [Электронный ресурс] – Режим доступа: http://caffe.berkeleyvision.org/ (Дата обращения: 15.03.2015). 31. Bottou, L. Stochastic Gradient Descent Tricks. Neural Networks: Tricks of the Trade. / L. Bottou. // Springer. - 2012. 32. Nesterov, Y. A Method of Solving a Convex Programming Problem with Convergence Rate O (1⁄ ). / Y. Nesterov. // Soviet Mathematics √k Doklady. - 1983 27 33. Duchi, E. Hazan, and Y. Singer. Adaptive Subgradient Methods for Online Learning and Stochastic Optimization. The Journal of Machine Learning Research, 2011. 34. I. Sutskever, J. Martens, G. Dahl, and G. Hinton. On the Importance of Initialization and Momentum in Deep Learning. Proceedings of the 30th International Conference on Machine Learning, 2013. 35. Hosang, J. How good are detection proposals, really? / J. Hosang, R. Benenson, B. Schiele. // arXiv preprint arXiv:1406.6962. – 2014. 36. Krahenbuhl, P. Geodesic object proposals. / P. Krahenbuhl, V. Koltun. // Computer Vision–ECCV 2014. – Springer. – 2014. – pp. 725–739. 37. Manen, S. Prime object proposals with randomized prim’s algorithm. / S. Manen, M. Guillaumin, L. V. Gool. // Computer Vision (ICCV), 2013 IEEE International Conference on. – IEEE. – 2013. – pp. 2536–2543. 38. Ouyang, V. Deepid-net: multi-stage and deformable deep convolutional neural networks for object detection. / W. Ouyang, P. Luo, X. Zeng, S. Qiu, Y. Tian, H. Li, S. Yang, Z. Wang, Y. Xiong, C. Qian, et al. // arXiv preprint arXiv:1409.3505. – 2014. 39. Russakovsky, O. Imagenet large scale visual recognition challenge. / O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, et al. // 2014. 28