Всем привет. Сегодняшний материал — продолжение цикла статей про ключевые события в развитии архитектур нейросетей. В прошлый раз я рассказал о классификации изображений. Сегодня речь пойдет про сегментацию. Статья охватывает FCN, U‑Net, SegNet, DeepLab, PSPNet, Mask R‑CMM и HRNet.
Содержание статьи
Сегментация изображений — это процесс разделения изображения на различные части или объекты для последующей обработки, анализа и классификации. Сегментация применяется в компьютерном зрении, медицинской визуализации, картографии и других областях. Существует несколько типов сегментации, которые различаются по методу и целям.
Основные виды сегментации изображений
1. Бинарная сегментация (Binary Segmentation)
Это самый простой вид сегментации, в котором изображение делится на два класса — фон и объект.
Цель: выделение объекта на изображении.
Применение: часто используется для простых задач, таких как отделение текста от фона, распознавание силуэтов объектов.
Пример задачи: определение объекта интереса, например, автомобиль на дороге.
2. Мультиклассовая сегментация (Multi-Class Segmentation)
В мультиклассовой сегментации каждый пиксель изображению присваивается один из нескольких классов, которые являются взаимно исключающими.
Цель: классификация всех объектов на изображении с присвоением метки каждому объекту.
Применение: в задачах, где необходимо распознавать несколько типов объектов на одном изображении.
Пример задачи: классификация разных объектов: дороги, реки, здания, леса — на спутниковых изображениях; автомобили, здания, дороги, пешеходы — на снимках городских улиц.
3. Семантическая сегментация (Semantic Segmentation)
Процесс классификации каждого пикселя изображения в один из предопределенных классов.
Цель: каждый пиксель классифицируется как относящийся к определенному классу (например, все пиксели, принадлежащие дорогам, деревьям, автомобилям и т. д.).
Применение: распознавание объектов на уровне категорий.
Пример задачи: определение области, занимаемой автомобилями, зданиями или людьми на изображении.
Особенность: объекты одного класса (например, все машины) считаются одинаковыми, и модель не различает их между собой. Если нужно посчитать количество объектов, то используется инстанс‑сегментация.
4. Инстанс-сегментация (Instance Segmentation)
Другое название — сегментация экземпляров. Более продвинутая форма семантической сегментации, которая не только классифицирует каждый пиксель, но и разделяет разные экземпляры объектов одного класса.
Цель: Разделение объектов одного и того же класса на отдельные экземпляры.
Применение: Инстанс‑сегментация используется в задачах, где важно не только классифицировать объекты, но и распознавать их как отдельные экземпляры, например, в робототехнике, автономных транспортных средствах и медицинской визуализации.
Пример задачи: Распознавание и сегментация отдельных автомобилей на парковке, где каждый автомобиль выделяется как отдельный объект, даже если они относятся к одному классу.
Отличие от семантической сегментации: Семантическая сегментация классифицирует все объекты одного класса одинаково, а инстанс‑сегментация различает между объектами одного и того же класса (например, каждая машина выделена отдельно, а не как общий класс «машины»).
5. Паноптическая сегментация (Panoptic Segmentation)
Паноптическая сегментация объединяет семантическую и инстанс‑сегментацию, где каждый пиксель изображения получает либо метку экземпляра (instance), либо метку класса (семантический фон).
Цель: Комбинированная задача сегментации, в которой модели нужно идентифицировать как объекты (например, машины, пешеходы), так и фон (например, дороги, здания).
Применение: Используется в сложных сценах, где необходимо учитывать и объекты, и фон (например, в системах автономного вождения).
Пример задачи: Полная разметка городской сцены, где на изображении классифицируются и разделяются все объекты (люди, машины), а также фоновые элементы (дорога, здания, небо).
Особенность: В паноптической сегментации каждый пиксель должен быть связан либо с конкретным объектом, либо с фоновым классом.
Сводная таблица видов сегментации
Вид сегментации |
Классификация пикселей |
Разделение экземпляров одного класса |
Применение |
Бинарная сегментация |
Два класса (объект и фон) |
Нет |
Простые задачи выделения объектов |
Мультиклассовая сегментация |
Несколько классов |
Нет |
Распознавание нескольких объектов |
Семантическая сегментация |
Несколько классов |
Нет |
Задачи классификации на уровне классов |
Инстанс‑сегментация |
Несколько классов |
Да |
Распознавание и разделение объектов |
Паноптическая сегментация |
Несколько классов и экземпляров |
Да |
Сложные сцены с объектами и фоном |
Где применяется сегментация
Медицина. Выделения органов, тканей или патологий на медицинских снимках, таких как МРТ, КТ или рентген. Это помогает в автоматической разметке изображений для диагностики заболеваний. Например, с их помощью можно сегментировать опухоли мозга на МРТ или выделять сосуды на снимках, что значительно ускоряет процесс анализа данных и повышает его точность, позволив убрать человеческий фактор.
Автономное вождение. Сегментация используется для определения ключевых объектов на дороге: полос движения, пешеходов, транспортных средств, светофоров и дорожных знаков. Эти данные помогают строить карту окружающей среды, что необходимо для принятия решений автопилотом.
Геоинформатика и работа со спутниковыми снимками. Выделение городских объектов, такие как дороги, здания и парки, для создания детализированных карт. Кроме того, технологии сегментации позволяют анализировать природные зоны, например, леса, воды и поля, для мониторинга окружающей среды. Одним из примеров является отслеживание изменений в лесных массивах или береговой линии.
Промышленность. Сегментация применяется для контроля качества продукции — это включает автоматическое обнаружение дефектов на материалах или деталях. Например, алгоритмы сегментации могут выделять трещины на металлических поверхностях, что упрощает процесс проверки и улучшает надежность производственных линий.
Теперь уделим внимание самим архитектурам. Отметим, что приведенный список далеко не исчерпывающий, поскольку число модификаций постоянно растет, отражая стремительное развитие инженерной мысли. Это позволяет проследить интересную эволюцию подходов к решению задач сегментации.
Fully Convolutional Networks, FCN (2015)
Fully Convolutional Networks (FCN) — это архитектура нейронных сетей, предложенная в 2015 году для решения задачи семантической сегментации изображений. Основная идея FCN заключается в том, чтобы заменить полносвязные (fully connected) слои в традиционных нейронных сетях (используемых для классификации изображений) на сверточные (convolutional) слои, что позволяет модели принимать на вход изображения любого размера и создавать выходные карты сегментации для всего изображения.
Ключевые особенности FCN:
Полностью сверточная архитектура: в отличие от традиционных нейронных сетей, которые содержат полносвязные слои в конце сети (например, AlexNet, VGG), FCN состоит только из сверточных слоев. Это делает сеть более гибкой и позволяет работать с изображениями любого размера, сохраняя пространственные связи между объектами на изображении.
Обработка изображений любого размера: полносвязные слои фиксируют размер входного изображения, но FCN заменяет их сверточными слоями, что позволяет сети получать на вход изображения произвольных размеров. Выходом модели является карта классов, которая имеет такое же пространственное разрешение, как и входное изображение, только с уменьшенным размером из‑за операций свертки и пулинга.
Карта сегментации: вместо одного вектора предсказаний для всего изображения, как в задачах классификации, FCN предсказывает карту сегментации, где каждый пиксель изображения относится к определенному классу (например, «автомобиль», «дорога», «человек»).
Слои деконволюции (Upsampling): в результате использования сверток и пулинга разрешение изображения уменьшается на промежуточных этапах. Чтобы восстановить пространственную информацию до исходного размера изображения, FCN использует слои деконволюции (или upsampling) для увеличения разрешения выходных карт. Эти слои восстанавливают исходный размер, позволяя модели предсказывать классы для каждого пикселя.
Скип‑соединения (Skip Connections): чтобы улучшить качество сегментации, FCN использует скип‑соединения, которые позволяют объединять высокоуровневые признаки (из глубоких слоев сети) с низкоуровневыми (из ранних слоев сети). Это помогает сети учитывать как глобальные, так и локальные признаки при предсказании карты сегментации.
Недостатки FCN:
Ограниченность в детализированной сегментации: хотя скип‑соединения помогают восстанавливать детали, FCN может упускать мелкие объекты на изображении из‑за многократных операций пулинга и сверток.
Ограниченные возможности для многоклассовой сегментации: сложные сцены с множеством объектов и классов могут потребовать более мощных архитектур, таких как U‑Net или DeepLab, для более точного распознавания объектов.
Подробнее
U-Net (2015)
U‑Net — это архитектура нейронных сетей, предложенная в 2015 году для решения задач сегментации изображений, в первую очередь, для медицинской визуализации. Основной особенностью U‑Net является ее симметричная структура, где на этапе «кодирования» свертки постепенно уменьшают размер изображения, а на этапе «декодирования» применяется процесс восстановления исходного разрешения изображения, что позволяет сети эффективно восстанавливать пространственную информацию.
U‑Net получила название благодаря своей U‑образной архитектуре. В отличие от FCN, U‑Net активно использует скип‑соединения (skip connections), которые помогают передавать информацию из ранних слоев к более глубоким, чтобы улучшить качество сегментации, особенно для небольших объектов и мелких деталей.
Основная структура U-Net
1. Энкодер (Contracting Path)
Энкодер выполняет роль сверточной сети, которая извлекает признаки из изображения и постепенно уменьшает пространственное разрешение с помощью операций свертки и пулинга. Каждый блок энкодера состоит из:
Двух последовательных сверточных слоев с нелинейной функцией активации (например, ReLU).
Max Pooling для уменьшения пространственного разрешения.
Количество фильтров увеличивается на каждом уровне по мере сжатия.
Этот этап «сжимает» изображение, извлекая более высокоуровневые абстрактные признаки, подобно классическим сверточным нейронным сетям.
2. Декодер (Expanding Path)
Декодер восстанавливает пространственное разрешение изображения, используя деконволюционные операции (или транспонированные свертки). Каждый блок декодера включает:
Транспонированную свертку (или upsampling), которая увеличивает разрешение изображения.
Конкатенацию (skip connections): на этом этапе передаются признаки из соответствующих уровней энкодера, что позволяет модели восстанавливать мелкие детали.
Две свертки с функцией активации (например, ReLU).
Основная цель декодера — постепенно восстанавливать размер исходного изображения и предсказать классы для каждого пикселя.
3. Skip Connections (Скип-соединения)
Скип‑соединения соединяют соответствующие слои энкодера и декодера, что помогает сохранить информацию из начальных этапов свертки, важную для точной локализации объектов. Эти соединения позволяют передавать как высокоуровневые, так и низкоуровневые признаки, что особенно полезно для распознавания небольших объектов.
Ключевые особенности U-Net:
Симметричная архитектура: U‑Net имеет U‑образную архитектуру, где количество слоев свертки и деконволюции сбалансировано, что обеспечивает восстановление пространственной информации.
Скип‑соединения, которые позволяют передавать признаки с высокоразрешенных уровней энкодера в декодер, помогая сети сохранять мелкие детали объектов и улучшать сегментацию.
Отличная производительность на малых данных: одной из целей U‑Net было использование в медицине, где доступные наборы данных могут быть небольшими. U‑Net достигает высоких результатов даже при наличии ограниченных данных благодаря эффективному использованию данных через скип‑соединения и симметричную структуру.
Способность обрабатывать изображения произвольного размера: U‑Net не требует фиксированного размера изображений, что делает ее гибкой для различных применений.
Недостатки U-Net:
Высокие вычислительные затраты: для обучения U‑Net могут требоваться значительные вычислительные ресурсы, особенно при работе с большими изображениями и сложными задачами.
Сложность восстановления мелких деталей: хотя U‑Net хорошо справляется с сегментацией, для очень мелких объектов или объектов, сильно перекрывающихся с другими, сеть может сталкиваться с трудностями.
Модификации U-Net:
После разработки оригинальной U‑Net было предложено множество модификаций, направленных на улучшение точности и производительности:
3D U‑Net: применяется для сегментации трехмерных данных, таких как медицинские изображения с несколькими срезами (3D‑томография).
Attention U‑Net: включает механизмы внимания (attention), чтобы улучшить сегментацию областей с важной информацией.
ResU‑Net: использует остаточные блоки (ResNet) для улучшения градиентного потока в сети и увеличения точности сегментации.
Подробнее
SegNet (2015)
SegNet — это архитектура сверточной нейронной сети (Convolutional Neural Network, CNN), разработанная для задач семантической сегментации изображений. Она была представлена в 2015 году и разработана для того, чтобы эффективно решать задачи сегментации с относительно низкими вычислительными затратами, особенно для приложений, требующих высоких разрешений изображений.
Основной особенностью SegNet является его подход к декодированию, в котором для восстановления пространственного разрешения используются индексы пула (pooling indices) из соответствующих слоев энкодера. Этот метод помогает улучшить качество сегментации и уменьшить вычислительные затраты по сравнению с другими архитектурами, такими как FCN.
Основная структура SegNet
1. Энкодер
Энкодер в SegNet представляет собой обычную сверточную сеть, которая выполняет функцию извлечения признаков (features) изображения. Он состоит из нескольких последовательных сверточных блоков и операций понижения разрешения (downsampling), также называемых пулингом (Max Pooling). Каждый блок энкодера включает:
Сверточные слои с функциями активации ReLU (Rectified Linear Unit).
Операцию Max Pooling, которая уменьшает пространственное разрешение и сохраняет только наибольшие значения.
Особенность энкодера SegNet заключается в том, что он не просто выполняет Max Pooling, а сохраняет индексы пула (pooling indices) — это места, откуда были взяты максимальные значения при пулинге. Эти индексы передаются в декодер и помогают восстанавливать исходное разрешение изображения с высокой точностью.
Архитектура энкодера SegNet основана на первых 13 сверточных слоях сети VGG16, которая была известна своей эффективностью в задачах классификации изображений.
2. Декодер
Декодер в SegNet — это ключевое отличие от других архитектур, таких как FCN. Основной задачей декодера является восстановление исходного разрешения изображения и получение сегментированной карты с метками для каждого пикселя.
Декодер в SegNet состоит из следующих этапов:
Использование индексов пула (Pooling Indices): в отличие от обычных деконволюционных сетей, где для восстановления разрешения используются операции upsampling (увеличение разрешения), SegNet использует индексы пула, сохраненные на этапе энкодера. Эти индексы позволяют точно восстановить положение важных признаков в исходном изображении.
Неиспользование промежуточных вычислительных данных: SegNet сохраняет индексы пула, но не передает сами карты признаков между энкодером и декодером, что значительно уменьшает объем вычислений и памяти, требуемой для работы сети.
Сверточные слои: после восстановления разрешения используются сверточные операции для того, чтобы улучшить качество сегментации.
3. Классификационный слой
После работы декодера полученная карта сегментации подается на слой классификации, который присваивает каждому пикселю метку соответствующего класса. Число классов задается задачей сегментации.
Недостатки SegNet
Меньшая точность по сравнению с более сложными моделями: несмотря на свою эффективность, SegNet часто уступает по точности более сложным архитектурам, таким как U‑Net, DeepLab или Mask R‑CNN, особенно на сложных сценах с множеством объектов и мелкими деталями.
Зависимость от архитектуры VGG16: SegNet использует архитектуру VGG16 для энкодера, что делает ее несколько ограниченной в плане гибкости по сравнению с современными методами, использующими более мощные архитектуры, такие как ResNet или DenseNet.
Простота декодера: хотя использование индексов пула помогает сократить вычисления, декодер в SegNet менее мощный по сравнению с архитектурами, использующими более сложные способы восстановления, например, с помощью skip‑соединений, как в U‑Net.
Модификации SegNet
Архитектура была модифицирована и улучшена в различных направлениях:
Bayesian SegNet: в этой модификации используются байесовские методы для улучшения устойчивости к шумам и неопределенности в предсказаниях.
Extended SegNet: варианты SegNet с улучшенными энкодерами, например, на основе ResNet или DenseNet, для повышения точности сегментации.
Подробнее
DeepLab (2015)
DeepLab — это семейство архитектур нейронных сетей для семантической сегментации изображений, разработанное исследователями из Google DeepMind. Оно было представлено в нескольких версиях начиная с 2015 года. Основной целью DeepLab является улучшение качества сегментации объектов на изображениях путем точного предсказания классов на уровне каждого пикселя с использованием продвинутых методов обработки изображений, таких как пространственное пирамидальное свертывание (Atrous Spatial Pyramid Pooling, ASPP) и декодирующие модули для восстановления пространственного разрешения.
DeepLab, начиная с первой версии и до DeepLabv3+, добилась значительных успехов в задачах сегментации, таких как выделение объектов на изображениях, обработка сцен в реальном времени и другие задачи, связанные с компьютерным зрением.
Эволюция DeepLab
1. DeepLabv1 (2015)
DeepLabv1 (первая версия DeepLab) использует сверточные нейронные сети (CNN), модифицированные для задач сегментации, путем замены стандартных сверток на «атриусные свертки» (Atrous Convolutions).
Ключевые компоненты DeepLabv1:
Атриусные свертки (Atrous Convolutions): позволяют увеличить поле зрения сверток (receptive field), не уменьшая разрешение карты признаков. Это особенно полезно для задач сегментации, где нужно улавливать объекты разного размера.
CRF (Conditional Random Field) — для постобработки предсказанных карт сегментации для улучшения границ объектов и сглаживания предсказаний.
Недостатки:
Ограниченные возможности для восстановления исходного разрешения изображения из‑за отсутствия явного декодирующего механизма.
2. DeepLabv2 (2016)
DeepLabv2 — улучшение первой версии, где была предложена концепция Atrous Spatial Pyramid Pooling (ASPP). Этот метод использует несколько параллельных атриусных сверток. Ключевые компоненты DeepLabv2:
Atrous Spatial Pyramid Pooling (ASPP): использует несколько параллельных сверток с различными коэффициентами расширения (dilations), чтобы захватывать информацию на разных масштабах. ASPP помогает улучшить сегментацию объектов разного размера на изображениях.
Pre‑trained networks: использование предобученной сети ResNet как базовой сети для извлечения признаков (backbone), что повысило точность модели.
Достоинства:
ASPP эффективно захватывает информацию с разным уровнем детализации, что улучшает качество сегментации.
Использование более мощных backbone сетей, таких как ResNet, для извлечения признаков.
Недостатки:
Все еще сохраняются проблемы с недостаточным восстановлением пространственного разрешения предсказаний.
3. DeepLabv3 (2017)
DeepLabv3 значительно улучшает ASPP, добавляя еще один уровень сверток и глобальное усреднение. В этой версии отказались от CRF, поскольку ASPP и улучшенная сеть для извлечения признаков справляются с задачей без необходимости дополнительной постобработки.
Ключевые компоненты DeepLabv3:
Улучшенный ASPP: включает глобальное усреднение (global pooling), что помогает лучше захватывать контекст изображения.
Атриусные свертки: используются на разных уровнях с различными коэффициентами расширения для захвата объектов разных размеров.
Без CRF: DeepLabv3 показал, что CRF уже не нужен, так как ASPP и саму сеть можно настроить для достижения высокой точности на границах объектов.
Достоинства:
DeepLabv3 демонстрирует лучшие результаты сегментации за счет более продвинутого ASPP.
Отказ от CRF, что упрощает архитектуру и уменьшает вычислительную сложность.
Недостатки:
Несмотря на улучшения, все еще сохраняется проблема недостаточного восстановления разрешения карты сегментации для мелких объектов.
4. DeepLabv3+ (2018)
DeepLabv3+ — это последняя версия в семействе DeepLab, которая представляет собой комбинацию DeepLabv3 и декодирующего механизма, напоминающего U‑Net. Это позволило улучшить восстановление разрешения изображения и сегментацию мелких объектов.
Ключевые компоненты DeepLabv3+:
Декодирующий модуль: включение декодера, похожего на U‑Net, позволяет более эффективно восстанавливать разрешение изображений после этапа энкодера.
Атриусные свертки и ASPP: DeepLabv3+ продолжает использовать улучшенный ASPP из предыдущей версии.
Использование глубокой сети извлечения признаков (например, ResNet-101) в качестве энкодера для улучшения качества извлечения признаков.
Достоинства:
Улучшенное восстановление разрешения: благодаря декодеру, DeepLabv3+ лучше восстанавливает разрешение изображений, особенно для мелких объектов.
Гибкость: подходит для различных задач сегментации, включая мелкие объекты и сцены с множеством деталей.
Недостатки:
Вычислительные затраты: DeepLabv3+ требует больше вычислительных ресурсов из‑за сложной архитектуры и использования мощных backbone сетей (например, ResNet).
Ключевые компоненты DeepLab:
Atrous Convolution (Атриусные свертки): атриусные свертки позволяют увеличить поле зрения сверток без потери пространственного разрешения карт признаков. Это особенно полезно для захвата контекста на разных масштабах.
ASPP (Atrous Spatial Pyramid Pooling) — это механизм пирамидального свертывания, который использует несколько параллельных сверток с разными коэффициентами расширения, чтобы захватывать объекты разных размеров на изображении. Это один из ключевых элементов архитектуры DeepLab, который улучшает сегментацию объектов на различных уровнях детализации.
Backbone‑сети: DeepLab использует мощные сети для извлечения признаков, такие как ResNet-50 или ResNet-101. Эти сети обучены на задачах классификации и модифицированы для сегментации.
Декодирующий модуль (в DeepLabv3+): декодер восстанавливает разрешение изображения, добавляя более детальную информацию и улучшая качество сегментации на уровне пикселей.
Подробнее
PSPNet (2017)
Pyramid Scene Parsing Network (PSPNet) — это архитектура нейронной сети для задачи семантической сегментации, предложенная в 2017 году. PSPNet была разработана с целью захвата как локальной, так и глобальной информации о контексте сцены, чтобы улучшить точность сегментации объектов на изображениях. PSPNet успешно применяет метод пирамидального свертывания для объединения контекстной информации на разных уровнях, что позволяет сегментировать объекты различных размеров с высокой точностью.
Основные компоненты PSPNet
Backbone сеть (ResNet): PSPNet использует предобученную сеть ResNet (например, ResNet-50 или ResNet-101) в качестве основного компонента для извлечения признаков. ResNet помогает PSPNet генерировать качественные карты признаков, которые затем используются для дальнейшей обработки в пирамидальном модуле.
-
Pyramid Pooling Module (PPM):
Ключевой инновацией в PSPNet является Pyramid Pooling Module. Этот модуль выполняет сценовое пирамидальное разбиение (Scene Parsing Pyramid Pooling), чтобы объединять глобальную и локальную информацию. PPM работает на нескольких уровнях пирамиды, позволяя сети видеть как малые, так и большие объекты на изображении.
PPM создает несколько различных подвыборок карт признаков с различными разрешениями. Например, это может быть глобальное усреднение всей карты признаков или использование небольших фрагментов карты для захвата локальной информации. Эти подвыборки затем объединяются и передаются в декодирующую часть сети.
-
В PPM используются 4 уровня пирамиды:
Уровень 1: глобальное усреднение всей карты признаков, что позволяет сети учитывать глобальный контекст сцены.
Уровень 2: деление карты признаков на 2×2 части, что позволяет захватывать более локальный контекст.
Уровень 3: деление на 3×3 части для получения еще более детальной информации.
Уровень 6: деление на 6×6 частей для захвата очень локальных деталей.
Объединение признаков (Feature Fusion): PSPNet объединяет информацию, полученную из разных уровней пирамидального свертывания, с исходной картой признаков. Это помогает сети улучшить представление о контексте сцены и одновременно сохранить важные детали для точной сегментации на уровне пикселей.
Декодер: после пирамидального модуля карта признаков передается в декодирующую часть, которая восстанавливает сегментационные маски и преобразует их в исходное разрешение изображения.
Достоинства PSPNet
Учет глобального контекста: PSPNet использует PPM для захвата как глобальной, так и локальной информации о сцене, что позволяет сети лучше понимать общую структуру изображения и правильно сегментировать как крупные объекты, так и мелкие детали.
Точность сегментации объектов разных размеров: благодаря многомасштабному контексту, PSPNet демонстрирует высокую точность при сегментации объектов различных размеров, от мелких до крупных.
Эффективное использование пирамидального свертывания: PPM позволяет сети обрабатывать информацию на разных уровнях детализации, что делает ее универсальной для разных типов изображений и сцен.
Баланс между точностью и вычислительными затратами: архитектура PSPNet на основе ResNet достаточно эффективна с точки зрения вычислительных затрат, что делает ее применимой для различных практических задач.
Недостатки PSPNet
Вычислительная сложность: хотя PSPNet достигает высокой точности, использование пирамидального модуля с большими картами признаков может требовать значительных вычислительных ресурсов, особенно при работе с высокоразрешенными изображениями.
Ограниченное восстановление разрешения: несмотря на эффективное пирамидальное свертывание, PSPNet может не всегда восстанавливать разрешение карты признаков с достаточной детализацией для мелких объектов, особенно при сильной свертке в backbone‑сети.
Зависимость от backbone сети: точность PSPNet зависит от выбора backbone (например, ResNet-101). Если использовать менее мощную сеть для извлечения признаков, это может снизить общую точность сегментации.
Подробнее
Mask R-CNN (2017)
Mask R-CNN — это архитектура нейронной сети для задач детекции объектов и сегментации на уровне пикселей, предложенная в 2017 году. Mask R-CNN является расширением Faster R-CNN, который изначально предназначен для детекции объектов. Основное новшество Mask R-CNN заключается в добавлении механизма сегментации, который позволяет точно определять контуры объектов, обеспечивая возможность выделения не только классов объектов, но и их формы.
Основные компоненты Mask R-CNN
Backbone сеть: Mask R-CNN использует предобученные модели, такие как ResNet-50 или ResNet-101, в сочетании с Feature Pyramid Network (FPN). ResNet отвечает за извлечение признаков из изображения, представляя их в компактной и информативной форме. FPN помогает эффективно работать с объектами разных масштабов, что особенно важно для обработки изображений, где присутствуют как мелкие, так и крупные объекты. Backbone отвечает за извлечение характеристик изображения, которые затем используются для детекции и сегментации.
Region Proposal Network (RPN) — это сеть, которая генерирует кандидатные области (region proposals) для объектов на изображении. Она использует карты признаков от backbone-сети и предсказывает, где могут находиться объекты. RPN производит набор прямоугольников, которые потенциально могут содержать объекты, и помогает уменьшить количество областей, которые нужно анализировать на последующих этапах.
ROI Align: данный механизм улучшает точность сегментации и позволяет извлекать фиксированные размеры признаков из карт, соответствующих кандидатурам, с использованием интерполяции. В отличие от ROI Pooling, который округляет координаты, ROI Align сохраняет точные координаты пикселей, что критично для задач сегментации.
Mask Prediction Branch: Mask R-CNN добавляет дополнительную ветвь для предсказания масок сегментации для каждого из объектов в области интереса (ROI). Эта ветвь генерирует бинарные маски для каждого объекта, указывая, какие пиксели принадлежат каждому классу объекта. Маски имеют размер 28x28 пикселей (или другой фиксированный размер) и интерполируются до размеров соответствующих ROI.
Bounding Box Regression: в дополнение к сегментации, Mask R-CNN также предсказывает ограничительные рамки (bounding boxes) для объектов, аналогично Faster R-CNN. Эти рамки помогают точно определить расположение объектов на изображении.
Достоинства Mask R-CNN
Точная сегментация объектов на уровне пикселей, что позволяет выявлять детали, которые важны для анализа.
Универсальность: можно использовать для множества задач, включая детекцию объектов, семантическую сегментацию и инстанс‑сегментацию, что делает ее универсальным инструментом в компьютерном зрении.
ROI Align: улучшает точность предсказаний, особенно в задачах, где важна детальная сегментация.
Быстрая и эффективная работа, что позволяет использовать ее в реальном времени в различных приложениях, включая видеоаналитику и автономные системы.
Недостатки Mask R-CNN
Требует значительных вычислительных ресурсов, особенно при использовании глубоких архитектур в качестве backbone, что может быть проблемой для приложений с ограниченными ресурсами.
Архитектура Mask R‑CNN требует тонкой настройки гиперпараметров и может быть чувствительна к выбору предобученных весов, что может усложнить процесс обучения.
Проблемы с малым количеством объектов: в случаях, когда на изображении много объектов одного класса или объекты сильно перекрываются, Mask R‑CNN может испытывать трудности с правильным разделением их на инстансы.
Подробнее
HRNet (2019)
HRNet (High‑Resolution Network) — это архитектура нейронной сети, предложенная в 2019 году, которая предназначена для задач компьютерного зрения, включая сегментацию, детекцию объектов и восстановление изображений. Основная цель HRNet заключается в том, чтобы сохранить высокое разрешение признаков на протяжении всей обработки, а также эффективно комбинировать информацию с различных уровней разрешения. Эта архитектура показывает высокую точность и производительность в различных задачах, таких как семантическая сегментация и распознавание ключевых точек.
Основные компоненты HRNet
Сохранение высокоразрешенных признаков. HRNet начинает с высокоразрешенного представления входного изображения и поддерживает его на протяжении всей сети. В отличие от традиционных архитектур, которые сначала снижают разрешение (например, через сверточные слои), HRNet сохраняет высокое разрешение в процессе извлечения признаков.
Параллельные ветви с различным разрешением, каждая из которых работает с различным разрешением. Ветви с низким разрешением захватывают глобальную контекстную информацию, в то время как ветви с высоким разрешением фокусируются на детальной информации. Эти ветви комбинируются для достижения более полной и богатой информации о признаках.
Слияние признаков (Feature Fusion): HRNet эффективно объединяет признаки с различных уровней разрешения. Для этого используется механизм, который позволяет сочетать информацию из ветвей с высоким и низким разрешением, улучшая качество представления объектов на изображении.
Обновление признаков (Feature Update): в HRNet используется процесс обновления признаков, который позволяет ветвям с низким разрешением передавать информацию в ветви с высоким разрешением, тем самым улучшая качество представления на каждом уровне.
Декодирующая часть: для задач семантической сегментации HRNet включает декодирующую часть, которая восстанавливает разрешение карт признаков до исходного размера изображения. Это позволяет генерировать точные маски сегментации.
Архитектура HRNet
Блоки свертки: HRNet состоит из нескольких блоков свертки, которые последовательно обрабатывают входные данные. Каждый блок включает в себя свертки с различным разрешением.
Параллельные ветви: ветви с высоким и низким разрешением работают параллельно, позволяя сети комбинировать информацию на различных уровнях.
Слияние и обновление: в процессе обработки HRNet постоянно обновляет и сливает признаки с разных уровней разрешения, чтобы улучшить качество представления.
Финальная обработка: на последнем этапе происходит декодирование и восстановление высокоразрешенных масок сегментации или ограничительных рамок для детекции объектов.
Достоинства HRNet
Сохраняет высокое разрешение на протяжении всей архитектуры, что приводит к более детальному представлению объектов и улучшает качество сегментации.
Эффективное сочетание информации: параллельные ветви с различным разрешением позволяют HRNet эффективно комбинировать локальные и глобальные контексты, что улучшает производительность в задачах, требующих понимания сложных сцен.
Высокие результаты на различных задачах, таких как семантическая сегментация и распознавание ключевых точек, благодаря способности захватывать детальную информацию.
Можно адаптировать для различных задач, изменяя количество параллельных ветвей и их архитектуру, что делает ее универсальным инструментом в компьютерном зрении.
Подробнее
Современные архитектуры для сегментации в компьютерном зрении продолжают стремительно развиваться, демонстрируя значительный прогресс в точности и вычислительной эффективности. Основные достижения в области связаны с внедрением глубоких сверточных сетей, таких как U‑Net, DeepLab и HRNet (и тд), которые оптимизировали процесс извлечения признаков и пространственного анализа изображений. Эти модели стали ключевыми инструментами для таких задач, как медицинская диагностика, автономное вождение и обработка спутниковых снимков.
Будущее сегментации лежит в направлении объединения контекстной информации и мелких деталей изображения, что достигается благодаря усовершенствованию нейронных сетей, использующих более гибкие и многоуровневые подходы. Такие инновации открывают двери для более сложных и интерпретируемых решений в разнообразных прикладных задачах, подчеркивая важность исследования и внедрения новых архитектур.
Поскольку данный материал входит в цикл статей, дам ссылки на предыдущие части:
Как стать разработчиком ML и нейронок
Эволюция архитектур нейросетей в компьютерном зрении: классификация изображений
Планируется к выпуску материал про нейросети и детекцию объектов.
Спасибо, что дочитали!
Комментарии (6)
VPryadchenko
11.12.2024 08:53Вообще статья как будто из прошлого - последняя описанная архитектура аж 19го года, а в заключении описано будущее, которое уже наступило. Я пока читал, думал что в конце будет анонс продолжения, но нет.
Alexandr1997ag Автор
11.12.2024 08:53статья (как и прошлая по классификации) должна помочь начинающим инженерам в области компьютерного зрения, которым нужно систематизировать понимание "эволюции" архитектур. Безусловно, сейчас эра трансформеров и существуют разные вариации архитектур. Но для человека начинающего свой путь в этой специфике, считаю, что понимание этих основ - даст хорошую базу для дальнейшего самостоятельного погружения и систематизации в специфике. + это архитектуры, которые всегда присутствуют в вопросах на собеседованиях.
VPryadchenko
В FCN вроде бы нет skip connections. По крайней мере в оригинальной архитектуре. Добавление шорткатов делает из нее U-Net.
Alexandr1997ag Автор
Добрый день! Вы правы в Вашем замечании! это имеется ввиду про семейство FCN, в оригинальной архитектуре нет скип коннекшн-ов, но есть в вариациях (к примеру FCN-8s).
VPryadchenko
Честно говоря так глубоко не знаком с семейством, как там используются шорткаты?
Вы вот пишете:
Из чего складывается впечатление, что они если и есть, то в пределах блоков свёрток и между пуллингами, но не между картами одинакового разрешения в энкодере и декодере, как в U-Net - это так?
Alexandr1997ag Автор
в отличие от симметричного юнета, в FCN8s имеются два скип коннекшна, которые получают информацию с pool3 и pool4. Т.е. карта после первой деконволюции из fc7 объединяется с pool4, после объединения карты увеличиваются снова, теперь эта карта будет объединена с картой из pool3, после объединения карты увеличиваются до размера исходного изображения.