preprocess

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

    Описание

    пример

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

    • Изменение значения интенсивности обучающих изображений в области значений [0, 1].

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

    пример

    outputImg = preprocess(detector,img) предварительно обрабатывает тестовые изображения img для обнаружения объектов с помощью детектора объектов YOLO v3. The 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 - количество выхода слоев в сети. Ограничивающие прямоугольники должны быть сохранены как матрица <reservedrangesplaceholder5>-by-4 формы [<reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> ]. 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 Q C или P Q C T. P и Q количество строк и столбцов, соответственно, в предварительно обработанном изображении.

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

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

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

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

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

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

    Введенный в R2021a