直线匹配-LSD算法

转自https://www.cnblogs.com/Jessica-jie/p/7523364.html

参考文章:An efficient and robust line segment matching approach based on LBD descriptor and pairwise geometric consistency ----Lilian Zhang  , Reinhard Koch

 

第二部分:Line detection and description

1.尺度空间中提取线段

为了克服在线检测碎片问题和提高大尺度变化的性能,我们的检测框架采用由对原始图像进行高斯下采样( with a set of 尺度因子and 高斯模糊 )的尺度空间金字塔组成(N层图像)。我们首先用Edline算法每层的尺度空间产生一组线。每条直线都有一个方向,它是由从直线左侧到右侧的大部分边缘像素点的梯度构成的。然后通过在尺度空间中找到对应的直线来组织它们。在尺度空间中所有的线,他们被分配一个唯一的ID,如果在图像中他们相关相同的事件,将其存储在一个称为LineVecs的向量中(即图像的同一区域具有相同的方向)。线检测方法 不同于Wang et al.[5] ,通过重新组织从尺度空间提取的所有的线段形成LineVecs,从而降低了图匹配问题的维数。最终提取的结果是一组LineVecs如下图:

如图1所示,每个Linevec可能包括尺度空间的多条线。为描述一个LineVec局部外观,对于其中的每条线,我们会在被提取的线段的每层图中产生一种线描述符。

2.条带(Band)来表示线的支持域

 在octave image给出了线段,描述符将从线段支持域(LSR)计算。该支持区域被划分为一组条带{B1;B2;...;Bm},每个条带都是LSR的子区域并且他们之间的平行的,条代数m的和每个条带的宽度w,条带的长度等于线段的长度,如下图当m =5 ,w=3的LSR例子。

类似于 MSLD[11],引入两个方向构成a local 2D coordinate frame(局部二维坐标系),用于区分具有相反梯度方向的平行线并使描述符旋转不变。根据线的方向为 ,正交方向(垂直方向) 被定义为顺时针垂直的方向。该线的中点被选为这个局部坐标系的原点。LSR中的每个像素的梯度投影到这个局部框架,其中的:image frame中的像素梯度, :local frame中的像素梯度。

对于SIFT[23] and MSLD,两个高斯函数应用在每一行沿着的方向。首先,全局权重系数是在LSR的第i行,其中是第i行到LSR中心行的距离,第二,考虑一个条带Bj,以及他在相邻的条带Bj-1,Bj+1 ,局部权重系数在Bj第k行,其中第k行到Bj中心行的距离,全球的高斯窗的目的是给予在LSR中沿方向远离线的微小变化梯度很小的关注度(敏感性)。局部高斯窗的目的是减少边界效应,它避免了像素从一个条带移动到下一个的描述符突然改变。

此方法描述子区域的优点:首先,它对方向的小的位置变化更有鲁棒性,因为在这种情况下,带内图像的大部分内容保持不变,只有带边界略有变化。注意,这个特性很重要,因为一般来说,由于线路端点不稳定,线的位置精度在方向中要比方向低。第二,它的计算效率更高,因为每个条带之间在方向没有重叠,高斯权重直接应用于每一行,而不是每个像素。

 3.构造条带描述符

(the Line Band Descriptor) LBD:

每条条带的描述子BDj:通过其最近的两相邻行的条带Bj-1 ; Bj+1来计算 。特别是,对于在顶部和底部的条带带B1和Bm,在计算B1和Bm的描述子时行在LSR之外不会被考虑在内。(所以下面n的取值会把j=1||m单独出来)

BDj的计算(其实就是描述的上下左右四个方向):

k:表示在条带Bj的第k行,我们累积的像素的梯度在这行;:高斯权重。

条带描述矩阵the band description matrix (BDM):

BDj由BDMj矩阵的均值向量Mj and标准方差 Sj 得到:

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

 

二.描述符性能评价

在检测我们提出的图像匹配算法之前,我们线分析一下LSR参数的影响,例如条带的数量m和条带的宽度w,评价LBD的性能与MSLD描述子做比较。

Mikolajczyk and Schmid [33]建立一个基准,评价局部描述符的性能。我们使用这个框架来比较线描述符的性能。实验数据集包括八组图像:光照变化、面内旋转、jpeg压缩、图像模糊、图像遮挡、低纹理场景中视点变化和纹理场景,以及尺度变化。

针对这一部分所描述的描述符的匹配性能,我们选择了最近邻匹配准则,根据描述符的距离对线进行匹配,避免了由于不同描述符偏爱不同阈值而造成距离阈值的偏差。这种匹配准则的另一个优点是,召回率(正确匹配的数量除以地面对应的数目)和匹配精度(正确匹配的数量除以总数量的匹配)是唯一的决定正确匹配的数量由于不同的描述符的分母是相等的。

 

描述子维数

 下图显示了所有的图像正确匹配的数量是由这两个参数(m和w)影响的。It is clear that LBD and MSLD share similar rules: the performance increases fast at the beginning with the increment of m or w, then reaches the best performance when m=9 and w is about 7 or 9, after that there is a steady performance decrease.

The results are well explained by the fact that larger values of m and w (i.e. larger LSR) make the descriptor more distinctive(独特的) while they also reduce the repeatability(可重复性) of the LSR.

 

     We also evaluate the time performances of these two descriptors which are given in Table 1.

      Although the time performances may change from image to image, their relative relationship will keep the same. We only show the results which are generated from an example image with the size of 900×600 and 573 extracted lines. Basically, the larger m and w are, the more computational time is consumed.

