TRAINING DATA
TRAINING DATA JORNAL  
Авторские статьи

Сегментация изображений

Сегментация изображений — одна из самых важных операций в компьютерном зрении. Это процесс разделения изображения на несколько частей, или сегментов. За последние 40 лет были предложены различные методы: от MATLAB с применением традиционных функций и инструментов компьютерного зрения до современных методов глубокого обучения.

После сегментации извлекаются признаки, характеризующие каждый сегмент-объект для модели машинного обучения. К ним относятся цвет, текстура, форма и другие свойства для распознавания объектов на изображении.

Семантическая и экземплярная сегментация

  • Семантическая сегментация — процесс разделения изображения на несколько областей и присвоения каждой из них метки класса, например «человек», «машина», «дерево». Каждому пикселю присваивается свой класс. Такой подход используется при распознавании объектов, анализе медицинских изображений, классификации территорий на спутниковых картах.
  • Экземплярная сегментация — более сложный процесс. Кроме метки класса, каждый объект на изображении получает уникальный идентификатор. Например, если на фотографии два автомобиля, каждый, кроме класса «автомобиль», будет помечен идентификатором. Это делают, чтобы научить модель машинного обучения отличать объекты одного класса друг от друга. Подход применяют в робототехнике, беспилотном вождении и виртуальной реальности.

Примеры задач сегментации изображений

  • Сегментация объектов. Здесь подразумевается выделение контуров, форм и цветов объектов на изображении. Например, для распознавания автомобилей на фотографии улицы.
  • Сегментация фона. В этом случае требуется отделить фон от объектов для более эффективной обработки и анализа. Например, чтобы определить границы листьев растений на фотографии. Объект — лист, все остальное — фон.
  • Сегментация области интереса. Алгоритм выделяет важную область изображения для более эффективной обработки. Например, глаза на рентгеновском снимке лица для диагностики заболеваний глаз.
Как это выглядит в реальности: предположим, у нас есть задача по распознаванию дорожных знаков. С помощью методов машинного обучения с сегментацией можно обучить модель распознавать дорожные знаки по их форме и цвету. Для этого нужно собрать большой датасет с изображениями дорожных знаков. Далее выбрать алгоритм для сегментации объектов и их классификации с помощью обучающих наборов. В результате, используя методы машинного обучения, модель сможет обнаруживать дорожные знаки и точно классифицировать их. Решение может применяться в системе интеллектуального круиз-контроля, беспилотном транспорте.

Наиболее распространенные алгоритмы

  1. Алгоритм случайного леса (Random Forest). Использует комплексный набор деревьев на основе выборок данных с несколькими переменными для принятия решений о классификации пикселей на изображениях. Каждый пиксель будет проходить через дерево решений, которое определит его принадлежность к конкретному классу. Затем будут использованы результаты всех деревьев для определения наиболее вероятного класса для каждого пикселя.
  2. Алгоритм на основе сверточной нейронной сети (CNN). Использует сверточный слой для обнаружения особенностей изображений, а затем применяет сеть для принятия решений о классификации пикселей на изображениях. Один из примеров использования CNN для сегментации изображения — сеть U-Net, которая была разработана для медицинской сегментации изображений. Она была обучена на наборе данных, содержащем медицинские изображения и соответствующие им маски, где каждый пиксель маски отмечает, к какому классу он принадлежит (например, опухоль или здоровая ткань).
  3. Алгоритм на основе метода K-средних (K-Means). Разделяет изображения на сегменты на основе их характеристик, чаще всего цветовых. Для этого изначально задается количество сегментов K, далее инициализируются центры кластеров случайно, каждый пиксель относится к кластеру с ближайшим к нему центру. Теперь алгоритм вычисляет новые центры кластеров и повторяет процедуру до тех пор, пока не достигнуто максимальное число итераций или пока центры кластеров не перестанут изменяться. Таким способом можно создать эффектные фотофильтры или решать другие задачи. Например, сегментировать клетки крови на снимке под микроскопом.
  4. Пороговая сегментация. Отлично работает для бинарных изображений. Метод основывается на установлении определенного порога вероятности для пикселей и последующем присвоении каждому пикселю метки класса в зависимости от его яркости. Например, с помощью алгоритма Оцу для сегментации изображений на два класса с заданным порогом яркости пикселей. Таким образом можно отделить объекты от фона на черно-белой фотографии, в частности, при обработке медицинских изображений.
  5. Методы преобразования пикселей в признаки. Переводят пиксели изображения в числовые признаки, которые можно использовать в анализе и классификации. Среди них метод главных компонент (PCA), метод гистограмм ориентированных градиентов (HOG) и метод градиентной карты (SIFT).
  6. Сегментация на основе графов. Такие алгоритмы основаны на графовых моделях, таких как марковские случайные поля (МСП) и графовые сверточные сети (GCNN). Например, модель МСП можно использовать для сегментации медицинских изображений: чтобы разделить области здоровых тканей и опухолевых образований. Для этого с помощью стохастического алгоритма модель определяет границы между сегментами, разбивая их на два класса — здоровый или опухолевый. Метод МСП учитывает множество факторов, включая связи между пикселями, текстуры, цвета и формы, что позволяет получать высококачественные результаты сегментации.

