trainACFObjectDetector

Обучите детектор объектов ACF

Описание

detector = trainACFObjectDetector(trainingData) возвращает обученный детектор объектов совокупных функций канала (ACF). Функция использует положительные образцы объектов в изображениях, заданных в trainingData Таблица и автоматически собирает отрицательные образцы с изображений во время обучения. Чтобы создать таблицу основной истины, используйте приложение Image Labeler или Video Labeler.

пример

detector = trainACFObjectDetector(trainingData,Name,Value) возвращает detector объект с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

Примеры

свернуть все

Используйте trainACFObjectDetector с обучающими изображениями для создания детектора объектов ACF, который может обнаруживать знаки остановки. Протестируйте детектор с отдельным изображением.

Загрузите обучающие данные.

load('stopSignsAndCars.mat')

Выберите основную истину для знаков упора. Эта основная истина является набором известных местоположений стоповых знаков на изображениях.

stopSigns = stopSignsAndCars(:,1:2);

Добавьте полный путь к файлам изображений.

stopSigns.imageFilename = fullfile(toolboxdir('vision'),...
    'visiondata',stopSigns.imageFilename);

Обучите детектор ACF. Можно выключить вывод процесса обучения путем определения 'Verbose',false как Name,Value пара.

acfDetector = trainACFObjectDetector(stopSigns,'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 18.9314 seconds.

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

img = imread('stopSignTest.jpg');

[bboxes,scores] = detect(acfDetector,img);

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

for i = 1:length(scores)
   annotation = sprintf('Confidence = %.1f',scores(i));
   img = insertObjectAnnotation(img,'rectangle',bboxes(i,:),annotation);
end

figure
imshow(img)

Figure contains an axes. The axes contains an object of type image.

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

свернуть все

Маркированные основные истины изображения, заданные как таблица с двумя столбцами. Первый столбец должен содержать пути и имена файлов к изображениям в градациях серого или truecolor (RGB). Хотя детекторы на основе ACF лучше всего работают с изображениями труколора. Второй столбец содержит M-на-4 матрицы, которые содержат положения ограничивающих рамок, связанных с соответствующим изображением. Местоположения находятся в формате, [x, y, width, height]. Второй столбец представляет положительный образец одного класса объектов, такого как автомобиль, собака, цветок или стоп-знак. Отрицательные образцы автоматически собираются с изображений в процессе обучения .

Каждый ограничивающий прямоугольник должен быть в формате [x, y, width, height]. Формат задает расположение верхнего левого угла и размер объекта в соответствующем изображении. Имя табличной переменной (столбца) задает имя класса объекта. Чтобы создать таблицу основной истины, используйте приложение Image Labeler.

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'ObjectTrainingSize', [100 100]

Размер объектов во время обучения, заданный как 2-элементный вектор формы [height width] в пикселях. Минимальный размер обучения [8 8]. В процессе обучения размеры объектов изменяются на высоту и ширину, заданные 'ObjectTrainingSize'. Увеличение размера может улучшить точность обнаружения, но также увеличивает время обучения и обнаружения.

Когда вы задаете 'Auto'размер устанавливается на основе среднего отношения ширины к высоте положительных образцов.

Пример: [100,100]

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

Количество этапов обучения для итерационного процесса обучения, заданное как разделенная разделенными запятой парами, состоящая из 'NumStages'и положительное целое число. Увеличение этого количества может улучшить детектор и уменьшить ошибки обучения за счет более длительного времени обучения.

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

Отрицательный коэффициент расчета, заданный как разделенная разделенными запятой парами, состоящая из 'NegativeSamplesFactor'и реальный скаляр. Количество отрицательных выборок для использования на каждом этапе равно

NegativeSamplesFactor × number of positive samples used at each stage

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

Максимальное количество слабых учащихся для последнего этапа, заданное как разделенная разделенными запятой парами, состоящая из 'MaxWeakLearners'и положительный целочисленный скаляр или вектор положительных целых чисел. Если вход скаляром, MaxWeakLearners задает максимальное число для последнего этапа. Если вход является вектором, MaxWeakLearners задает максимальное число для каждого из каскадов и должна иметь длину, равную 'NumStages'. Эти значения обычно увеличиваются на всех стадиях. Детектор объектов ACF использует алгоритм бустинга, чтобы создать ансамбль более слабых учащихся. Можно использовать более высокие значения для повышения точности обнаружения за счет снижения скорости эффективности. Рекомендуемые значения варьируются от 300 до 5000.

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

Опция для отображения информации о прогрессе для процесса обучения, заданная как разделенная разделенными запятой парами, состоящая из 'Verbosetrue или false.

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

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

свернуть все

Обученный детектор объектов на основе ACF, возвращенный как acfObjectDetector объект.

Введенный в R2017a