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 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)

Ссылки

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

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

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

Приложения

Функции

Введенный в R2017a