Введение

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

Фон, связанный с доменом

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

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

Набор данных

Набор данных изображений МРТ головного мозга был создан в Kaggle. Вы можете проверить набор данных здесь.

Набор данных состоит из двух папок: Training и Testing, которые содержат разные МРТ головного мозга. Папка Training содержит четыре подпапки: глиома, менингиома, нотумор и гипофиз. Папка «Обучение» содержит в общей сложности 5712 изображений, а папка «Тестирование» — 1310 изображений.

Подготовка данных

Увеличение данных

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

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

До увеличения данных набор данных состоял из 5712 МРТ головного мозга.

После увеличения данных теперь набор данных состоит из 7022 МРТ головного мозга.

Эти значения предназначены для набора обучающих данных, а набор тестовых данных не затрагивается.

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

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

  1. Обрезать часть изображения, содержащую только мозг (самую важную часть изображения): вы можете прочитать больше о технике кадрирования, чтобы найти крайние верхнюю, нижнюю, левую и правую точки. мозга в этом блоге Поиск экстремальных точек в контурах в OpenCV.
  2. Измените размер изображения, чтобы оно имело форму (224, 224, 3) = (image_width, image_height, количество каналов): потому что изображения в наборе данных бывают разных размеров. Таким образом, все изображения должны иметь одинаковую форму для подачи на вход нейронной сети.
  3. Применить нормализацию: масштабирование значений пикселей в диапазоне 0–1.

Разделение данных

Данные были разделены следующим образом:

80% данных для обучения.

20 % данных для проверки (разработки).

Набор данных testing хранится и используется отдельно.

Архитектура нейронной сети

Что такое модель ResNet-50?

ResNet расшифровывается как Residual Network и представляет собой особый тип сверточной нейронной сети (CNN), представленный в статье 2015 года «Глубокое остаточное обучение для распознавания изображений» Хэ Каймина, Чжан Сянъюй, Рен Шаоцин и Сунь Цзянь. CNN обычно используются для питания приложений компьютерного зрения.

ResNet-50 — это 50-слойная сверточная нейронная сеть (48 сверточных слоев, один слой MaxPool и один слой среднего пула). Остаточные нейронные сети — это тип искусственной нейронной сети (ИНС), которая формирует сети путем наложения остаточных блоков.

Понимание архитектуры:

ResNet-34, в котором было 34 взвешенных слоя, была первой версией архитектуры ResNet. Используя идею коротких соединений, он предложил творческое решение для увеличения количества сверточных слоев в CNN, не сталкиваясь с проблемой исчезающего градиента. Быстрая ссылка превращает обычную сеть в остаточную сеть, «пропуская» некоторые слои.

Нейронные сети VGG (VGG-16 и VGG-19) послужили основой для обычной сети; каждая сверточная сеть имеет 33 фильтра. ResNet, с другой стороны, проще и содержит меньше фильтров, чем VGGNet. По сравнению с 19,6 миллиардами FLOP сети VGG-19, 34-уровневая ResNet может выполнять 3,6 миллиарда FLOP, а меньшая 18-уровневая ResNet может выполнять 1,8 миллиарда FLOP.

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

Каждый вход x (изображение) имеет форму (200, 200, 3) и передается в нейронную сеть. И это идет следующие слои:

  1. Сверточныйслой с 32 фильтрами, с размером фильтра (7, 7) и шаг равен 2.
  2. Слой Max Pooling с шагом 2 размера.
  3. Еще 9 слоев3x3, 64 свертки ядра, еще один с 1x1, 64 ядер, а третья — 1x1, 256 ядер. Эти 3 слоя повторяются 3 раза.
  4. Еще 12 слоевс 1x1, 128 ядер, 3x3, 128 ядер и 1x1, 512 ядер, повторено 4 раз.
  5. Еще 18 слоевс 1x1, 256 ядер и 2 ядра 3x3, 256 и 1x1, 1024, повторено 6 раз.
  6. Еще 9 слоев с 1 x 1 512 ядер, 3 x 3, 512 ядер и 1 x 1 2048 ядер с повторением 3 раза.
  7. Средний пул, за которым следует полностью подключенный уровень с 1000 узлами, с использованием функции активации softmax.

Преимущество использования ResNet50:

  1. Более глубокие сети: ResNet50 может быть более глубоким, чем другие модели, поскольку использует остаточные соединения для пропуска некоторых слоев. Это позволяет создавать глубокие нейронные сети, которые легче оптимизировать и повысить производительность.
  2. Улучшенная производительность: ResNet50 достиг самой современной производительности во многих задачах классификации изображений. Отчасти это связано с его более глубокой архитектурой, а также с тем, что он использует пакетную нормализацию, которая помогает стабилизировать процесс обучения и улучшить обобщение.
  3. Более быстрая сходимость: было показано, что ResNet50 сходится быстрее, чем другие модели глубоких нейронных сетей, а это означает, что для обучения требуется меньше времени и можно достичь лучших результатов с меньшим объемом данных.
  4. Повышенная точность: было показано, что ResNet50 обеспечивает более высокую точность в задачах классификации изображений, чем другие модели глубоких нейронных сетей, такие как VGG и Inception. Отчасти это связано с использованием остаточных соединений, которые позволяют модели изучать более сложные функции.
  5. Трансферное обучение: ResNet50 был предварительно обучен на большом наборе данных, что делает его хорошей отправной точкой для трансферного обучения. Трансферное обучение позволяет точно настроить предварительно обученную модель на меньшем наборе данных, что позволяет сэкономить время и ресурсы, сохраняя при этом хорошую производительность.

Обучение модели:

Модель была обучена для 50 эпох, и это графики потерь и точности:

Полученные результаты:

Теперь лучшая модель (та, что с наилучшей точностью проверки) классифицирует опухоль головного мозга с помощью:

Точность 98,86 % в наборе тестов.

0,96 балл F1 в наборе тестов.

Как видим, результаты закономерны.

Заключение:

Вы можете найти код в этом репозитории GitHub. Пожертвования приветствуются!

Я надеюсь, что вы найдете это полезным.

Это было сделано в рамках хакатона Intel oneAPI.

Постановка задачи:

Анализ медицинских изображений: разрабатывайте проекты компьютерного зрения, используя возможности обработки изображений Scikit-Learn для анализа медицинских изображений, таких как рентгеновские снимки или снимки МРТ. Это может включать построение моделей для выявления закономерностей или аномалий, которые могут указывать на наличие заболевания или состояния.

Решение:

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

Этот блог был написан совместно:

  1. Маянк Кумар Джа
  2. Шашват Саркар
  3. Саумит Динесан
  4. Арнаб Кумар Рой