Сегментация и обнаружение объектов - Часть 3

Семья региональных CNN

Навигация

Это конспекты лекции FAU Глубокое обучение на YouTube. Это полный текст лекции и соответствующие слайды. Надеемся, вам понравится это не меньше, чем видео. Конечно, эта стенограмма была создана с помощью методов глубокого обучения в значительной степени автоматически, и были внесены лишь незначительные изменения вручную. "Попробуй сам!" Если вы заметили ошибки, сообщите нам об этом!

использованная литература

Предыдущая лекция / Посмотрите это видео / Верхний уровень / Следующая лекция

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

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

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

На самом деле это то, в чем у нас уже есть долгая история различных историй успеха. Одним из самых ранних преемников является алгоритм Виолы и Джонса, который был одним из первых действительно хорошо работающих детекторов лиц. Здесь вы можете увидеть пример. При этом использовались функции Хаара, а затем эти функции Хаара использовались в виде каскада повышения, чтобы очень быстро обнаруживать лица. Итак, он использовал большое количество функций, которые можно вычислить очень эффективно. Затем в каскаде повышения они будут выбирать только те функции, которые с наибольшей вероятностью обнаружат лицо в данной позиции. Затем это было улучшено с помощью так называемой гистограммы ориентированных градиентов и классических методов. У вас всегда было хорошее извлечение признаков плюс некоторая эффективная классификация. В то время машины опорных векторов были очень распространены.

Конечно, есть и подходы на основе нейронных сетей. На самом деле вы можете сделать это довольно легко с предварительно обученным CNN. Итак, вы можете просто использовать подход скользящего окна, а затем обнаруживать каждое возможное окно с помощью CNN. Существуют CNN, предлагающие регионы, такие как RCNN, которые сначала находят интересные области изображений, а затем классифицируют их с помощью нашей CNN. В следующем видео мы поговорим об одноразовых детекторах, которые выполняют совместное обнаружение и классификацию. Я думаю, что одним из самых известных примеров является YOLO - вы посмотрите только один раз - у нас уже был этот пример во введении. Это очень хороший метод, который выполняет все эти подходы к обнаружению в режиме реального времени.

Что ж, в подходах со скользящим окном вы можете просто взять свой предварительно обученный CNN и просто перемещать его по изображению. Когда вы найдете область высокой уверенности, вы можете сказать: «Хорошо. Есть лицо, и я хочу обнаружить это лицо! » Большой недостаток здесь в том, что вам нужно не только распознавать лицо, но и лицо может быть с разным разрешением. Итак, вы хотите повторить этот процесс для нескольких разрешений. Тогда вы уже видите, что обнаружение патчей приведет к появлению большого количества патчей. Придется провести большое количество классификаций. Так что, вероятно, это не тот путь, по которому мы хотим идти. Одним из преимуществ, конечно же, будет то, что нам не нужно тренироваться заново. В этом случае мы можем просто использовать нашу обученную классификационную сеть. Но с вычислительной точки зрения это очень неэффективно, и мы хотим поискать некоторые идеи, как сделать это более эффективно.

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

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

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

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

Итак, на втором этапе - когда у нас есть эти регионы - у нас, по сути, есть сверточная нейронная сеть. Затем, с одной стороны, получается прямоугольная регрессия, которая уточняет ограничивающий прямоугольник. С другой стороны, это также передается как своего рода обучение представлению в машину опорных векторов, которая принимает окончательное решение. Так что это лучше, чем то, что мы видели раньше, в 2013 году, но все еще медленно и не непрерывно. Итак, если мы хотим ускорить это, мы видим, что у нас все еще есть проблемы с RCNN.

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

Итак, что вы делаете, вы передаете все изображение через сеть для создания карт характеристик. Затем вы применяете предложения по регионам к последнему сверточному слою. Следовательно, вы должны изменить их размер, чтобы применить к слою. Вы можете сделать это, потому что вы можете предсказать размер этого конкретного слоя, подсчитав шаги объединения для переформатирования обнаруженных суперпикселей. Классификационная CNN имеет фиксированный размер ввода. Итак, вы используете так называемый пул пространственной пирамиды, чтобы преобразовать его до фиксированного размера с помощью max-pooling. Первоначально это было сделано с тремя разными размерами окон и ступенями. Затем, по сути, у вас есть совместное использование этого вычисления, связанного с изображением, и это дает большую скорость во время вывода. Вы уже можете ускорить вывод в 24 раза до a104. Тем не менее, у вас медленное обучение, которое не является непрерывным.

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

