acfObjectDetector

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

Описание

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

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

Создание

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

detector = trainACFObjectDetector(trainingData,...)

Описание

пример

detector = acfObjectDetector(detectorStruct.Classifier,detectorStruct.TrainingOptions) создает acfObjectDetector объект, который идентичен существующему acfObjectDetector объект с помощью свойств объектов Classifier и TraningOptions, которые хранятся в detectorStruct поля структуры. Используйте этот синтаксис, чтобы воссоздать детектор объектов ACF для генерации кода.

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

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

Предварительно обученный acfObjectDetector объектный классификатор в виде поля структуры. Получить свойство объекта Classifier, преобразуйте предварительно обученный acfObjectDetector возразите против detectorStruct структура при помощи toStruct функция. Затем используйте запись через точку.

Предварительно обученный acfObjectDetector объектные опции обучения в виде поля структуры. Получить свойство объекта TrainingOptions, преобразуйте предварительно обученный acfObjectDetector возразите против detectorStruct структура при помощи toStruct функция. Затем используйте запись через точку.

Свойства

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

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

Пример: 'stopSign'

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

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

Пример: [100 100]

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

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

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

detectОбнаружьте объекты с помощью детектора объектов ACF
toStructПреобразуйте обученный детектор объектов совокупных функций канала (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 20.3163 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 object. The axes object contains an object of type image.

Загрузите детектор знака Стоп ACF от stopSignDetector.mat файл, который присутствует в текущей рабочей папке как вспомогательный файл.

stopSignDetector = load('stopSignDetectorACF.mat');
detector = stopSignDetector.detector
detector = 

  acfObjectDetector with properties:

             ModelName: 'stopSign'
    ObjectTrainingSize: [34 31]
       NumWeakLearners: 61

Преобразуйте детектор в структуру при помощи toStruct функция.

detectorStruct = toStruct(detector);

Чтобы сгенерировать код, передайте структуру функции MATLAB. Затем в функции MATLAB, создайте идентичный детектор знака Стоп ACF с помощью существующих свойств детектора.

detector1 = acfObjectDetector(detectorStruct.Classifier,detectorStruct.TrainingOptions)
detector1 = 

  acfObjectDetector with properties:

             ModelName: 'stopSign'
    ObjectTrainingSize: [34 31]
       NumWeakLearners: 61

Можно передать detector1 к detect функционируйте как вход, чтобы обнаружить знаки Стоп от изображений.

Ссылки

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

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

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

Приложения

Функции

Введенный в R2017a