4

如何加快 SURF 的对应匹配过程?我使用提供的示例并将其更改为从网络摄像头捕获彩色图像进行处理,但是速度肯定需要改进。这应该在哪里解决?

4

2 回答 2

3

首先,SURF(至少是 OpenCV 的)只支持灰度图像。

有许多描述符参数可供调整,将它们设置为较低的值可以提高性能:

typedef struct CvSURFParams
{
   int extended; // 0 means basic descriptors (64 elements each),
                 // 1 means extended descriptors (128 elements each)
   double hessianThreshold; // only features with keypoint.hessian
         // larger than that are extracted.
                 // good default value is ~300-500 (can depend on the
         // average local contrast and sharpness of the image).
                 // user can further filter out some features based on
         // their hessian values and other characteristics.
   int nOctaves; // the number of octaves to be used for extraction.
                 // With each next octave the feature size is doubled
         // (3 by default)
   int nOctaveLayers; // The number of layers within each octave
         // (4 by default)
}
CvSURFParams;

请参阅OpenCV 的 SURF 文档

此外,请查看有关 OpenSURF 库的原始文章和注释

于 2010-07-24T12:49:44.550 回答
0

cvRound 函数存在一个问题,该函数被 SURF 代码广泛使用。总而言之,函数重载带来了 double 和 float 之间的额外类型转换,这会减慢舍入代码。您可以在此处找到详细说明以及速度测量和补丁:http ://computer-vision-talks.com/2011/06/a-few-thoughts-about-cvround/ 。

于 2012-04-26T08:10:34.807 回答