Введение 3
1 Обзор алгоритмов объединения и позднего обнаружения 7
1.1 Алгоритмы обнаружения 7
1.1.1 Faster R-CNN 8
1.1.2 YOLO 9
1.1.3 SSD 10
1.1.4 DeNet 11
1.2 Алгоритмы позднего объединения 12
1.2.1 Dynamic Belief Fusion 12
1.2.2 Detect2Rank 13
1.2.3 Cascaded Reduction and Growing of Result Sets 15
2 Алгоритм позднего объединения методов обнаружения объектов 19
2.1 Задача 20
2.2 Модель 21
2.3 Алгоритм объединения ограничивающих прямоугольников ... 22
2.4 Формирование объекта-кандидата 22
2.5 Формирование истинной метки 23
2.6 Модель классификации 24
2.7 Архитектура сети 25
2.8 Обучаемые параметры сети 28
2.9 Целевая функция 29
3 Эксперименты 30
3.1 Бинарная классификация 31
3.1.1 Параметры обучения 32
3.2 Результаты на Pascal VOC 2012 test 33
Заключение 34
Список литературы 36
Приложение 39
Задача обнаружения объектов на изображении является важной зада¬чей компьютерного зрения. Решение данной задачи применяется во многих областях, например, в робототехнике, в системе охраны для обнаружения опасных объектов, военной промышленности или в анализе медиа-контента в интернет-пространстве. Все поисковые системы используют алгоритмы обнаружения объектов при поиске среди картинок, или сам запрос от пользователя может быть не в виде текста, а изображения. Разработка беспилотных автомобилей также невозможна без применения алгоритмов обнаружения объектов.
Алгоритмы обнаружения объектов принимают на вход изображение и выдают координаты найденных объектов, а также уверенность принадлежности конкретному классу, например, классу ’’собака”. Множество классов заранее задано. Объекты на изображении, принадлежащие одному и тому же классу, могут сильно различаться. Во-первых, это может быть по причине самого процесса создания изображения: изменения в освещении, положении камеры - все это ведет к значительным изменениям в изображении, даже в статической сцене. Во-вторых, различные вариации объекта связаны с изменчивой природой самого объекта, принадлежащего конкретному классу, например, собаки разных пород или автомобили разных марок. Также необходимо помнить о вычислительной сложности алгоритма, поскольку решение данной задачи используется во многих приложениях, где скорость работы алгоритма является приоритетным моментом, например, в системе охраны распознавание объектов на фотографиях и видео в режиме реального времени или в мобильных приложениях, где техническая составляющая не может позволить себе работать со сложными алгоритмами. Следовательно, алгоритм обнаружения должен быть инвариантен к различиям объекта и эффективен с точки зрения вычислений [1].
За последние годы алгоритмы, решающие задачу обнаружения объектов, не только повысили точность обнаружения, но и увеличили скорость алгоритма. Данная область развивается очень активно: за последние 15 лет были представлены такие подходы, как
1. Sliding window [3]: идея заключается в том, чтобы пройти окном различных размеров по всему изображению и проверить, есть ли объект в рассматриваемом фрагменте.
2. Deformable part models [4]: предполагается, что объект состоит из частей, и детектор сначала находит весь объект целиком, а затем, используя его части, улучшает результат.
3. CNN (Convolution Neural Network): за последние 5-6 лет наибольшую популярность получили сверточные нейронные сети, которые применяются в таких алгоритмах, как R-CNN [16], Faster R-CNN [7], YOLO [5], SSD [9], DSSD [10], DeNet [23]. Если первые два алгоритма сначала находят те регионы на изображении, которые могут содержать в себе объект, и лишь потом подают каждый отдельный фрагмент на вход нейронной сети, то YOLO, SSD, DSSD и DeNet отказались от первого шага и не проверяют каждый найденный фрагмент с помощью нейронной сети. Принцип их работы заключается в том, что нейронная сеть получает все изображение целиком, что в конечном итоге увеличило скорость алгоритма.
Отдельный интерес представляют алгоритмы по объединению детекторов. Несмотря на то что существует большое количество алгоритмов по объединению результатов классификаторов, они не могут быть непосредственно применены к задаче по объединению детекторов. Существуют такие подходы по объединению, как теорема Байеса, теория доказательства Демпстера- Шафера [11], на которой основан алгоритм DBF [12], Detect2Rank [13], Cascaded Reduction and Growing of Result Sets [14]. При объединении детекторов не важно, как они устроены, так как алгоритм работает только с полученными результатами.
Метод Cascaded Reduction and Growing of Result Sets строит каскад детекторов на основе объединения или пересечения результатов алгоритмов по обнаружению объектов таким образом, чтобы получить минимальное значение целевой функции. По тому правилу, при котором было получено наименьшее значение целевой функции, будет сформирован результат ансамбля.
Алгоритм Detect2Rank компенсирует работу одного детектора другим. Находит те объекты, которые один детектор пропустил, а другой нашел. Результаты алгоритмов ранжируются: ограничивающие прямоугольники, которые имеют верное расположение и содержат в себе правильно классифицированный объект, получают более высокий вес, чем те, которые не совпадают с верным расположением. Это позволяет сохранить сильные стороны детекторов и получить более устойчивый ансамбль детекторов.
Dynamic Belief Fusion ранжирует все обнаружения в зависимости от того, какое количество объектов обнаружил каждый детектор, а также путем анализа кривой Precision-Recall (PR-кривая) [15] каждого детектора. Вычисляет ’’массы” гипотез, относящиеся к объединению детекторов, и на основе вычисленных вероятностей объединяет результаты детекторов.
Представляет собой интерес объединение результатов детекторов с помощью нейронной сети, которая учитывала бы особенности каждого детектора. Магистерская диссертация посвящена разработке и реализации алгоритма позднего объединения результатов методов обнаружения объектов для современных детекторов, основанных на глубоких нейронных сетях.
Результаты детекторов, объединенных в ансамбль, необходимо консолидировать в один итоговый результат. Каждый детектор возвращает обнаруженные на изображении ограничивающие прямоугольники и соответствующие им вектора значений уверенности принадлежности объекта некоторому классу.
Алгоритм обнаружения объектов у каждого детектора свой, поэтому детекторы по-разному срабатывают на те или иные объекты. На рисунке 1 видно, как три разных детектора - Faster R-CNN, SSD, DeNet - обнаружили один и тот же объект на одном и том же изображении.
Если учитывать особенности каждого детектора, то можно более точно формировать предсказания, например, один детектор способен хорошо обнаруживать класс ’’собака” - детектор имеет высокий Precision [15], то стоит ему доверять, когда он присвоил объекту-кандидату рассматриваемый класс, нежели другим детекторам, которые неуверенно распознают класс ”собака”. Противоположный случай, если детектор уверенно говорит об отсутствии на изображении рассматриваемого класса - детектор имеет высокий Recall [15], то объектов данного класса ожидать не стоит.
Для получения объединенных предсказаний, которые наиболее приближены к истинным, предлагается использовать нейронную сеть, которая смогла бы учитывать особенности каждого детектора.
В данной работе был разработан и реализован алгоритм позднего объединения результатов методов обнаружения объектов, основанных на глубоких сверточных нейронных сетях. Существующие алгоритмы позднего объединения показали, что выявления особенностей каждого детектора помогают получать более точные предсказания. Именно эта идея легла в основу разработанного алгоритма на основе нейронной сети. На сегодняшний день нейронные сети набирают все больше популярности, и класс решаемых ими задач расширяется. Это подтолкнуло исследование в сторону использования нейронной сети для поиска оптимальных параметров модели, которая решает поставленную задачу.
В ходе работы были реализованы архитектуры нейронных сетей для бинарной классификации, а также целевая функция Max Margin. Исследования показали, как параметры нейронный сети влияют на точность алгоритма объединения результатов детекторов. Получение высокой точности нейрон¬ной сети подразумевает регуляризацию сети, подбор значений гиперпараметров на валидации, обработку несбалансированных данных.
Проведенные эксперименты показали, что бинарная классификация является лучшей моделью для объединения результатов детекторов. Данный алгоритм оказался самым точным алгоритмом позднего объединения среди существующих. mAP выше Non-Maximum Suppression на 1.32%. Также была предложена новая архитектура нейронной сети, с помощью которой удалось найти оптимальные значения обучаемых параметров для выявления особенностей каждого детектора.
Алгоритм позднего объединения позволил показать, насколько точнее можно обнаруживать объекты на основе ансамбля детекторов, а использование нейронной сети является новым подходом к позднему объединению методов обнаружения объектов.
[1] Yali Amit, Pedro Felzenszwalb, University of Chicago. Object Detection.
[2] Ekaterina Riabchenko, Ke Chen, and Joni-Kristian Kamarainen. Progressive Visual Object Detection with Positive Training Examples Only.
[3] P. Viola, J. Michael. Computer Vision and Pattern Recognition, Rapid Object Detection using a Boosted Cascade of Simple, 2001.
[4] Pedro F. Felzenszwalb, Ross B. Girshick, David McAllester and Deva Ramanan: ’’Object Detection with Discriminatively Trained Part-Based Models”.
[5] Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: ’You only look once: Unified, real-time object detection”, 2016.
[6] Joseph Redmon, Ali Farhadi: ’YOLO9000: Better, Faster, Stronger”, 2017.
[7] S. Ren, K. He, R. Girshick, and J. Sun: ’Faster R-CNN: Towards14 real-time object detection with region proposal networks”, 2015.
[8] R. Girshick, J. Donahue, T. Darrell, and J. Malik: ’Rich feature hierarchies for accurate object detection and semantic segmentation”, 2014.
[9] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg: ”SSD: Single Shot MultiBox Detector”,
2016.
[10] Cheng-Yang Fu, Wei Liu, Ananth Ranga, Ambrish Tyagi, Alexander C. Berg: ”DSSD : Deconvolutional Single Shot Detector”, 2017.
[11] G. Shafer. A mathematical theory of evidence. Princeton University Press, 1976.
[12] Hyungtae Lee, Heesung Kwon, Ryan M. Robinson, William D. Nothwang, Amar M. Marathe2: "Dynamic Belief Fusion for Object Detection”, 2015.
[13] Sezer Karaoglu, Yang Liu, Theo Gevers: ”Detect2Rank:Combining Object Detectors Using Learning to Rank”, 2014.
[14] Uwe Knauer, Udo Seiffert: ’’Cascaded Reduction and Growing of Result Sets for Combining Object Detectors”, 2013.
[15] Mark Everingham, Luc Van Gool, Christopher K. I. Williams, John Winn, Andrew Zisserman: ”The PASCAL Visual Object Classes (VOC) Challenge”.
[16] R. Girshick, J. Donahue, T. Darrell, and J. Malik: ”Rich feature hierarchies for accurate object detection and semantic segmentation”, 2014.
[17] R. B. Girshick: ”Fast R-CNN”, 2015.
[18] Jan Hosang, Rodrigo Benenson, Max Planck: ’Learning non-maximum suppression”, 2017.
[19] Google Inc.: ’Going deeper with convolutions”, 2014.
[20] Karen Simonyan, Andrew Zisserman: ”Very Deep Convolutional Networks For Large-Scale Image Recognition”, 2015.
[21] Sergey Ioffe, Christian Szegedy: ’Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”, 2015.
[22] Microsoft Research, Kaiming He Xiangyu Zhang Shaoqing Ren Jian Sun:”Deep Residual Learning for Image Recognition”, 2015.
[23] Lachlan Tychsen-Smith, Lars Petersson: ”DeNet: Scalable Real-time Object Detection with Directed Sparse Sampling”, 2017.
[24] Bhattacharyya, A.: ”On a measure of divergence between two statistical populations defined by their probability distributions”, 1943.
[25] Saharon Rosset, Ji Zhu, Trevor Hastie: ’’Margin Maximizing Loss Functions”. Department of Statistics, Stanford University.
[26] Diederik P. Kingma, Jimmy Lei Ba: ”ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION”, 2017.