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