Кроме того, это объединение пространственной пирамиды используется с одной выходной картой. У них есть несколько идей, как лучше отобрать выборку для мини-партий. Вы можете случайным образом выбрать 128 РИ, и если вы это сделаете, то обычно карты функций не пересекаются. Вместо этого вы также можете выполнить иерархическую выборку, которая затем делает выборку из нескольких изображений, но из многих ROI, скажем, 64. Затем вы генерируете большое перекрытие. Вы заменяете машину опорных векторов и регрессию слоем softmax для классификации и слоем регрессии для точной настройки ограничивающей рамки. Это приводит к потере многозадачности, и в итоге обучение проходит в девять раз быстрее, чем RCNN. Но мы все еще не в реальном времени. Таким образом, мы практически непрерывно, не считая предложений по рентабельности инвестиций.

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

Это интегрировано в быструю RCNN. Идея здесь в том, что вы определяете якорные блоки с разными масштабами и соотношениями сторон, обычно с тремя масштабами и тремя соотношениями сторон. Это приводит к эффективному масштабированию. Таким образом, ни размеры изображения, ни размеры фильтра менять не нужно. Вы получаете около 4000 параметров блока плюс 2000 баллов, потому что у вас есть softmax для обнаружения объектов / не объектов.

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

Вы видите, что сам RCNN выполнял этот выборочный поиск. Затем на основе выборочного поиска, в результате которого были получены интересующие области, вы выполняете изменение размера. Вы используете CNN, которая затем обрабатывается машиной опорных векторов, а также выполняете регрессию ограничивающей рамки для уточнения ограничивающих рамок. Итак, быстрая RCNN использует одну CNN для извлечения признаков в полностью сверточном подходе. У вас есть все карты функций, которые создаются за один шаг. У вас по-прежнему есть выборочный поиск, который затем генерирует ROI, и вы можете использовать их в пуле пространственной пирамиды для подпитки ваших полностью связанных слоев. Затем у вас есть заголовок обнаружения ограничивающей рамки и заголовок класса, который выполняет такого рода многозадачное прогнозирование. В более быстром RCNN вы действительно попадаете в сквозную систему. Здесь у вас есть извлечение функции CNN. На основе этих извлеченных функций вы делаете предложения по региону. Впоследствии вы выполняете объединение ROI, а затем у вас есть голова предсказания ограничивающего прямоугольника и голова класса, которая намного быстрее с точки зрения обучения, сквозной и намного быстрее с точки зрения логического вывода.

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

Если вам понравился этот пост, вы можете найти больше эссе здесь, больше образовательных материалов по машинному обучению здесь или взглянуть на нашу Лекцию Глубокое обучение. Я также был бы признателен за подписку на YouTube, Twitter, Facebook или LinkedIn, если вы хотите получать информацию о новых эссе, видео и исследованиях в будущем. Эта статья выпущена под лицензией Creative Commons 4.0 Attribution License и может быть перепечатана и изменена при наличии ссылки. Если вас интересует создание стенограмм видеолекций, попробуйте Автоблог.

