Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 检测冲浪功能-对性能感到失望_Performance_Opencv_Parameters_Surf - Fatal编程技术网

Performance 检测冲浪功能-对性能感到失望

Performance 检测冲浪功能-对性能感到失望,performance,opencv,parameters,surf,Performance,Opencv,Parameters,Surf,我想在一个以25 FPS的速度获取新图像的应用程序中提取冲浪功能(或类似功能)。我认为特征提取至少可以接近实时。我用演示文件提供的相同参数尝试了OpenSURF,看到分辨率为640x480时,我的2 GHz Core2 Duo拍摄一张图像需要5到8秒的时间,我非常震惊 1) 这正常吗 2) 我是否可以调整参数以获得更差的结果但更快的执行时间 3) 实际上,我不需要缩放/旋转不变性,只需要在帧之间(相机处于固定位置)/不同照明条件之间跟踪良好的功能。是否有一种可行的替代方案可以(接近)实时运行?1

我想在一个以25 FPS的速度获取新图像的应用程序中提取冲浪功能(或类似功能)。我认为特征提取至少可以接近实时。我用演示文件提供的相同参数尝试了OpenSURF,看到分辨率为640x480时,我的2 GHz Core2 Duo拍摄一张图像需要5到8秒的时间,我非常震惊

1) 这正常吗

2) 我是否可以调整参数以获得更差的结果但更快的执行时间

3) 实际上,我不需要缩放/旋转不变性,只需要在帧之间(相机处于固定位置)/不同照明条件之间跟踪良好的功能。是否有一种可行的替代方案可以(接近)实时运行?

1)是的,这是正常的,冲浪的性能很差:(

2) 您应该使用其他描述符和检测器,因为我测试的Orb是最好和最快的,但在我看来,如果您想让fastets结果使用快速和简短,它没有旋转不变性,但与SURF相比,它非常快:)


试试这个,我希望你会感到满意并阅读

openCV中的SURF问题之一是类型转换非常多(doublefloat,float->int),而且由于频繁调用这些基本函数,这需要一段时间。您可以尝试查看源代码并尝试对其进行修改以获得更好的性能。

如果性能存在问题,您可能希望尝试在OpenCV的GPU模块中实现的SURF的GPU版本:

OpenCV-2.3.1/modules/gpu/src/surf.cpp

您可以使用
hessianThreshold
参数。它越大,发现的特征就越少,用于检测它们的时间也就越少

在我的情况下,100分,它花了约10秒得到所有的比赛。将该值增加到1000会将时间减少到1-2秒,而不会影响最终结果


有关更多详细信息,请参阅

降低空间分辨率以提高时间分辨率?我不知道算法的复杂性,SURF是不是没有达到它的名字?哇,Orb确实非常快,非常适合我们的应用。取得了很好的效果。如果我能投你一票,我会:-)没错,正如这里所解释的,我想知道为什么开发人员不修复它:@Laurel,你看到GPU冲浪与CPU相比有多大的改进?