Конечные векторы в гистограмме ориентированного градиента - PullRequest
0 голосов
/ 24 мая 2018

Размер изображения составляет 64 x 128. Это 8192 величины и значения градиента.После этапа биннинга у нас осталось 1152 значения, поскольку мы преобразовали 64 пикселя в 9 бинов на основе их ориентации.Не могли бы вы объяснить мне, как после нормализации L2 мы получаем 3780 векторов?

1 Ответ

0 голосов
/ 24 мая 2018

Предположение: у вас есть градиенты патча 64 x 128.

Рассчитать гистограмму градиентов в ячейках 8x8

Вот тут-то и начинает становиться интересно.Изображение делится на 8x8 ячеек, и для каждой ячейки 8x8 рассчитывается HOG.Одна из причин, по которой мы используем ячейки 8x8, заключается в том, что они обеспечивают компактное представление.Патч изображения 8x8 содержит значения 8x8x3 = 192 пикселя (цветное изображение).Градиент этого патча содержит 2 значения (величину и направление) на пиксель, что в сумме составляет 8x8x2 = 128 значений.Эти 128 чисел представлены с использованием гистограммы с 9 ячейками, которую можно сохранить в виде массива из 9 чисел.Это делает его более компактным, а вычисление гистограмм по патчу делает это представление более устойчивым к шуму.

Гистограмма по существу представляет собой вектор из 9 бинов, соответствующих углам 0, 20, 40, 60 ... 180, соответствующим градиентам без знака.

16 x 16 Нормализация блока

После создания гистограммы на основе градиента изображения мы хотим, чтобы наш дескриптор не зависел от вариаций освещения.Следовательно, мы нормализуем гистограмму.Векторная норма для цвета RGB [128, 64, 32] равна sqrt (128 * 128 + 64 * 64 + 32 * 32) = 146,64, что является печально известной L2-нормой .Разделив каждый элемент этого вектора на 146,64, мы получим нормализованный вектор [0,87, 0,43, 0,22].Если бы мы умножили каждый элемент этого вектора на 2, нормализованный вектор остался бы таким же, как и раньше.

Хотя простая нормализация гистограммы 9x1 является интригующей, лучше нормализовать блок большего размера 16 x 16.Блок 16 x 16 имеет 4 гистограммы, которые можно объединить, чтобы сформировать вектор элемента 36 x 1, и его можно нормализовать так же, как вектор 3 x 1 в примере.Затем окно перемещается на 8 пикселей, и для этого окна вычисляется нормализованный вектор 36 x 1, и процесс повторяется (см. Анимацию: Предоставлено )

Windowing

Рассчитать вектор признаков HOG

Здесь ваш вопрос.

Чтобы вычислить окончательный вариантвектор признаков для всего патча изображения, векторы 36 x 1 объединяются в гигантский вектор.Давайте вычислим размер:

  1. Сколько позиций блоков 16 x 16 у нас есть?Имеется 7 горизонтальных и 15 вертикальных положений, что дает - 105 позиций.

  2. Каждый блок 16 x 16 представлен вектором 36 x 1.Поэтому, когда мы объединяем их всех в один гигантский вектор, мы получаем 36 x 105 = 3780 мерных векторов .

Для более подробной информации, посмотрите учебникгде я узнал.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...