Обучите и примените нейронные сети шумоподавления

Image Processing Toolbox™ и Deep Learning Toolbox™ предоставляют много возможностей удалять шум из изображений. Простое и быстрое решение должно использовать встроенную предварительно обученную нейронную сеть шумоподавления, названную DnCNN. Однако предварительно обученная сеть не предлагает большой гибкости в типе распознанного шума. Для большей гибкости обучите свою собственную сеть с помощью предопределенных слоев или обучите полностью пользовательскую нейронную сеть шумоподавления.

Удалите гауссов шум Используя предварительно обученную сеть

Можно использовать встроенную предварительно обученную сеть DnCNN, чтобы удалить Гауссов шум без проблем обучения сети. Удаление шума с предварительно обученной сетью имеет эти ограничения:

Чтобы загрузить предварительно обученную сеть DnCNN, используйте функцию denoisingNetwork. Затем передайте сеть DnCNN и шумное 2D одноканальное изображение к denoiseImage. Изображение показывает рабочий процесс denoise изображение с помощью предварительно обученной сети DnCNN.

Обучите сеть шумоподавления Используя встроенные слои

Можно обучить сеть, чтобы обнаружить большую область значений Гауссовых шумовых стандартных отклонений от полутоновых изображений, начиная со встроенных слоев, обеспеченных Image Processing Toolbox. Чтобы обучить сеть шумоподавления использование предопределенных слоев, выполните эти шаги. Схема показывает учебный рабочий процесс в темно-сером поле.

  • Создайте объект ImageDatastore, который хранит нетронутые изображения.

  • Создайте объект denoisingImageDatastore, который генерирует шумные данные тренировки от нетронутых изображений. Чтобы задать область значений Гауссовых шумовых стандартных отклонений, установите свойство GaussianNoiseLevel. Необходимо использовать значение по умолчанию PatchSize (50) и ChannelFormat ('grayscale') так, чтобы размер данных тренировки совпадал с входным размером сети.

  • Получите предопределенные слои шумоподавления с помощью функции dnCNNLayers.

  • Задайте опции обучения с помощью функции trainingOptions.

  • Обучите сеть, задав datastore шумоподавления изображений как источник данных для trainNetwork. Для каждой итерации обучения datastore шумоподавления изображений генерирует один мини-пакет данных тренировки путем случайной обрезки нетронутых изображений от ImageDatastore, затем добавления случайным образом сгенерированного нулевого среднего Гауссова белого шума в каждую закрашенную фигуру изображений. Стандартное отклонение добавленного шума уникально для каждой закрашенной фигуры изображений и имеет значение в области значений, заданной свойством GaussianNoiseLevel datastore шумоподавления изображений.

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

Train полностью индивидуально настраиваемая нейронная сеть шумоподавления

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

  • Обучите сеть, которая обнаруживает большее разнообразие шума, такого как негауссовы шумовые дистрибутивы, в одноканальных изображениях. Можно задать сетевую архитектуру при помощи слоев, возвращенных функцией dnCNNLayers. Чтобы сгенерировать учебные изображения, совместимые с этой сетью, используйте transform и функции combine к пакетам шумных изображений и соответствующего шумового сигнала. Для получения дополнительной информации смотрите, Предварительно обрабатывают Изображения для Глубокого обучения (Deep Learning Toolbox).

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

    Совет

    Сеть DnCNN может также обнаружить высокочастотные артефакты изображений, вызванные другими типами искажения. Например, можно обучить сеть DnCNN, чтобы увеличить разрешение изображения или удалить артефакты сжатия JPEG. Разблокирование Изображения JPEG Используя пример Глубокого обучения показывает, как обучить сеть DnCNN, чтобы удалить артефакты сжатия JPEG

  • Обучите сеть, которая обнаруживает область значений Гауссовых шумовых дистрибутивов для цветных изображений. Чтобы сгенерировать учебные изображения для этой сети, можно использовать denoisingImageDatastore и установить свойство ChannelFormat на 'rgb'. Необходимо задать пользовательскую сверточную архитектуру нейронной сети, которая поддерживает изображения входа RGB.

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

Смотрите также

| | | | | | | |

Связанные примеры

Больше о