Matlab 不同代码中的混淆
我下载了三种不同的HoG代码。 使用64x128的映像 1) 使用matlab函数:Matlab 不同代码中的混淆,matlab,computer-vision,feature-extraction,Matlab,Computer Vision,Feature Extraction,我下载了三种不同的HoG代码。 使用64x128的映像 1) 使用matlab函数:extractHOGFeatures [hog, vis] = extractHOGFeatures(img,'CellSize',[8 8]); 猪的大小是3780 如何计算: HOG特征长度N基于图像大小和函数参数值 N = prod([BlocksPerImage, BlockSize, NumBins]) BlocksPerImage = floor((size(I)./CellSize – Block
extractHOGFeatures
[hog, vis] = extractHOGFeatures(img,'CellSize',[8 8]);
猪的大小是3780
如何计算:
HOG特征长度N基于图像大小和函数参数值
N = prod([BlocksPerImage, BlockSize, NumBins])
BlocksPerImage = floor((size(I)./CellSize – BlockSize)./(BlockSize – BlockOverlap) + 1)
2) 第二个HOG函数从下载。
使用相同的图像
H = hog( double(rgb2gray(img)), 8, 9 );
% I - [mxn] color or grayscale input image (must have type double)
% sBin - [8] spatial bin size
% oBin - [9] number of orientation bins
H
的大小为3024
如何计算:
H - [m/sBin-2 n/sBin-2 oBin*4] computed hog features
3) 来自vl_专长的HoG代码
cellSize = 8;
hog = vl_hog(im2single(rgb2gray(img)), cellSize, 'verbose','variant', 'dalaltriggs') ;
vl_hog: image: [64 x 128 x 1]
vl_hog: descriptor: [8 x 16 x 36]
vl_hog: number of orientations: 9
vl_hog: bilinear orientation assignments: no
vl_hog: variant: DalalTriggs
vl_hog: input type: Image
输出为4608
哪一个是正确的?都是正确的。问题是特征提取功能默认值参数随软件包而异。(例如,opencv、matlab、scikit图像等)。我所说的参数是指winsize、stride、blocksize、scale等 通常,长度为:
Length = Number of Blocks x Cells in each Block x Number of Bins in each Cell
既然所有的答案都是正确的,你可以用哪一个答案来回答。
您可以尝试使用不同的参数值,并选择适合您的参数值。由于没有固定的方法可以找到正确的值,如果您知道每个参数的更改如何影响结果,这将非常有用
单元格大小:如果增加此值,可能无法捕获小细节
块大小:同样,大单元格大小的大块可能无法帮助您捕获小细节。此外,由于大块意味着照明变化可能更大,并且由于梯度归一化步骤,许多细节将丢失。因此,请相应地选择
重叠/跨步:如果选择重叠块,这将再次帮助您捕获有关图像面片的更多信息。通常设置为块大小的一半
通过相应地选择上述参数的值,可以获得大量信息。但是描述符长度将变得不必要的长
希望这有帮助:)谢谢,再来一个。我使用libSVM进行分类。我需要将256幅图像的特征矩阵排列为:256x3780,标签向量排列为:256x1?是的,这就是你需要做的。如果你认为我的回答解决了你的问题,请接受我的回答:)祝你好运。你能检查一下吗