LBD算法 – Line Band Discriptor 描述符分析

LBD算法 – Line Band Discriptor 描述符分析LBD 概述 LBD 算法源自 2013 年文章 Anefficienta

LBD概述


LBD算法源自2013年文章《An efficient and robust line segment matching approach based on LBD descriptor and pairwise geometric consistency》

总体流程


LBD算法 - Line Band Discriptor 描述符分析

1. 在尺度空间内提取线段


1.1. 构建尺度空间

当拿到一张图片,我们先构建一个尺度金字塔,就和sift算法所实现的那样,通过一组尺度因子scale factors和高斯模糊Gaussian blurring,对一张图片进行N个下采样,就可以得到N层尺度金字塔,最下方是原图,每高一层就是一层高斯模糊后的图像。但是和Sift算法不同,连续两个层之间并没有内层。

1.2. 提取线特征

2. 构建线段描述符


2.1. 线段支持域的条带表示方法

LBD算法 - Line Band Discriptor 描述符分析
上一步得到了尺度空间中的线段,接下来我们可以通过线段构成的LSR线段支持区域计算描述符。
我们将LSR支持区域分割为一组条带{B1,B2,B3……Bm},这些条带是LSR支持区域的子区域,并且他们与线段是平行的关系。我们将LSR区域分割为 m 个条带,每一个条带的像素宽度为 w 。比如上图就是 m = 5 , w = 3 的LSR区域图

在这里其采用了和MSLD类似的方法,定义了两种方向构成局部2D坐标系,来区分有相反梯度方向的平行线并使描述符旋转不变
直线方向LBD算法 - Line Band Discriptor 描述符分析 表示直线所朝的方向。
正交方向LBD算法 - Line Band Discriptor 描述符分析 表示LBD算法 - Line Band Discriptor 描述符分析方向的顺时针垂直方向。
这条线的中点被选为局部坐标系的原点。并且LSR内的每个像素的梯度投影到这个局部坐标系中LBD算法 - Line Band Discriptor 描述符分析,其中LBD算法 - Line Band Discriptor 描述符分析是图片坐标系中的像素梯度,LBD算法 - Line Band Discriptor 描述符分析是局部坐标系中的像素梯度。


受到Sift和MSLD的启发,在LBD算法 - Line Band Discriptor 描述符分析 方向上的每一行都应用两个高斯函数。
首先,在LSR内的第i行上安排一个全局权重系数weight LBD算法 - Line Band Discriptor 描述符分析,其中LBD算法 - Line Band Discriptor 描述符分析表示LSR中第i行到中心行的距离,并且LBD算法 - Line Band Discriptor 描述符分析
其次,对于Bj条带和它的相邻条带Bj+1和Bj-1中的每一行,我们为第k行分配一个局部权重系数LBD算法 - Line Band Discriptor 描述符分析,其中LBD算法 - Line Band Discriptor 描述符分析是第k行到Bj条带中心行的距离,并且LBD算法 - Line Band Discriptor 描述符分析

此方法描述子区域的优点:

  • 首先,它对线段方向LBD算法 - Line Band Discriptor 描述符分析 上的细小位置变化更具有鲁棒性,因为在这个方法中,条带边界的微小变化时,条带内的大部分图像内容依然保持不变。这一特性非常重要,因为通常情况下,由于线段端点的不稳定性,一条线在LBD算法 - Line Band Discriptor 描述符分析 方向的位置精度比LBD算法 - Line Band Discriptor 描述符分析 方向要低。
  • 其次,由于LBD算法 - Line Band Discriptor 描述符分析 方向条带间没有重叠部分,所以其计算效率更高,并且高斯权重直接应用于每一行像素,而非每一个像素。

2.2. 构造LBD条带描述符

BDj 的计算
(对于条带中第K行,累计该行中四个方向上像素的梯度,分别是LBD算法 - Line Band Discriptor 描述符分析 方向,LBD算法 - Line Band Discriptor 描述符分析 反方向,LBD算法 - Line Band Discriptor 描述符分析 方向,LBD算法 - Line Band Discriptor 描述符分析反方向):
LBD算法 - Line Band Discriptor 描述符分析
其中LBD算法 - Line Band Discriptor 描述符分析是高斯系数,所以一行像素我们总结出4个方向的梯度数据。


通过累计条带 Bj 相关联的所有行的梯度信息,我们可以构造一个条带描述符矩阵 BDMj 表示第j个条带的描述信息。
LBD算法 - Line Band Discriptor 描述符分析

然后我们计算 BDjBDjBDMj 的平均向量 Mj 和标准方差向量 Sj 构成LBD算法 - Line Band Discriptor 描述符分析

然后对LDB的均值部分和标准方差部分分别进行归一化,因为他们大小不同。并且为了减小非线性光照的影响,对每个LBD维度进行约束,小于经验值0.4。最后我们重新归一化约束向量得到一个单元LBD。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210472.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:36
下一篇 2026年3月19日 上午7:36


相关推荐

  • (转)DirectX下 Viewing Frustum 的详细实现

    (转)DirectX下 Viewing Frustum 的详细实现

    2021年8月8日
    54
  • phpstrom激活码2021_在线激活

    (phpstrom激活码2021)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月28日
    88
  • main(argc,argv)中参数含义_c语言int char

    main(argc,argv)中参数含义_c语言int char这篇文章主要介绍了C语言中intmain(intargc,char*argv[])的两个参数详解的相关资料,需要的朋友可以参考下:转载自:https://www.jb51.net/article/107168.htm        https://www.cnblogs.com/ruixingw/p/3705918.htmlC语言中intmain(inta…

    2025年6月3日
    6
  • pycharm代码灰色_python import灰色

    pycharm代码灰色_python import灰色问题表述:pycharm中老是import失败,呈现灰色线,我按照、CSDN博客上给的设置“右键点击自己的工作空间,找下面的MarkDirectoryas选择SourceRoot”,但是未解决问题,说明不是我的文件存放不在一个频道(import文件首先会在相同的目录下面寻找)问题在于:我把两个文件相似文件名同时放在一个sourceroot下面,可能会有干扰,于是,解决办法是:完美…

    2022年8月25日
    8
  • Linux(一)操作系统基础知识

    Linux(一)操作系统基础知识Linux 操作系统基础知识 1 Linux 简介与程序开发环境 1 1 什么是 Linux Linux 是一个可以自由发布的类 UNIX 内核实现 它是一个操作系统的底层核心 Linux 是由芬兰赫尔辛基大学的 Linus 开发 期间得到了网上广大 UNIX 程序员的帮助 它最初是受其教授的 Minix 一个小型的类 UNIX 系统 启发而开发的程序 纯属个人的爱好 但是后来它自身逐步发展成为一个完整的系统 要理解什么是 Linux 首先要了解在 Linux 之前诞生的系统和应用程序 UNIX 和 GNU 软件 1 1 1 什么是 UNI

    2026年3月20日
    2
  • strut2 自己定义文件上传错误信息

    strut2 自己定义文件上传错误信息

    2021年12月2日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号