线特征的LSD提取算法

2023-11-19

线特征的LSD提取算法


大多数图像中都存在直线特征,是视觉感知、描述外部环境的重要特征信息。直线是一种大尺度的特征,在水面环境中具有更为理想的适用性,线特征具有光照和视角不变性特点,表现更为稳定、有效。因此将点、线特征进行结合使用,可以有效的提高系统的精度和鲁棒性。

线段检测器算法

线段检测器算法(Line Segment Detector, LSD)是一种线段检测算法在线性时 间内得到亚像素级精度的检测结果,可在较短的时间里获得较高精度的直线检测结果, 其核心思路是将在同一梯度相近的像素点进行合并。LSD通过图像中像素点与基准线夹 角确定基准线长度,然后利用区域生长算法合并近似一致的像素区域,从而得到其支持 域。每一个线段支持域可能对应着一条线段,需要根据每一个矩形支持域进行判断。通 过矩形支持域区域内像素点密度大小决定是否将矩形支持域区域断开成多个矩形区域。 最后将所有生成的矩形支持域进行改善和筛选,保留满足条件的矩形支持域作为线特征 检测结果。LSD算法计算速度快,提取出的线段具有方向,可以减少在图像匹配时的误 匹配,良好的实时性和精确使得LSD算法可以更好地适用于SLAM算法中。

算法流程

算法过程可分为6个步骤:
1、图像缩放;
2、梯度计算;
3、对梯度进行排序;
4.判断梯度幅值阈值;
5、线段支持域更新增长;
6、矩形估计;
7、错误报警数(Number of False Alarms, NFA)计算。
LSD算法流程图
1)图像缩放:主要是为了解决图片在边缘出现锯齿状,导致提取出的直线段可能存在断裂的现象,对于图片的x,y轴各降采样比例为0.8,对于一幅图像总像素采样的缩放因子为E=0.64,采集原始图像64%的像素点。
2)梯度计算:图像中在进行LSD梯度计算的过程中,对图像中每个像素点的右下四个像素进行梯度计算,如图2.2所示,为计算图像中某一像素点梯度示意图。在计算的过程中利用尽可能小的模板进行计算,这样做的目的是减小梯度计算过程中像素点之间的依赖。
像素点梯度示意图

