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

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

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

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

Как работают автоэнкодеры

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

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

Сети кодеров и декодеров обычно обучаются как единое целое. Функция потерь наказывает сеть за создание выходных данных x ’, которые отличаются от исходных входных x.

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

Как реализовать автоэнкодеры

Давайте реализуем автоэнкодер для шумоподавления рукописных цифр. Входные данные представляют собой масштабированное изображение размером 28x28 пикселей, создающее вектор из 784 элементов.

Сеть кодировщика представляет собой единый плотный слой с 64 нейронами. Следовательно, скрытое пространство будет иметь размерность 64. Функция активации выпрямленных единиц (ReLu) прикреплена к каждому нейрону в слое и определяет, следует ли его активировать («запускать») или нет, в зависимости от того, является ли вход каждого нейрона релевантным для предсказание автоэнкодера. Функция активации также помогает нормализовать выходной сигнал каждого нейрона до диапазона от 1 до 0.

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

Двоичная кросс-энтропия используется как функция потерь, а Adadelta как оптимизатор для минимизации функции потерь.

Набор данных MNIST - это хорошо известная база данных рукописных цифр, которая широко используется для обучения и тестирования в области машинного обучения. Мы используем его здесь, чтобы генерировать синтетические зашумленные цифры, применяя матрицу гауссовского шума и обрезая изображения между 0 и 1.

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

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

Как уменьшить шум с помощью автоэнкодеров

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

  • В целом шум удаляется очень хорошо. Белые точки, искусственно введенные на исходные изображения, исчезли с очищенных изображений. Цифры можно распознать визуально. Например, зашумленная цифра «4» вообще не читалась, теперь мы можем прочитать ее очищенную версию.
  • У шумоподавления есть обратная сторона с точки зрения качества информации. Реконструированные цифры как-то размыты. В декодер добавлены некоторые функции, которых не было в исходном изображении, например 8-я и 9-я цифры ниже едва различимы.

В этой статье я описал технику шумоподавления изображения с практическим руководством по созданию автоэнкодеров с помощью Python. Радиологи обычно используют автоэнкодеры для удаления шума на МРТ, УЗИ, рентгеновских снимках или изображениях повреждений кожи. Эти автокодеры обучены на больших наборах данных, таких как База данных рентгеновских снимков грудной клетки Университета Индианы, которая состоит из 7470 рентгеновских изображений грудной клетки. Автоэнкодеры с устранением шумов могут быть дополнены сверточными слоями для получения более эффективных результатов.

Спасибо за прочтение.