一、线签名的检测

这篇论文中提出了一种线匹配的方式,称为 Line Signatures,这里就按照字面意思去翻译,叫做线签名。

由于是线匹配的论文,所以关于线提取的内容论文就用很短的几句话代替了,首先使用一种比卡农算子弱一些的提取方法,提取出边缘像素,之后连接边缘像素形成曲线,最后根据曲线,通过划分多边形的方法,提取出直线段,提取出来的每个线段都保留有一个与线平行的方向、一个取绝大多数边缘像素的左侧指向右侧的梯度方向,以及一个由边缘点梯度确定的梯度幅值。

提取出线之后,才真正进入到这篇论文的关键,这篇论文的线匹配,是使用一个线段簇的结构,简单来说就是一堆线的组合。线段簇的提取,首先要拿一条线段,选取它的一个端点,在这个端点的附近选择k条相似度符合要求的线段,加上自己这一条,一共是k+1条线段,这样的线段就是一个线段簇,而且是针对于一条线段的一个端点的线段簇,同理用这条线段的另一个端点也可以划分出另一个线段簇。对于划分的线段簇,作为标准的线段被称为线段簇的中心线段,而作为标准的点被称为线段簇的中心点。

对于论文中的例子,如果i也就是红色的线段是我们的中心线段,假设当前的中心点是p1,那么根据上面的划分,当k=3的时候,我们可以筛选icab四条线组成的线段簇,而将中心点换为p2,那么就可以筛选出idac四条线组成的线段簇。

之后论文论述了一下采用这种方法构建线段簇的原因,这种构建线段簇的方式,主要是因为同时满足了空间相似性和相对显著性。空间相似性能够增强对于周围环境的描述的可重复性,个人感觉就是通过将周围的线段纳入匹配来提高结构性的描述,从而让特征更加具有代表性。相对显著性则表示同样情况下的突出程度,能够增强线段提取的稳定性。

前面提到提取k条邻近的线段,这个k叫做线签名的序列,增大k的值可以提高特殊性,但是也会降低可重复性并且增加计算量。这里个人感觉k增大了,也就是说用更多的线段去参与编码,那么首先,编码出来的结构就更具代表性,因为你将周围的很多内容都加入了编码,也就是提高特殊性,但是反过来,将更多线段参与编码,计算量必然会增加,其次就是完全匹配或者说相似程度会下降,因为线段提取是存在误差的,同一条线段,可能在一张图中提取的出来,在另一张图上就提取不出来了,这样与这条线段相关的线段簇,就会出现编码的不一样,从而降低了匹配程度,也就是降低了可重复性。
另外,由于线段的提取的一些细枝末节的问题,一条线存在被拆分成好几条的可能,也就是上面那张图中第二张,对于abd和de两条线段,存在可能让线段提取的结果变成ab bc de三条线段,也有可能提取成ae一整条线段。这种情况下,论文认为可以单独构建两种线段簇,如果中心线段是fg,那么可以划分为{fg ab bc de}或者{fg ae jk hl}。对于c图的情况,也就是大量平行线的情况,论文认为只需要选择最明显的一条纳入线段签名的计算。

下面这张图就演示了一个真实情况下的提取结果,其中蓝色表示中心线段,黄色表示中心点,而红色表示线段簇中的其他线:

二、线段签名相似度的计算

前面一部分提到了线段簇,也就是一堆线段的合集,现在我们还要将这个线段簇通过一定的方法,来生成代表这个线段簇的签名。

首先我们要计算线段之间的描述,线段描述子计算分为两种情况,对于共面且位于邻域的线段,采用长度比的计算:

而对于其它的情况,就不去计算这两个量。区分这种情况,主要是因为在不共面或者透视效果不明显的场合下,只要变换足够大,任何的公式约束都有可能满足,所以必须要对变换范围做出一定的限定。还是在这种情况下,两条线一共有四个端点,可以组成六条线段,选取其中一个作为基准,那么可以和剩下的线段组成五个比例以及五个角度共计十个参数,这十个参数共同来描述相对关系:


额外补充一下,对于相对关系的描述,理论上四个就已经足够了,但是为了提高判断的准确率,论文中采用了全部纳入考虑的方式,使用了全部的十个参数。

此外,论文还使用了两条线的梯度幅值的比值去描述外观信息,因为这个指标对光照足够鲁棒:

现在,对于一对线段,而且是满足共面和临近的两条线段,我们前前后后一共计算了13个参量,现在我们将这些参量放在一起,组成一个向量v,那么这个v就是这一对线段的描述子:

现在这个向量v是对一张图上的两条线段的描述,那么对于两张图上的两对线段,该如何描述相似程度呢。对于r1和r2两个属性相差不大的两对线段,我们可以认为是仿射变化,采用下面的计算方法:

如果不符合最后的约束条件,就认为不合实际,直接将相似度记为负无穷。同样地,对于没有计算r1r2这两个量的线段,就采用下面的计算方法:

最后综合这两种情况,最终的两对线段的相似度记为:

上面的相似度的介绍,都是基于两对线段之间的,现在给出两个线签名,线签名的相似度就是里面所有相应的线段对的相似度的和。

