vision.PeopleDetector

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

Описание

Объект детектора людей обнаруживает людей в вход изображении с помощью гистограммы ориентированного градиента (HOG) функций и обученного классификатора Машины опорных векторов (SVM). Объект обнаруживает незакрытых людей в вертикальном положении.

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

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

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

пример

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

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

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

Свойства

расширить все

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

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

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

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

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

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

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

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

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

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

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

size(I)/(size(I) - 0.5)

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

round(TrainingSize * (ScaleFactorN))

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

Шаг окна обнаружения в пикселях, заданный как скаляр или двухэлементный вектор, [x y]. Детектор использует стрид окна, чтобы сдвинуть окно обнаружения поперек изображения. Когда вы задаете это значение как вектор, первый и второй элементы являются размером шага в x и y направлениях. Когда вы задаете это значение как скаляр, stride является тем же самым для 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, должно быть изображением в полутоновом или truecolor (RGB).

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

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

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

расширить все

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

Прямоугольная необходимая область в I изображения, определенный как вектор с четырьмя элементами, [<reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0> ].

Классификационная модель, заданная как 'UprightPeople_128x64' или 'UprightPeople_96x48'.

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

расширить все

Объект детектора людей, возвращенный как объект. Детектор обнаруживает людей в вход изображении с помощью гистограммы ориентированного градиента (HOG) функций и обученного классификатора 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');

Figure contains an axes. The axes with title Detected people and detection scores contains an object of type image.

Ссылки

[1] Dalal, N. and B. Triggs. «Гистограммы ориентированных градиентов для обнаружения человека», материалы конференции IEEE по компьютерному зрению и распознаванию шаблонов, июнь 2005, стр. 886-893.

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

.
Введенный в R2012b