exponenta event banner

Предварительная обработка изображений для глубокого обучения

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

Можно эффективно увеличить объем обучающих данных, применяя рандомизированное увеличение к данным. Увеличение также позволяет обучать сети быть инвариантными к искажениям в данных изображения. Например, можно добавить рандомизированные повороты к входным изображениям, чтобы сеть была инвариантна наличию поворота во входных изображениях. Один augmentedImageDatastore предоставляет удобный способ применения ограниченного набора дополнений к 2-D изображениям для проблем классификации.

Для более сложных операций предварительной обработки, предварительной обработки изображений для проблем регрессии или предварительной обработки 3-D объемных изображений можно начать со встроенного хранилища данных. Можно также предварительно обработать изображения в соответствии с собственным конвейером, используя transform и combine функции.

Изменение размеров изображений с помощью масштабирования и обрезки

Данные изображения можно хранить в виде числового массива, ImageDatastore объект или таблица. Один ImageDatastore позволяет импортировать данные в пакетах из коллекций изображений, которые слишком велики для размещения в памяти. Для обучения, прогнозирования и классификации можно использовать хранилище данных дополненного изображения или массив измененных размеров 4-D. Массив 3-D с измененными размерами можно использовать только для прогнозирования и классификации.

Существует два способа изменения размера изображения в соответствии с входным размером сети.

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

  • Обрезка извлекает подобласть изображения и сохраняет пространственную протяженность каждого пикселя. Можно обрезать изображения из центра или из случайных положений изображения.

Параметр изменения размераФормат данныхФункция изменения размераОбразец кода
Перевычисление
  • 3-D массив, представляющий один цвет или многоспектральное изображение

  • 3-D массив, представляющий стек изображений в градациях серого

  • 4-D массив, представляющий стек изображений

imresize

im = imresize(I,outputSize);

outputSize задает размеры масштабированного изображения.

  • 4-D массив, представляющий стек изображений

  • ImageDatastore

  • стол

augmentedImageDatastore

auimds = augmentedImageDatastore(outputSize,I);

outputSize задает размеры масштабированного изображения.

Подрезание
  • 3-D массив, представляющий один цвет или многоспектральное изображение

imcrop(Панель инструментов обработки изображений)

im = imcrop(I,rect);

rect определяет размер и положение окна обрезки 2-D.

  • 3-D массив, представляющий стек изображений в градациях серого

  • 4-D массив, представляющий стек цветных или многоспектральных изображений

imcrop3(Панель инструментов обработки изображений)

im = imcrop3(I,cuboid);

cuboid определяет размер и положение окна обрезки 3-D.

  • 4-D массив, представляющий стек изображений

  • ImageDatastore

  • стол

augmentedImageDatastore

auimds = augmentedImageDatastore(outputSize,I,'OutputSizeMode',m);

Определить m как 'centercrop' для обрезки от центра входного изображения.

Определить m как 'randcrop' для обрезки из случайного местоположения во входном изображении.

Дополнительные изображения для обучения со случайными геометрическими преобразованиями

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

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

  1. Укажите обучающие изображения.

  2. Настройка параметров преобразования изображения, таких как диапазон углов поворота и необходимость применения случайного отражения, путем создания imageDataAugmenter.

    Совет

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

  3. Создание augmentedImageDatastore. Укажите учебные изображения, размер выходных изображений и imageDataAugmenter. Размер выходных изображений должен быть совместим с размером imageInputLayer сети.

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

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

Выполнение дополнительных операций обработки изображений с использованием встроенных хранилищ данных

Некоторые хранилища данных выполняют определенные и ограниченные операции предварительной обработки изображений при чтении пакета данных. Эти хранилища данных для конкретных приложений перечислены в таблице. Эти хранилища данных можно использовать в качестве источника данных обучения, проверки и тестирования для приложений глубокого обучения, использующих Toolbox™ глубокого обучения. Все эти хранилища данных возвращают данные в формате, поддерживаемом trainNetwork.

Хранилище данныхОписание
augmentedImageDatastoreПрименение случайных аффинных геометрических преобразований, включая изменение размеров, вращение, отражение, сдвиг и перемещение, для обучения глубоких нейронных сетей. Пример см. в разделе Передача обучения с использованием предварительно обученной сети.
pixelLabelImageDatastore(Панель инструментов компьютерного зрения)Примените идентичные аффинные геометрические преобразования к изображениям и соответствующим меткам истинности земли для обучения семантическим сетям сегментации (требуется Computer Vision Toolbox™). Пример см. в разделе Семантическая сегментация с использованием глубокого обучения.
randomPatchExtractionDatastore(Панель инструментов обработки изображений)Извлеките несколько пар случайных исправлений из изображений или меток пикселей (требуется Toolbox™ обработки изображений). К парам фрагментов можно применить идентичные случайные аффинные геометрические преобразования. Пример см. в разделе Суперразрешение одного изображения с помощью глубокого обучения.
denoisingImageDatastore(Панель инструментов обработки изображений)Применять произвольно генерируемые гауссовы помехи для тренировочных денойзирующих сетей (требуется инструментарий обработки изображений).

Применение пользовательских трубопроводов обработки изображений с помощью комбинирования и преобразования

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

Преобразовать хранилища данных с данными изображения

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

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

  • Когда ReadSize равно 1, функция преобразования должна принимать целочисленный массив. Размер массива соответствует типу изображений в ImageDatastore. Например, изображение в градациях серого имеет размеры m-by-n, изображение в цветной гамме имеет размеры m-by-n-by-3, а многоспектральное изображение с каналами c имеет размеры m-by-n-by-c.

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

transform функция должна возвращать данные, соответствующие входному размеру сети. transform функция не поддерживает сопоставления «один ко многим».

Совет

transform функция поддерживает предварительную выборку, когда андерлаинг ImageDatastore считывает пакет файлов изображений JPG или PNG. Для этих типов изображений не используйте readFcn аргумент ImageDatastore для применения предварительной обработки изображения, поскольку этот параметр обычно значительно медленнее. Если используется пользовательская функция чтения, то ImageDatastore не выполняет предварительную выборку.

Объединение хранилищ данных с данными изображения

combine функция объединяет данные, считанные из нескольких хранилищ данных, и поддерживает четность между хранилищами данных.

  • Объедините данные в таблицу из двух столбцов или массив ячеек из двух столбцов для обучающих сетей с одним входом, например, в сети регрессии «изображение-изображение».

  • Соединить данные с (numInputs+ 1) - массив ячеек столбцов для обучающих сетей с несколькими входами.

См. также

| | | |

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

Подробнее