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

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. Схема показывает рабочий процесс шумоподавления в светло-сером поле.

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

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

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

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

    Совет

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

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

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

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

| | | | | | | |

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

Больше о