acfObjectDetector

Обнаружьте объекты, использующие совокупные функции канала

Описание

acfObjectDetector объект обнаруживает объекты от изображения, с помощью детектора объектов совокупных функций канала (ACF). Чтобы обнаружить объекты в изображении, передайте обученный детектор detect функция.

Детектор объектов ACF распознает конкретные объекты в изображениях, на основе учебных изображений и объектных местоположений основной истины, используемых с trainACFObjectDetector функция.

Создание

Создайте acfObjectDetector объект путем вызова trainACFObjectDetector функция с обучающими данными.

detector = trainACFObjectDetector(trainingData,...)

Свойства

развернуть все

Имя модели классификации в виде вектора символов или строкового скаляра. По умолчанию имя определяется к заголовку второго столбца trainingData таблица, заданная в trainACFObjectDetector функция. Можно изменить это имя после создания acfObjectDetector объект.

Пример: 'stopSign'

Это свойство доступно только для чтения.

Размер учебных изображений в виде [height width] вектор.

Пример: [100 100]

Это свойство доступно только для чтения.

Количество слабых учеников используется в детекторе в виде целого числа. NumWeakLearners меньше чем или равно максимальному количеству слабых учеников для последнего учебного этапа. Чтобы ограничить этот максимум, можно использовать 'MaxWeakLearners' пара "имя-значение" в trainACFObjectDetector функция.

Функции объекта

detectОбнаружьте объекты с помощью детектора объектов ACF

Примеры

свернуть все

Используйте 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 19.2848 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)

Ссылки

[1] Доллар, P., Р. Аппел, С. Белонги и П. Перона. "Быстро Покажите Пирамиды для Обнаружения объектов". Анализ шаблона и Искусственный интеллект, Транзакции IEEE. Издание 36, Выпуск 8, 2014, стр 1532–1545.

Расширенные возможности

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

Приложения

Функции

Введенный в R2017a