论文速递:一种用于视觉定位的基于NLP思路的直线特征匹配算法

news2025/1/11 18:35:25

标题:Line as a Visual Sentence:Context-aware Line Descriptor for Visual Localization

作者:Sungho Yoon1 and Ayoung Kim2∗

摘要

    在机器人以及计算机视觉领域,除了通过使用图像匹配的特征点计算多视图几何来求解问题,还可以通过线特征计算,因为线特征可以为其提供多余的约束。尽管基于CNN的直线特征描述子在视点变化以及动态环境下的应用很有潜力,但是我们认为CNN在直线长度变化时有着天然的劣势,因为CNN需要将变化的直线长度用维度固定的描述子描述。本文中,我们提出了Line-Transformers方法可以有效地解决直线长度变化的问题。受自然语言处理(NLP)启发,我们将直线段视作语句,将特征点视作词汇。通过动态观测直线上的可描述点,我们的描述子对于长度可变的直线表现良好。我们还提出了直线签名网络(line signature networks),可以将直线的几何属性共享给其相邻的直线。并且我们还用本文提出的直线特征描述与匹配方法实现了基于点线的定位(PL-Loc)。我们证明结合我们提出的直线特征可以很好地提高基于特征点的视觉定位效果。我们从单应性估计与视觉定位两方面证明了算法的有效性。

    项目开源地址: https://github.com/yosungho/LineTR

Line Transformers

1、Line Tokenizer:作者借鉴了NLP中相关思路。在NLP中把一个句子划分成多个词组的过程称为tokenization 。作者将一条直线看作NLP中的一个语句,使用特征点将一条直线划分为不同的线段,提取的特征点表示为:pi = (x, y, c)i ,其中x,y代表位置,c代表置信度。两相邻点之间区间的长度用v表示,那么一条直线上的特征点数量为n = ⌊l/v⌋+1 ,其中,l表示直线的长度。具体过程如下图所示:

    个人理解,使用NLP对应的神经网络训练时需要将直线的信息向量化,而上图就是这个向量化的过程,这样直线特征就抽象成NLP网络对应的特征了。

2、Transformer :作者使用Transformers来建立直线特征描述子模型。Transformer的编码器由两部分组成:MSA层(multi-head self-attention layers )和MLP层。将Transformer堆叠L次便可以得到直线的特征描述子,如公式1所示:

    公式中z0为Transformers的输入,Eline为描述子的初始状态;En表示第n个特征点的描述向量;Epos表示每个特征点的位置信息;为了解决直线特征长度不同的问题,加入mask0来去除相关性比较低的特征点;d即为得到的直线特征描述子。

Line Signature Networks

    除了建立单条直线特征描述,作者设计了直线签名网络,根据直线的位置、角度将直线聚成一簇,并且相邻直线的信息(位置、角度)通过信息传递网络共享。传递公式如下所示:

Sublines to Keylines

    由于Transformers有最大tokens数量限制,对于直线特征来说就是会限制直线上的最大特征点数,也即会限制最大直线长度。为了解决这个问题,本文提出了Sublines,Keylines的概念。原本的直线成为Keyline,当直线长度超过最大长度限制时,就会把原本的直线切分成多个子直线即Subline,同时设计了邻接矩阵(Adjacency Matrices )可以将Subline描述子距离矩阵与Keyline距离矩阵转换。如下所示:

Loss Function

    代价函数的设计采用了半硬负抽样策略(semi-hard negative sampling strategy ),代价函数设计如下:

    其中,ai为锚描述子(个人理解为当计算匹配距离的描述子),Pi为正描述子(个人理解为匹配上的比较相似的描述子),ni为负描述子(个人理解为匹配不上的描述子),从损失函数中可以看到,就是使匹配上的描述子之间的距离最小,未匹配上的描述子之间的距离最大。

实验结果

    作者通过单应性估计,视觉定位的效果两方面来评估算法能力。对比的算法包括 SuperPoint,LBD,LLD,WLD,SOLD。

    通过以上各个结果可以证明本问提出的算法在在指标上普遍优于其它对比算法。

