Методы сегментации изображения [Пошаговая реализация]

Опубликовано: 2021-02-19

Что вы видите в первую очередь, когда смотрите на свое селфи? Твое лицо, да? Вы можете заметить свое лицо, потому что ваш мозг способен идентифицировать ваше лицо и отделить его от остального изображения (фона).

Теперь, если бы вы хотели, чтобы ваш компьютер распознал ваше лицо на селфи, смог бы он это сделать?

Да, при условии, что он может выполнять сегментацию изображения.

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

Прежде чем мы начнем обсуждать различные методы сегментации при обработке изображений, мы должны сначала выяснить: «Что такое сегментация изображений?»

Оглавление

Что такое сегментация изображения?

Сегментация изображения — это ветвь цифровой обработки изображений, которая фокусируется на разделении изображения на различные части в соответствии с их характеристиками и свойствами. Основная цель сегментации изображения — упростить изображение для облегчения анализа. При сегментации изображения вы делите изображение на различные части со схожими атрибутами. Части, на которые вы делите изображение, называются объектами изображения.

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

Используя методы сегментации изображения, вы можете разделить и сгруппировать определенные пиксели изображения, присвоить им метки и классифицировать дополнительные пиксели в соответствии с этими метками. Вы можете рисовать линии, задавать границы и отделять определенные объекты (важные компоненты) на изображении от остальных объектов (неважных компонентов).

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

На примере лучше понять, как работает сегментация изображения.

Посмотрите на следующее изображение.

Источник

Здесь вы можете увидеть стул, стоящий посреди дороги. Используя сегментацию изображения, вы можете отделить стул от изображения. Кроме того, вы можете использовать многочисленные методы сегментации изображений, чтобы получить разные результаты. Например, если вы хотите использовать изображение с несколькими стульями, вам придется использовать семантическую сегментацию.

С другой стороны, если вы хотите идентифицировать каждый стул, присутствующий на изображении, подобном следующему, вам придется использовать сегментацию экземпляров:

Источник

Зачем нужна сегментация изображения?

Сегментация изображений является важным аспектом компьютерного зрения и имеет множество приложений во многих отраслях. Некоторые из примечательных областей, где широко используется сегментация изображений:

1. Распознавание лиц

Технология распознавания лиц, присутствующая в вашем iPhone, и передовые системы безопасности используют сегментацию изображения для идентификации вашего лица. Он должен быть в состоянии идентифицировать уникальные черты вашего лица, чтобы любая нежелательная сторона не могла получить доступ к вашему телефону или системе.

2. Идентификация номерного знака

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

3. Поиск по изображению

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

4. Медицинская визуализация

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

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

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

Общие реализации классификации изображений находятся в Python, C, C++ и Matlab.

Каковы различные виды сегментации изображения?

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

1. Классификация на основе подхода

В самом общем смысле сегментация изображения — это идентификация объекта. Алгоритм не может классифицировать различные компоненты без предварительной идентификации объекта. От простых до сложных реализаций, все операции сегментации изображений основаны на идентификации объектов.

Таким образом, мы можем классифицировать методы сегментации изображений на основе того, как алгоритмы идентифицируют объекты, то есть собирают похожие пиксели и отделяют их от разнородных пикселей. Существует два подхода к выполнению этой задачи:

Региональный подход (обнаружение сходства)

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

Граничный подход (обнаружение разрыва)

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

2. Классификация на основе техники

Оба подхода имеют свои различные методы сегментации изображений. Мы используем эти методы в зависимости от того, какое изображение мы хотим обработать и проанализировать, а также в зависимости от того, каких результатов мы хотим из него получить.

Основываясь на этих параметрах, мы можем разделить алгоритмы сегментации изображения на следующие категории:

Структурные методы

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

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

Стохастические методы

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

Гибридные методы

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

Каковы различные типы методов сегментации изображений?

Теперь, когда мы знаем о различных подходах и методах сегментации изображений, мы можем приступить к обсуждению специфики. Ниже приведены основные типы методов сегментации изображений:

  1. Пороговая сегментация
  2. Сегментация на основе границ
  3. Сегментация по регионам
  4. Сегментация водораздела
  5. Алгоритмы сегментации на основе кластеризации
  6. Нейронные сети для сегментации

Давайте подробно обсудим каждый из этих методов, чтобы понять их свойства, преимущества и ограничения:

1. Пороговая сегментация

Самым простым методом сегментации при обработке изображений является пороговый метод. Он разделяет пиксели изображения, сравнивая интенсивность пикселя с заданным значением (порогом). Это полезно, когда требуемый объект имеет более высокую интенсивность, чем фон (ненужные части).

Вы можете считать пороговое значение (T) постоянным, но оно будет работать только в том случае, если на изображении очень мало шума (ненужной информации и данных). Вы можете оставить пороговое значение постоянным или динамическим в соответствии с вашими требованиями.

