1

我想提取图像 I 的每个大小为 [wH,wW] 的滑动窗口的 HOG。

目前我拥有的是:


windows = im2col(I, [wH,wW]);

for i=1:step:size(windows,2)

    sub = reshape(windows(:,i), [wH,wW]);

    features(i,:) = featuresExtraction(sub);

end

其中 featuresExtraction 脚本将提取 HOG 等。

我试着跑,看到它跑得非常非常慢。你有什么建议可以让它变得更好吗?

4

1 回答 1

0

首先,我建议您使用 Matlab 分析器分析您的代码。

完成此操作后,我认为您会看到函数featuresExtractionim2col计算速度慢的原因。im2col是一个也调用其他 Matlab 函数的函数。您可以看到,当您标记函数名称并右键单击“打开选择”检查新打开的文件中是否有很多 Matlab 代码时。

循环似乎是正确的for,但当然,您的代码会遍历图像中的每个可能的窗口,这非常慢,尤其是在 Matlab 中循环非常慢。

当您真的想加快代码速度时,我建议您使用 MEX 接口在 C 中实现计算量大的方法。要获得一个好的教程,请查看:A Short MEX Tutorial and Demo

于 2013-02-07T22:59:50.397 回答