【问题标题】:Best way of matching FREAK descriptors?匹配 FREAK 描述符的最佳方式?
【发布时间】:2013-05-03 14:20:29
【问题描述】:

所以我正在制作一个使用 FAST 检测器和 FREAK 描述符的应用程序。当涉及到匹配时,我想使用 BRUTEFORCE_HAMMING 匹配,但我没有得到预期的结果(与原始图像无关的图像给出更多匹配,然后是看起来相似的图像)

我尝试了以下代码

 MatOfDMatch matches = new MatOfDMatch();

        matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING);
        matcher.match(descriptors,descriptors1,matches);
        MatOfDMatch goedematches = new MatOfDMatch();

        double max_dist = 0;
        double min_dist = 100;
        //if (descriptors.cols() == descriptors1.cols())
        //{
        for( int i = 0; i < descriptors.rows(); i++ )
        { double dist = matches.toArray()[i].distance;
          if( dist < min_dist ) min_dist = dist;
          if( dist > max_dist ) max_dist = dist;
        }
        // should only draw good matches
       for( int i = 0; i < descriptors.rows(); i++ )
        {  MatOfDMatch temp = new MatOfDMatch();
           if( matches.toArray()[i].distance <= 2*min_dist )
           {   temp.fromArray(matches.toArray()[i]);
               goedematches.push_back(temp); 
               }        
       // }
        }

       Log.d("LOG!", "Number of good matches= " + goedematches.size());

但它会返回“糟糕”的结果。所以我的问题是,还有其他方法可以与 FREAK 描述符进行匹配吗? (我使用 OpenCV 库 2.4.4 和 Java 包装器,所以没有 C 代码)

【问题讨论】:

    标签: java opencv matching freak


    【解决方案1】:

    一旦您有了描述符,蛮力方法将为您提供可能找到的最接近的对应关系,因为它会尝试将第一张图像上的描述符与第二张图像的所有描述符进行匹配。

    所以答案是否定的:使用 FREAK 描述符,您可以获得的最佳结果(w.r.t 汉明距离)是您通过蛮力匹配获得的结果。

    (也就是说,当图像相似时,您应该得到很多好的和坏的匹配。您是否尝试绘制匹配?尝试在匹配之间画线不使用过滤步骤 .)

    【讨论】:

    • 我知道如何获取两个图像的关键点,但不知道如何连接它们。关于如何做到这一点的任何想法?
    • 在矩阵中绘制两个相邻的图像,并在点之间画线(cv::line),例如。
    【解决方案2】:

    如果您要检查的是图像的重复性,我建议您使用汉明距离为10BRISK 算法。我在我的application 中使用了它,并且我开发了一个tool,它将帮助您找到所需的最佳算法。也许你也可以升级我设计的工具,匹配类型。

    【讨论】:

      【解决方案3】:

      您可能会得到不好的结果,因为 FREAK 本身不是旋转和缩放不变的。 尝试在这些关键点周围使用 BRISK 关键点检测和 FREAK 描述符。

      如果您将描述符 mat 设置为 null,JavaCV 允许您使用 BRISK 关键点检测。

      【讨论】:

        猜你喜欢
        • 2014-10-09
        • 2017-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-16
        • 2012-06-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多