Метод пороговой обработки преобразует полутоновое изображение в бинарное изображение, разделяя его на два сегмента (обязательный и необязательный).

В соответствии с различными пороговыми значениями мы можем классифицировать пороговую сегментацию по следующим категориям:

Простое пороговое значение

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

Бинаризация Оцу

При простой пороговой обработке вы выбираете постоянное пороговое значение и используете его для выполнения сегментации изображения. Однако как определить, что выбранное вами значение было правильным? Хотя простой метод для этого состоит в том, чтобы протестировать различные значения и выбрать одно, он не самый эффективный.

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

В бинаризации Оцу вы вычисляете пороговое значение из гистограммы изображения, если изображение является бимодальным.

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

Адаптивный порог

Наличие одного постоянного порогового значения может оказаться неподходящим подходом для каждого изображения. Различные изображения имеют разные фоны и условия, влияющие на их свойства.

Таким образом, вместо использования одного постоянного порогового значения для выполнения сегментации всего изображения можно оставить пороговое значение переменным. В этом методе вы сохраните разные пороговые значения для разных частей изображения.

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

2. Сегментация на основе границ

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

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

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

Существует множество доступных методов сегментации на основе ребер. Мы можем разделить их на две категории:

Обнаружение границ на основе поиска

Методы обнаружения краев на основе поиска сосредоточены на вычислении меры силы края и поиске локальных направленных максимумов величины градиента посредством вычисленной оценки локальной ориентации края.

Обнаружение границ на основе пересечения нуля

Методы обнаружения краев, основанные на пересечении нуля, ищут пересечения нуля в производном выражении, извлеченном из изображения, чтобы найти края.

Как правило, вам придется предварительно обработать изображение, чтобы удалить нежелательный шум и упростить обнаружение краев. Кэнни, Прюитт, Дериш и Робертс-кросс — одни из самых популярных операторов обнаружения границ. Они облегчают обнаружение разрывов и нахождение краев.

При обнаружении на основе ребер ваша цель — получить минимум частичной сегментации, где вы можете сгруппировать все локальные ребра в бинарное изображение. Во вновь созданном двоичном изображении цепочки ребер должны соответствовать существующим компонентам рассматриваемого изображения.

3. Сегментация по регионам

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

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

Основываясь на этих двух методах, мы можем классифицировать сегментацию по регионам на следующие категории:

Регион Растущий

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

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

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

Разделение и слияние регионов

Как следует из названия, сфокусированный метод разделения и слияния областей будет выполнять два действия одновременно — разделение и слияние частей изображения.

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

Метод разделения и слияния регионов следует методологии «разделяй и властвуй». Он делит изображение на разные части, а затем сопоставляет их в соответствии с заданными условиями. Другое название алгоритмов, выполняющих эту задачу, — алгоритмы разделения-слияния.

4. Сегментация водораздела

При обработке изображений водораздел — это преобразование изображения в градациях серого. Это относится к геологическому водоразделу или водоразделу. Алгоритм водораздела будет обрабатывать изображение, как если бы это была топографическая карта. Он считает яркость пикселя его высотой и находит линии, идущие по верху этих выступов.

Водораздел имеет много технических определений и несколько приложений. Помимо определения гребней пикселей, он фокусируется на определении бассейнов (противоположных гребням) и заливает бассейны маркерами до тех пор, пока они не встречаются с линиями водораздела, проходящими через гребни.

Поскольку у бассейнов много маркеров, а у хребтов их нет, изображение делится на несколько областей в соответствии с «высотой» каждого пикселя.

Метод водораздела преобразует каждое изображение в топографическую карту. Метод сегментации водораздела будет отражать топографию через значения серого в их пикселях.

Теперь пейзаж с долинами и хребтами, безусловно, будет трехмерным. Водораздел будет учитывать трехмерное представление изображения и соответственно создавать области, которые называются «водосборными бассейнами».

Он имеет множество применений в медицинском секторе, таких как МРТ, медицинская визуализация и т. д. Сегментация водораздела является важной частью сегментации медицинских изображений, поэтому, если вы хотите войти в этот сектор, вам следует сосредоточиться на изучении этого метода сегментации, в частности, при обработке изображений.

5. Алгоритмы сегментации на основе кластеризации

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

Как следует из названия, алгоритм кластеризации делит изображение на кластеры (непересекающиеся группы) пикселей со схожими характеристиками. Это разделит элементы данных на кластеры, где элементы в кластере более похожи по сравнению с элементами, присутствующими в других кластерах.

Некоторые из популярных алгоритмов кластеризации включают алгоритмы нечетких c-средних (FCM), k-средних и улучшенные алгоритмы k-средних. При сегментации изображений вы в основном используете алгоритм кластеризации k-средних, поскольку он довольно прост и эффективен. С другой стороны, алгоритм FCM помещает пиксели в разные классы в соответствии с их различной степенью принадлежности.

