Этот проект занял второе место в Smart India Hackathon 2019. В формулировке проблемы была сформулирована Сегментация изображения мозга с использованием машинного обучения Департамента атомной энергии правительства Индии в сложной задаче . категория.

Вы можете найти полный проект здесь.

Этот метод сегментирует трехмерные МРТ-изображения головного мозга на различные ткани с использованием полностью сверточной сети (FCN) и передачи обучения.

Полностью сверточная нейронная сеть (FCN) - это обычная CNN, в которой последний полностью связанный слой заменяется другим сверточным слоем с большим «воспринимающим полем». Идея состоит в том, чтобы запечатлеть глобальный контекст сцены (расскажите нам, что у нас есть на изображении, а также дайте очень приблизительное представление о расположении вещей).

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

По сравнению с существующими подходами, основанными на глубоком обучении, которые полагаются либо на 2D-патчи, либо на полностью 3D FCN, этот метод намного быстрее: он занимает всего несколько секунд и только один модальность (T1 или T2) требуется. Чтобы учесть трехмерную информацию, все 3 последовательных двухмерных среза складываются в набор двухмерных «цветных» изображений, которые служат в качестве входных данных для FCN, предварительно обученного на ImageNet. (популярная база данных изображений) для классификации естественных изображений.

Модальности Т1 и Т2 - это термины радиологии, зависящие от типов тканей. В наборе данных есть как изображения, взвешенные по T1, так и изображения, взвешенные по T2, и мы будем использовать только изображения с одной модальностью для прогнозирования результатов.

Предварительная обработка:

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

  1. Выравнивание гистограммы (только для модальности T1)
  2. Стек 3 продолжения фрагментов в виде изображения RGB
  3. Отразить и повернуть на [$ 0, \ pm 5, \ pm 10, \ pm 15 $] для увеличения данных
  4. Обрезать, чтобы уменьшить фон в изображении и обеспечить разделение ширины и высоты на 16.

Сетевая архитектура:

Прежде чем переходить к сетевой архитектуре, давайте сначала разберемся с VGG16:

VGG16:

VGG16 - это модель сверточной нейронной сети, построенная с использованием слоев свертки (используется только размер 3 * 3), максимальных слоев объединения (используется только размер 2 * 2) и полностью связанных слоев в конце, всего 16 слоев.

Вход в слой cov1 представляет собой изображение RGB фиксированного размера 224 x 224. Изображение проходит через стопку сверточных (сверточных) слоев, где использовались фильтры с очень маленьким воспринимающим полем: 3 × 3 (что является наименьшим размером, чтобы уловить понятие левого / правого, верхнего / нижнего, центрального ). В одной из конфигураций он также использует фильтры свертки 1 × 1, которые можно рассматривать как линейное преобразование входных каналов (с последующей нелинейностью). Шаг свертки установлен на 1 пиксель; пространственное заполнение conv. входной слой таков, что пространственное разрешение сохраняется после свертки, то есть заполнение составляет 1 пиксель для свертки 3 × 3. слои. Пространственное объединение выполняется пятью слоями максимального объединения, которые следуют за некоторыми конвенциями. слои (не для всех конв. слоев следует max-pooling). Максимальное объединение выполняется в окне размером 2 × 2 пикселя с шагом 2.

Три полностью соединенных (FC) уровня следуют за стеком сверточных слоев (которые имеют разную глубину в разных архитектурах): первые два имеют 4096 каналов каждый, третий выполняет 1000-позиционную классификацию ILSVRC и, таким образом, содержит 1000 каналов (по одному для каждого класс). Последний слой - это слой soft-max. Конфигурация полносвязных слоев одинакова во всех сетях.

Все скрытые слои имеют нелинейность выпрямления (ReLU). Также следует отметить, что ни одна из сетей (кроме одной) не содержит Local Response Normalization (LRN), такая нормализация не улучшает производительность набора данных ILSVRC, но приводит к увеличению потребления памяти и времени вычислений.

Наша модель:

Для классификации изображений мы используем сеть из 16 слоев VGG, предварительно обученную на миллионах естественных изображений в ImageNet. В нашем приложении мы отбрасываем полностью связанные уровни в конце сети VGG и оставляем 5 этапов сверточных частей, называемых «базовой сетью». Эта базовая сеть в основном состоит из сверточных слоев, уровней выпрямленных линейных единиц (ReLU) для функции нелинейной активации и слоев максимального объединения между двумя последовательными этапами.

Четыре максимальных уровня объединения делят базовую сеть на пять этапов - от мелкой до грубой карты функций. Мы добавляем специализированные сверточные слои (с размером ядра 3 × 3) с K (например, K = 16) карт характеристик после сверточных слоев в конце каждого этапа. Мы изменяем размер всех специализированных слоев до исходного размера изображения и объединяем их вместе. В конце добавляется последний сверточный слой с размером ядра 1 × 1, который линейно комбинирует мелкие и грубые карты признаков в объединенных специализированных слоях для получения окончательного результата сегментации.

Проще говоря, мы складываем последовательные двухмерные срезы трехмерного объема, чтобы сформировать набор двухмерных «цветных» изображений, эти двухмерные изображения представляют собой входные данные для FCN на основе сети VGG. , предварительно обучены на наборе данных ImageNet. Мы отбрасываем полностью связанные слои и добавляем специализированные сверточные слои в конце каждого из пяти этапов свертки в сети VGG. Линейная комбинация этих специализированных слоев (то есть карт объектов от мелкого до грубого) приводит к окончательной сегментации.

Почему наша модель?

  • Поскольку мы используем трансферное обучение, новый подход в этой области, нам не нужно обучать нашу модель с нуля, что делает ее очень быстрой в обучении по сравнению с другими моделями.
  • Наложение 3 последовательных 2D-срезов позволяет нам создать изображение RGB, еще одна новая идея. Такое представление позволяет нам включать некоторую 3D-информацию, избегая при этом дорогостоящих вычислений и требований к памяти, которые необходимы для полностью 3D FCN.
  • При использовании трансферного обучения нам не нужно много обучающих образов, поэтому мы могли бы хорошо обучить нашу модель только на нескольких обучающих образах.
  • Мы также используем традиционные методы увеличения данных, такие как поворот, обрезка и переворачивание изображений в обучающем наборе, для улучшения нашей модели.

Результаты:

Мы использовали набор данных BraTS 2018. Набор данных содержит файлы .nii, которые в основном представляют собой трехмерные изображения со слоями сложенных двухмерных изображений. Мы используем просмотрщик папайи, интегрированный в приложение django, для ввода и отображения прогнозов. Приложение принимает входные данные в виде zip-файла, распаковывает и запускает модель на нем и показывает прогноз.

Предоставление информации и прогнозов:

Сравнение результатов:

Авторы и благодарности:

Вайбхав Шукла
Абхиджит Сингх
Омкар Аджнадкар
Говинд Сингх Раджпурохит
Ратна Прия
Санат Сингаварапу

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

Архитектура vgg16: https://neurohive.io/en/popular-networks/vgg16/