小总结一下,一个线段簇里面有好多条线,每一对线都可以计算出一个描述子向量v,两张图里面的两对就可以根据是不是仿射变换计算出一个相似度S,对线段簇里所有线对的相似度S求和,就是这个线段簇的相似度,也就是线段签名的相似度,用这个相似度,就可以进行后续的匹配等操作。

总的来说,这篇论文对应的就是LBD论文中pairwise的匹配相似度机制,提出的这种将空间关系纳入计算的方法效果不错。

Wide-Baseline Image Matching Using Line Signatures相关推荐

  1. Robust line matching through line–point invariants

    一.符号规定 在这篇论文中,使用Xi表示参照图上的点,使用pi表示参照图上的线,类似地使用Yi表示查询图中的点,使用qi表示查询图中的线,点使用2D坐标,线使用3D坐标. 在此基础上,使用集合的形式去 ...

  2. Image Processing and Computer Vision_Review:Local Invariant Feature Detectors: A Survey——2007.11...

    翻译 局部不变特征探测器:一项调查 摘要 -在本次调查中,我们概述了不变兴趣点探测器,它们如何随着时间的推移而发展,它们如何工作,以及它们各自的优点和缺点.我们首先定义理想局部特征检测器的属性.接下来 ...

  3. 【论文阅读】24-USAC: A Universal Framework for Random Sample Consensus

    [论文阅读]24-USAC: A Universal Framework for Random Sample Consensus 0.basic info 1. standard RANSAC 1.1 ...

  4. AgreementMaker:Efficient Matching for Large Real-World 翻译

    正文之前 这篇文章还是我看前几天那个基于框架进行本体匹配的一个Previous Work里面的一个Previous Work.可以说有点菜,但是还是比较有参考意义的, 所以我把源码下载了下来,然后准备 ...

  5. (十四:2020.08.28)CVPR 2014 追踪之论文纲要(译)

    CVPR 2020 追踪之论文纲要(修正于2020.08.28) 讲在前面 论文目录 讲在前面 论坛很多博客都对论文做了总结和分类,但就医学领域而言,对这些论文的筛选信息显然需要更加精细的把控,所以自 ...

  6. ICIP 2009 Papers

    以下转载ICIP 2009录用文章的题目,希望从其中能够发现有用的信息.想来当初也是打算投一个的,可是怎么看总觉得创新不够,后来也就放弃了.争取以后的机会吧. 粗略看了下标题,感觉不愧是一个大会,文章 ...

  7. Deep Learning(深度学习)学习笔记整理系列

    一.概述 Artificial Intelligence,也就是人工智能,就像长生不老和星际漫游一样,是人类最美好的梦想之一.虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生& ...

  8. [转]机器视觉开源代码集合

    一.特征提取Feature Extraction: SIFT [1] [Demo program][SIFT Library] [VLFeat] PCA-SIFT [2] [Project] Affi ...

  9. 计算机视觉、机器学习相关领域论文和源代码大集合

    注:下面有project网站的大部分都有paper和相应的code.Code一般是C/C++或者Matlab代码. 最近一次更新:2013-3-17 一.特征提取Feature Extraction: ...

最新文章

  1. 径向基函数神经网络_基于RBF神经网络的网络安全态势感知预测研究
  2. 对象特性-----拷贝构造函数的调用
  3. 对比.Net PetShop和Duwamish来探讨Ado.Net的数据库编程模式
  4. java 网站转app_java – 将现有Web应用程序转换为桌面应用程序
  5. 7、redis之使用spring集成commons-pool来操作常见数据类型
  6. 用系统滚动条实现NumericUpDown的原理
  7. oracle走当前时间分区,Oracle分区使用波斯日历的时间间隔
  8. C程序生成一定范围内的随机数
  9. 大型网站中的验证码解决方案
  10. LeetCode 997. 找到小镇的法官(图的出度和入度)
  11. sql中count(1)、count(*)和count(字段名)的区别
  12. 为什么事务日志自动增长会降低你的性能
  13. php 读取js文件,JS中如何读取文件
  14. 【数值分析】python实现复化高斯积分
  15. QT下以ADO连接ORACLE数据库
  16. React Native 中使用 Animated 实现物体下落动效
  17. c语言坐标反算方位角函数,反三角函数/简易正反算or方位角转度分秒
  18. 黑苹果开启——HiDPI 技术
  19. 云原生是什么意思?我们为什么需要云原生?
  20. 软件工程师的硬件与软件

热门文章

  1. Flash ActionScript 2.0基础教程
  2. 浅析ASP.NET应用Autofac获取页面服务
  3. 运营商缺的是应用还是想法--广州晨皓
  4. ZTE Unveils World's First WiMAX Mobile Video Surveillance Terminal
  5. twig php代碼,有没有办法在wordpress的.twig文件中编写php代码?我试图使用.twig模板文件中的表单值发送邮件...
  6. 【git】建git仓库
  7. 操作数据库pymysql
  8. 动态加载并获取usercontrol生成的html
  9. Android 五大布局简析
  10. 信息系统项目管理04——项目整体管理