exponenta event banner

Создание семантической сегментации с помощью сегментации громкости

В этом примере показано, как создать семантическую сегментацию тома с помощью приложения Volume Segmenter. Приложение Volume Segmenter предлагает множество способов исследовать том и сегментировать объекты в томе. Например, можно просмотреть объемный фрагмент за фрагментом или в виде 3-D представления. Чтобы разделить объект на сегменты, можно нарисовать интересующую область (ROI) с помощью инструментов рисования ROI или инструмента кистей. Этот пример сегментирует стопку изображений МРТ, чтобы маркировать области мозга и опухоли. В примере также помечается фон.

Загрузка объемных данных в рабочую область

Загрузите том в рабочую область. В этом примере используется стек изображений мозга МРТ, хранящийся в MAT-файле vol_001.mat.

load(fullfile(toolboxdir('images'),'imdata', ...
    'BrainMRILabeled','images','vol_001.mat'));

Эта команда загружает названный объем 240 на 240 на 155 vol в рабочую область.

whos vol
  Name        Size                    Bytes  Class     Attributes

  vol       240x240x155            17856000  uint16              

Открыть сегмент объема

Откройте приложение Volume Segmenter. Перейдите на вкладку Apps на панели инструментов MATLAB ®. В разделе Обработка изображений и компьютерное зрение щелкните Сегмент громкости .

Загрузка объема в сегмент объемов

Чтобы загрузить том в приложении Volume Segmenter, щелкните Открыть том на панели инструментов приложения. В этом примере выберите Открыть из рабочей области (Open from Workspace). В диалоговом окне «Импорт объема» выберите объем, загруженный в рабочее пространство. vol(Можно также указать том при открытии приложения с помощью volumeSegmenter команда: volumeSegmenter(vol).)

Приложение «Сегмент громкости» отображает 3-D представление тома на панели «Отображение 3-D» и отдельные фрагменты набора данных на панели «Фрагмент».

По умолчанию на панели «Фрагмент» отображается первый фрагмент данных. Приложение отображает номер фрагмента, отображаемого в верхней части изображения, например 1/155. В этом наборе данных первые несколько срезов не содержат изображений мозга.

Приложение также автоматически создает метку для сегментации в области Метки, используя имя по умолчанию Label1. На панели «Метки» можно определить несколько меток. Однако для создания двоичной маски необходимо использовать только одну метку.

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

Обзор тома

Чтобы определить, что Вы хотите сегментировать, исследуйте объем, используя 3D стекло Показа и стекло Части.

На панели «Отображение 3-D» можно повернуть объем для просмотра данных под любым углом с помощью мыши. Можно также настроить отображение тома на вкладке Отображение 3-D на панели инструментов приложения. Например, если имеются метаданные, описывающие относительный размер вокселей, их можно указать в разделе «Пространственные ссылки» вкладки «Отображение 3-D» на панели инструментов приложения. Чтобы улучшить представление данных, можно изменить цвет фона, используемый при отображении 3-D, изменить порог и непрозрачность отображения и включить оси ориентации вместе с отображением, как показано на этом рисунке. С помощью данных МРТ головного мозга можно увидеть опухоль в височной доле, которую вы хотите сегментировать.

Можно также просмотреть каждый фрагмент тома на панели «Фрагмент». Используйте ползунок в нижней части панели для перехода от фрагмента к фрагменту. Вы можете видеть опухоль на срезе 35 через срез 88. По умолчанию на панели «Разрез» отображается объем, ориентированный вдоль оси X-Y, но его можно изменить с помощью кнопок в разделе «Ориентация» панели инструментов на вкладке «Сегмент». Панель «Фрагмент» также используется для определения маски с помощью инструментов рисования.

Использование инструментов рисования для маркировки областей в объеме

После определения объекта, который требуется сегментировать, можно использовать инструменты на вкладке «Рисование» на панели инструментов приложения для определения области. Выберите инструмент рисования, который требуется использовать, из инструментов окупаемости инвестиций: «Произвольный», «Вспомогательный произвольный», «Многоугольник» и инструмент «Краска кисти».

Начните с маркировки мозга. Когда один объект вложен в другой объект, так как опухоль появляется над мозгом на ломтиках, сначала маркируйте большую область. Первым шагом является создание метки на панели «Метки». Приложение по умолчанию предоставляет одну метку с именем Label1. Чтобы изменить имя метки на более описательное для приложения, дважды щелкните метку и введите новое имя. Чтобы изменить цвет по умолчанию, связанный с меткой, дважды щелкните цветной квадрат в идентификаторе метки и выберите цвет в диалоговом окне «Цвет».

