论文:LBD-线段描述子算法(草稿)

前言

摘要(Abstract)

  本文的线段匹配算法利用了线段的局部相似性和几何属性。本算法具有以下优点:(1)提出多尺度下线段提取策略,提高对图像变换的鲁棒性。(2)设计LBD描述子,提高计算线段表面相似度的速度和减少图匹配的维度。(3)成对几何一致性评价,提高图像在低结构化的匹配精度。

简介(Introduction)

一、线段提取与匹配(line detection and description)

1.1、尺度空间下提取线段(detecting lines in the scale space)

  为了克服线段提取中的割裂问题(fragmentation problem)和提高大尺度变换(large scale change)下的算法性能,我们对原始图像进行一系列尺度因子的降采样(down-sampling)和高斯模糊(Guassian blurring)从而形成包含N张图像的尺度空间金字塔(scale-space pyramid)。首先,我们运用EDLine算法对每层的图像产生一组直线,每条直线的方向由边缘像素点从左侧到右侧的梯度构成。然后,我们根据尺度空间中直线的对应关系来重新组织这些直线,给每一条直线分配一个唯一的ID。我们将尺度空间中具有相同事件关系(即图像的相同区域具有相同的方向)的直线存储到一个称为LineVecs的向量中。最后,线段提取的结果是如图1所示的一组向量。本文中的线段提取算法和Wang et al. 算法的区别在于本文通过重新组织不同尺度空间下提取的线段从而形成一组LineVecs向量,该方法能够有效的减少图匹配问题的维数(dimension)。

  如图1所示,每一个LineVec向量都至少包括尺度空间中的一条线段。为了描述LineVec向量的局部外观,我们需要对每条线段产生一种线段描述符。

1.2、条带表示线段支持域(the band representation of the line support region)

  给定图像中的一条线段,线段描述子可由线段支持域(LSR,包含线段的局部矩形区域)计算得到。如图2所示,将线段支持域分成一系列的相互平行的条带(band){B1; B2; . . . ; Bm},设条带的数目为m,每个条带的宽度为w,长度等于线段的长度。例如图2中的m=5,w=3。

  类似于MSLD算法,为了区别具有相反方向的平行线段和使线段描述子具有旋转不变特性(rotation invariant),本文引入两个方向dL和d来形成局部二维坐标系。其中线方向dL定义为线段的方向(即梯度的方向),垂直方向d定义为线方向dL的顺时针(clockwise)垂直方向(orthogoal direction)。LSR区域中的点像素的梯度可投影局部二维坐标系中,其中g为像素点的梯度,g‘为局部坐标系中的投影像素。

  启发于SIFT和MSLD算法,对LSR区域的每一行应用两个高斯函数(全局高斯函数和局部高斯函数)。首先,LSR区域的第i行应用全局权重系数:,其中di为LSR区域中第i行到中心行的距离,和。然后,考虑到条带Bj,对条带Bj和相邻的条带Bj-1和Bj+1的第k行应用局部权重系数:,其中dk‘为第K行到条带Bj中心行的距离,和。全局高斯函数的目的是降低LSR区域内沿d方向远离中心行的权重。局部高斯函数的目的是减少边界效应,避免相邻条带描述子的突然改变。

  该条带描述子相对于子区域表达具有两个优势:第一,它在方向的小位置变化更具有鲁棒性,因为条带中大部分的图像内容能够保持不变,在条带边界部分只有少量的变化。注意,这是一条很重要的特性,因为由于线段端点的不稳定性,dL方向的位置精度要低于d方向。第二,它的计算效率更高,因为每个条带之间在dL方向没有重叠,高斯权重直接作用于每一行,而不是每个像素。

