trainACFObjectDetector

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

Описание

detector = trainACFObjectDetector(trainingData) возвращает обученный детектор объектов совокупных функций канала (ACF). Функция использует положительные экземпляры объектов в изображениях, данных в trainingData таблица и автоматически собирает отрицательные экземпляры из изображений во время обучения. Чтобы составить таблицу основной истины, используйте приложение Video Labeler или Image 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.4757 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)

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

свернуть все

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

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

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

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

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

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

Когда вы задаете '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 до 5 000.

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

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

Типы данных: логический

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

свернуть все

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

Смотрите также

Приложения

Функции

Введенный в R2017a