Я использую HOGDescriptor OpenCV С++ Lib для вычисления векторов объектов изображений. Я хотел бы визуализировать функции в исходном изображении. Может кто-нибудь мне помочь?
HOG показывает визуализацию с помощью OpenCV, HOGDescriptor в С++
Ответ 1
Сегодня у меня была такая же проблема. Вычисление вектора HOGDescriptor
для изображения 64x128 с использованием функции OpenCV HOGDescriptor::compute()
прост, но для его визуализации нет встроенных функций.
Наконец, мне удалось понять, как значения ориентации градиента хранятся в длинном векторе дескриптора HOG 3870.
Вы можете найти мой код на С++ для визуализации HOGDescriptor
здесь:
Надеюсь, что это поможет!
Юрген
Ответ 2
HOGgles¹ - это метод, разработанный для визуализации HOG, опубликованный на ICCV 2013. Вот пример:
Этот инструмент визуализации может быть более полезным, чем построение векторов градиента HOG, потому что лучше понять, почему HOG не сработал для данного образца.
Более подробную информацию можно найти здесь: http://web.mit.edu/vondrick/ihog/
¹C. Вондрик, А. Хосла, Т. Малисевич, А. Торральба. Международная конференция по компьютерному зрению (ICCV), Сидней, Австралия, декабрь 2013 г. "HOGgles: визуализация функций обнаружения объектов".
Ответ 3
Это обсуждение в дискуссионной группе opencv приводит к библиотеке, написанной в Университете Брауна.
В HOGpicture.m
вы сможете получить представление о том, как визуализировать дескрипторы. Вот соответствующий (matlab) код. Достаточно ли вам сделать что-то для себя?
(ниже код выпущен под лицензией MIT)
function im = HOGpicture(w, bs)
% HOGpicture(w, bs)
% Make picture of positive HOG weights.
% construct a "glyph" for each orientation
bim1 = zeros(bs, bs);
bim1(:,round(bs/2):round(bs/2)+1) = 1;
bim = zeros([size(bim1) 9]);
bim(:,:,1) = bim1;
for i = 2:9,
bim(:,:,i) = imrotate(bim1, -(i-1)*20, 'crop');
end
% make pictures of positive weights bs adding up weighted glyphs
s = size(w);
w(w < 0) = 0;
im = zeros(bs*s(1), bs*s(2));
for i = 1:s(1),
iis = (i-1)*bs+1:i*bs;
for j = 1:s(2),
jjs = (j-1)*bs+1:j*bs;
for k = 1:9,
im(iis,jjs) = im(iis,jjs) + bim(:,:,k) * w(i,j,k);
end
end
end
Ответ 4
Я переопределяю HOGImage для любого blockSize
и cellSize
, который основан на Юргене Брауэре. Смотрите https://github.com/zhouzq-thu/HOGImage.