Руководство по отладке моделей сегментации изображений

Семантическая сегментация изображений - одна из наиболее важных областей исследований и разработок в области компьютерного зрения. От сегментации пешеходов и автомобилей для автономного вождения [1] до сегментации и локализации патологии на медицинских изображениях [2] существует несколько вариантов использования сегментации изображений. С широким распространением моделей глубокого обучения для сквозной доставки моделей машинного обучения (ML) модель U-net превратилась в масштабируемое решение для автономных приводов и сценариев использования медицинской визуализации [3– 4]. Однако большинство существующих статей и методов реализуют задачи бинарной классификации для обнаружения объектов / областей интереса на фоне [4]. В этом практическом руководстве мы рассмотрим, как начать с задачи двоичной семантической сегментации и перенести полученные знания в соответствии с задачами мультиклассовой сегментации изображений.

Одно из самых больших разочарований для инженера машинного обучения в их повседневном рабочем процессе - это проводить часы, тренируя модель машинного обучения, только чтобы в итоге получить бессмысленные результаты, такие как результаты Not-a-Number ( NaN) или изображения со всеми 0 значениями. В этом руководстве мы изучим пошаговый процесс, чтобы начать процесс построения модели машинного обучения из существующих работ (документов / кодовых баз) и значительно изменить его в соответствии с вашими потребностями в данных на примере, где двоичная U-сеть Модель расширена до мультиклассовой семантической сегментации.

Модель U-net представляет уровни кодера и декодера в сочетании с пропускаемыми соединениями между закодированным и соответствующим декодированным уровнями, как показано на рисунке 1. Основное преимущество пропускаемых соединений состоит в том, что он объединяет закодированные и декодированные результаты для каждого уровня глубины. чтобы обеспечить согласованное разделение между передним планом (пиксели, которые должны выводиться как белые) и фоном (пиксели, которые должны выводиться как темные).

С конечной целью оптимально настроить гиперпараметры модели для новой кодовой базы, мы начинаем с существующей кодовой базы U-net в [5], которая использует двоичную семантическую сегментацию на наборе данных изображения сетчатки [6] для модификации кодовой базы для нескольких -классовая классификация патологии изображения сетчатки с использованием набора данных DIARETDB1 [7–8]. Категории патологии - это яркие поражения (BL), обозначенные «hardexudates» и «softexudates», и красные поражения, обозначенные «кровоизлияниями» и «reddsmalldots» [8].

Три основных шага в преобразовании модели данных заключаются в следующем: 1) Подготовка данных 2) Модель данных и процесс 3) Результаты и показатели.

Шаг 1. Подготовка данных: от двоичного к мульти-классу

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

Начиная с кодовой базы U-net в [5], для имеющейся у нас задачи классификации патологий на несколько классов, мы сначала реплицируем кодовую базу U-net [5] для единственной задачи обнаружения патологии, кровоизлияния. Маски аннотированных изображений (Y, обозначающие метки) преобразуются в двоичную форму с использованием приведенного ниже кода.

Полученные метки кровоизлияний показаны на рис. 2 ниже.

Наборы данных медицинских изображений часто создают проблему «небольшого объема данных», когда существует ограниченное количество образцов для обучения. Чтобы решить эту проблему, часто используется увеличение данных изображения с помощью Keras. Цель этого подхода - создать несколько увеличенных / уменьшенных, повернутых, сдвинутых / увеличенных эквивалентов одного изображения и его маски во время выполнения. Этому способствует генератор данных, показанный ниже.

Одним из важных соображений при обучении на наборах данных с несколькими образцами является то, что обученная модель имеет тенденцию сильно искажаться из-за дисбаланса классов в образцах пикселей. Например, набор данных в [8] содержит 89 изображений, но только около 30 изображений содержат большие области интереса, соответствующие патологии. Остальные помеченные изображения в основном имеют Y = 0. Следовательно, если модель обучена со всеми изображениями, будет тенденция предсказывать большинство изображений как Y = 0, что означает, что патологию в большинстве случаев не заметят. Чтобы избежать этой проблемы и разделить данные изображения на обучающие и тестовые наборы, мы используем изображения с идентификаторами 1-27 для обучения, а изображения 28-89 используются только для тестирования.