总结

    本文提出了一种基于NLP思路的直线特征描述方法,并且通过实验量化验证了在单应性估计,视觉定位方面优于其它直线匹配算法,且本方法已经在github上开源,对直线匹配感兴趣的同学可以去看下。

Abstract

    Along with feature points for image matching, line features provide additional constraints to solve visual geometric problems in robotics and computer vision (CV). Although recent convolutional neural network (CNN)-based line descriptors are promising for viewpoint changes or dynamic environments, we claim that the CNN architecture has innate disadvantages to abstract variable line length into the fixed-dimensional descriptor. In this paper, we effectively introduce Line-Transformers dealing with variable lines. Inspired by natural language processing (NLP) tasks where sentences can be understood and abstracted well in neural nets, we view a line segment as a sentence that contains points (words). By attending to well-describable points on aline dynamically, our descriptor performs excellently on variable line length. We also propose line signature networks sharing the line's geometric attributes to neighborhoods. Performing as group descriptors, the networks enhance line descriptors by understanding lines' relative geometries. Finally, we present the proposed line descriptor and matching in a Point and Line Localization (PL-Loc). We show that the visual localization with feature points can be improved using our line features. We validate the proposed method for homography estimation and visual localization.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

12月的第一波驱动,来看看支持哪款游戏吧!

真的停不下来!2022年的最后一个月,新游戏仍然在发力,《极品飞车:不羁》、《巫师 3:狂猎》、《传送门RTX版》都在12月正式上线! 为了提供更好的游戏体验,英伟达、AMD、英特尔三巨头更是马不停蹄…

时间轮算法HashedWheelTimer

文章目录一.HashedWheelTimer是什么?二.能干什么?为什么需要这个东西?优点适用场景三.怎么用?使用步骤1.引入pom2.使用举例四.时间轮原理五.使用注意点1.一个HashedWheelTimer对象只有一个worker线程2.每次添加的任务只会执行一次3.时间轮的参数非常重要4.所有的任务都是顺…

rabbitmq基础1——消息中间件概念、Rabbitmq的发展起源和基本组件的作用流程

文章目录一、消息中间件1.1 概念1.2 作用1.2.1 消息队列持久化1.2.2 消息队列分发策略1.2.3 消息队列的高可用和高可靠1.2.3.1 一主多从共享集群1.2.3.2 一主多从同步集群1.2.3.3 多主多从同步集群1.2.3.4 多主转发集群1.2.3.5 Master-slave与Breoker-cluster组合方案1.3 初识A…

实战总结!18种接口优化方案的总结

之前工作中,遇到一个504超时问题。原因是因为接口耗时过长,超过nginx配置的10秒。然后 真枪实弹搞了一次接口性能优化,最后接口从11.3s降为170ms。本文将跟小伙伴们分享接口优化的一些通用方案。 1. 批量思想:批量操作数据库 优化…

Windows环境监控Linux服务器资源grafana+prometheus+mysql_exporter

Windows环境监控Linux服务器资源grafanaprometheusmysql_exporter 1.安装mysql (1)在虚拟机中下载wget命令 yum -y install wget(2)在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm(3)安装MySQL rpm -ivh mysql57-communi…

信仰崩了?Preact 开始采用 Vue3 的响应式设计

前言 不知大家有没有听过Preact这个框架,就算没听过Preact那也应该听过React吧? 一字之差,preact比react多了个p!(听起来咋不像啥好话呢) 这个P代表的是 Performance,高性能版React的意思。P…

一篇博客详解朴素贝叶斯解分类问题

目录 回归问题 正则化Regularization 分类问题—类别之间是独立的 为什么不用回归解分类问题以概率的形式解分类问题 抽盒机率→分类机率正态分布覆盖 原理高斯分布函数 极大似然估计求最优参数 朴素贝叶斯法 用同一个协方差三步骤 模型的简化 回归问题 大概内容与之前的类…

工业ESD防静电闸机系统帮助您实现静电监控自如!

如何有效检测、消除静电,对元器件品质进行有效管控?现在工厂常用的设备有腕带接地、电阻测试仪,ESD防静电系统,但是这些都是在我们生产的同时去监控处理掉静电,那么有没有一种能直接从人体根源消除掉静电的系统呢&…

