exponenta event banner

extractHOGFeatures

Извлечь гистограмму элементов ориентированных градиентов (HOG)

Описание

пример

features = extractHOGFeatures(I) возвращает извлеченные элементы HOG из входного изображения цвета или оттенков серого, I. Элементы возвращаются в векторе 1-by-N, где N - длина элемента HOG. Возвращенные элементы кодируют информацию о локальной форме из областей изображения. Эту информацию можно использовать для многих задач, включая классификацию, обнаружение и отслеживание.

пример

[features,validPoints] = extractHOGFeatures(I,points) Возвращает элементы HOG, извлеченные вокруг указанных местоположений точек. Функция также возвращает validPoints, который содержит местоположения точек ввода, окружающая область которых полностью содержится в I. Информация о масштабе, связанная с точками, игнорируется.

пример

[___, visualization] = extractHOGFeatures(I,___) дополнительно возвращает визуализацию элемента HOG с использованием любого из предшествующих синтаксисов. Эту визуализацию можно просмотреть с помощью plot(visualization).

[___] = extractHOGFeatures(___,Name,Value) использует дополнительные параметры, заданные одним или несколькими аргументами пары Name и Value, с использованием любого из предшествующих синтаксисов.

Примеры

свернуть все

Прочитайте интересующее изображение.

img = imread('cameraman.tif');

Извлеките элементы HOG.

[featureVector,hogVisualization] = extractHOGFeatures(img);

Печать элементов HOG поверх исходного изображения.

figure;
imshow(img); 
hold on;
plot(hogVisualization);

Figure contains an axes. The axes contains 3 objects of type image, line.

Прочитайте интересующее изображение.

I1 = imread('gantrycrane.png');

Извлеките элементы HOG.

[hog1,visualization] = extractHOGFeatures(I1,'CellSize',[32 32]);

Отображение исходного изображения и элементов HOG.

subplot(1,2,1);
imshow(I1);
subplot(1,2,2);
plot(visualization);

Figure contains 2 axes. Axes 1 contains 2 objects of type line. Axes 2 contains an object of type image.

Читайте в интересующем образе.

I2 = imread('gantrycrane.png');

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

corners   = detectFASTFeatures(im2gray(I2));
strongest = selectStrongest(corners,3);

Извлеките элементы HOG.

[hog2,validPoints,ptVis] = extractHOGFeatures(I2,strongest);

Отображение исходного изображения с наложением элементов HOG вокруг самых сильных углов.

figure;
imshow(I2);
hold on;
plot(ptVis,'Color','green');

Figure contains an axes. The axes contains 6 objects of type image, line, rectangle.

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

свернуть все

Входное изображение, определенное или в M N 3 truecolor или в 2-х оттенках серого M на Н. Входное изображение должно быть вещественным, непарабельным значением. Если изображения сильно обрезаны, может быть потеряна информация о форме, которую может кодировать функция HOG. Можно избежать потери этой информации, включив дополнительный запас пикселов вокруг фрагмента, который содержит фоновые пикселы.

Типы данных: single | double | int16 | uint8 | uint16 | logical

Центральная точка расположения квадратного района, заданная как BRISKPoints, SURFPoints, MSERRegions, ORBPoints или cornerPoints объект или матрица M-by-2 с M координатами [x, y]. Функция извлекает дескрипторы из окрестностей, которые полностью находятся в пределах границы изображения. Можно задать размер окрестности с помощью BlockSize параметр. Для определения допустимых точек вывода используются только области, полностью содержащиеся в изображении. Функция игнорирует информацию о масштабе, связанную с этими точками.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'BlockSize',[2 2] устанавливает BlockSize быть квадратным блоком 2 на 2.

Размер ячейки HOG, заданный в пикселях как 2-элементный вектор. Для сбора крупномасштабной пространственной информации увеличьте размер ячейки. При увеличении размера ячейки можно потерять мелкую детализацию.

Число ячеек в блоке, указанное как 2-элементный вектор. Большое значение размера блока уменьшает возможность подавления локальных изменений освещения. Из-за количества пикселей в большом блоке эти изменения могут теряться при усреднении. Уменьшение размера блока помогает зафиксировать значимость локальных пикселей. Меньший размер блока может помочь подавить изменения освещенности элементов HOG.