1.3、条带描述子的构造(the construction of the line band descriptor)

  对于LSR区域的条带Bj,它的描述子由相邻的条带Bj-1和Bj+1计算得到。特别的,对于顶部和底部的条带B1和Bm,在计算他们描述子时不考虑LSR区域外的部分,需要单独计算。因此,LBD描述子由各条带的描述子{BDj}组成:LBD=(BD1T,BD2T,....,BDmTT

  现在我们构造条带描述子BDj,对于条带Bj的第K行,我们累计该行像素的梯度值,由以下公式计算可得:

  其中高斯系数

  通过条带Bj所有行的四个累积梯度,可以构造条带描述矩阵BDM,如下所示:

  

  其中n为计算条带Bj描述子中需要的行数:

  条带描述子BDj由条带描述子矩阵BDMj的均值向量Mj和标准差向量Sj构成:BDj=(MjT,SjTT∈R8,线段条带描述子LBD=(M1T,S1T,M2T,S2T,....,MmT,SmTT∈R8m

  LBD的均值部分和标准方差部分由于其大小不同,分别进行规范化处理。此外,为减少非线性光照变化的影响,对LBD每个维度的进行抑制,使它小于一个阈值(经验:0.4的是一个很好的值)。最后,我们重新规范约束向量得到单元的LBD。

二、基于光谱技术的图匹配(graph matching using spectral technique)

2.1、生成候选匹配对(generation the candidate matching pairs)

  在检测参考图像(reference image)和查询图像(query image)的LinVecs时,如果不能通过一元几何属性(unary geometric attributes)和局部表面相似性(local apperance similarity)测试,则认为是不匹配。

  一元几何属性:本文中的一元几何属性是指LineVec的方向,相同LineVec的线段具有相同的方向,并且每一个LineVec具有一个独一无二的方向。由于图像对具有任意角度的旋转,所以图像对中对应的LineVecs通常是模糊和不可靠的(ambiguous and unreliable)。所以通过估计图像对的近似全局旋转角这一属性来减少候选匹配对的数量。

  首先,我们计算图像对(参考图像和查询图像)的LineVecs的方向直方图(histograms),归一化(normalized)处理得到直方图(hr; hq),下标(subscript)r表示(donate)参考图像,下标q表示查询图像。然后,以角度角度Θ(0-2π)改变hq的来搜索近似全局旋转角Θg,由下列公式可得:。在实践中如果直方图距离较小,则可认为图像对的变换关系可通过旋转近似。如图3所示,估计的近似全局旋转角为:0.349 rad;偏移的直方图距离为:0.243。此外,如果图像中提取的线的重复性很低,则基于直方图的方法可能会失败,即错误的旋转角度可能被该算法接受。为了提高这种方法的鲁棒性,对于直方图落入同一bins的直线,它们的长度被累加起来。因此,对应于方向直方图,有一个长度向量,其第i个元素是所有线的累积长度落在方向直方图的第i个bin中。在我们的实验中,当最小偏移直方图距离小于阈值(0.4)时,并且最小偏移长度向量距离小于阈值(1),我们接受估计的全球旋转角。一旦被接受,一对LineVecs就会被匹配,如果(pi/4),是它们的方向之间的夹角,它们被认为是不匹配的。如果两个图像之间没有可接受的旋转角度,那么只测试外观相似性。

  局部外观相似性:

  

2.2、简历关系图(building the relational graph)

2.3、生成最终匹配结果(generating the final matching results)

三、描述子性能测试

  首先我们分析LSR区域的参数对描述子性能的影响,例如条带的数量m和条带的宽度w,然后对比评估下LBD和MSLD算法的性能。我们使用Mikolajczyk and Schmid数据集(dataset)来评估线段描述子的性能,该数据集包括八组不同变换的图像:光照变换(illumination changes)、平面旋转(in-plane rotation)、JPEG图像压缩(JPEG compression)、图像模糊(image blurring)、图像遮挡(image occlusion)、低纹理下的视点变换(low-texture scene)、纹理场景和尺度变换(scale variation)。每一组中包括六张从小到大变换的图像,图5中的a,c,d来至于数据集,其他的来自于实际拍摄以保证图像中包含线段特征。为了更好的评估在不同图像变换下描述子的性能,我们从原始图像中(original image)提取线段而不是灰度图像(octave image)中。

  针对这一部分的描述子的匹配性能,我们使用最近邻匹配准则(nearest neighbor matching criterion),就是根据描述子的距离来匹配线段从而可以避免不同描述子偏爱不同的距离阈值而造成距离阈值的偏差(prejudice)。这个匹配准则的另一个优势就是召回率(recall ratio 正确匹配的数目和所有真实对应的数目的比值)和准确率(matching precision 正确匹配的数目和所有匹配的数目的比值)是由正确匹配的数量唯一决定,因为不同的描述子的分母都是一样的。

3.1、描述子的维度(the descriptor dimension)

   我们通过实验分析LSR参数对描述子性能的影响,改变条带数量m和条带宽度w的范围从3到13.如图6所示,图像中正确匹配的数量由这两个参数影响。我们可以看出:无论LBD还是MSLD算法,首先随着m或者w数量的增加,算法的性能会急速提高。然后在m=9和w=7、9时,算法的性能达到峰值,最后趋于平稳。

  同时我们需要评价这两种描述子的时间性能,选取一张900X600的图像,提取573条直线段,结果如表1所示。从表1可知,随着m和w的增加,运行算法的消耗的时间也相应的增加。LBD算法的运行时间较MSLD算法在m的增加上更不敏感,尤其是在w的增加上。(也就是说LBD的算法耗时更少)。

  通过以上试验评估,描述子算法试验选取LSR参数为:m=9,w=7。从而该描述子为72维的描述子。LBD算法和MSLD算法的运行时间分别为28ms和137ms。

3.2、LBD和MSLD的进一步比较(Further comparision of MSLD and LBD)

  在本部分,我们将详细比较这两种算法在数据集试验中的效果,LBD和MSLD算法的召回率如图7所示。

(a) shows the performances of MSLD and LBD for the image illumination changes. From image 1 to image 5, the lighting condition gets worse. The recall ratios decrease with the increment of the lighting distortion.

(b) shows the results for images which are generated by a set of in-plane rotation varying from15° to75° .It is interesting that when the rotation angle is 45 (between image 3 and the reference image), LBD and MSLD perform worst because of the aliasing of discrete lines.

(c) and (d) show the descriptor performance against the image compression and the image blurring, respectively. Not surprisingly, the performances decrease with the increment of the image compression ratioor the image blurring.

(e) shows the descriptor performance against image occlusion(遮挡). To evaluate the occlusion effect, we first artificially add some vertical line(垂直线) features in a background image, then shift the region of interest along the vertical direction of the artificial image to generate a set of smaller images as shown in Fig. 5(e). This process makes sure that for the most of the lines, their LSR in the image sequencewill change gradually (some part of the LSR moves out or in). The results show that the descriptor performance decreases with the increment of the image occlusion.

(f) shows the descriptor performance in the lowtexture scene. Images in this sequence are captured in front of the window with small view point changes. The results do not show drastic change(巨大的变化) in performance because of the small baseline between images.

(g) shows the descriptor performance against large view point change. The view angles between the query images and the reference image range approximately from
-70° to 60° . No doubt, the descriptors perform better when the absolute value of the view angle is smaller (image3 and image4).

(h) shows the most challenging case for the descriptors, i.e, the large scale change. The scale ratio between the query images and the reference image range from 0.9 to 0.3. The performance decreases fast with the scale change.

四、线段匹配性能测试

原文地址:https://www.cnblogs.com/ChrisCoder/p/7877723.html

时间: 2024-10-10 08:46:12

论文:LBD-线段描述子算法(草稿)的相关文章

【特征匹配】BRIEF特征描述子原理及源码解析

相关:Fast原理及源码解析 Harris原理及源码解析 SIFT原理及源码解析 SURF原理及源码解析 转载请注明出处: http://blog.csdn.net/luoshixian099/article/details/48338273 传统的特征点描述子如SIFT,SURF描述子,每个特征点采用128维(SIFT)或者64维(SURF)向量去描述,每个维度上占用4字节,SIFT需要128×4=512字节内存,SURF则需要256字节.如果对于内存资源有限的情况下,这种描述子方法显然不适应

线特征LSD and 描述子LBD(一)

最近在看有关特征提取的线特征,暑期就看了相关的论文:<基于点线综合特征的双目视觉SLAM方法_谢晓佳>,最近呢,把里面有关线特征提取LSD和描述子LBD的代码跑了一遍,记录如下: [1]LSD: a Line Segment Detector线段检测器 LSD是一种局部提取直线的算法,速度比Hough要快. LSD是一种直线检测分割算法,它能在线性的时间内得出亚像素级精度的检测结果.该算法被设计成可以在任何数字图像上都无需参数调节.它可以自己控制误检的数量:平均而言,每张图有一个误检. 有几篇

线特征LSD and 描述子LBD---LBD算法(二)

上一节主要是介绍LSD算法理论,这节主要是介绍LBD算法. 1.尺度空间中提取线段 为了克服在线检测碎片问题和提高大尺度变化的性能,我们的检测框架采用由对原始图像进行搞死下采样( with a set of 尺度因子and 高斯模糊 )的尺度空间金字塔组成(N层图像).我们首先用Edline算法每层的尺度空间产生一组线.每一条直线都有一个方向,它是由从直线左边到右边的大部分边缘像素的梯度构成的.然后通过在尺度空间中找到对应的直线来组织它们.在尺度空间中所有的线,他们被分配一个唯一的ID,如果图像

BRIEF描述子生成算法

学习OpenCV关注微信公众号[OpenCV学堂] 一:介绍 我们知道SIFT算法通常通过对每个关键点生成128个特征向量作为描述子.SURF算法通常对关键点生成最少64个特征向量作为描述子.但是对于图像来说创建上千或者上万个这样的描述子内存开销比较大,运行速度受到严重影响.特别对嵌入式设备与一定设备来说,内存限制尤为明显,而且匹配的时候计算也比较耗时. 但是实际上这些特征数据OpenCV在匹配的时候并没有完全利用上,而是通过PCA.LDA等方法对它进行压缩,或者是LSH(局部敏感哈希)方法把这

BRIEF 特征描述子

Binary Robust Independent Elementary Features 1. BRIEF的基本原理 我们已经知道SIFT特征采用了128维的特征描述子,由于描述子用的浮点数,所以它将会占用512 bytes的空间.类似地,对于SURF特征,常见的是64维的描述子,它也将占用256bytes的空间.如果一幅图像中有1000个特征点(不要惊讶,这是很正常的事),那么SIFT或SURF特征描述子将占用大量的内存空间,对于那些资源紧张的应用,尤其是嵌入式的应用,这样的特征描述子显然是

(一)ORB描述子提取

ORBSLAM2中使用ORB描述子的方法 经典的视觉SLAM系统大体分为两种:其一是基于特征点法的,其二是基于直接法的.那么本文主要就讲特征点法的SLAM. 基于特征点法的视觉SLAM系统典型的有PTAM,ORBSLAM等.本文主要围绕ORBSLAM2的方案来阐述特征点法SLAM,因为ORBSLAM2可以说是特征点法SLAM的巅峰之作.ORBSLAM2采用三个主要线程:跟踪,局部建图和闭环以及一个额外线程:全局BA,该线程只有在闭环时才会触发.值得注意的是,ORBSLAM2中每个模块中都采用OR

SIFT解析(三)生成特征描述子

以上两篇文章中检测在DOG空间中稳定的特征点,lowe已经提到这些特征点是比Harris角点等特征还要稳定的特征.下一步骤我们要考虑的就是如何去很好地描述这些DOG特征点. 下面好好说说如何来描述这些特征点.许多资料中都提到SIFT是一种局部特征,这是因为在SIFT描述子生成过程中,考虑的是该特征点邻域特征点的分布情况(而没有利用全局信息).本步骤中主要计算过程包括:确定特征点的方向和生成特征描述符. 确定特征点方向 在特征点的确定过程中,特征点的坐标以及尺度被确定下来(坐标很重要,尺度更重要,

灰度共生矩阵的纹理描述子

纹理描述子(纹理特征):最大概率.相关.对比度.能量.同质.熵 I=imread('C:\Users\Jv\Desktop\纹理3.jpg'); gray=rgb2gray(I); GS=graycomatrix(gray,'NumLevels',256);%水平位置算子计算共生矩阵 GSn=GS/sum(GS(:));%归一化矩阵 stats=graycoprops(GS,'all');%共生矩阵的描述子 maxProbability=max(GSn(:));%最大概率 corr=stats.

OpenCV之特征检测器(Feature Detector),描述子提取器(Descriptor Extractor)和描述子匹配器(Descriptor Matcher)

1.特征检测子 -Harris cv::cornerHarris(image,strength,3,3,0.01); -Fast cv::Ptr<cv::FastFeatureDetector> fast = cv::FastFeatureDetector::create(); //或 cv::FAST(InputArray image, std::vector<KeyPoint> &keypoints, int threshold) //或 cv::FAST(InputA