В этой статье кратко рассматривается эволюция 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. Краткое описание каждого из шагов приведено ниже:
- Изображение проходит через сверточную сеть.
- Выходные данные первой свёрточной сети передаются в сеть предложений региона (RPN), которая создает различные блоки (области интереса) в зависимости от присутствия любого из объектов, подлежащих обнаружению.
- Якорные блоки отправляются на этап выравнивания области интереса (одна из ключевых функций Mask RCNN для защиты пространственной ориентации), который преобразует области интереса к тому же размеру, который требуется для дальнейшей обработки.
- Эти выходные данные отправляются на полностью связанные слои, которые генерируют результат класса объекта в этой конкретной области и местоположения ограничивающей рамки для объекта.
- Выходные данные этапа выравнивания области интереса параллельно отправляются в 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 и поможет вам в ваших проектах.
Мы хотели бы поблагодарить нашего профессора доктора Джойдипа Гоша, который побудил нас поделиться своими знаниями в блоге.