exponenta event banner

предварительно обработать

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

    Описание

    пример

    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 можно установить из проводника надстроек. Дополнительные сведения об установке надстроек см. в разделе Получение надстроек и управление ими. Для выполнения этой функции потребуется 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, содержащий изображения, ограничивающие рамки и метки классов. Каждая строка имеет вид [метки ограничивающих рамок изображений]. 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