OpenCV 2.4.6使用大量内存筛选关键点检测

OpenCV 2.4.6使用大量内存筛选关键点检测,opencv,sift,keypoint,Opencv,Sift,Keypoint,我们在openCV 2.4.3中使用了SIFT,并决定升级到openCV 2.4.6。 升级后,openCV 2.4.6中的内存使用量从大约(150MB)跃升到1.2GB 有人知道这是一个bug还是我们现在需要配置的东西吗 我们的图像有1.4MB。在iOS上观察到这种行为。这个问题似乎也发生在Linux(CentOs)中 Tks我记得其中一个版本中有一个关于关键点提取的bug。我在ORB上看到过,所以我不知道这里是否也有同样的问题,但我告诉你,万一有什么帮助的话 问题是关键点提取器在提取新关键点

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

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

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


Tks

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

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

矢量键;
cv::Mat descs;
cv::ORB ORB;
对于(…)
{
orb(图像、掩码、键、描述);//错误:关键点累积在“键”中
}
我不得不这样修补它:

(…)的

{
键。清除();
说明释放();
orb(图像、遮罩、键、描述);
}

我已经提交了一份报告。现在就等着瞧吧……

我们已经看到了同样的行为,但这不是我们现在面临的问题。当我们进行第一次特征检测时,会出现巨大的内存使用,当检测完成时,巨大的分配内存就会被释放。尽管如此,我认为你的回答可以帮助其他人。Tks+1;你有多少功能?也许阈值现在意味着一些不同的东西,你得到了比以前更多的特征。检测器参数是相同的,都有默认值。我在2.4.6版中获得了8k个关键点,在2.4.3版中获得了2k个关键点。在Linux中使用OpenCV 2.4.10时,我也遇到了类似的问题。内存随后被正确删除,因此没有内存泄漏,只是在功能检测运行时,进程仅使用17 MB的RAM和1 GB。太好了,解决错误的指定人员去年没有登录。我把密码弄丢了。这不是很好吗?好吧,他们取消了另一期的副本,也取消了第一期的副本。我放弃了。OpenCV团队是弱智的。我对OpenCV也很失望。另一方面,在我遇到这篇演讲之前,我一直使用r字;包括在这里,以防您感兴趣: