видение. PeopleDetector

Обнаружьте вертикальных людей, использующих функции ПОЖИРАТЕЛЯ РЕСУРСОВ

Описание

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

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

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

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

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

Создание

Синтаксис

peopleDetector = vision.PeopleDetector
peopleDetector = vision.PeopleDetector(model)
peopleDetector = vision.PeopleDetector(Name,Value)

Описание

пример

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. Можно установить масштабный коэффициент на идеальное использование значения:

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

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

round (TrainingSize* (ScaleFactor N))

В этом случае 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 обнаруживать объекты в прямоугольной видимой области во входном изображении.

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

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить Систему object™ алгоритм. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

bboxes = peopleDetector(I)
[bboxes, scores] = peopleDetector(I)
[___] = peopleDetector(I,roi)

Описание

пример

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. Объект обнаруживает незакрытых людей в вертикальном положении.

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

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием 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