方向梯度直方圖(histogram of oriented gradient, hog)特徵是一種在計算機視覺和影象處理中用來進行物體檢測的特徵描述子。hog特徵通過計算和統計影象區域性區域的梯度方向直方圖來構成特徵。
近來做**時,為了直觀的看到hog特徵,更好的理解其含義,特地對hog特徵進行了視覺化處理。
%
%【功能】————用於顯示 hog 特徵
%%%1、求取hog特徵矩陣向量
image = imread('pos_10.png');
subplot(1,2,1);
imshow(uint8(image));
%2、伽馬校正
title('原圖');
[m n]=size(image);
img = double(image);
img=sqrt(img);
%3、下面是求邊緣
fy=[-1
01];
fx=fy';
iy=imfilter(img,fy,'replicate');
ix=imfilter(img,fx,'replicate');
ied=sqrt(ix.^2+iy.^2);
iphase=iy./ix;
%4、下面是求cell,每個cell求其梯度直方圖
step=8;
orient=9;
jiao=360/orient;
cell=cell(1,1);
ii=1;
jj=1;
fori=1:step:m-step
ii=1;
forj=1:step:n-step
tmpx=ix(i:i+step-1,j:j+step-1);
tmped=ied(i:i+step-1,j:j+step-1);
tmped= tmped / sum( sum(tmped) );
tmpphase=iphase(i:i+step-1,j:j+step-1);
hist=zeros(1,orient);
for p=1:step
for q=1:step
ifisnan(tmpphase(p,q))==1
tmpphase(p,q)=0;
endang=atan(tmpphase(p,q));
ang=mod(ang*180/pi,360);
if tmpx(p,q)<0
if ang<90
ang=ang+180;
endif ang>270
ang=ang-180;
endend ang=ang+0.0000001;
hist(ceil(ang/jiao))=hist(ceil(ang/jiao))+ tmped(p,q);
endend hist=hist/sum(hist);
cell=hist;
ii=ii+1;
endjj=jj+1;
end%5、顯示準備工作
angle = [40,80,120,160,200,240,280,320,360];
rad = angle*pi/180;
k = tan(rad);
[m n] = size(cell)
image_hog = zeros(m*17,n*17);
for x = 1:m-1
for y = 1:n-1
intensity = (cell+cell+cell+cell)*64;
x = [-8:1:8];
[a b] = size(k);
fori=1:b;
y(i,:) = ceil(x*k(i));
end%標記block畫線
block = zeros(17,17);
fori=1:17
x(i) = x(i) + 9;
forj=1:9
y(j,i) = y(j,i) + 9;
if(y(j,i) > 17 )
y(j,i) = 17;
endif(y(j,i) <1 )
y(j,i) = 1;
endendend
%標記
fori=1:17
forj=1:9
block(x(i),y(j,i)) =intensity(j); %
endend
image_hog((x-1)*17+1:(x-1)*17+17 , (y-1)*17+1:(y-1)*17+17) = block(:,:);
endendimage_hog = image_hog';
%6、【平滑hog特徵的不規則邊緣】高斯平滑
g = [123
21 ;
25652 ;
36863 ;
25652 ;
12321 ;]
conv2(g,image_hog );
%7、【顯示】
subplot(1,2,2);
imshow(image_hog,[0 max(max(image_hog))]);
title('hog特徵');
這裡是繪製的結果
2023年8月2日
特徵視覺化
colormap 色度圖 的視覺表示和colormap 的數值,左邊的顏色模式表示較低的灰度值,右邊的則表示較高的灰度值。得到特徵圖fea後,heatmap np.mean fea,axis 1 heatmap np.maximum heatmap,0 heatmap與0比較,取其大者 heatma...
PyTorch 視覺化特徵
這個也可以參考 這篇部落格主要記錄了如何提取特定層的特徵,然後對它進行視覺化 處理單張作為網路輸入。根據給定的layer層,獲取該層的輸出結果features。考慮到features的形狀為 batch size,filter nums,h,w 提取其中的第乙個過濾器得到的結果feature。以一張...
卷積層特徵視覺化
import torch import numpy as np from torchvision import datasets import torchvision.transforms as transforms set the parameters num workers 0batch siz...