我们在openCV 2.4.3中使用SIFT,我们决定升级到openCV 2.4.6。 升级后,openCV 2.4.6中的内存使用率从大约(150MB)跃升至1.2GB。
有人知道这是一个错误还是我们现在需要配置的东西?
我们的图片有1.4MB。在iOS上观察到此行为。问题似乎也发生在Linux(CentOs)中。
韩国社交协会
答案 0 :(得分: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);
}
答案 1 :(得分:0)
我已提交bug report with OpenCV。现在等着看......