3

我们在 openCV 2.4.3 中使用 SIFT,我们决定升级到 openCV 2.4.6。升级后,内存使用量在 openCV 2.4.6 中从大约 (150MB) 跃升至 1.2GB。

有人知道这是一个错误还是我们现在需要配置的东西?

我们的图像有 1.4MB。在 iOS 上观察到了这种行为。这个问题似乎也在 Linux (CentOs) 中发生。

Tks

4

2 回答 2

1

我记得其中一个版本中有一个关于关键点提取的错误。我在 ORB 上看到过,所以我不知道这里是否是同样的问题,但我会告诉你以防万一它有帮助。

问题是关键点提取器在提取新关键点之前没有清除输出向量:

vector<cv::KeyPoint> keys;
cv::Mat descs;
cv::ORB orb;

for(...)
{
  orb(image, mask, keys, descs); // bug: keypoints were accumulated in "keys"
}

我不得不像这样修补它:

for(...)
{
  keys.clear();
  descs.release();
  orb(image, mask, keys, descs);
}
于 2013-09-12T14:07:15.687 回答
0

我已经用 OpenCV 提交了一个错误报告。现在就等着看吧……

于 2014-10-16T14:12:36.120 回答