exponenta event banner

видение. 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.

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

Наименьшая область, содержащая человека, заданная в пикселях как двухэлементный вектор, [ширина высоты ]. Задайте для этого свойства область минимального размера, содержащую пользователя. При установке этого свойства можно сократить время вычислений. Для этого задайте для этого свойства значение, превышающее размер изображения, используемого для обучения модели классификации. Если это свойство не задано, детектор устанавливает для него размер изображения, используемый для обучения модели классификации.

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

Наибольшая область, содержащая человека, заданная в пикселях как двухэлементный вектор, [ширина высоты ]. Задайте для этого свойства самую большую область, содержащую пользователя. При установке этого свойства можно сократить время вычислений. Для этого задайте для этого свойства значение, меньшее, чем размер входного изображения. Если это свойство не задано, детектор устанавливает для него размер входного изображения. Это свойство можно настроить.

Масштабирование многомасштабного обнаружения объектов, указанное как значение, большее, чем 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. Если задать это значение как скаляр, шаг будет одинаковым как для 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 width height]. Этот вектор задает в пикселях верхний левый угол и размер ограничивающей рамки. Когда люди не обнаружены, step возвращает пустой вектор. Входное изображение, I, должно быть изображение в градациях серого или в цветном цвете (RGB).

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

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

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

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

Входное изображение, указанное как оттенки серого или truecolor (RGB).

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

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] Далал, Н. и В. Триггеры. «Гистограммы ориентированных градиентов для обнаружения человека», материалы Конференции IEEE по компьютерному зрению и распознаванию образов, июнь 2005 года, стр. 886-893.

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

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