图中为所需要计算像素点在图像中(X,Y)位置的灰度值,那么该像素点在x轴、y轴的像素梯度gx(x,y和gy(x,y)分别为:
在这里插入图片描述
根据像素点在x轴、y轴的像素梯度gx(x,y和gy(x,y),可以的到梯度幅值G(x,y)和梯度方向(level-line angle, LLA):
在这里插入图片描述
3)梯度排序:图像中像素点计算出来的梯度幅值越大,表明该像素点越是显著的边缘点,更加适合作为线段检测的种子点。由于将图像中每一个像素点的梯度幅值进行排序是一个耗时时间长且利用效率低。
4)梯度幅值阈值设置:图像中部分像素点的梯度幅值数值较小,该部分像素点基本出现在平滑区域,或者是图像中的噪声。通过设定梯度幅值阈值p来进行像素点梯度幅值筛选,如果像素点梯度幅值小于设定的梯度幅值阈值p,那么在进行线段区域构建时,该像素点将不会被考虑。
5)线段支持域更新增长:像素点根据周围像素点可以计算出自身梯度幅值和像素点梯度方向。由大量像素点构成的线段支持域区域可以通过区域内像素点梯度方向获得一个线段支持域梯度方向。线段支持域周围有大量孤立像素点,将排序列表中随机选取一个孤立像素点(NOT USED),计算孤立像素点的梯度方向与线段支持域的梯度方向之间的方向容忍值是否小于r,如果容忍值r满足阈值,那么将孤立像素点更改为USED,并纳入线段支持域内,更新加入该孤立像素点后的线段支持域。
在这里插入图片描述
其中,r为设置的方向误差容忍值,表示线段支持域矩形方向与第个像素点之间的误差值,当r<22.5时,像素点都会被纳入原有的线段支持域区域中。
6)矩形估计:将更新后的线段支持域进行矩形化,将线段支持域区域进行矩形近似计算,得到一个较为规整的矩形区域作为线段提取结果展示。
在这里插入图片描述
其中,lx, ly为矩形的中心点坐标,G(j)为像素点j的梯度幅值,2^R_nG(y)为遍历线段支持域内所有像素点。线段支持域矩形化后矩形区域的主方向M为;
在这里插入图片描述
7)错误报警数(NFA)计算:估计矩形中满足梯度幅值的像素点数量可以作为判断该矩形是否可以作为一条“线段”,满足像素梯度幅值的像素点数量越多,该矩形越有可能是一条“线段”,通过设置矩形中像素点密度值f来对生成的每个矩形进行判断。
LSD线特征提取算法以伪代码的形式展示,如下:
在这里插入图片描述
为了验证在水面环境图像中提取线特征的有效性,选取无人船航行过程中拍摄的某一张图片进行LSD线特征提取,提取结果如图3.6所示,可以看出经过LSD线特征提取算法对图像的处理,对于原始图像(a)中线特征提取结果如图(b)所示,验证了在水面环境中LSD线特征提取算法的有效性。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线特征的LSD提取算法 的相关文章

  • 【深度学习】模型评价指标

    一 分类任务 分类任务一般有二分类 多分类和多标签分类 多分类 表示分类任务中有多个类别 但是对于每个样本有且仅有一个标签 例如一张动物图片 它只可能是猫 狗 虎等中的一种标签 二分类特指分类任务中只有两个类别 多标签 一个样本可以有多个标
  • [思考进阶]02 如何进行认知升级?

    除了要提升自己的技术能力 思维的学习和成长也非常非常重要 特推出此 思考进阶 系列 进行刻意练习 从而提升自己的认知 最近在看东野的 无名之町 这本书写于2021年 日本正值疫情 书中也有大幅疫情相关的文字描述 疫情正影响着一切 后悔的一件
  • Spring ioc容器创建过程(1)BeanFactory初始化

    文章目录 一 ApplicationContext 二 常见的ApplicationContext 三 ioc容器的初始化 1 AbstractApplicationContext prepareRefresh 2 AbstractAppl

