vision.PeopleDetector

Обнаружение людей в вертикальной позиции , с использованием функции направленного градиента (HOG)

Описание

Объект детектора людей обнаруживает людей во входном изображении с помощью Гистограммы Ориентированного Градиента (ПОЖИРАТЕЛЬ РЕСУРСОВ) функции и обученный классификатор Машины опорных векторов (SVM). Объект обнаруживает незакрытых людей в вертикальном положении.

Обнаружить людей в изображении:

  1. Создайте vision.PeopleDetector объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

пример

peopleDetector = vision.PeopleDetector возвращает объект детектора людей, peopleDetector, это отслеживает набор точек в видео.

peopleDetector = vision.PeopleDetector(model) создает объект детектора людей и устанавливает ClassificationModel свойство к model.

peopleDetector = vision.PeopleDetector(Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в кавычки. Например, peopleDetector = vision.PeopleDetector('ClassificationModel','UprightPeople_128x64')

Свойства

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

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Имя модели классификации, заданной как 'UprightPeople_128x64' или 'UprightPeople_96x48'. Пиксельные размерности указывают на размер изображения, используемый в обучении.

Изображения, используемые, чтобы обучить модели, включают фоновые пиксели вокруг человека. Поэтому фактический размер обнаруженного человека меньше, чем учебный размер изображения.

Люди порог классификации, заданный как неотрицательное скалярное значение. Используйте этот порог, чтобы управлять классификацией отдельных подобластей изображений во время многошкального обнаружения. Порог управляет, классифицируется ли подобласть как человек. Можно увеличить это значение, когда существует много ложных обнаружений. Чем выше пороговое значение, тем более строгие требования для классификации. Варьируйтесь порог в области значений значений, чтобы найти оптимальное значение для вашего набора данных. Типичные значения лежат в диапазоне от 0 к 4.

Настраиваемый: да

Самая маленькая область, содержащая человека, заданного в пикселях как двухэлементный вектор, [height width]. Установите это свойство на минимальную область размера, содержащую человека. Можно уменьшать время вычисления, когда вы устанавливаете это свойство. Для этого установите это свойство на значение, больше, чем размер изображения раньше обучал модель классификации. То, когда вы не задаете это свойство, детектор устанавливает его на размер изображения, раньше обучало модель классификации.

Настраиваемый: да

Самая большая область, которая содержит человека, заданного в пикселях как двухэлементный вектор, [height width]. Установите это свойство на самую большую область, содержащую человека. Можно уменьшать время вычисления, когда вы устанавливаете это свойство. Для этого установите это свойство на значение, меньшее, чем размер входного изображения. Когда вы не задаете это свойство, детектор устанавливает его на входной размер изображения. Это свойство является настраиваемым.

Многошкальное масштабирование обнаружения объектов, заданное как значение, больше, чем 1.0001. Масштабный коэффициент инкрементно масштабирует разрешение обнаружения между MinSize и MaxSize. Можно установить масштабный коэффициент на идеальное использование значения:

sizeiразмерi)-0.5)

Объект вычисляет разрешение обнаружения в каждом шаге.

round(TrainingSize* (ScaleFactorN

В этом случае TrainingSize является [128 64] для 'UprightPeople_128x64' модель и [96 48] для 'UprightPeople_96x48' модель. N является шагом. Уменьшение масштабного коэффициента может увеличить точность обнаружения. Однако выполнение так увеличивает время вычисления. Это свойство является настраиваемым.

Окно Detection шагает в пикселях, заданных как скаляр или двухэлементный вектор, [x y]. Детектор использует шаг окна, чтобы двигать окно обнаружения через изображение. Когда вы задаете это значение как вектор, первые и вторые элементы являются размером шага в направлениях y и x. Когда вы задаете это значение как скаляр, шаг является тем же самым и для x и для y. Уменьшение шага окна может увеличить точность обнаружения. Однако выполнение так увеличивает время вычисления. Увеличение окна шагает вне [8 8] может привести к большему количеству пропущенных обнаружений. Это свойство является настраиваемым.

Объедините управление обнаружением, заданное как true или false. Это свойство управляет, объединены ли подобные обнаружения. Установите это свойство на true объединять ограничительные рамки с помощью основанного на среднем сдвиге алгоритма. Установите это свойство на false выводить необъединенные ограничительные рамки.

Для большей гибкости и управления слияния параметров, можно использовать selectStrongestBbox функция вместо MergeDetections алгоритм. Для этого установите MergeDetections свойство к false. Смотрите Пешеходов Отслеживания из Движущегося Автомобильного примера, который показывает использование детектора людей и selectStrongestBbox функция.

Используйте необходимую область, заданную как true или false. Установите это свойство на true обнаружить объекты в прямоугольной необходимой области во входном изображении.

Использование

Описание

пример

bboxes = peopleDetector(I) выполняет многошкальное обнаружение объектов на входном изображении, I и возвращает M-by-4 матрица, задающая ограничительные рамки M. M представляет количество обнаруженных людей. Каждая строка выходной матрицы, BBOXES, содержит четырехэлементный вектор, [x высота ширины y]. Этот вектор задает, в пикселях, верхнем левом углу и размере, ограничительной рамки. Когда никакие люди не обнаруживаются, step метод возвращает пустой вектор. Входное изображение, I, должен быть полутоновый или истинный цвет (RGB) изображение.

[bboxes, scores] = peopleDetector(I) дополнительно возвращает значение уверенности для обнаружений.

[___] = peopleDetector(I,roi)обнаруживает людей в прямоугольной поисковой области, roi.

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

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

Введите изображение, заданное как полутоновый или истинный цвет (RGB).

Прямоугольная необходимая область в изображении I, заданный как четырехэлементный вектор, [x y width height].

Модель Classification, заданная как 'UprightPeople_128x64' или 'UprightPeople_96x48'.

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

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

Объект детектора людей, возвращенный как объект. Детектор обнаруживает людей во входном изображении с помощью Гистограммы Ориентированного Градиента (ПОЖИРАТЕЛЬ РЕСУРСОВ) функции и обученный классификатор SVM. Объект обнаруживает незакрытых людей в вертикальном положении.

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

Чтобы использовать объектную функцию, задайте Систему object™ как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

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

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

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

Создайте детектор людей и загрузите входное изображение.

peopleDetector = vision.PeopleDetector;
I = imread('visionteam1.jpg');

Обнаружьте людей, использующих объект детектора людей.

[bboxes,scores] = peopleDetector(I);

Аннотируйте обнаруженных людей.

I = insertObjectAnnotation(I,'rectangle',bboxes,scores);
figure, imshow(I)
title('Detected people and detection scores');

Ссылки

[1] Dalal, N. и Б. Триггс. “Гистограммы Ориентированных Градиентов для Человеческого Обнаружения”, Продолжения Конференции по IEEE по Компьютерному зрению и Распознаванию образов, июнь 2005, стр 886-893.

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

Представленный в R2012b