Postman 的简单使用

什么是Postman 在程序开发中用于调试网络程序或者跟踪网页请求。可以对网页进行简单的基本信息调试。Postman最早是作用chrome浏览器插件存在的,但是2018年初Chrome停止对Chrome应用程序的支持。所以现在Postman提供了独立的安装包,不再依赖于Chrome浏览…

MySQL innodb引擎架构分析-Buffer Pool

文章目录系列文章目录前言一、Buffer Pool是什么?二、Buffer Pool是如何工作的?1. free链2. flush链根据脏页的情况(阈值)和相关配置刷新自适应刷脏3. Lru升级链总结参数:innodb_buffer_pool_size参数:innodb_buffer_pool_instanc…

避免重要数据泄露的8种方式

得益于国家的大力支持,我国数字化经济已开启高速发展模式,数据已经成为企业不可或缺的重要资产,相对应的数据安全风险问题也随之而来。 数据泄露不仅给企业带来了财产损失,也给企业带来了极大的声誉威胁。以下是日常生活中企业和…

W公司对接奥迪Audi EDI项目案例

项目背景 奥迪(Audi)是德国大众汽车集团子公司奥迪汽车公司旗下的豪华汽车品牌,作为高技术水平、质量标准、创新能力、以及经典车型款式的代表,奥迪是汽车品牌之一。公司总部设在德国的英戈尔施塔特,并在中国等许多国…

ASA防火墙高级配置——NAT控制欲NAT豁免

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.NAT控制欲NAT豁免 1.禁用NAT控制 1)出站(Outbou…

2021全国高校计算机能力挑战赛(初赛java)(部分)

数据1 input: 4 L G D U 7 L Y C N 2 T G E N 1 T R E P 4 output: 1 1 数据2 input: 6 L G D E 7 L Y C N 4 T G E N 4 T Y E P 3 L Y C N 2 T G D N 3 output: 1 1 package com.第四届校内模拟;import java.util.Scanner;/*** Author Lunau* Create 2022-12-09 18:02* Descri…

使用 ESP-DL 深度学习库基于 ESP32-S3 实现手势识别

人工智能改变了计算机与现实世界交互的方式。过去,人们通过微小的低功率设备和传感器获取数据,并传输至云端进行决策。这样的方式在设备连接性、成本和数据隐私方面带来了一定挑战。相对地,边缘人工智能是在物理设备上另一种处理数据的方式&a…

11.javase_面向对象1

一.面向对象介绍 1.1并不是一个技术,而是一种编程指导思想 1.2以什么形式组织代码;以什么思路解决问题 1.3为什么要用面向对象编程: 因为生活中,我们解决问题时,就是采用这种指导思想去解决的。 所以,我们写…

Codeforces Round #792 (Div. 1 + Div. 2)

比赛链接:Dashboard - Codeforces Round #792 (Div. 1 Div. 2) - Codeforces A: 思维 题意:Alice和Bob在玩游戏,每次等Alice交换两个不同位置的数后,Bob就会删除最后一个位置上的数,当最终只剩下一个数后&#xff0c…

基于对抗互信息学习特征解耦的零样本语音转换|INTERSPEECH 2022

零样本语音转换在转换时只需目标说话人的一段语音,更适合实际应用需求,具有广泛应用前景。 现有工作只考虑内容和音色表征的解耦,没有考虑与语音旋律相关的 韵律 和 音高 表征,导致与音高和韵律相关的信息泄露到音色中。 本文利用…

Flutter - Stack 与 Positioned 层叠布局

1 层叠布局和 Web 中的绝对定位、Android 中的 Frame 布局是相似的 2 子组件可以根据距父容器四个角的位置来确定自身的位置。 3 层叠布局允许子组件按照代码中声明的顺序堆叠起来。 4 Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位。 5 Stack允许子组件堆叠&am…

什么是数据为先营销?为什么它对市场部如此重要?

数据为先营销希望能帮助各地的市场人员与高管们建立联系,实现这些商业目标,并真正学会如何适当地跟踪一切数据,这样他们就知道自己是否真的达到了收入目标,ROI,这些商业目标,而不是仅仅说我们是被数据驱动型…