随机推荐

  • C# GC原理

    在 NET框架包含一个托管堆 所有的 NET语言在分配引用类型对象都要使用它 像值类型这样的轻量级别对象始终分配在栈中 但是所有的类实例和数组都被生成在一个内存池中 这个内存池就是托管堆 垃圾收集器的托管的基本算法很简单 1 将所有的托管内
  • 老毛桃 安装linux双系统,安装CentOS 7双系统(二)——安装过程step by step

    上一篇中我们确定了分区方案之后 就可以开始安装双系统啦 前期准备 重点 装系统之前一定要准备一个U盘启动盘 出问题时候可以马上进PE恢复 血的教训 我建议对磁盘进行分区 重建MBR等操作都在PE里面完成 制作U盘启动工具可以使用大白菜 大白
  • 【DBeaver】介绍DBeaver这一款强大的数据库连接工具

    近期在工作中需要使用到国产的达梦数据库 我们使用DBeaver作为数据库连接工具 DBeaver是一款很强大的数据库连接工具 其适用于所有的数据库 支持所有流行的关系数据库 MySQL PostgreSQL SQLite Oracle DB
  • UI设计师有钱途还是平面设计师或者是网页设计师呢?

    UI设计 平面设计和网页设计 哪个前景更好呢 其实ui和网页设计都属于平面设计里的一个分支 举个例子 设计一份饭店的点菜单 一样的图案 印刷出来是传统平面设计 放网站上是网页设计 放手机上显示是UI 其实都是一样的平面美术设计 那么有人要问
  • Vscode

    文章目录 点击左下角的用户或者设置的 Sign in to Sync Setting 使用GitHub或者Microsoft账户登录 就能开启同步功能
  • 【目标检测】34、FSAF: Feature Selective Anchor-Free Module for Single-Shot Object Detection

    文章目录 一 背景 二 方法 2 1 Ground truth and loss 2 2 Online Feature Selection 2 3 将 RetinaNet 和 FSAF 联合后如何训练和测试 三 效果 论文 Feature
  • 中文姓名、电话、邮箱的正则表达式

    1 中文姓名 如 张三 噶及 洛克业 a zA Z0 9 u4e00 u9fa5 1 10 2 电话验证 如 010 85369999 186199999 0 d 2 3 d 7 8 d 3 5 13 14 15 18 17 d 9 3 电
  • QT连接Mysql后的简单操作(增删改查)

    连接数据库 首先要连接自己在电脑上安装的MySql的数据库 这个是最难也是最重要的一步 万事起步难 连接上了之后的Sql语句就会就会非常简单了 连接数据库可以参考这篇博客 注意在连接时会有可能会有很多报错信息 但是只要按照这个操作来 一步一
  • nc命令使用

    一 nc介绍 netcat 简称 nc 安全界叫它瑞士军刀 官网地址 Ncat Netcat for the 21st Century nc 的基本功能如下 telnet 获取系统 banner 信息 传输文本信息 传输文件和目录 加密传输
  • 通俗易懂web3.0

    目录 前言 一 WEB1 0 二 WEB2 0 三 WEB3 0 区别 最后 前言 大家好 我是清风 互联网连接了人与人 在过去的30年中 互联网技术不断进化 演化 向纵深发展 政治 经济 社交 生活 工作已经几乎离不开互联网 我们经历了W
  • 云计算导论(第二版)李伯虎著全部课后题的答案

    目录 第一章 绪论 1 联系自己身边的生产生活实践 试列举2 3个你认为正在运用或者可以运用云计算的例子 2 你认为云计算对个人与社会带来了什么样的影响 3 分析云计算服务和云计算平台的区别和联系 4 云计算与 创新 协调 绿色 开放 共享
  • LangChain 是一个强大的框架,可以简化构建高级语言模型应用程序的过程。

    LangChain 是一个强大的框架 可以简化构建高级语言模型应用程序的过程 What is LangChain LangChain是一个强大的框架 旨在帮助开发人员使用语言模型构建端到端的应用程序 它提供了一套工具 组件和接口 可简化创建
  • 禁用触摸板

    sudo rmmod psmouse 这个是禁用的 sudo modprobe psmouse 这个是启用的
  • Failed to load response data:No data found for resource with given identifier

    一 遇到问题 最近项目中表单提交需求遇到了这个问题 Failed to load response data No data found for resource with given identifier 翻译 加载响应数据失败 找不到具
  • 《疯狂Java讲义》读书笔记(一)

    面向对象具有三个基本特征 封装 Encapsulation 继承 Inheritance 和多态 Polymorphism 继承是面向对象实现软件复用的重要手段 当子类继承父类 子类作为一个特殊的父类 将获得父类所有的属性和方法 封装是指将
  • 使用curl或wget连接网站的怎样忽略SSL证书错误

    导读 在默认情况下 cURL 使用 SSL 证书进行连接 如果指定的网站配置错误或证书过期 则会引发错误 下面我们看一下如何忽略其中的 SSL 证书错误 当我们使用 curl 命令访问网站的时候 有时候可能会得到一个 SSL 证书错误 这是
  • 大数据面试-05-大数据工程师面试题

    2 HashMap和HashTable ArrayList和Vector ArrayList和LinkedList的区别 1 HashMap不是线程安全的 hashmap是一个接口 是map接口的子接口 是将键映射到值的对象 其中键和值都是
  • 基于rt2860v2的wifi探针

    实验室有块7620a的板子 之前做过探针方面的试验 rt2860v2的驱动源码来自网络 探针是基于这份源码做的试验 最初在驱动中采集的数据是通过proc节点送到应用层 但是发现数据的实时性啥的不够好 改用了netlink方式 有感兴趣的同学
  • Cocos Creator 如何处理物理和碰撞检测?

    Cocos Creator 如何处理物理和碰撞检测 cocos creator 版本 v3 6 1 Cocos Creator 3 x 实现碰撞检测 Cocos Creator 通过使用物理引擎来处理物理和碰撞检测 Cocos Creato
  • 线特征的LSD提取算法

    线特征的LSD提取算法 线段检测器算法 算法流程 大多数图像中都存在直线特征 是视觉感知 描述外部环境的重要特征信息 直线是一种大尺度的特征 在水面环境中具有更为理想的适用性 线特征具有光照和视角不变性特点 表现更为稳定 有效 因此将点 线