На панели «Фрагмент» перейдите к фрагменту, на котором впервые появляется объект, и используйте инструмент рисования для маркировки объекта. На следующем рисунке этот пример использует инструмент «Краска кисти» для маркировки мозга, но можно использовать любой из инструментов рисования.

Использование интерполяции для ускорения создания ROI объекта

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

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

Для объекта, определенного на двух фрагментах, щелкните Автоинполиполировать (Auto Interpolate). Приложение автоматически определяет окупаемость инвестиций на всех промежуточных слайдах. Приложение использует синие полосы, чтобы указать все фрагменты, которые имеют ROI, которые теперь выглядят как сплошная полоса для среза, 35 к 88 среза.

Либо после определения ROI на двух фрагментах можно щелкнуть Интерполяция вручную (Manually Interpolate). С помощью этого параметра приложение открывает диалоговое окно Интерполяция вручную. Выберите две области, из которых требуется выполнить интерполяцию: Область 1 и Область 2. Чтобы выбрать первую область, используйте ползунок в нижней части диалогового окна, чтобы перейти к первому фрагменту с ROI, фрагментом 35, а затем щелкните внутри отображаемого ROI. Чтобы выбрать вторую область, щелкните Область 2 (Region Two), перейдите к 88 слайдов и щелкните внутри отображаемой окупаемости инвестиций (ROI). После выбора обеих областей щелкните Выполнить (Run) для интерполяции ROI на всех промежуточных фрагментах.

Уточнение интерполированных меток

После использования интерполяции проверьте отдельные срезы на наличие удовлетворительных значений ROI. Обратите внимание, что ROI на срезе 71 не заполняет весь объект, который требуется сегментировать. Можно вручную настроить окупаемость инвестиций с помощью инструмента «Краска кисти». Можно также использовать один из инструментов на вкладке Автоматизировать (Automate). Например, можно использовать функцию «Активные контуры» для увеличения ROI на срезах, где она не заполняет весь размер опухоли.

Выполнение пользовательской обработки

Также можно использовать собственный алгоритм для работы с ROI. На вкладке Автоматизировать (Automate) щелкните Добавить алгоритм (Add Algorithm). Выберите, хотите ли Вы, чтобы Ваша обработка воздействовала на каждую 2-ю (Основанную на части) часть или на весь 3D (Основанный на объеме) объем.

В этом примере в разделе На основе фрагмента (Slice-Based) выберите опцию Создать (New) и щелкните Шаблон функции (Function Template), чтобы создать новую функцию, которая будет работать с каждым фрагментом 2-D. Приложение открывает шаблон в редакторе MATLAB. Замените образец кода в шаблоне на код, который требуется использовать. Ваша функция должна принимать два аргумента: каждый фрагмент как отдельное изображение и маску. Функция также должна возвращать изображение маски.

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

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

При выборе одного из параметров направления приложение обновляет номера фрагментов на экране. Этот экран используется для просмотра хода обработки.

Создание дополнительных меток

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

Сначала определите новую метку на панели «Метки». Щелкните знак «Плюс» на панели «Метки», чтобы создать новую метку.

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

Сохранение сегментации

Завершив маркировку мозга и опухоли в объеме, сохраните сегментацию. Щелкните Сохранить метки (Save Labels) на вкладке Сегментатор (Segmenter) и выберите один из нескольких вариантов. Помеченные данные МРТ можно сохранить как MAT-файл или как переменную в рабочей области. В этом примере выберите переменную рабочей области. При определении нескольких меток приложение Volume Segmenter создает в рабочей области категориальный том того же размера, что и входной том. После сохранения сегментации при необходимости можно включить автосавление, которое периодически автоматически сохраняет сегментацию.

Сделать фон отдельно помеченной областью

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

  1. Определите новую метку на панели «Метки», присвойте метке описательное имя и выберите нужный цвет фона.

  2. Маркировка фона на каждом фрагменте. Перейдите к фрагменту, выберите «Область заливки» на вкладке «Рисование» и щелкните в любом месте фона. Повторите этот процесс на каждом срезе.

При добавлении фона другие метки могут быть скрыты при визуализации тома на панели «Отображение 3-D». Для просмотра других помеченных областей на панели «Отображение 3-D» отключите видимость фоновой метки. Нажмите Show Labels в 3D вкладке Display, нажмите Customize и отсейте видимость фоновой этикетки.

Просмотр маркированного тома

Для просмотра маски используйте labelvolshow функция: labelvolshow(brain_labels);.

См. также

Связанные темы