[1] Виджай Бадринараянан, Алекс Кендалл и Роберто Чиполла. «Segnet: архитектура глубокого сверточного кодера-декодера для сегментации изображений». В: препринт arXiv arXiv: 1511.00561 (2015). arXiv: 1311.2524.
[2] Сяо Бянь, Сер Нам Лим и Нин Чжоу. «Мультимасштабная полностью сверточная сеть для применения в промышленном контроле». В: Приложения компьютерного зрения (WACV), Зимняя конференция IEEE 2016 г. IEEE. 2016, стр. 1–8.
[3] Лян-Чие Чен, Джордж Папандреу, Ясонас Коккинос и др. «Сегментация семантического изображения с помощью глубоких сверточных сетей и полностью связанных CRF». В: CoRR abs / 1412.7062 (2014). arXiv: 1412.7062.
[4] Лян-Чие Чен, Джордж Папандреу, Ясонас Коккинос и др. «Deeplab: семантическая сегментация изображений с помощью глубоких сверточных сетей, жесткой свертки и полностью связанных crfs». В: препринт arXiv arXiv: 1606.00915 (2016).
[5] С. Рен, К. Хе, Р. Гиршик и др. «Более быстрый R-CNN: на пути к обнаружению объектов в реальном времени с помощью региональных сетей». В: т. 39. 6. июнь 2017, стр. 1137–1149.
[6] Р. Гиршик. «Быстрый R-CNN». В: Международная конференция IEEE по компьютерному зрению (ICCV), 2015 г. Декабрь 2015 г., стр. 1440–1448.
[7] Цунг-И Лин, Прия Гоял, Росс Гиршик и др. «Потеря фокуса при обнаружении плотных объектов». В: препринт arXiv arXiv: 1708.02002 (2017).
[8] Альберто Гарсиа-Гарсия, Серджио Ортс-Эсколано, Серджиу Опреа и др. «Обзор методов глубокого обучения, применяемых к семантической сегментации». В: препринт arXiv arXiv: 1704.06857 (2017).
[9] Бхарат Харихаран, Пабло Арбелаес, Росс Гиршик и др. «Одновременное обнаружение и сегментация». В: Европейская конференция по компьютерному зрению. Springer. 2014, стр. 297–312.
[10] Кайминг Хе, Джорджия Гкиоксари, Петр Доллар и др. «Маска R-CNN». В: CoRR abs / 1703.06870 (2017). arXiv: 1703.06870.
[11] Н. Далал и Б. Триггс. «Гистограммы ориентированных градиентов для обнаружения человека». В: 2005 Конференция компьютерного общества IEEE по компьютерному зрению и распознаванию образов Vol. 1. июнь 2005 г., 886–893 т. 1.
[12] Джонатан Хуанг, Вивек Ратод, Чен Сун и др. «Компромисс между скоростью и точностью для современных детекторов сверточных объектов». В: CoRR abs / 1611.10012 (2016). arXiv: 1611.10012.
[13] Джонатан Лонг, Эван Шелхамер и Тревор Даррелл. «Полностью сверточные сети для семантической сегментации». В: Материалы конференции IEEE по компьютерному зрению и распознаванию образов. 2015, стр. 3431–3440.
[14] Полин Люк, Камилла Купри, Сумит Чинтала и др. «Семантическая сегментация с использованием состязательных сетей». В: препринт arXiv arXiv: 1611.08408 (2016).
[15] Кристиан Сегеди, Скотт Э. Рид, Думитру Эрхан и др. «Масштабируемое высококачественное обнаружение объектов». В: CoRR abs / 1412.1441 (2014). arXiv: 1412.1441.
[16] Хён У Но, Сын Хун Хон и Бохён Хан. «Обучающаяся деконволюционная сеть для семантической сегментации». В: Материалы Международной конференции IEEE по компьютерному зрению. 2015, стр. 1520–1528.
[17] Адам Пашке, Абхишек Чауразия, Сангпил Ким и др. «Enet: архитектура глубокой нейронной сети для семантической сегментации в реальном времени». В: препринт arXiv arXiv: 1606.02147 (2016).
[18] Педро О Пиньейру, Ронан Коллобер и Петр Доллар. «Учимся сегментировать кандидатов в объекты». В кн .: Достижения в системах обработки нейронной информации. 2015, стр. 1990–1998.
[19] Педро О Пиньейро, Цунг-И Лин, Ронан Коллобер и др. «Учимся уточнять сегменты объекта». В: Европейская конференция по компьютерному зрению. Springer. 2016, с. 75–91.
[20] Росс Б. Гиршик, Джефф Донахью, Тревор Даррелл и др. «Богатые иерархии функций для точного обнаружения объектов и семантической сегментации». В: CoRR abs / 1311.2524 (2013). arXiv: 1311.2524.
[21] Олаф Роннебергер, Филипп Фишер и Томас Брокс. «U-net: сверточные сети для сегментации биомедицинских изображений». В: MICCAI. Springer. 2015, с. 234–241.
[22] Каймин Хэ, Сяньюй Чжан, Шаоцин Рен и др. «Объединение пространственных пирамид в глубоких сверточных сетях для визуального распознавания». В: Компьютерное зрение - ECCV 2014. Чам: Springer International Publishing, 2014, стр. 346–361.
[23] Дж. Р. Р. Уиджлингс, К. Э. А. ван де Санде, Т. Геверс и др. «Выборочный поиск для распознавания объектов». В: Международный журнал компьютерного зрения 104.2 (сентябрь 2013 г.), стр. 154–171.
[24] Вэй Лю, Драгомир Ангуелов, Думитру Эрхан и др. «SSD: детектор MultiBox Single Shot». В: Computer Vision - ECCV 2016. Cham: Springer International Publishing, 2016, pp. 21–37.
[25] П. Виола и М. Джонс. «Быстрое обнаружение объектов с помощью усиленного каскада простых функций». В: Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision Vol. 1. 2001, pp. 511–518.
[26] Дж. Редмон, С. Диввала, Р. Гиршик и др. «Вы только посмотрите один раз: унифицированное обнаружение объектов в реальном времени». В: Конференция IEEE по компьютерному зрению и распознаванию образов (CVPR), 2016 г. Июнь 2016 г., стр. 779–788.
[27] Джозеф Редмон и Али Фархади. «YOLO9000: лучше, быстрее, сильнее». В: CoRR abs / 1612.08242 (2016). arXiv: 1612.08242.
[28] Фишер Ю. и Владлен Колтун. «Многомасштабная агрегация контекста с помощью расширенных сверток». В: препринт arXiv arXiv: 1511.07122 (2015).
[29] Шуай Чжэн, Садип Джаясумана, Бернардино Ромера-Паредес и др. «Условные случайные поля как рекуррентные нейронные сети». В: CoRR abs / 1502.03240 (2015). arXiv: 1502.03240.
[30] Алехандро Ньюэлл, Кайю Ян и Цзя Дэн. «Сложенные сети песочных часов для оценки позы человека». В кн .: Европейская конференция по компьютерному зрению. Springer. 2016. С. 483–499.

Сегментация и обнаружение объектов - Часть 3