LBD is less sensitivity(敏感) to the increase of m and w than that of MSLD, especially for the increase of w.Based on the aforementioned evaluation, through the rest of the paper, the descriptor will be computed from a LSR with m= 9 and w= 7, resulting in a 72-dimensional descriptor. Then the computing times of LBD and MSLD for the example image are 28 ms, and 137 ms, respectively.

2.MSLD and LBD更多比较

比较每组照片的,MSLD and LBD recall ratios如下图:

 (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 ratio(压缩比) or 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 sequence(图像序列) will 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.

 

时间: 2024-10-17 21:42:50

直线匹配-LSD算法的相关文章

LSD算法

LSD算法是一个直线提取算法,在opencv 中也有封装,它的主要思想是通过求导得到灰度的梯度,因为灰度梯度的方向的垂直方向就是线条的方向,将有相同方向的向量用矩形圈起来,再将举行精细化,最后就可以得到的一条线段了. 关于它的文章和算法和demo基本上可以在这里找到. 这篇文章里引入了很多名词,切听我一一道来.首先,我们看下图,这里的图片首先根据梯度的垂线构造了一个level-line field,它把和梯度的垂直方向的线叫做level-line,所以这个field就是由这样的线组成的场.有了这

全局匹配KMP算法

KMP算法是通过分析模式字符串,预先计算每个位置发生不匹配的时候,所需GOTO的下一个比较位置,整理出来一个next数组,然后在上面的算法中使用. 本全局匹配KMP算法针对串的堆式存储数据结构 # define MAXSIZE 45 //固定next数组的长度 # define OK 1 # define ERROR 0 typedef int Status; //返回状态 //存放匹配字符串的位置 int indexArray[MAXSIZE] = {0}; //记录匹配字符串出现的次数 in

USACO 4.2 The Perfect Stall(二分图匹配匈牙利算法)

The Perfect StallHal Burch Farmer John completed his new barn just last week, complete with all the latest milking technology. Unfortunately, due to engineering problems, all the stalls in the new barn are different. For the first week, Farmer John r

HDU 5943 Kingdom of Obsession 【二分图匹配 匈牙利算法】 (2016年中国大学生程序设计竞赛(杭州))

Kingdom of Obsession Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 49    Accepted Submission(s): 14 Problem Description There is a kindom of obsession, so people in this kingdom do things very

图像处理之霍夫变换(直线检測算法)

图像处理之霍夫变换(直线检測算法) 霍夫变换是图像变换中的经典手段之中的一个,主要用来从图像中分离出具有某种同样特征的几何 形状(如,直线,圆等).霍夫变换寻找直线与圆的方法相比与其他方法能够更好的降低噪 声干扰.经典的霍夫变换经常使用来检測直线,圆,椭圆等. 霍夫变换算法思想: 以直线检測为例,每一个像素坐标点经过变换都变成都直线特质有贡献的统一度量,一个简单 的样例例如以下:一条直线在图像中是一系列离散点的集合,通过一个直线的离散极坐标公式, 能够表达出直线的离散点几何等式例如以下: X *

集思广益,有个几百万关键字的数组的文本匹配的算法

关键字 都是放在一个数组中的,譬如$keyword_arr=["key1","key2","example",......],大约有几百万甚至上千万的关键字,这些关键字已经按照优先级从前到后排列了,越靠前的关键字优先匹配,匹配的最多次数是$max次:目前采用for循环$keyword_arr数组,然后将关键字组装成'/\\b(?:'.$value.')\\b/i';正则来匹配文本内容$text:如果已经匹配了$max次了,就停止匹配. 这个算法肯

计算机图形学 - 全斜率直线中点生成算法

算法描述: 直线中点生成算法 假定直线斜率k在(0,1]之间,当前像素点为,则下一个像素点有两种可选择点P1或P2. 若P1与 P2的中点称为M,Q为理想直线与x=xp+1垂线的交点. • 当M在Q的下方时,则取P2为下一个像素点: • 当M在Q的上方时,则取P1为下一个像素点. 这就是中点画线法的基本原理. 算术推导: 详细代码:Computer Graphics - code_1 生成结果:

POJ 2195 二分图最小权匹配KM算法

本来是打算昨天晚上写的, 昨天网速渣的连CSDN都进不去,没办法 只能现在来写了 先写写对KM算法的理解,KM算法是对每个点设置一个顶标,只有当边长等于两边点的顶标之和的时候才进行增广,这样就能保证得到的一定是最大权匹配. 如果找不到匹配的时候就对交替路中X集合的顶标减少一个d Y集合的顶标增加一个d. 这样两个点都在交替路中的时候x[i]+y[i]的和不边 X在 Y不在的时候x[i]+y[i]减少,可能就会为图增加一对匹配. X不在Y在的时候x[i]+y[i]增加, 原来不在现在依然不在其中.

自然语言处理 最大逆向匹配分词算法

输入例句:S1="计算语言学课程有意思" : 定义:最大词长MaxLen = 5:S2= " ":分隔符 = “/”: 假设存在词表:…,计算语言学,课程,意思,…: 最大逆向匹配分词算法过程如下: (1)S2="":S1不为空,从S1右边取出候选子串W="课程有意思": (2)查词表,W不在词表中,将W最左边一个字去掉,得到W="程有意思": (3)查词表,W不在词表中,将W最左边一个字去掉,得到W=&q