При переходе к мультиклассовой сегментации от бинарной сегментации первое требование - это правильно отформатировать данные. Для исходного изображения X и меток Y размеры для X равны [mxmxr], а Y - [mxmxd], где размеры изображения вводятся в модель U-net: m = 256, r = 3 (изображение RGB), а d представляет количество классов для мультиклассовой классификации (здесь d = 4). Требование к модели U-net состоит в том, что вход и выход должны принадлежать одной области / измерениям, что в данном случае составляет [m x m]. Единственное отличие состоит в том, что вход X может быть цветным изображением или изображением в градациях серого, а выходной Y представляет собой плоскости двоичного изображения, соответствующие каждой маске патологии. Таким образом, каждая плоскость выходного изображения представляет собой классификацию «один против всех» на уровне пикселей. Пример масок изображения Y [256 x 256 x 3] для красных очагов (комбинированные «кровоизлияния» и «красные пятна») в плоскости красного цвета, ярких очагов (комбинированные «хардексудаты» и «софтексудаты» ) в плоскости зеленого цвета, а плоскость фонового синего цвета создается с использованием приведенного ниже кода.

Результат показан на рис. 3 ниже.

Шаг 2. Модель данных и процесс

Ключевые задачи для обучения оптимальной модели машинного обучения включают оптимизацию гиперпараметров, которая включает в себя выбор наилучшего набора параметров, который обеспечивает точное соответствие весов и смещений для модели U-net с глубоким обучением. Мы производим гиперпараметрический выбор для:

  • Компилятор (Адам)
  • Скорость обучения (0,0001)
  • Показатель точности: коэффициент кубика [9] должен быть максимальным
  • Показатель проигрыша: отрицательный коэффициент игральной кости (необходимо минимизировать)

Другие варианты метрики точности и метрики потерь - это «точность» и «категориальная_кросцентропия» с «sample_weights = temporal» [10] для устранения дисбаланса данных.

Другой параметр модели, который необходимо настроить, - это сложность модели (то есть сложность обучения, обусловленная размером U-сети). Таким образом, необходимо тренироваться на глубоких U-сетях (глубина = 4) и неглубоких U-сетях (глубина = 3) с графиками, как показано ниже. Модель с меньшим количеством параметров обычно оптимальна для «задач с небольшими данными». Вариации моделей с глубиной 3 и 4 можно увидеть в [11].

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

Шаг 3. Результаты и показатели

После обучения модели последняя задача - оценить тестовые данные. Качественно результаты представлены на рис.6.

Для количественной оценки мы рассматриваем следующие показатели: точность, отзыв, точность, пересечение по объединению (IoU) и оценка F1 [9] [12], как показано ниже после бинарной сегментации.

Результаты можно найти в Github [11]. Одним из ключевых компонентов мультиклассовой сегментации является использование многомерных потерь коэффициента Дайса, приведенных ниже.

Поскольку на выходе Y есть d-плоскости, первая задача - сгладить плоскости, как показано в [13] и на рис. 7., а затем вычислить комбинированный коэффициент Dice. Таким образом, коэффициент Dice мультиклассовой сегментации является аддитивным по всем плоскостям вывода и, следовательно, может превышать значение 1.

Наконец, количественная оценка мультиклассовой сегментации включает в себя отчет о макро- и микроуровнях. В то время как точность на макроуровне, отзыв, точность, долговые обязательства и оценка F1 одинаково взвешивают все классы, показатели микроуровня предпочтительнее в ситуациях с дисбалансом классов, чтобы обеспечить взвешенный результат, как показано в [14].

Выводы

