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

В этой статье описываются уроки проекта, построенного Анишей Аллуру, Элизабет Рид Хит, Манас Рай, Равикиран Бобба, Вишал Рамачандран. Следуйте этому репозиторию GitHub, чтобы увидеть полный код реализации Mask RCNN, например, сегментацию I-materialist Fashion Challenge 2019.

Вступление:

Mask - RCNN - одно из недавних дополнений к региональному семейству CNN, которое было запущено Каймингом Хе и командой из Facebook AI Research (FAIR) в январе 2018 года. Вот ссылка на официальный документ, опубликованный командой. Mask R-CNN обладает высочайшей точностью в задаче сегментации Coco, и после запуска она широко используется для различных конкурсов сегментации экземпляров. Mask R-CNN - это расширение Faster R-CNN, которое создает маску на уровне пикселей для каждого обнаруженного объекта. Это имеет несколько применений в отраслях для подсчета различных объектов, точной оценки положения объектов для операций с использованием роботов-манипуляторов и т. Д. Маска - RCNN реализован для различных проектов компанией Matterport, и их обширная работа была открыта с использованием R-CNN в своем репозитории Github. Наряду с этой улучшенной производительностью, Mask R-CNN включает в себя несколько гиперпараметров, которые необходимо тщательно настраивать в зависимости от приложения. В связи с недавним появлением этих гиперпараметров по этим гиперпараметрам было доступно очень мало литературы, и цель данной статьи - дать обзор специальных гиперпараметров, задействованных в Mask RCNN.

Эволюция Маски R-CNN:

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

Резюме эволюции маски R-CNN

Архитектура Mask R-CNN:

На приведенной выше блок-схеме представлена ​​архитектура Mask R-CNN. Краткое описание каждого из шагов приведено ниже:

  1. Изображение проходит через сверточную сеть.
  2. Выходные данные первой свёрточной сети передаются в сеть предложений региона (RPN), которая создает различные блоки (области интереса) в зависимости от присутствия любого из объектов, подлежащих обнаружению.
  3. Якорные блоки отправляются на этап выравнивания области интереса (одна из ключевых функций Mask RCNN для защиты пространственной ориентации), который преобразует области интереса к тому же размеру, который требуется для дальнейшей обработки.
  4. Эти выходные данные отправляются на полностью связанные слои, которые генерируют результат класса объекта в этой конкретной области и местоположения ограничивающей рамки для объекта.
  5. Выходные данные этапа выравнивания области интереса параллельно отправляются в Conv Nets, чтобы сгенерировать маску пикселей объекта.

Подробное описание шагов в Маске R-CNN см. В этой статье.

Гиперпараметры:

Ниже приведены несколько гиперпараметров, специфичных для Mask R-CNN.

  • Спина кость
  • Train_ROIs_Per_Image
  • Max_GT_Instances
  • Detection_Min_Confidence
  • Image_Min_Dim и Image_Max_Dim
  • Потеря веса: rpn_class_loss
  • Потеря веса: rpn_bbox_loss
  • Потеря веса: mrcnn_class_loss
  • Потеря веса: mrcnn_bbox_loss
  • Потеря веса: mrcnn_mask_loss

Спина:

Backbone - это архитектура Conv Net, которая должна использоваться на первом этапе Mask R-CNN. Доступные варианты выбора магистральных сетей включают ResNet50, ResNet101 и ResNext 101. Этот выбор должен основываться на компромиссе между временем обучения и точностью. ResNet50 займет относительно меньше времени, чем более поздние версии, и имеет несколько предварительно обученных весов с открытым исходным кодом для огромных наборов данных, таких как coco, что может значительно сократить время обучения для различных проектов сегментации экземпляров. ResNet 101 и ResNext 101 потребуют больше времени для обучения (из-за количества слоев), но они имеют тенденцию быть более точными, если не используются предварительно обученные веса и основные параметры, такие как скорость обучения и количество эпох, хорошо настроены.

Идеальным подходом было бы начать с предварительно обученных весов, доступных, например, coco, с ResNet 50, и оценить производительность модели. Это будет работать быстрее и лучше на моделях, которые включают обнаружение объектов реального мира, которые были обучены в наборе данных кокоса. Если точность имеет первостепенное значение и доступна высокая вычислительная мощность, можно изучить возможности ResNet101 и ResNeXt 101.

Train_ROIs_Per_Image

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

Max_GT_Instances:

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

Detection_Min_Confidence:

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

Image_Min_Dim и Image_Max_Dim:

Размер изображения регулируется этими настройками. Настройки по умолчанию изменяют размер изображения до квадратов размером 1024x1024. Можно использовать изображения меньшего размера (512x512), чтобы уменьшить требования к памяти и время обучения. Идеальным подходом было бы обучение всех начальных моделей на изображениях меньшего размера для более быстрого обновления весов и использование больших размеров на заключительном этапе для точной настройки параметров окончательной модели.

Потеря веса:

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

  • Rpn_class_loss: Это соответствует потерям, которые назначаются из-за неправильной классификации якорных ящиков (наличие / отсутствие какого-либо объекта) сетью предложений региона. Это значение следует увеличивать, если модель не обнаруживает несколько объектов на окончательном выходе. Увеличение этого показателя гарантирует, что сеть региональных предложений будет улавливать его.
  • Rpn_bbox_loss: соответствует точности локализации RPN. Это вес, который нужно настроить на случай, если объект обнаружен, но ограничивающая рамка должна быть исправлена.
  • Mrcnn_class_loss: это соответствует потерям, присвоенным неправильной классификации объекта, который присутствует в предложении региона. Это значение следует увеличить, если объект обнаруживается на изображении, но классифицируется неправильно.
  • Mrcnn_bbox_loss: это потери, назначаемые при локализации ограничивающего прямоугольника идентифицированного класса. Он должен быть увеличен, если выполняется правильная классификация объекта, но локализация неточна.
  • Mrcnn_mask_loss: соответствует маскам, созданным на идентифицированных объектах. Если идентификация на уровне пикселей важна, этот вес должен быть увеличен.

Вышеупомянутые гиперпараметры представлены на блок-схеме на следующем рисунке.

Идеальный подход для настройки веса потери Mask R-CNN - начать с базовой модели с весом по умолчанию 1 для каждой из них и оценить производительность модели при проверке, установленной путем визуализации производительности модели на разных изображениях и изучения количество обнаруженных объектов, точность классифицированных объектов, локализация идентифицированных объектов и локализация маски. Затем следует настроить соответствующий параметр, исходя из характеристик модели.

Заключение:

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

Сообщите нам, если у вас есть какие-либо комментарии или предложения. Мы надеемся, что эта статья поможет вам разобраться в параметрах Hyper и поможет вам в ваших проектах.

Мы хотели бы поблагодарить нашего профессора доктора Джойдипа Гоша, который побудил нас поделиться своими знаниями в блоге.