Чтобы обучить сеть и сделать прогнозы на новых данных, ваши изображения должны совпадать с входным размером сети. Если необходимо настроить размер изображений, чтобы совпадать с сетью, то можно повторно масштабировать или обрезать данные к необходимому размеру.
Можно эффективно увеличиться, сумма обучающих данных путем применения рандомизировала augmentation к данным. Увеличение также позволяет вам обучить нейронные сети, чтобы быть инвариантными к искажениям в данных изображения. Например, можно добавить рандомизированные вращения, чтобы ввести изображения так, чтобы сеть была инвариантной к присутствию вращения во входных изображениях. augmentedImageDatastore
обеспечивает удобный способ применить ограниченный набор увеличений к 2D изображениям для проблем классификации.
Для более усовершенствованных операций предварительной обработки, чтобы предварительно обработать изображения для проблем регрессии или предварительно обработать 3-D объемные изображения, можно запустить со встроенного datastore. Можно также предварительно обработать изображения согласно собственному конвейеру при помощи transform
и combine
функции.
Можно сохранить данные изображения как числовой массив, ImageDatastore
объект или таблица. ImageDatastore
позволяет вам импортировать данные в пакетах от коллекций изображений, которые являются слишком большими, чтобы уместиться в памяти. Можно использовать увеличенный datastore изображений или измененный 4-D массив для обучения, прогноза и классификации. Можно использовать измененный трехмерный массив в прогнозе и классификации только.
Существует два способа изменить размер данных изображения, чтобы совпадать с входным размером сети.
Перемасштабирование умножает высоту и ширину изображения масштабным коэффициентом. Если масштабный коэффициент не идентичен в вертикальных и горизонтальных направлениях, то, повторно масштабируя изменения пространственные степени пикселей и соотношения сторон.
Обрезка извлекает подобласть изображения и сохраняет пространственную степень каждого пикселя. Можно обрезать изображения от центра или от случайных положений в изображении.
Изменение размеров опции | Формат данных | Изменение размеров функции | Пример кода |
---|---|---|---|
Перемасштабирование |
| imresize |
im = imresize(I,inputSize);
|
| augmentedImageDatastore |
auimds = augmentedImageDatastore(inputSize,I);
| |
Обрезка |
| imcrop |
im = imcrop(I,rect);
|
| imcrop3 |
im = imcrop3(I,cuboid);
| |
| augmentedImageDatastore |
auimds = augmentedImageDatastore(inputSize,I,'OutputSizeMode',m);
Задайте Задайте |
Для проблем классификации изображений можно использовать augmentedImageDatastore
увеличивать изображения со случайной комбинацией изменения размеров, вращения, отражения, сдвига и преобразований перевода.
Схема показывает как trainNetwork
использует увеличенный datastore изображений, чтобы преобразовать обучающие данные в течение каждой эпохи. Для примера рабочего процесса смотрите, Обучат сеть с Увеличенными Изображениями.
Задайте учебные изображения.
Сконфигурируйте опции преобразования изображений, такие как область значений углов поворота и применить ли отражение наугад путем создания imageDataAugmenter
.
Чтобы предварительно просмотреть преобразования, к которым применяются демонстрационные изображения, используйте augment
функция.
Создайте augmentedImageDatastore
. Задайте учебные изображения, размер выходных изображений и imageDataAugmenter
. Размер выходных изображений должен быть совместим с размером imageInputLayer
из сети.
Обучите сеть, задав увеличенный datastore изображений как источник данных для trainNetwork
. Для каждой итерации обучения увеличенный datastore изображений применяет случайную комбинацию преобразований к изображениям в мини-пакете обучающих данных.
Когда вы используете увеличенный datastore изображений в качестве источника учебных изображений, datastore случайным образом тревожит обучающие данные в течение каждой эпохи, так, чтобы каждая эпоха использовала немного отличающийся набор данных. Фактическое количество учебных изображений в каждую эпоху не изменяется. Преобразованные изображения не хранятся в памяти.
Некоторые хранилища данных выполняют определенные и ограниченные операции предварительной обработки изображений, когда они читают пакет данных. Эти специализированные хранилища данных перечислены в таблице. Можно использовать эти хранилища данных в качестве источника обучения, валидации и наборов тестовых данных для применения глубокого обучения то использование Deep Learning Toolbox™. Все эти хранилища данных возвращают данные в формате, поддержанном trainNetwork
.
Datastore | Описание |
---|---|
augmentedImageDatastore | Примените случайные аффинные геометрические преобразования, включая изменение размеров, вращение, отражение, сдвиг и перевод, для учебных глубоких нейронных сетей. Для примера смотрите, что Передача Учится Используя AlexNet. |
pixelLabelImageDatastore | Примените идентичные аффинные геометрические преобразования к изображениям, и соответствующие метки основной истины для того, чтобы обучить сети семантической сегментации (требует Computer Vision Toolbox™). Для примера смотрите, что Семантическая Сегментация Использует Глубокое обучение. |
randomPatchExtractionDatastore | Извлеките несколько пар случайных закрашенных фигур от изображений, или пиксельные изображения метки (требует Image Processing Toolbox™). Опционально можно применить идентичные случайные аффинные геометрические преобразования к парам закрашенных фигур. Для примера смотрите, что Одно Суперразрешение Изображений Использует Глубокое обучение. |
denoisingImageDatastore | Применяйтесь случайным образом сгенерированный Гауссов шум для того, чтобы обучить сети шумоподавления (требует Image Processing Toolbox). |
Чтобы выполнить более общие и комплексные операции предварительной обработки изображений, чем предлагаемый специализированными хранилищами данных, можно использовать transform
и combine
функции. Для получения дополнительной информации смотрите Хранилища данных для Глубокого обучения.
transform
функция создает измененную форму datastore, названного underlying datastore, путем преобразования данных, считанных базовым datastore согласно функции преобразования, которую вы задаете.
Пользовательская функция преобразования должна принять данные в формате, возвращенном read
функция базового datastore. Для данных изображения в ImageDatastore
, формат зависит от ReadSize
свойство.
Когда ReadSize
1, функция преобразования должна принять целочисленный массив. Размер массива сопоставим с типом изображений в ImageDatastore
. Например, полутоновое изображение имеет размерности m-by-n, изображение истинного цвета имеет размерности m-by-n-by-3, и многоспектральное изображение с каналами c имеет размерности m-by-n-by-c.
Когда ReadSize
больше 1, функция преобразования должна принять массив ячеек данных изображения. Каждый элемент соответствует изображению в пакете.
transform
функция должна возвратить данные, которые совпадают с входным размером сети. transform
функция не поддерживает one-many отображения наблюдения.
transform
функционируйте упреждающая выборка поддержек когда базовый ImageDatastore
читает пакет файлов изображений PNG или JPG. Для этих типов изображения не используйте readFcn
аргумент ImageDatastore
применять предварительную обработку изображений, когда эта опция обычно значительно медленнее. Если вы используете пользовательскую функцию чтения, то ImageDatastore
не выбирает с упреждением.
combine
функция конкатенирует данные, считанные из нескольких хранилищ данных, и обеспечивает четность между хранилищами данных.
Конкатенация данных в ячейку таблицы 2D столбца или массив 2D ячейки столбца для того, чтобы обучить нейронные сети с одним входом, таким как сети регрессии от изображения к изображению.
Конкатенация данных к (numInputs
+1) - массив ячейки столбца для того, чтобы обучить нейронные сети с несколькими входными параметрами.
ImageDatastore
| combine
| imresize
| trainNetwork
| transform