preprocess

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

    Описание

    пример

    outputData = preprocess(detector,trainingData) предварительно обрабатывает обучающие данные trainingData перед использованием его, чтобы обучить детектор объектов YOLO v3. Учебные изображения и соответствующие ограничительные рамки хранятся в trainingData. preprocess функция выполняет эти операции:

    • Перемасштабирует значения интенсивности учебных изображений к области значений [0, 1].

    • Изменяет размер учебных изображений к одному из самых близких сетевых входных размеров и обновляет значения координаты ограничительной рамки для точного обучения. Функция сохраняет исходное соотношение сторон обучающих данных.

    пример

    outputImg = preprocess(detector,img) предварительно обрабатывает тестовые изображения img для обнаружения объектов с помощью детектора объектов YOLO v3. preprocess функция выполняет эти операции:

    • Перемасштабирует значения интенсивности тестовых изображений к области значений [0, 1].

    • Изменяет размер тестовых изображений к одному из самых близких сетевых входных размеров и сохраняет исходное соотношение сторон каждого тестового изображения.

    [___,scaleInfo] = preprocess(___) возвращается информация о масштабном коэффициенте запросила изменение размеров изображений, в дополнение к любой комбинации аргументов от предыдущих синтаксисов.

    Примечание

    Эта функция требует Модели Computer Vision Toolbox™ для обнаружения объектов YOLO v3. Можно установить Модель Computer Vision Toolbox для обнаружения объектов YOLO v3 из Add-On Explorer. Для получения дополнительной информации об установке дополнений, смотрите, Получают и Управляют Дополнениями. Чтобы запустить эту функцию, вы потребуете Deep Learning Toolbox™.

    Примеры

    свернуть все

    Загрузите предварительно обученный детектор объектов YOLO v3.

    detector = yolov3ObjectDetector('tiny-yolov3-coco');

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

    load('trainingData.mat','trainingData');

    Измените размер учебных изображений к самому близкому сетевому входному размеру и перемасштабируйте значения интенсивности при помощи preprocess функция.

    outputData = preprocess(detector,trainingData);

    Отобразите выходное изображение и информацию о шкале, используемую для изменения размеров изображения.

    outputImg = outputData{1,1};
    figure
    imshow(outputImg)

    Отобразите вход и предварительно обработанные значения.

    bboxIn = cell2table(trainingData,'VariableNames',{'Images','Bounding Boxes','Labels'})
    bboxIn=3×3 table
             Images               Bounding Boxes           Labels   
        _________________    ________________________    ___________
    
        {224×399×3 uint8}    220    136     35     28    {'vehicle'}
        {224×399×3 uint8}    175    126     61     45    {'vehicle'}
        {224×399×3 uint8}    108    120     45     33    {'vehicle'}
    
    
    bboxOut = cell2table(outputData,'VariableNames',{'Images','Bounding Boxes','Labels'})
    bboxOut=3×3 table
              Images               Bounding Boxes           Labels   
        __________________    ________________________    ___________
    
        {416×416×3 single}    229    232     36     29    {'vehicle'}
        {416×416×3 single}    182    222     64     46    {'vehicle'}
        {416×416×3 single}    112    215     47     35    {'vehicle'}
    
    

    Загрузите предварительно обученный детектор объектов YOLO v3.

    detector = yolov3ObjectDetector('tiny-yolov3-coco');

    Считайте тестовое изображение.

    I = imread('highway.png');

    Измените размер тестового изображения к сетевому входному размеру и перемасштабируйте значения интенсивности при помощи preprocess функция.

    [outputImg,scaleInfo] = preprocess(detector,I);

    Отобразите выходное изображение и информацию о шкале, используемую для изменения размеров изображения.

    figure
    imshow(outputImg)

    disp(scaleInfo)
        PreprocessedImageSize: [416 416]
                       ScaleX: 0.7692
                       ScaleY: 0.5769
    

    Входные параметры

    свернуть все

    Детектор объектов YOLO v3 в виде yolov3ObjectDetector объект.

    Обучающие данные для детектора объектов YOLO v3 в виде N-by-3 массив ячеек, который содержит изображения, ограничительные рамки и метки класса. Каждая строка имеет форму [images bounding boxes labels]. N является количеством выходных слоев в сети. Ограничительные рамки должны храниться как K-by-4 матрица формы [x y width height]. K является количеством классов объектов.

    Протестируйте изображения в виде числового массива размера M-by-N-by-C или M-by-N-by-C-by-T. M является количеством строк, N является количеством столбцов, и C является количеством цветовых каналов. Значением C является 1 для полутоновых изображений и 3 для цветных изображений RGB. T является количеством тестовых изображений в массиве.

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Выходные аргументы

    свернуть все

    Предварительно обработанные обучающие данные, возвращенные как N-by-3 массив ячеек.

    Типы данных: cell

    Предварительно обработанные тестовые изображения, возвращенные как числовой массив размера P-by-Q-by-C или P-by-Q-by-C-by-T. P и Q являются количеством строк и столбцов, соответственно, в предварительно обработанном изображении.

    Типы данных: single

    Информация о масштабном коэффициенте для изменения размеров входных изображений, возвращенных как структура с полями PreprocessedImageSize, ScaleX, и ScaleY.

    • PreprocessedImageSize — Размер выхода изменил размер изображения.

    • ScaleX — Масштабный коэффициент для изменения размеров изображения в X - направление (вдоль строк).

    • ScaleY — Масштабный коэффициент для изменения размеров изображения в Y - направление (вдоль столбцов).

    Типы данных: struct

    Введенный в R2021a