extractHOGFeatures

Извлеките гистограмму ориентированных градиентов функции

Описание

пример

features = extractHOGFeatures(I) возвращает извлеченные функции ПОЖИРАТЕЛЯ РЕСУРСОВ в истинный цвет или полутоновое входное изображение, I. Функции возвращены в 1 N вектором, где N является полнометражный ПОЖИРАТЕЛЬ РЕСУРСОВ. Возвращенные функции кодируют локальную информацию о форме из областей в изображении. Можно использовать эту информацию для многих задач включая классификацию, обнаружение и отслеживание.

пример

[features,validPoints] = extractHOGFeatures(I,points) возвращает функции ПОЖИРАТЕЛЯ РЕСУРСОВ, извлеченные вокруг заданных местоположений точки. Функция также возвращает validPoints, который содержит местоположения точки ввода, окружающая область которых полностью содержится в I. Масштабируйтесь информация, сопоставленная с точками, проигнорирована.

пример

[___, visualization] = extractHOGFeatures(I,___) опционально возвращает визуализацию функции ПОЖИРАТЕЛЯ РЕСУРСОВ, с помощью любого из предыдущих синтаксисов. Можно отобразить эту визуализацию с помощью plotВизуализация).

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

Примеры

свернуть все

Считайте изображение интереса.

img = imread('cameraman.tif');

Извлеките функции ПОЖИРАТЕЛЯ РЕСУРСОВ.

[featureVector,hogVisualization] = extractHOGFeatures(img);

Постройте функции ПОЖИРАТЕЛЯ РЕСУРСОВ по оригинальному изображению.

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

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

Считайте изображение интереса.

I1 = imread('gantrycrane.png');

Извлеките функции ПОЖИРАТЕЛЯ РЕСУРСОВ.

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

Отобразите оригинальное изображение и функции ПОЖИРАТЕЛЯ РЕСУРСОВ.

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

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

Читайте в изображении интереса.

I2 = imread('gantrycrane.png');

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

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

Извлеките функции ПОЖИРАТЕЛЯ РЕСУРСОВ.

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

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

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

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

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

свернуть все

Введите изображение, заданное или в M-by-N-by-3 истинный цвет или в M-by-N 2D шкала полутонов. Входное изображение должно быть действительным, неразреженным значением. Если у вас есть плотно кадрированные изображения, можно потерять информацию о форме, которую может закодировать функция ПОЖИРАТЕЛЯ РЕСУРСОВ. Можно постараться не терять эту информацию включением дополнительного поля пикселей вокруг закрашенной фигуры, которая содержит фоновые пиксели.

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

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

Аргументы name-value

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

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

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

Количество ячеек в блоке в виде вектора с 2 элементами. Большое значение размера блока уменьшает способность подавить локальные изменения освещения. Из-за количества пикселей в большом блоке эти изменения могут потеряться с усреднением. Сокращение размера блока помогает получить значение локальных пикселей. Меньший размер блока может помочь подавить изменения освещения функций ПОЖИРАТЕЛЯ РЕСУРСОВ.

Количество перекрывающихся ячеек между смежными блоками в виде вектора с 2 элементами. Чтобы гарантировать соответствующую контрастную нормализацию, выберите перекрытие, по крайней мере, половины размера блока. Большие значения перекрытия могут получить больше информации, но они производят больший размер характеристического вектора. Это свойство применяется только, когда вы извлекаете функции ПОЖИРАТЕЛЯ РЕСУРСОВ из областей а не из местоположений точки. Когда вы извлекаете функции ПОЖИРАТЕЛЯ РЕСУРСОВ вокруг местоположения точки, только один блок используется, и таким образом, никакое перекрытие не происходит.

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

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

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

свернуть все

Извлеченные функции ПОЖИРАТЕЛЯ РЕСУРСОВ, возвращенные или как 1 N вектором или как P-by-Q матрица. Функции кодируют локальную информацию о форме из областей или от местоположений точки в изображении. Можно использовать эту информацию для многих задач включая классификацию, обнаружение и отслеживание.

features вывод Описание
1 N векторомПолнометражный ПОЖИРАТЕЛЬ РЕСУРСОВ, N, основан на размере изображения и значениях параметра функции.
N = prod([BlocksPerImage, BlockSizeNumBins ])
BlocksPerImage = floor((sizei)./CellSizeBlockSize). / (BlockSizeBlockOverlap) + 1)
P-by-Q матрицаP является количеством актуальных вопросов, окружающая область которых полностью содержится во входном изображении. Вы обеспечиваете points входное значение для извлечения местоположений точки.
Окружающая область вычисляется как:
CellSize.*BlockSize.
Длина характеристического вектора, Q, вычисляется как:
prodNumBins , BlockSize]).

 Пример 1. Расположение гистограмм в характеристических векторах ПОЖИРАТЕЛЯ РЕСУРСОВ

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

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

Характеристический вектор ПОЖИРАТЕЛЯ РЕСУРСОВ располагается блоками ПОЖИРАТЕЛЯ РЕСУРСОВ. Гистограмма ячейки, H (Cyx), 1 NumBins.

Рисунок ниже показывает характеристический вектор ПОЖИРАТЕЛЯ РЕСУРСОВ с перекрытием ячейки 1 на 1 между блоками.

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

Визуализация функции ПОЖИРАТЕЛЯ РЕСУРСОВ, возвращенная как объект. Функциональные выходные параметры этот дополнительный аргумент, чтобы визуализировать извлеченные функции ПОЖИРАТЕЛЯ РЕСУРСОВ. Можно использовать plot метод с visualization вывод . Смотрите пример Функций ПОЖИРАТЕЛЯ РЕСУРСОВ Извлечения и Графика.

Функции ПОЖИРАТЕЛЯ РЕСУРСОВ визуализируются с помощью сетки однородно расположенного с интервалами rose plots. Размер ячейки и размер изображения определяют размерности сетки. Каждый поднялся, график показывает распределение ориентаций градиента в ячейке HOG. Длина каждого лепестка повысилась, график масштабируется, чтобы указать на вклад, который каждая ориентация делает в гистограмме ячейки. График отображает направления ребра, которые нормальны к направлениям градиента. Просмотр графика с направлениями ребра позволяет вам лучше изучать форму и контуры, закодированные ПОЖИРАТЕЛЕМ РЕСУРСОВ. Каждый поднялся отображения графика два раза NumBins лепестки.

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

plot(visualization) строит функции ПОЖИРАТЕЛЯ РЕСУРСОВ, когда массив повысился графики.
plot(visualization,AX) ПОЖИРАТЕЛЬ РЕСУРСОВ графиков показывает в AX осей.
plot(___,'Color',colorValue) Указывает, что цвет раньше строил функции ПОЖИРАТЕЛЯ РЕСУРСОВ, где colorValue представляет цвет как 1 3 вектор RGB, короткое, или длинное название цвета, описанное в таблице Color Value.

Больше о

свернуть все

Значение цвета

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

Sample of the color red

'green''g'[0 1 0]

Sample of the color green

'blue''b'[0 0 1]

Sample of the color blue

'cyan' 'c'[0 1 1]

Sample of the color cyan

'magenta''m'[1 0 1]

Sample of the color magenta

'yellow''y'[1 1 0]

Sample of the color yellow

'black''k'[0 0 0]

Sample of the color black

'white''w'[1 1 1]

Sample of the color white

Ссылки

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2013b