Matlab图像处理滑动窗口SVM

时间:2014-07-17 12:45:42

标签: matlab image-processing svm matlab-cvst sliding-window

我正在尝试创建一个对象检测SVM,它可以检测在地板上慢慢滚动的远程控制调用。我在matlab中使用HOG cpp脚本(通过mex)和SVM-Light库(http://svmlight.joachims.org/

我想知道如果他们离相机更近的话我怎么能检测到汽车(我知道我需要有不同尺寸的窗户我不知道如何实现它)以及如何告诉SVM不要检测任何东西如果看不到车的话。车架里总会只有一辆车。我正在使用Matlab 2012a。我也想知道如何加速滑动窗口算法,并且还想知道训练图像的大小是否会显着影响结果。

这是我的滑动窗口代码

[bottomRightCol bottomRightRow d] = size(im);

fcount = 1;

for y = 1:bottomRightCol-wSize(2)    
    for x = 1:bottomRightRow-wSize(1)
        img = imcut([[x,y]; [x+(wSize(1)-1), y+(wSize(2)-1)]],im);      
        featureVector{fcount} = HOG(double(img));
        boxPoint{fcount} = [x,y];
        fcount = fcount+1;
        x = x+1;
    end
end

lebel = ones(length(featureVector),1);
P = cell2mat(featureVector);
[~, predictions] = svmclassify(P',lebel,model);
[a, indx]= max(predictions);
bBox = cell2mat(boxPoint(indx));
rectangle('Position',[bBox(1),bBox(2),wSize(1),wSize(2)],'LineWidth',3, 'EdgeColor','r');

对所有问题感到抱歉,但我们将非常感谢任何帮助或建议

干杯:D

1 个答案:

答案 0 :(得分:0)

计算机视觉系统工具箱让你train a cascade object detector级联对象探测器也使用滑动窗口方法,但它使用级联的增强分类器,而不是SVM。此外,您需要更新版本的MATLAB,因为R2012a中没有此功能。

您也可以尝试不同的方法。如果您的相机是静止的,您可以使用背景减法检测移动的物体(您的汽车)。计算机视觉系统工具箱包括vision.ForegroundDetectorObject,可在R2012a中找到。