【发布时间】:2014-08-24 04:07:06
【问题描述】:
我正在研究使用 HOG 和 LBP 进行人员检测。我想在图像上检测多个大小的人。我正在使用一个比例循环来检测窗口大小,然后它将通过滑动窗口检测来检测图像上的匹配特征。但是,由于矩阵的维度不同,我的代码会显示错误。这是我的代码:
win_size = [32, 32]; %the window size of detection
%loop on scale of window size
for s=0.8:0.2:1
X=win_size(1)*s;
Y=win_size(2)*s;
%loop on column of image
for y = 1:X/4:lastRightCol-Y
%loop on row of image
for x = 1:Y/4:lastRightRow-X
p1 = [x,y];
p2 = [x+(X-1), y+(Y-1)];
po = [p1; p2] ;
% CROPPED IMAGE
crop_px = [po(1,1) po(2,1)];
crop_py = [po(1,2) po(2,2)];
topLeftRow = ceil(min(crop_px));
topLeftCol = ceil(min(crop_py));
bottomRightRow = ceil(max(crop_px));
bottomRightCol = ceil(max(crop_py));
cropedImage = im(topLeftCol:bottomRightCol,topLeftRow:bottomRightRow,:);
%Get the feature vector from croped image
HOGfeatureVector{counter}= getHOG(double(cropedImage));
LBPfeatureVector{counter}= getLBP(cropedImage);
LBPfeatureVector{counter}= LBPfeatureVector{counter}';
boxPoint{counter} = [x,y,X,Y];
counter = counter+1;
x = x+2;
end
end
end
我注意到问题出在HOGfeatureVector{counter},因为我使用不同的窗口大小,我从 HOG 获得的特征也有不同的维度。例如,我的窗口大小的原始比例是32x32,那么它会给我从HOG中提取特征后的维度为<6256x324>。然后,如果我把比例尺放在窗口大小上,例如:0.8:0.2:1,它会给我不同的尺寸,因为比例尺为 0.8,它会给我<6256x144> 和 32 的比例尺,<6256x324>。我注意到,不可能通过简单的串联来组合这两个不同的矩阵维度。
有人知道如何解决我的问题吗?至少,如何组合两个不同维度的矩阵?
谢谢
【问题讨论】:
-
什么是
Y和X?那是窗户的尺寸吗? -
s是窗口大小,X和Y是与原始窗口大小相乘后的窗口大小,s。如上所述,s = 0.8:0.2:1。所以,当s是0.8时,我将得到Y的窗口尺寸等于0.8*32,X也是如此。 @ifryed
标签: matlab image-processing matrix feature-selection sliding-window