trainACFObjectDetector

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

Синтаксис

detector = trainACFObjectDetector(trainingData)
detector = trainACFObjectDetector(trainingData,Name,Value)

Описание

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.7169 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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

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

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

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

свернуть все

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

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

Приложения

Функции

Введенный в R2017a