线特征---LineMatching原理(四)
参考文章:An efficient and robust line segment matching approach based on LBD descriptor and pairwise geometric consistency ----Lilian Zhang , Reinhard Koch
第三部分:Graph matching using spectral technique
介绍线检测和描述之后,本节我们介绍方法来构造两组LineVecs之间的关系图并且在图中建立匹配结果。在此之前,先引入一些预处理,通过排除明显的不匹配来减少图匹配问题的维数。
1.生成候选匹配对
检测参考和查询图像的LineVecs,根据他们的一元几何属性和它们的局部外观相似性,如果他们没有通过测试,被认为是不匹配的。
一元几何属性:一元几何属性在我们的工作中被认为是linevecs方向。值得注意的是,在同一linevec中的线具有相同的方向,所以每个linevec具有独特的方向。乍一看,在图像对中对相应的linevecs方向是模糊的和不可靠的,图像对有任意旋转的变化。但图像对之间往往存在近似全局旋转角是正确的。为了可以减少候选匹配的数量,我们使用这个属性。
在[ 6 ]中,引用和查询图像( reference and query images)的旋转的近似关系是从点特征对应关系计算的。受此启发,虽然我们没有这样的点对应的信息,我们可以直接计算参考和查询图像的LineVec方向直方图。我们首先计算两图像的LineVecs方向直方图,得到规范化直方图,下标r表示参考图像,q表示查询图像。然后,我们通过角度改变,并且对全局近似旋转角搜索。By taking the angle as index in the histogram for simplicity,估计为:
在实践中,如果偏移的直方图距离较小,透视变换可以通过旋转近似,例如下图:
估计的:0.349 rad;偏移的直方图距离:0.243。此外,如果图像中提取的线的重复性很低,则基于直方图的方法可能会失败,即错误的旋转角度可能被该算法接受。
为了提高这种方法的鲁棒性,对于直方图落入同一bins的直线,它们的长度被累加起来。因此,对应于方向直方图,有一个长度向量,其第i个元素是所有线的累积长度落在方向直方图的第i个bin中。在我们的实验中,当最小偏移直方图距离小于阈值(0.4)时,并且最小偏移长度向量距离小于阈值(1),我们接受估计的全球旋转角。一旦被接受,一对LineVecs就会被匹配,如果(pi/4),是它们的方向之间的夹角,它们被认为是不匹配的。如果两个图像之间没有可接受的旋转角度,那么只测试外观相似性。
局部外观相似性:用线描述符的距离度量局部外观相似性。
对于LineVec的每个直线,我们从线提取的(octave image)图像中生成一个LBD描述符向量V。当从一对图像中提取的两组LineVec做匹配, a reference LineVec and a test LineVec的所有描述符之间的距离被评估,最小的描述距离用来测量LineVec外观相似s。如果(0.35)(是局部外观不同的容忍度),那么相应的两LineVec不会进一步考虑。
检查LineVecs的一元几何属性和局部外观相似性后,通过这些测试的配对被视为候选匹配。应该选择一组宽松的阈值,否则会有很大的机会错过正确匹配。在我们的实验中,阈值凭经验设为。候选匹配的数量比实际匹配的数量要大,因为人们不能仅仅依赖于上述的验证来决定最终的匹配结果。然而,与直接组合相比,以上检查仍然大大减少了下列图形匹配问题的维数。
2.建立关系图
对于一组候选匹配,我们建立了一个关系图的节点代表潜在的对应,在连接的权重表示他们成对之间的一致性。
注意:在代码中,left image对应reference image,Right image对应query image,是在每个图中选取了两条线段,标注为。
给定一组k候选匹配,关系图被一个邻接矩阵A表示,其大小为k×k [30]。行为i,列为j的A的元素的值是候选的LineVec匹配的一致性得分和,其中是reference image的LineVecs,是query image的LineVecs。由成对几何属性和候选配对的外观相似性计算一致性得分。
成对几何属性:为了描述两LineVecs的成对几何特征,我们选择两条线,which lead to这两LineVecs之间的最小描述距离并且在原始图像定位端点位置。随后,我们描述的几何属性通过其交叉比率,投影比例,相对角如下图:
计算同理。通过线的方向很方便计算出来。这三个属性对平移、旋转和缩放的变化是不变的。
外观相似性(前面已提到过):我们利用LBD描述子矢量V来表示线条的局部外观。假设这个描述子对于LineVecs有最小距离在reference and query images,对于LineVecs是。we get two sets of pairwise geometric attributes and local appearances for two candidate matchesandas:
和。
一致性得分(the consistent score)的计算:
其中是几何相似性;是局部外观相似性;是条件
:在中的每个元素不超过1。与[5]相比,在我们的工作中,的定义对线检测的碎片问题有更好的稳定性,因为只要在参考图像和查询图像中的有一对匹配线被很好地提取出来,那么无论另一对如何提取,会非常小。的定义有同样优势。
我们设置
对于所有候选匹配,我们计算它们之间的一致性得分,并获得邻接矩阵A。
Leordeanu [ 31 ]为更好的结果,建议A对角线上的元素为0,并且保持对称性。
3.生成最终匹配结果
匹配的问题现在简化为寻找匹配簇最大化总的一致性得分,这样可以满足映射约束。
我们使用一个指标向量表示这个簇,否则为0。
因此匹配问题被表述为:,其中x受制于映射约束。一般二次规划技术计算量太大,无法解决这个问题。我们采用光谱技术,对x放宽的映射约束和积分约束,使得它的元素可以在采取实际值在[0,1]。
通过Raleigh的比例定理[30],最大化的是A的主要的特征向量。它仍然是使用映射约束二值化特征向量和获得最优解的一个强大的近似。映射约束应用在这里有片面性约束[ 16,14 ]和一对一的约束。该算法的详细信息如下:
最后的线段匹配可以从linevecs LM的匹配结果直接检索。注意,在LineVec的线位于图像的同一区域,并且具有同一方向,因此,对于每对linevec的匹配,线段匹配有一对就足够检索了。
线匹配实验
表3总结了该算法的参数设置。
表4中显示了比较结果:整体看来LBD+S&G的效果是比较好的。
LP:Line matching leveraged by point correspondences(逐点匹配)
LS:Wide-baseline image matching using line signatures(基于线特征的宽基线图像匹配)
MSLD: a robust descriptor for line matching
Match precision:匹配的精度
线特征---LineMatching原理(四)的更多相关文章
- 线特征---EDLines原理(六)
参考文献:EDLines: A real-time line segment detector with a false detection control ----Cuneyt Akinlar , ...
- 线特征---LineMatching代码运行(五)
[1] https://github.com/dlut-dimt/LineMatching The code is based on Matlab. https://github.com/ka ...
- 支持向量机原理(四)SMO算法原理
支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五) ...
- 线特征---LSD and LBD程序运行(一)
最近在看有关特征提取的线特征,暑期就看了相关的论文:<基于点线综合特征的双目视觉SLAM方法_谢晓佳>,最近呢,把里面有关线特征提取LSD和描述子LBD的代码跑了一遍,记录如下: [1]L ...
- 基于点线特征的Kinect2实时环境重建(Tracking and Mapping)
前言 个人理解错误的地方还请不吝赐教,转载请标明出处,内容如有改动更新,请看原博:http://www.cnblogs.com/hitcm/ 如有任何问题,feel free to contact m ...
- juc线程池原理(四): 线程池状态介绍
<Thread之一:线程生命周期及五种状态> <juc线程池原理(四): 线程池状态介绍> 线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态.线程池也有5种状态 ...
- 四种比较简单的图像显著性区域特征提取方法原理及实现-----> AC/HC/LC/FT。
laviewpbt 2014.8.4 编辑 Email:laviewpbt@sina.com QQ:33184777 最近闲来蛋痛,看了一些显著性检测的文章,只是简单的看看,并没有深入的研究,以 ...
- 线特征---LBD算法(三)
上一节主要是介绍LSD算法理论,这节主要是介绍LBD算法. 参考文章:An efficient and robust line segment matching approach based on L ...
- 线特征---LSD算法(二)
上一节介绍了一些资源和实验结果,这节主要是介绍LSD算法理论. 直线段检测算法---LSD:a Line Segment Detector LSD的核心是像素合并于误差控制.利用合并像素来检测直线段并 ...
随机推荐
- UNITY2018 真机开启deepprofiling的操作
手机上运行游戏并开启deepprofiling的命令如下 命令一:adb shell am start -n com.szyh.YHP1.kaopu/com.szyh.YHP1.kaopu.MainA ...
- English Conversation – Checking in at an airport
English Conversation – Checking in at an airport Share Tweet Share Tagged With: Ben Franklin Exercis ...
- jenkins+docker+docker-compose完整发版流程
首先搭建jenkins+maven+nexus这一套自动化打包工具,并配置好相应配置,这里就不再赘述了. 其次,搭建好docker集群和私有仓库,以及安装好docker-compose工具,配置好相应 ...
- python模块os
一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...
- 两台openwrt 间的免登陆ssh
参考文档: http://www.360doc.com/content/13/1013/21/3884271_321222563.shtml http://blog.csdn.net/u0110079 ...
- Android构建项目时出现的小bug们(2018年5月19日19:31:20)
问题详情 Error:Execution failed for task ':app:preDebugAndroidTestBuild'. > Conflict with dependency ...
- Delphi 透明窗体显示文字
设置窗体属性:BorderStyle 属性设置为 bsNoneColor 属性设置为 clWhite(白色:窗体背景色)TransparentColor 属性设置为 trueTransparentCo ...
- LDA线性判别分析(转)
线性判别分析LDA详解 1 Linear Discriminant Analysis 相较于FLD(Fisher Linear Decriminant),LDA假设:1.样本数据服从正态分布,2 ...
- CMake Error at cmake/OpenCVModule.cmake:295 (message): No extra modules found in folder:Please provide path to 'opencv_contrib/modules' folder
其实,我们使用的opencv中要用的contrib/modules 是需要额外下载并在cmakelists.txt中指定的 git clone https://github.com/opencv/ ...
- 最小生成树二·Kruscal算法
描述 随着小Hi拥有城市数目的增加,在之间所使用的Prim算法已经无法继续使用了——但是幸运的是,经过计算机的分析,小Hi已经筛选出了一些比较适合建造道路的路线,这个数量并没有特别的大. 所以问题变成 ...