Семантическая сегментация подразумевает разделение изображения или кадра из видео на несколько сегментов. При этом метка класса присваивается каждому пикселю. Это означает, что, если на фотографии изображен автомобиль, сначала нужно отделить его от фона, точно определить границы объекта, а затем пометить каждый пиксель меткой «автомобиль». Далее пиксели одного класса группируются с помощью модели машинного обучения.
Как это работает в реальности: предположим, у нас есть фотография улицы. С помощью семантической сегментации присваиваем пикселям дороги класс «дорога», пикселям неба класс «небо» и т. д. В итоге каждый пиксель должен иметь свою метку. Так компьютер лучше понимает контент на изображении и на основании точных данных принимает правильные решения. Технология применяется, например, при обучении беспилотного транспорта — чтобы он мог «видеть» и распознавать дорожные знаки, пешеходов, другие автомобили. В медицинской области семантическая сегментация помогает выявлять и выделять на изображениях другие структуры, например опухоли на снимках МРТ. Обученный на таких данных автоматический диагност предупредит о новообразовании раньше врача.
Для решения задачи семантической сегментации используются методы глубокого обучения — сверточные нейронные сети (CNN), которые обучаются на больших наборах данных, чтобы точно определять границы и классы объектов на изображениях.
Семантическая, паноптическая и сегментация экземпляров: в чем разница?
Это три разных подхода к сегментации изображений, каждый со своими плюсами и минусами.
При семантической сегментации, как мы уже сказали, каждому пикселю присваивается метка категории или класса. Сегментация экземпляров подразумевает, что помечается каждый экземпляр объекта, а не пиксели. Паноптическая — более сложная задача, которая объединяет два предыдущих подхода. Это означает, что, помимо присвоения своего класса каждому пикселю, объекты также помечаются уникальными идентификаторами.
Разберем на примере. Предположим, у нас есть фотография дороги с несколькими автомобилями. Семантическая сегментация присвоит каждому пикселю метку «дорога» или «автомобиль». Метод экземпляров выделит каждый автомобиль, дорогу и пометит уникальным идентификатором — это позволит модели различать объекты одного класса. Паноптическая сначала помечает пиксели («дорога» или «автомобиль»), а затем присваивает уникальный идентификатор каждому объекту. У нас на изображении несколько автомобилей, и каждый из них будет помечен как «автомобиль», плюс получит идентификатор (например, car_1, car_2). Так модель отличает один объект от другого в рамках одного класса.
Какие данные можно сегментировать?
Семантическая сегментация обычно применяется к изображениям и видео, с ее помощью решают задачи компьютерного зрения, где необходимо классифицировать каждый пиксель изображения по его семантической (смысловой) принадлежности.
Для чего это нужно:
Сегментация объектов. После обучения компьютер точно выделяет и классифицирует объекты и элементы сцены на изображении. Например, в медицине семантическая сегментация помогает выявлять и изолировать органы и структуры для более точного анализа и диагностики.
Распознавание и понимание сцены. Компьютер обучается понимать, какие объекты и фон находятся на изображении. Это полезно, например, для беспилотного транспорта: чтобы движение было безопасным, он должен распознавать дорожные знаки, пешеходов, другие автомобили, тип дорожного покрытия.
Улучшение анализа изображений. Например, для поиска брака на производственных линиях системы компьютерного зрения могут использовать сегментацию, чтобы выделить дефектные области на изображении и провести более точную оценку качества продукции.
Отслеживание объектов. В видеоаналитике сегментация позволяет выявлять движущиеся объекты на видеозаписи, включая людей, и идентифицировать набор пикселей с объектами в памяти. Например, при поиске и идентификации подозреваемых или пропавших без вести на видеозаписях камер наблюдения.
Улучшение визуальных эффектов. В игровой индустрии и кинематографии семантическая сегментация может использоваться для создания реалистичных спецэффектов, включая размытие фона, смену фона, добавление объектов.
Сокращение затрат на аннотацию данных. Используя семантическую сегментацию, можно автоматически размечать большие объемы изображений или видео. При высокой точности алгоритмов работа будет выполнена гораздо быстрее, чем вручную.
Разработка систем искусственного интеллекта. Технология помогает ИИ понимать не только геометрическую структуру изображения (где находятся объекты), но и его смысловое содержание (что представляют собой эти объекты).
Где еще семантическая сегментация применяется в реальности?
Кроме уже перечисленных вариантов (медицина, беспилотный транспорт, робототехника), есть и другие — например, обработка аэрофотоснимков. Дроны (БПЛА) часто используются для исследования территории во время чрезвычайных ситуаций, таких как наводнение или землетрясение. Их задача: обнаружить живых людей и животных, передать данные спасателям — и для этого применяется семантическая сегментация.
Геозондирование подразумевает использование спутниковых изображений для анализа и классификации земной поверхности. Так можно отслеживать процесс обезлесения, выявлять изменения в городской застройке и планировать инфраструктуру. И здесь тоже задействуется семантическая сегментация.
Технология применяется при обучении роботов точного земледелия. Роботы, оснащенные камерами и сенсорами, могут определить, где находятся сельскохозяйственные культуры и где сорняки, чтобы начать прополку в режиме реального времени. Зная точное расположение сорняков, они применяют гербициды только на тех участках, где они действительно необходимы. Это позволяет снизить использование химических веществ и, таким образом, сократить негативное воздействие на окружающую среду.
Методы семантической сегментации
Сверточные нейронные сети (CNN). Среди них U-Net — использует архитектуру CNN, которая состоит из энкодера (извлекает признаки) и декодера (восстанавливает сегментированные карты из признаков, обнаруженных энкодером). Примером такой модели является V-Net, который был разработан для сегментации медицинских изображений, таких как снимки компьютерной томографии (CT) и магнитно-резонансной томографии (MRI). V-Net также основан на архитектуре U-Net и адаптирован для задач сегментации трехмерных изображений. Еще один пример CNN — DeepLab, применяет асимметричные свертки и ASPP (Atrous Spatial Pyramid Pooling) для того, чтобы улучшить способность модели выделять объекты и обрабатывать даже мелкие детали, что повышает точность сегментации в разных частях изображения.
Рекуррентные нейронные сети (RNN). Например, CRF-RNN (Conditional Random Field Recurrent Neural Network) — комбинирует метод RNN и CRF (Conditional Random Fields). CRF позволяет учитывать контекст и взаимосвязи между различными пикселями в изображении, RNN используется для учета последовательности пикселей в изображении и улавливания зависимостей между ними. Это позволяет более точно определить, к какому классу или сегменту принадлежит каждый пиксель.
Нейросети с аттеншн-механизмом. Например, DeepLabv3+ — аттеншн-механизм помогает модели «сосредоточиться» на определенных областях изображения, которые могут быть ключевыми для правильной классификации и сегментации объектов. Так получается более точно определять границы объектов и учитывать мелкие детали на изображениях.
Методы, основанные на графах. Graph Convolutional Networks (GCN) — нейронная сеть, которая анализирует данные, представленные в виде графовой структуры. Вместо того чтобы рассматривать каждый пиксель отдельно, изображение представляется в виде графа. В нем узлы соответствуют пикселям, а ребра (связи) определяют отношения между пикселями на основе их соседства, схожести цвета или текстуры. Так получается значительно улучшить точность семантической сегментации, особенно при наличии сложных взаимосвязей между объектами на изображении.
1. Сверточные нейронные сети (CNN). Среди них U-Net — использует архитектуру CNN, которая состоит из энкодера (извлекает признаки) и декодера (восстанавливает сегментированные карты из признаков, обнаруженных энкодером). Примером такой модели является V-Net, который был разработан для сегментации медицинских изображений, таких как снимки компьютерной томографии (CT) и магнитно-резонансной томографии (MRI). V-Net также основан на архитектуре U-Net и адаптирован для задач сегментации трехмерных изображений. Еще один пример CNN — DeepLab, применяет асимметричные свертки и ASPP (Atrous Spatial Pyramid Pooling) для того, чтобы улучшить способность модели выделять объекты и обрабатывать даже мелкие детали, что повышает точность сегментации в разных частях изображения.
2. Рекуррентные нейронные сети (RNN). Например, CRF-RNN (Conditional Random Field Recurrent Neural Network) — комбинирует метод RNN и CRF (Conditional Random Fields). CRF позволяет учитывать контекст и взаимосвязи между различными пикселями в изображении, RNN используется для учета последовательности пикселей в изображении и улавливания зависимостей между ними. Это позволяет более точно определить, к какому классу или сегменту принадлежит каждый пиксель.
3. Нейросети с аттеншн-механизмом. Например, DeepLabv3+ — аттеншн-механизм помогает модели «сосредоточиться» на определенных областях изображения, которые могут быть ключевыми для правильной классификации и сегментации объектов. Так получается более точно определять границы объектов и учитывать мелкие детали на изображениях.
4. Методы, основанные на графах. Graph Convolutional Networks (GCN) — нейронная сеть, которая анализирует данные, представленные в виде графовой структуры. Вместо того чтобы рассматривать каждый пиксель отдельно, изображение представляется в виде графа. В нем узлы соответствуют пикселям, а ребра (связи) определяют отношения между пикселями на основе их соседства, схожести цвета или текстуры. Так получается значительно улучшить точность семантической сегментации, особенно при наличии сложных взаимосвязей между объектами на изображении.
Как обучить модель семантической сегментации данных?
Первый этап: собрать и разметить изображения для датасета. Они должны быть разнообразными, соответствовать задаче. Например, для обучения медицинского диагноста используются снимки УЗИ или МРТ, для беспилотного транспорта — изображения дорожных ситуаций. Данные могут быть реальными или сгенерированными специально под проект. После сбора изображений их размечают: присваивают классы пикселям и объектам. Далее информация стандартизируется, приводится к единому формату.
Готовый датасет разделяют на обучающую и тестовую выборки, обычно в пропорции 70–80 % обучающих данных и 20–30 % тестовых. Это нужно, чтобы оценить производительность модели на новых данных.
Для повышения результативности модели применяется аугментация данных: уже имеющиеся изображения поворачивают, отражают, меняют яркость и контраст. Так датасет получается более разнообразным.
Для обучения используются глубокие нейронные сети, такие как уже упомянутый U-Net, с использованием функции потерь: сравнивает прогнозы модели и фактические значения, определяет эффективность ее работы.
После обучения производительность оценивается на тестовой выборке с помощью метрик, например Intersection over Union (IoU) — вычисляет индекс пересечения между прогнозируемой и истинной сегментацией и определяет точность работы модели.
Если все тесты пройдены с высокой оценкой, модель можно использовать в реальности.