Эксперты по компьютерному зрению из академических кругов и промышленности собрались в Венеции в конце октября на 16-ю Международную конференцию по компьютерному зрению (ICCV 2017). В этом году я посетил ICCV от имени исследовательской группы Onfido. Далее я поделюсь своим опытом участия в конференции, а также сделаю обзор лучших работ этой конференции; а именно Mask R-CNN и Focal Loss.

Начиная с 1987 года Международная конференция по компьютерному зрению (ICCV) зарекомендовала себя как одно из самых важных событий в этой области. 16-й ICCV 2017 проходил в Венеции, Италия, с 22 по 29 октября.

В этом году было подано 2143 действительных материала, что на 26% больше, чем в предыдущем выпуске конференции в 2015 году. Из всех представленных документов было принято в общей сложности 621 доклад (общий уровень принятия 28,9%) с 45 устными презентациями ( 2,09%), 56 статей (2,61%) и 520 плакатов (24,26%).

Как обычно, конференция сопровождалась рядом совместных мероприятий, включая рекордное количество семинаров - 44 (на 63% больше, чем в предыдущем выпуске), 9 учебных семинаров, докторский консорциум, промышленные выставки и демонстрации.

В первый день я посетил учебник по генеративным состязательным сетям, организованный Яном Гудфеллоу. Было много проницательных выступлений Иэна Гудфеллоу, Санджив Арора и Алекси Эфроса, среди прочих. Мне особенно понравился доклад Дэвида Пфау о взаимосвязи между состязательным обучением и обучением с подкреплением.

Во второй части конференции я посетил урок под названием За пределами контролируемого обучения, где были представлены очень интересные доклады Джитендра Малик, Владлен Колтун, Михал Ирани, Алексея Эфроса и других.

Лучшая статья: Mask R-CNN

Лучшая статья была удостоена статьи Kaiming He et al. В их статье под названием Mask R-CNN рассматривается проблема сегментации экземпляров.

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

На высоком уровне Mask R-CNN выполняет сегментацию экземпляров, комбинируя новейшие достижения в области обнаружения объектов и семантической сегментации. Лучшие современные фреймворки для обнаружения объектов основаны на двухэтапном фреймворке Regions with CNNs (R-CNN), предложенном Girshick et al. R-CNN разделяет задачу на два этапа: на первом этапе создается ряд предложений по регионам с использованием процесса, известного как выборочный поиск, который начинается с чрезмерной сегментации входного изображения и объединяет похожие области в предложения по областям объекта (см. Здесь для получения дополнительной информации о выборочном поиске). На втором этапе R-CNN затем классифицирует каждое предложение региона на объект или фон с использованием CNN для извлечения глубоких функций и набора классификаторов SVM для каждого класса. Затем используется регрессор ограничивающего прямоугольника для регрессии нового жесткого ограничивающего прямоугольника для объекта из функций CNN.

Подход R-CNN был позже усовершенствован Гиршиком в статье Fast R-CNN, которая включает в себя несколько улучшений R-CNN для повышения его скорости. Структура R-CNN работает медленно, отчасти потому, что ей необходимо выполнять прямой проход CNN для каждого отдельного предложения региона. Это приводит к тысячам проходов на изображение, но многие из них будут перекрываться, поэтому многие прямые проходы являются избыточными. Вместо этого структура Fast R-CNN выполняет только один проход сверточного извлечения признаков и объединяет функции в рамках каждого предложения региона в вектор признаков фиксированного размера с помощью процесса, известного как RoI Pooling. RoI в этом контексте представляет собой прямоугольное окно в сверточную карту функций. RoI Pooling работает путем разделения окна RoI размером h × w на сетку H × W подокон приблизительного размера h / H × w / W с последующим максимальным объединением значений в каждом подокне. в соответствующую ячейку выходной сетки. Слой RoI Pool - это просто частный случай слоя объединения пространственной пирамиды, используемого в SPPnets, в котором есть только один уровень пирамиды.

Обратите внимание, что объединение рентабельности инвестиций включает в себя квантование реального местоположения рентабельности инвестиций, x, до ближайшего местоположения на грубой сетке, [x]. Аналогичное квантование выполняется при разделении RoI на интервалы. Такое квантование вносит несоответствие между RoI и извлеченными функциями. Это показано на рисунке ниже:

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

Сеть сначала обрабатывает все изображение для создания сверточной карты признаков. Затем для каждого предложения объекта слой RoI Pooling извлекает вектор признаков фиксированной длины из карты признаков. Каждый вектор признаков передается в последовательность полностью связанных слоев, которые в конечном итоге разветвляются на два выходных уровня-близнеца: один, который производит оценки вероятности softmax по всем классам, чтобы заменить SVM в R-CNN, и другой уровень, чтобы регрессировать уточненные ограничивающие прямоугольники непосредственно из те же функции.

Фреймворк Fast R-CNN по-прежнему использует выборочный поиск для поиска предложений по регионам. Это довольно медленный процесс. В Faster R-CNN Рен и др. заменил этот механизм сетью предложений регионов (RPN), которая разделяет сверточные функции полного изображения с сетью обнаружения, что позволяет практически бесплатно предлагать регионы.

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

