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

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

  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 的算法

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

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

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

  3. SURF算法与SIFT算法的性能比较——图像特征点检测与提取算法分析

    图像特征点提取算法的算法研究(SURF和SIFT算法) 1. 摘要 计算机视觉中,很大一部分研究集中在图像特征提取和特征生成算法上.对图像的优化,不同于一般数学问题的优化方法,图像的优化是对像素点,在 ...

  4. CS131-专题7:图像特征(SIFT算法)

    速记要点: SIFT是什么:全称Scale Invariant Feature Transform尺度不变特征转换,2004年的论文.可以检测出图像中的局部特征点. SIFT算法特点: 稳定性:SIF ...

  5. 非常详细的sift算法原理解析

    尺度不变特征变换匹配算法详解 Scale Invariant Feature Transform(SIFT) Just For Fun 转自:http://blog.csdn.net/zddblog/ ...

  6. 教你一步一步用C语言实现sift算法、上

    原文:http://blog.csdn.net/v_july_v/article/details/6245939 引言:     在我写的关于sift算法的前倆篇文章里头,已经对sift算法有了初步的 ...

  7. SIFT算法总结:用于图像搜索

    原始文章链接:http://bubblexc.com/y2011/163/ 原文链接:http://blog.csdn.net/cserchen/article/details/5606859 关于三 ...

  8. C语言实现寻找极值点,九之再续:教你一步一步用c语言实现sift算法、上

    教你一步一步用c语言实现sift算法.上 作者:July.二零一一年三月十二日 出处:http://blog.csdn.net/v_JULY_v 参考:Rob Hess维护的sift 库 环境:win ...

  9. 图像特征提取与描述_角点特征02:SIFT算法+SURF算法

    SIFT/SURF算法 1.1 SIFT原理 前面两节我们介绍了Harris和Shi-Tomasi角点检测算法,这两种算法具有旋转不变性,但不具有尺度不变性,以下图为例,在左侧小图中可以检测到角点,但 ...

最新文章

  1. 跳跃游戏(判断是否可以跳到最后一个下标)
  2. Java设计模式 -- 简单工厂模式(SimpleFactory)
  3. html5元素拖动 (转载黑桐)
  4. ASP.NET Core实现类库项目读取配置文件
  5. “新型肺炎患者同乘查询系统”上线,超2千万用户使用
  6. express中路由配置优化
  7. 华为怎么删除自带的音乐_原来华为手机相册隐藏剪辑功能!按下这个开关,还能制作音乐相册...
  8. php动态数组的用法
  9. 【ffmpeg for wince】音视频编解码多平台移植(for window/wince))ffmpeg
  10. Struts标签入门
  11. Centos6.5 安装Vim7.4
  12. 搭建SpringMVC
  13. 如何在Mac上强制退出应用
  14. xiao zhang   jia you
  15. Sophix热修复问题以及加固
  16. python发送各类QQ邮件 —— smtplib与email模块
  17. 如何使用界面控件DevExpress WinForms自带的UI模板?其实很简单
  18. 在线公开课 | 5G时代的视频云服务关键技术与实践
  19. .net 汉字转拼音 - 输入汉字获取其拼音
  20. UE4 使用CustomMesh动态创建网格体

热门文章

  1. 【HTML】之基本知识2
  2. c++map自动排序特性
  3. 矩阵变换:矩阵是怎样变换向量的
  4. Python 函数 pass
  5. ENVI:在ENVI中如何查看所打开遥感影像的所有波段
  6. 【吴恩达深度学习】——NLP和Word Embedding
  7. DFS【模板】找到最大岛
  8. secureFX上传中文文件名乱码
  9. mvcmvpmvvm
  10. Linux网卡流量监控工具