Обучите и примените обесценивающие нейронные сети

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

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

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

  • Удаление шума работает только со 2-D одноканальными изображениями. Если у вас есть несколько цветовых каналов или вы работаете с 3-D изображениями, удалите шум, обрабатывая каждый канал или плоскость отдельно. Например, см. «пример шума из цветного изображения с помощью предварительно обученной нейронной сети».

  • Сеть распознает только Гауссов шум с ограниченной областью значений стандартных отклонений.

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

Обучите обесценивающую сеть с помощью встроенных слоев

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

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

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

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

  • Задайте опции обучения, используя trainingOptions (Deep Learning Toolbox) функция.

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

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

Обучите полностью настроенной денуазирующей нейронной сети

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

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

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

    Совет

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

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

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

См. также

| | | | | | (Deep Learning Toolbox) | (Deep Learning Toolbox) | (Deep Learning Toolbox)

Похожие примеры

Подробнее о