Обучение сеть и прогнозы создания на новых данных требуют изображений, которые совпадают с входным размером сети. В зависимости от формата ваших данных можно использовать imresize
или augmentedImageDatastore
, чтобы изменить размер изображений к необходимому размеру.
Можно применить аффинные геометрические преобразования к изображениям, чтобы увеличить обучение, валидацию, тест и наборы данных прогноза. Увеличение учебных изображений помогает препятствовать тому, чтобы сеть сверхсоответствовала и запомнила точные детали учебных изображений.
Для более усовершенствованной предварительной обработки можно запустить со встроенного datastore, который выполняет определенные операции предварительной обработки изображений, подходящие для распространенных приложений. Можно также предварительно обработать изображения согласно собственному конвейеру при помощи функций combine
и transform
. Для получения дополнительной информации смотрите Хранилища данных для Глубокого обучения.
Можно сохранить данные изображения как числовой массив, ImageDatastore
или таблицу. ImageDatastore
позволяет вам импортировать данные из наборов изображений, которые являются слишком большими, чтобы уместиться в памяти. Эта функция разработана, чтобы считать пакеты изображений для более быстрой обработки в приложениях компьютерного зрения и машинном обучении. Можно использовать увеличенный datastore изображений или измененный 4-D массив для обучения, прогноза и классификации. Можно использовать измененный трехмерный массив для прогноза и классификации только.
Метод, чтобы изменить размер изображений зависит от типа данных image.
Тип данных | Изменение размеров функции | Пример кода |
---|---|---|
Трехмерный массив, представляющий одно цветное изображение, одно многоспектральное изображение или стек полутоновых изображений | imresize | Изменить размер изображений в трехмерном массиве im = imresize(im3d,inputSize); |
Массив 4-D, представляющий стек изображений | imresize | Изменить размер изображений в 4-D массиве im = imresize(im4d,inputSize); |
augmentedImageDatastore | Повторно масштабировать изображения в 4-D массиве auimds = augmentedImageDatastore(inputSize,im4d); | |
ImageDatastore | augmentedImageDatastore | Повторно масштабировать изображения в datastore изображений auimds = augmentedImageDatastore(inputSize,imds); |
таблица | augmentedImageDatastore | Повторно масштабировать изображения в таблице auimds = augmentedImageDatastore(inputSize,tbl); |
По умолчанию augmentedImageDatastore
повторно масштабирует изображения к желаемому размеру. Если вместо этого вы хотите обрезать изображения от центра или от случайных положений в изображении, можно использовать аргумент пары "имя-значение"
. Например, этот код показывает, как обрезать изображения в datastore изображений 'OutputSizeMode'
imds
от центра каждого изображения:auimds = augmentedImageDatastore(inputSize,imds,'OutputSizeMode','centercrop');
В дополнение к изменению размеров изображений 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). |
Чтобы выполнить более общие и комплексные операции предварительной обработки изображений, чем предлагаемый специализированными хранилищами данных, можно использовать функции combine
и transform
. Функция transform
создает измененную форму datastore, названного underlying datastore, путем преобразования данных, считанных базовым datastore согласно функции преобразования, которую вы задаете. Функция combine
конкатенирует данные, считанные от нескольких хранилищ данных до ячейки таблицы 2D столбца или формата 2D ячейки столбца массивов, требуемого trainNetwork
. Функция combine
поддерживает четность между базовыми хранилищами данных.
Функция | Получившийся Datastore | Описание |
---|---|---|
transform | TransformedDatastore | Преобразуйте пакеты считанных данных из базового datastore согласно вашему собственному конвейеру предварительной обработки. |
combine | CombinedDatastore | Горизонтально конкатенируйте данные, считанные из двух или больше базовых хранилищ данных. |
Пользовательская функция преобразования должна принять данные в формате, возвращенном функцией read
базового datastore. Для данных изображения формат зависит от свойства ReadSize
базового ImageDatastore
.
Когда 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
не выбирает с упреждением.
ImageDatastore
| combine
| imresize
| trainNetwork
| transform