Число перекрывающихся ячеек между соседними блоками, задаваемое как 2-элементный вектор. Чтобы обеспечить адекватную нормализацию контраста, выберите перекрытие размером не менее половины размера блока. Большие значения перекрытия могут захватывать больше информации, но они создают больший размер вектора элементов. Это свойство применяется только при извлечении элементов HOG из областей, а не из расположений точек. При извлечении элементов HOG вокруг местоположения точки используется только один блок, поэтому перекрытие не происходит.

Число ячеек гистограммы ориентации, указанных как положительный скаляр. Чтобы закодировать более точные детали ориентации, увеличьте количество ячеек. Увеличение этого значения увеличивает размер вектора элемента, что требует больше времени на обработку.

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

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

свернуть все

Извлеченные элементы HOG, возвращаемые в виде 1-by-N вектора или матрицы P-by-Q. Элементы кодируют информацию о локальной форме из областей или из расположений точек в изображении. Эту информацию можно использовать для многих задач, включая классификацию, обнаружение и отслеживание.

features продукцияОписание
1-by-N векторДлина элемента HOG N зависит от размера изображения и значений параметра функции.
N = prod([Блоки ПерИзображение, BlockSize, NumBins])
Блоки PerImage = floor((size(I)./CellSizeBlockSize)./(BlockSizeBlockOverlap) + 1)
Матрица P-by-QP - количество допустимых точек, окружающая область которых полностью содержится во входном изображении. Вы предоставляете points входное значение для расположения точек извлечения.
Окружающая область рассчитывается как:
CellSize.*BlockSize.
Длина вектора признаков Q рассчитывается следующим образом:
prod([NumBins,BlockSize]).

Пример 1. Расположение гистограмм в векторах признаков HOG

На рисунке ниже показано изображение с шестью ячейками.

Если установить BlockSize кому2 2], это будет размер каждого блока HOG, 2 на 2 ячейки. Размер ячеек в пикселях. Вы можете установить его с помощью CellSize собственность.

Вектор признаков HOG размещается блоками HOG. Гистограмма клеток, H (Cyx), является 1-by-NumBins.

На рисунке ниже показан вектор элементов HOG с перекрытием ячеек 1 на 1 между блоками.

Допустимые точки, связанные с каждой features вывод вектора дескриптора. Эти выходные данные могут быть возвращены как cornerPoints объект, BRISKPoints, SURFPoints объект, MSERRegions объект, ORBPoints объект или матрица M-by-2 с координатами [x, y]. Функция извлекает М дескрипторов из действительных процентных точек в области размера, равного [CellSize.*BlockSize]. Извлеченные дескрипторы возвращаются в виде объекта или матрицы того же типа, что и входные данные. Область должна полностью содержаться в изображении.

Визуализация элементов HOG, возвращенная как объект. Функция выводит этот необязательный аргумент для визуализации извлеченных элементов HOG. Вы можете использовать plot с помощью visualization выход. См. пример «Извлечение и печать элементов HOG».

Элементы HOG визуализируются с использованием сетки равномерно разнесенных элементов rose участки. Размер ячейки и размер изображения определяет размеры сетки. Каждый график розы показывает распределение градиентных ориентаций внутри клетки HOG. Длина каждого лепестка розы масштабируется для указания вклада каждой ориентации в гистограмму клетки. На графике отображаются направления кромок, перпендикулярные направлениям градиента. Просмотр графика с направлениями кромок позволяет лучше понять форму и контуры, закодированные HOG. Каждый график роз отображается два раза NumBins лепестки.

Для печати элементов HOG можно использовать следующий синтаксис:

plot(visualization) строит графики элементов HOG в виде массива графиков роз.
plot(visualization,AX) отображает элементы HOG в осях AX.
plot(___, 'Color',Colorspec) Указывает цвет, используемый для печати элементов HOG, где Colorspec представляет цвет.

Ссылки

[1] Далал, Н. и В. Триггеры. «Гистограммы ориентированных градиентов для обнаружения человека», Конференция компьютерного общества IEEE по компьютерному зрению и распознаванию образов, том 1 (июнь 2005 года), стр. 886-893.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

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