Ветвь прогнозирования маски предсказывает маску размера m × m из каждого RoI с использованием полностью сверточной сети. Во время обучения потеря многозадачности для каждой выбранной RoI определяется как L = L_cls + L_box + L_mask. Потери классификации L_cls и потери ограничивающего прямоугольника L_box идентичны тем, которые используются Fast R-CNN и Faster R-CNN. Ветвь маски имеет размерный выход K × m × m для каждого RoI, который кодирует K двоичных масок с разрешением m × m, по одной для каждого из K классов. К этому выходному сигналу применяется попиксельный сигмоид, а L_mask определяется как средняя двоичная кросс-энтропийная потеря. Для RoI, связанного с классом наземной истинности k, L_mask определена только для k-й маски. Другие выходы маски не вносят вклад в потери. Это определение потери маски разделяет прогнозирование маски и класса, позволяя сети генерировать маски для каждого класса без конкуренции между классами, в отличие от общей практики применения полностью сверточной сети к семантической сегментации, где маски между классами конкурируют.

Для достижения хороших результатов, например, сегментации, Mask R-CNN также вносит еще одно изменение в архитектуру Faster R-CNN, чтобы гарантировать пиксельное выравнивание масок. Как упоминалось ранее, подходы Fast R-CNN и Faster R-CNN используют RoI Pooling для объединения сверточных функций в рамках каждого предложения региона в вектор функций фиксированного размера, что эффективно приводит к квантованию границ RoI, что приводит к плохим результатам сегментации. Чтобы решить эту проблему, авторы предложили простой слой без квантования, называемый RoI Align, который точно сохраняет точные пространственные местоположения, чтобы заменить слой RoI Pooling. Вместо того, чтобы округлять границы реального значения RoI до ближайшего местоположения на грубой сетке, как это сделано в пуле RoI, метод RoI Align использует билинейную интерполяцию для вычисления значений входных функций в четырех точках с регулярной выборкой в ​​каждом бине RoI, и агрегирует результат (используя максимальное или среднее значение). Таким образом, RoI Align избегает какого-либо квантования местоположений RoI или Bin. Это показано на рисунке ниже:

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

Дополнительные результаты и эксперименты, а также применение Mask R-CNN для других задач, таких как обнаружение ключевых точек человеческого тела, см. В исходной статье.

Лучшая студенческая работа: Focal Loss

Лучшая студенческая работа конференции была также присуждена докладу FAIR. В статье Lin et al. рассматривает обнаружение объекта с помощью одноэтапного метода.

Рассмотренное выше семейство методов обнаружения объектов R-CNN (например, R-CNN, Fast R-CNN и Faster R-CNN) является примерами двухэтапных алгоритмов, в которых классификатор применяется на втором этапе к разреженному набору объектов-кандидатов. локации, созданные на первом этапе. Такие двухэтапные методы неизменно превосходят свои одноступенчатые аналоги, такие как YOLO и SSD, которые применяются для плотной выборки возможных местоположений объектов. Такие одноступенчатые алгоритмы имеют более низкую точность, но потенциально могут быть быстрее и проще в обучении.

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

Они утверждали, что при использовании кросс-энтропийных потерь затраты, связанные с большим количеством «простых» фоновых примеров в обучающем наборе, могут доминировать над общими затратами. Это не будет проблемой для двухступенчатых детекторов, поскольку первая ступень уже отфильтровала бы многие простые фоновые примеры с помощью выборочного поиска (как в R-CNN и Fast R-CNN) или с использованием сети предложений региона, как в Faster Р-CNN. Чтобы решить эту проблему, они предложили добавить член к потерям, который изменяет функцию потерь, так что простые примеры получают значительно меньшие потери по сравнению с более сложными примерами переднего плана. Конкретно, определяя потерю кросс-энтропии как CE (p_t) = - log (pt), где:

и p - оценочная вероятность модели для класса переднего плана, авторы формулируют свои потери как:

α_t в приведенном выше уравнении - это весовой коэффициент для баланса классов переднего плана и фона. Основной вклад статьи - добавление члена (1 - pt) ^ γ в функцию потерь. Для γ ›0 этот член изменяет функцию потерь, так что потери, полученные в хорошо классифицированных выборках (p_t› 0,5), значительно меньше, в то время как потери, полученные в более жестких примерах (p_t ‹0,5), не сильно меняются.

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

В обширных исследованиях абляции авторы показывают, что RetinaNet, обученная с помощью Focal Loss, превосходит аналогичную модель, обученную без нее, и была довольно устойчивой к точным значениям α_t и γ. Кроме того, RetinaNet, обученный с использованием предложенных Focal Loss, смог превзойти все одноступенчатые и двухступенчатые детекторы в задаче обнаружения ограничивающего прямоугольника задачи COCO. Подробности их экспериментов см. В оригинальной статье.

В этом посте были рассмотрены лучшие статьи ICCV 2017. Мы также кратко рассмотрели события последних лет, которые легли в основу работы Mask R-CNN. Таким образом, некоторые выводы можно сделать из коллекции работ, рассмотренных здесь:

  • Совместное использование функций несколькими задачами может привести к лучшим результатам и более быстрому выводу.
  • Многозадачные целевые функции чрезвычайно эффективны, когда несколько задач связаны между собой.
  • Использование правильных операций для данной задачи имеет решающее значение. Хотя RoI Pooling подходит для обнаружения объектов, он не обеспечивает достаточной точности выравнивания для сегментации на уровне пикселей. Таким образом, замена его простой операцией, позволяющей избежать несовпадения, значительно улучшила результаты сегментации в Mask R-CNN.
  • Дисбаланс меток в обучающих данных может привести к значительному снижению производительности. Правильная обработка этого дисбаланса может значительно улучшить производительность.

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