exponenta event banner

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'

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

Размер обучающих изображений, заданный как вектор [ширина высоты].

Пример: [100 100]

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

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

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

detectОбнаружение объектов с помощью детектора объектов ACF
toStructПреобразование детектора объекта trained aggregate channel features (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.9314 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. The axes contains an object of type image.

Загрузите сигнализатор сигнала остановки АЧС из 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] Доллар, П., Р. Аппель, С. Иджи и П. Перона. «Быстрые пирамиды элементов для обнаружения объектов». Анализ шаблонов и машинный интеллект, транзакции IEEE. Том 36, выпуск 8, 2014, стр. 1532-1545.

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

.
Представлен в R2017a