Наиболее важными алгоритмами кластеризации для сегментации при обработке изображений являются:

Кластеризация K-средних

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

Затем они назначают каждый объект группе на основе расстояния между ними и центроидом. Когда алгоритм назначил все пиксели всем кластерам, он может переместить и переназначить центроиды.

Нечеткие C-средства

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

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

6. Нейронные сети для сегментации

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

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

Эксперты Facebook AI Research (FAIR) создали архитектуру глубокого обучения под названием Mask R-CNN, которая может создавать попиксельную маску для каждого объекта, присутствующего на изображении. Это расширенная версия архитектуры обнаружения объектов Faster R-CNN. Faster R-CNN использует две части данных для каждого объекта на изображении, координаты ограничивающей рамки и класс объекта. С Mask R-CNN вы получаете дополнительный раздел в этом процессе. Mask R-CNN выводит маску объекта после выполнения сегментации.

В этом процессе вы сначала передадите входное изображение в ConvNet, который создаст карту объектов для изображения. Затем система применяет сеть региональных предложений (RPN) к картам объектов и генерирует предложения объектов с их оценками объектности.

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

Узнайте больше о сегментации в обработке изображений

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

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

Курсы AI & ML облегчат вам изучение всех соответствующих концепций, потому что вы получите структурированный учебный план для обучения. В upGrad мы предлагаем несколько курсов по машинному обучению.

Ниже приведены основные курсы, которые мы предлагаем по машинному обучению и искусственному интеллекту:

  • Магистр наук в области машинного обучения и искусственного интеллекта
  • Высшая программа высшего образования в области машинного обучения и искусственного интеллекта
  • Магистр наук в области машинного обучения и искусственного интеллекта
  • Сертификация PG в области машинного обучения и глубокого обучения
  • Сертификация PG в области машинного обучения и НЛП

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

Эти курсы дают вам доступ к «Уголку студенческого успеха» upGrad, который предлагает множество дополнительных преимуществ, включая персонализированную обратную связь по резюме, подготовку к собеседованию и консультации по вопросам карьеры. К концу курса вы станете готовым к работе профессионалом в области искусственного интеллекта и машинного обучения, владеющим всеми необходимыми программными и аппаратными навыками.

Заключение

Сегментация изображений, безусловно, сложная и сложная тема. Все различные методы сегментации изображений, которые мы обсуждали в этой статье, имеют свои преимущества и ограничения. Познакомившись с ними, вы получите представление о том, где вы должны использовать один и где вы должны избегать использования другого.

Со всеми приобретенными навыками вы также можете активно участвовать в других соревновательных платформах, чтобы проверить свои навыки и получить еще больше практических навыков.

Каковы некоторые важные приложения сегментации изображений?

Сегментация изображений — важная часть компьютерного зрения, и она используется во многих сферах бизнеса. Сегментация изображения используется технологией распознавания лиц в вашем телефоне и передовыми системами безопасности для распознавания вашего лица. Система дорожного движения может распознавать автомобиль и получать информацию о его владельце, используя технологии распознавания номерных знаков. Алгоритмы сегментации изображений используются Google и другими поисковыми системами на основе изображений, чтобы распознавать элементы на вашем изображении и сравнивать свои выводы с соответствующими фотографиями, которые они обнаруживают, чтобы предоставить вам результаты поиска. Мы используем сегментацию изображений в области медицины для поиска и идентификации раковых клеток, количественного определения объемов тканей, проведения виртуальных хирургических симуляций и навигации во время операции.

Какие существуют виды сегментации изображения?

Пороговый подход является самым основным методом сегментации обработки изображений. Он разделяет пиксели на изображении, сравнивая интенсивность каждого пикселя с заданным значением (порогом). Проще говоря, пороговое значение — это процесс замены пикселей изображения черными или белыми. Вы можете оставить указанный порог гибким вместо того, чтобы использовать одно фиксированное значение для сегментации всего изображения. Адаптивная пороговая установка — название этого метода. Одним из наиболее распространенных типов сегментации обработки изображений является сегментация по краям. Он фокусируется на распознавании краев различных объектов на изображении.

Что такое алгоритм сегментации на основе кластеризации?

Вы, вероятно, сталкивались с алгоритмами кластеризации, если изучали алгоритмы классификации. Это неконтролируемые алгоритмы, которые помогают вам находить скрытые данные на изображении, которое не видно невооруженным глазом. Кластеры, структуры, затенения и другая информация входят в число скрытых данных. Алгоритм кластеризации разделяет изображение на кластеры (непересекающиеся группы) пикселей со сравнимыми свойствами, как следует из названия. Элементы данных будут разделены на кластеры, причем компоненты в одном кластере будут более похожи на элементы в других кластерах.