objectDetectorTrainingData

Создайте данные тренировки для объектного детектора

Синтаксис

trainingData = objectDetectorTrainingData(gTruth)
trainingData = objectDetectorTrainingData(gTruth,Name,Value)

Описание

пример

trainingData = objectDetectorTrainingData(gTruth) возвращает таблицу данных тренировки от заданной наземной истины. Таблица может использоваться, чтобы обучить объектный детектор с помощью учебных функций, таких как trainACFObjectDetector, trainRCNNObjectDetector, trainFastRCNNObjectDetector и trainFasterRCNNObjectDetector.

Эта функция поддерживает параллельные вычисления с помощью нескольких рабочих MATLAB®. Включите параллельные вычисления с помощью диалогового окна Настроек Computer Vision Toolbox.

trainingData = objectDetectorTrainingData(gTruth,Name,Value) возвращает таблицу данных тренировки с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Если объекты groundTruth в gTruth были созданы с помощью видеофайла или пользовательского источника данных, то можно задать любую комбинацию аргументов пары "имя-значение". Если объекты groundTruth были созданы из набора изображений или источника данных последовательности изображений, то можно задать только аргумент пары "имя-значение" SamplingFactor.

Примеры

свернуть все

Используйте данные тренировки, чтобы обучить основанный на ACF детектор.

Добавьте папку, содержащую изображения к пути MATLAB.

imageDir = fullfile(matlabroot, 'toolbox', 'vision', 'visiondata', 'stopSignImages');
addpath(imageDir);

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

load('stopSignsAndCarsGroundTruth.mat','stopSignsAndCarsGroundTruth')

Просмотрите определения метки, чтобы видеть типы метки в наземной истине.

stopSignsAndCarsGroundTruth.LabelDefinitions
ans=3×3 table
       Name         Type       Group 
    __________    _________    ______

    'stopSign'    Rectangle    'None'
    'carRear'     Rectangle    'None'
    'carFront'    Rectangle    'None'

Выберите данные о знаке Стоп для обучения.

stopSignGroundTruth = selectLabels(stopSignsAndCarsGroundTruth,'stopSign');

Создайте данные тренировки для детектора объекта автомобиля.

trainingData = objectDetectorTrainingData(stopSignGroundTruth);
summary(trainingData)
Variables:

    imageFilename: 41x1 cell array of character vectors

    stopSign: 41x1 cell

Обучите детектор объекта ACF автомобилям.

acfDetector = trainACFObjectDetector(trainingData,'NegativeSamplesFactor',2);
ACF Object Detector Training
The training will take 4 stages. The model size is 34x31.
Sample positive examples(~100% Completed)
Compute approximation coefficients...Completed.
Compute aggregated channel features...Completed.
--------------------------------------------
Stage 1:
Sample negative examples(~100% Completed)
Compute aggregated channel features...Completed.
Train classifier with 42 positive examples and 84 negative examples...Completed.
The trained classifier has 19 weak learners.
--------------------------------------------
Stage 2:
Sample negative examples(~100% Completed)
Found 84 new negative examples for training.
Compute aggregated channel features...Completed.
Train classifier with 42 positive examples and 84 negative examples...Completed.
The trained classifier has 20 weak learners.
--------------------------------------------
Stage 3:
Sample negative examples(~100% Completed)
Found 84 new negative examples for training.
Compute aggregated channel features...Completed.
Train classifier with 42 positive examples and 84 negative examples...Completed.
The trained classifier has 54 weak learners.
--------------------------------------------
Stage 4:
Sample negative examples(~100% Completed)
Found 84 new negative examples for training.
Compute aggregated channel features...Completed.
Train classifier with 42 positive examples and 84 negative examples...Completed.
The trained classifier has 61 weak learners.
--------------------------------------------
ACF object detector training is completed. Elapsed time is 17.4819 seconds.

Протестируйте детектор ACF на демонстрационном изображении.

I = imread('stopSignTest.jpg');
bboxes = detect(acfDetector,I);

Отобразите обнаруженный объект.

annotation = acfDetector.ModelName;
I = insertObjectAnnotation(I,'rectangle',bboxes,annotation);

figure 
imshow(I)

Удалите папку изображений из пути.

rmpath(imageDir); 

Добавьте папку изображений в путь MATLAB.

imageDir = fullfile(matlabroot,'toolbox','driving','drivingdata','vehiclesSequence');
addpath(imageDir);

Загрузите данные groundTruth.

load vehicleGroundTruth.mat

