根据测试结果,两种算法对于ubc、bikes、trees和boat四种图集都有很好的鲁棒性,能够准确将图像匹配起来。两种算法的差异主要是在bark、graf、leuven和wall图集中表现出来的。

方法/步骤

  1. 1

    bark图集主要检验特征算法对旋转和缩放的鲁棒性。可见KAZE算法有效检测的特征点少于SIFT算法,而SIFT算法则能成功匹配所有5对图像;我们可以发现,KAZE算法在尺度不变性上是逊于SIFT的,当缩放系数低于0.6以后,KAZE的正确匹配率就会明显下降,而SIFT则能保持60%以上的正确匹配率。通过对SIFT的源码分析可以知道,SIFT中每组Octave的层数nOctaveLayer默认为3层,而组数nOctaves则是根据图像的大小自动生成的:

    int nOctaves = actualNOctaves > 0 ? actualNOctaves : cvRound(std::log( (double)std::min( base.cols, base.rows ) ) / std::log(2.) - 2) - firstOctave;

    这使得 SIFT 能够根据图像尺寸选择合适的尺度范围,在不同尺度上都能检测到关键点,保证其尺度不变性。测试中KAZE算法的nOctaves=2, nLayers=4,包含的尺度范围较少。在源码里这两个参数的调整需要使用者输入。可以仿照SIFT那样自动计算nOctave,但由于KAZE构造非线性尺度空间耗时较长,太多的nOctave却会降低KAZE的效率。

  2. 2

    graf和wall图集侧重检验算法对视角变化的鲁棒性。可以看到KAZE算法有效检测的特征数和成功匹配的点对数均比SIFT高,不过两者都不能将graf图集的Img1与Img6匹配起来,而SIFT算法也不能匹配出wall图集的Img-1和Img-6.

  3. 3

    leuven图集侧重于光照变化方面的检验。KAZE算法和SIFT算法都表现稳定,对光照变化不敏感。

    在后期的进一步试验发现,KAZE特征的匹配对参数的设置比较敏感。我github上最新的样例 azeOpenCV.cpp 中使用 BFMatcher 或 FlannBasedMatcher 进行特征匹配,默认情况下会对匹配后的结果作初步过滤(filterMatches=true),筛选出小于2倍最小距离的配对特征,然后再寻找Homography。实验发现,这样的初步过滤在大部分情况下可以有效排除冗余配对的干扰,找出正确的Homography;但在极限情况下(例如视角变换大、明暗差异大、尺度差异大等),初步过滤又会减少配对数量,从而找不到有效的Homography。而SIFT则比较稳定,做不做过滤都能找到Homography。可能KAZE的描述向量还是有改进的空间,后期可以测试下用作者最新的G-SURF描述向量,或者用其它类型的描述符来搭配测试。

比较 KAZE 与 SIFT 的算法相关推荐

  1. KAZE与SIFT算法比较

    比较 KAZE 与 SIFT 的算法.根据测试结果,两种算法对于ubc.bikes.trees和boat四种图集都有很好的鲁棒性,能够准确将图像匹配起来.两种算法的差异主要是在bark.graf.le ...

  2. 多种图像配准方法的综合比较(KAZE、SIFT、SURF等)

    接触图像配准是从去年十月份开始的,老师要求我尽快重现一遍整个流程,这样对课题可以有一个整体的把握,而后再仔细推敲细节,甚至提出自己的想法,老师的这个思路现在觉得非常不错.自己当时选取的是SURF方法, ...

  3. SIFT特征提取算法总结

    转自:http://www.jellon.cn/index.php/archives/374 一.综述 Scale-invariant feature transform(简称SIFT)是一种图像特征 ...

  4. 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法

    原文出自:http://blog.csdn.net/v_JULY_v/article/details/8203674 前言 前两日,在微博上说:"到今天为止,我至少亏欠了3篇文章待写:1.K ...

  5. 《统计学习方法》学习笔记2——KD树、SIFT+BBF算法

    KD树.SIFT+BBF算法 CSDN文章:https://blog.csdn.net/tianwaifeimao/article/details/48287159 原文链接:https://www. ...

  6. 【转】从K近邻算法、距离度量谈到KD树、SIFT+BBF算法

    最近在看<统计学习方法>,发现这么一篇好文章,与大家分享 转自:http://blog.csdn.net/v_july_v/article/details/8203674?reload 前 ...

  7. SIFT定位算法关键步骤的说明

    FROM: http://www.cnblogs.com/ronny/p/4028776.html 1. SIFT算法中一些符号的说明 I(x,y)表示原图像. G(x,y,σ)表示高斯滤波器,其中G ...

  8. sift+图像匹配 算法

    在初次使用sift时,有可能会报错:module 'cv2.cv2' has no attribute 'xfeatures2d' 这是因为sift算法申请了专利,在大于某一版本的时候无法调用,解决方 ...

  9. SIFT/SURF算法的作用

    转自:https://blog.csdn.net/cy513/article/details/4414352 SURF算法是SIFT算法的加速版,opencv的SURF算法在适中的条件下完成两幅图像中 ...

最新文章

  1. kettle全量抽数据_漫谈数据平台架构的演化和应用
  2. 2022 专属程序员的桌面必备单品!
  3. 【全文搜索引擎】Elasticsearch基本查询基础JavaAPI
  4. 快速创建springBoot
  5. .NET 6 新特性 PeriodicTimer
  6. 从壹开始学习 NetCore 新篇章 ║ Blog.Core 开发社之招募计划书
  7. C语言判断两字符串同构,c语言实现判断两颗树是否同构
  8. DPDK 跟踪库tracepoint源码实例分析
  9. pytorch orchvision.transforms.Normalize
  10. Myeclipse破解后报错解决
  11. 博图v14编程c语言教程_10个步骤完成PLC从编程到下载,超详细的TIA博途V13软件使用教程...
  12. 免费使用短信服务接口 ----用Java实现
  13. Pidgin for windows 与MSN、ICQ、QQ、YAHOO、GoogleTalk、AIM/AOL等网络聊天工具互联互通的新型聊天软件
  14. thinkphp5 域名路由
  15. 还在用PDF做简历?落后了!
  16. 企业邮箱登录入口有哪些?公司邮箱账号怎么登陆更方便
  17. Hadoop中Namenode单点故障的解决方案
  18. 新年集五福将,免费合成烤仔 “守护神兔” 典藏版 POAP 藏品!快来快来!
  19. noi2008 假面舞会
  20. NR/5G - SUL indicator field的理解

热门文章

  1. 自己交社保的人怎么样才知道自己可以退休了?
  2. excel 2010 指定x轴y轴数据 画折线图
  3. clCreateBuffer的7种方式的异同、MapBuffer与clCreateBuffer某些方式的区别与联系
  4. 红旗 linux 在哪儿 看 版本,简介红旗Linux不同版本的介绍
  5. 【MindSpore】 No module named apos;mindspore.dataset.transformsapos;
  6. 【动态规划】HDU 1081 XMU 1031 To the Max
  7. 基于MMRotate训练自定义数据集 做旋转目标检测 2022-3-30
  8. javascript英语单词音节拆分_英语连读时拆分中间单词吗?
  9. 【小强推歌】---法文歌曲下载
  10. Office办公 如何设置WPS的默认背景大小