Перенос обучения из существующих моделей машинного обучения в новые наборы данных и сценарии использования требует стратегического рабочего процесса для обеспечения оптимального моделирования данных. Ключ в том, чтобы структурировать рабочий процесс как данные, процессы и результаты. Используя пошаговое руководство, представленное в этом руководстве, можно будет расширить модель U-net не только на другие задачи двоичной, но и на многоклассовую классификацию. Другие кодовые базы, которые имеют дело с мультиклассовой сегментацией, находятся в [15].

Для дальнейшего повышения производительности, показанной в этом руководстве, можно комбинировать большие размеры изображений и подходы к сегментации «один против всех» для всех красных и ярких поражений. Кроме того, чтобы расширить руководство до большего количества классов, расширенные результаты 'Y' могут быть сохранены как файлы .npy, а не изображения, и команда load может использоваться для загрузки расширенных данных, а не load_img (который вводит только данные 3D-изображения. Используя предложенные методы, читатели теперь должны быть оснащены средствами и методами, чтобы изучать существующие кодовые базы и изменять их в соответствии со своими потребностями, одновременно расширяя область применения моделей и методов.

Ссылки

[1] Пикколи, Франческо и др. «FuSSI-Net: объединение пространственно-временных скелетов для сети прогнозирования намерений». Препринт arXiv arXiv: 2005.07796 (2020).

[2] Ройчоудхури, Сохини. «Система обучения с использованием нескольких снимков для уменьшения вариабельности медицинских изображений между наблюдателями». Препринт arXiv arXiv: 2008.02952 (2020).

[3] Чжан, Чжэнсинь, Цинцзе Лю и Юньхун Ван. «Дорожная выемка глубокой остаточной сеткой». Письма по наукам о земле и дистанционному зондированию IEEE 15.5 (2018): 749–753.

[4] М. Ларкин. Ознакомьтесь с финальными проектами наших выпускников. [Онлайн] https://blog.fourthbrain.ai/check-out-our-graduates-final-projects?utm_campaign=Project%20Presentation%20Day&utm_source=tds-blog&utm_medium=blog&utm_term= mldebugging-guide & utm_content = ml-debugging-guide

[5] С. Ройчоудхури. Unet для сегментации медицинских изображений с использованием TF 2.x [Онлайн] https://github.com/sohiniroych/Unet-using-TF2

[6] А. Пылесос. Проект STARE. [Онлайн] https://cecas.clemson.edu/~ahoover/stare/probing/index.html

[7] Ройчоудхури, Сохини, Дара Д. Кузеканани и Кешаб К. Пархи. «МЕЧТА: анализ диабетической ретинопатии с использованием машинного обучения». Журнал IEEE по биомедицине и информатике здоровья 18.5 (2013): 1717–1728.

[8] Сингх, Рамандип и др. «Диабетическая ретинопатия: новости». Индийский офтальмологический журнал 56,3 (2008 г.): 179.

[9] Э Тиу. Метрики для оценки вашей модели семантической сегментации. [Онлайн] https://towardsdatascience.com/metrics-to-evaluate-your-semantic-segmentation-model.

[10] Stack Overflow [Online] U-net: как повысить точность мультиклассовой сегментации?

[11] С. Ройчоудхури. U-net для мультиклассовой семантической сегментации. [Онлайн] https://github.com/sohiniroych/U-net-for-Multi-class-semantic-segmentation

[12] Х. Кумар. Метрики оценки для обнаружения и сегментации объектов: mAP [Online] https://kharshit.github.io/blog/2019/09/20/evaluation-metrics-for-object-detection-and-segmentation

[13] https://stackoverflow.com/questions/43237124/what-is-the-role-of-flatten-in-keras

[14] Обмен стеком Data Science. Микро-средняя и макросредняя производительность в настройках многоклассовой классификации [Онлайн]: https://datascience.stackexchange.com/questions/15989/micro-average-vs-macro-average-performance-in-a-multiclass-classification- урегулировать

[15] H Тони. Unet: множественная классификация с использованием Keras [онлайн] https://github.com/HZCTony/U-net-with-multiple-classification