Как это работает?

В машинном обучении чаще используются алгоритмы сегментации изображений, основанные на нейронных сетях. Процесс обучения таких сетей состоит из двух основных этапов:
  1. Само обучение. На основе датасета с размеченными изображениями модель нейросети учится определять структуру объектов и группировать их в сегменты.
  2. Тестирование. Для проверки работы на вход нейронной сети подается тестовое изображение. Если модель определила сегменты правильно, ее можно использовать в реальных условиях.
Алгоритмы сегментации изображений, основанные на нейронных сетях, могут быть как полностью автоматическими, так и с использованием ручной корректировки, когда результаты сегментации проверяет эксперт для улучшения точности.

В чем важность сегментации изображений?

  • Убирает ненужную информацию и делает датасет более конкретным. Допустим, у нас есть задача классификации изображений животных на категории «кошки» и «собаки». Сегментация выделяет только области с животными и убирает данные об окружающем фоне.
  • Уменьшает ресурсоемкость анализа. Изображения могут быть очень большими, с множеством объектов, и обработка каждого пикселя занимает много времени. Сегментация изображений позволяет анализировать только те области, которые содержат интересующие объекты.
  • Улучшает точность моделей. Обработка объектов, расположенных на фоне, может оказаться сложной и неточной из-за неравномерного освещения, наличия теней, сложности в распознавании границ объекта и фона. Сегментация изображений позволяет решить эту проблему путем выделения объектов и их явного отделения от фона.
  • Делает модель более интерпретируемой. При сегментации можно добавить больше подробностей в модель, чтобы понимать, почему она отнесла объект к тому или иному классу. Например, если объект классифицирован как «собака», с помощью сегментации мы можем выделить области, которые помогли принять решение: форма тела, уши, хвост и т. д. В итоге создаются более точные и надежные модели.

Где применяется?

Сегментация изображений необходима для широкого спектра реальных приложений компьютерного зрения — от систем управления беспилотным транспортом, видеобезопасности и наблюдения до медицинской диагностики. Технология даже помогает решать важные экологические проблемы, связанные с изменением климата. Для этого с помощью методов глубокого обучения анализируют снимки планеты с дронов, оснащенных камерами. Алгоритмы направлены на извлечение признаков из изображений, на основе которых их разделяют на сегменты. К примеру, чтобы обнаружить изменения в экосистеме, изучают фотографии, собранные дронами в разные периоды времени. Нейросеть сравнивает данные и определяет, что поменялось.
Один из примеров реального приложения медицинской визуализации для сегментации экземпляров в стоматологии с применением глубокой сверточной нейросети U-Net — программное обеспечение Sirona Sidexis 4. С ним работают стоматологи для визуализации рентгеновских снимков зубов и челюстей пациентов, чтобы облегчить диагностику и планирование лечения. Алгоритм выделяет отдельные элементы на снимках: зубы, корни зубов, костную ткань и другие анатомические структуры, поэтому врач сразу видит проблемы и предлагает эффективное лечение.
В системах помощи водителю (ADAS) сегментация изображений может использоваться для обнаружения и распознавания объектов на дороге: автомобили, пешеходы и дорожные знаки. Когда объект определен, система предупреждает о нем водителя. Например, если это дорожный знак, она сообщает о скоростном ограничении или о приближении к опасному перекрестку.
Разметка данных Методики