Создайте данные тренировки для детектора объекта автомобиля.

trainingData = objectDetectorTrainingData(gTruth,'SamplingFactor',2);

Обучите детектор объекта ACF автомобилям.

acfDetector = trainACFObjectDetector(trainingData,'ObjectTrainingSize',[20 20]);
ACF Object Detector Training
The training will take 4 stages. The model size is 20x20.
Sample positive examples(~100% Completed)
Compute approximation coefficients...Completed.
Compute aggregated channel features...Completed.
--------------------------------------------
Stage 1:
Sample negative examples(~100% Completed)
Compute aggregated channel features...Completed.
Train classifier with 71 positive examples and 355 negative examples...Completed.
The trained classifier has 68 weak learners.
--------------------------------------------
Stage 2:
Sample negative examples(~100% Completed)
Found 76 new negative examples for training.
Compute aggregated channel features...Completed.
Train classifier with 71 positive examples and 355 negative examples...Completed.
The trained classifier has 120 weak learners.
--------------------------------------------
Stage 3:
Sample negative examples(~100% Completed)
Found 54 new negative examples for training.
Compute aggregated channel features...Completed.
Train classifier with 71 positive examples and 355 negative examples...Completed.
The trained classifier has 170 weak learners.
--------------------------------------------
Stage 4:
Sample negative examples(~100% Completed)
Found 63 new negative examples for training.
Compute aggregated channel features...Completed.
Train classifier with 71 positive examples and 355 negative examples...Completed.
The trained classifier has 215 weak learners.
--------------------------------------------
ACF object detector training is completed. Elapsed time is 6.4979 seconds.

Протестируйте детектор ACF на тестовом изображении.

I = imread('highway.png');
[bboxes, scores] = detect(acfDetector,I,'Threshold',1);

Выберите самое сильное обнаружение.

[~,idx] = max(scores);

Отобразите обнаруженный объект.

annotation = acfDetector.ModelName;
I = insertObjectAnnotation(I,'rectangle',bboxes(idx,:),annotation);

figure 
imshow(I)

Удалите папку изображений из пути.

rmpath(imageDir);

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

свернуть все

Оснуйте данные об истине, заданные как массив объектов groundTruth. Можно создать наземные объекты истины из существующих наземных данных об истине при помощи объекта groundTruth.

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'SamplingFactor', 5

Фактор, в котором можно подвыбрать изображения в наземном источнике данных истины, заданном как 'auto', целое число или вектор целых чисел. Для фактора выборки N возвращенные данные тренировки включают каждый N th изображение в наземном источнике данных истины, игнорируя наземные изображения истины с пустыми данными о метке.

SamplingFactorВыборка прикладного фактора
'auto'Выбирающим факторным N является 5 для источников данных с метками времени и 1 для набора изображений.
Целое числоВсе наземные источники данных истины в gTruth выбираются с тем же фактором выборки, N.
Вектор целых чиселk th наземный источник данных истины в gTruth выбирается с фактором выборки N (k).

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

Формат файла изображения, заданный как скаляр строки или вектор символов. Форматы файлов должны поддерживаться imwrite. Этот аргумент применяется только для объектов groundTruth, созданных с помощью видеофайла или пользовательского источника данных.

Префикс применился к именам файлов выходного изображения, заданным как скаляр строки или вектор символов. Файлы изображений называют как:

<name_prefix><image_number>.<image_format>

Значение по умолчанию использует имя источника данных, что изображения были извлечены от, strcat(sourceName,'_'). Это свойство применяется только для объектов groundTruth, созданных с помощью видеофайла или пользовательского источника данных.

Отобразите учебные достижения по командной строке MATLAB, заданной или как true или как false. Это свойство применяется только для объектов groundTruth, созданных с помощью видеофайла или пользовательского источника данных.

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

свернуть все

Данные тренировки, возвращенные как таблица с двумя или больше столбцами. Первый столбец таблицы содержит имена файла образа. Остальные столбцы содержат положения объекта для прямоугольных меток ROI, найденных в наземном входе объекта истины, gTruth. Прямоугольными метками ROI должен быть [x, y, width, height] ограничительные рамки, которые задают положения объекта в каждом изображении. Только метки, соответствующие прямоугольным меткам ROI, возвращены в trainingData. Другие метки проигнорированы. Выходная таблица игнорирует любую подметку и/или данные об атрибуте, существующие в объекте входа gTruth.

Введенный в R2017a

Для просмотра документации необходимо авторизоваться на сайте