0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种使用transformer架构的新型线段描述符

3D视觉工坊 来源:3D视觉工坊 作者:鱼骨 2022-11-02 09:31 次阅读

前情提要:

阅读本篇论文的“实验”部分时,觉得作者的实验方案很完善且描述清晰,受益匪浅,因此本篇小记淡化了方法阐述,主要记录作者的数据处理及分析过程,为自己之后设计类似实验时提供方法参考及思路拓展。

摘要

对于图像匹配任务来说,除了特征点之外,线特征也提供了额外的约束以解决机器人计算机视觉(CV)中的视觉几何问题。尽管最近基于卷积神经网络(CNN)的线描述符有望用于视点变化或动态环境,但我们认为CNN架构在将可变线长度抽象为固定维描述符方面存在先天缺陷。

在本文中,我们有效地介绍了处理可变线段的Line-Transformers。自然语言处理(NLP)任务可以在神经网络中很好地理解和抽象句子。受此启发我们将线段视为包含点(词)的句子,通过动态地关注线上的可描述点,我们的描述符在可变线长度上表现出色。我们还提出了将线的几何属性共享到邻域的线签名网络。

作为组描述符,网络通过理解线的相对几何结构来增强线描述符。最后,我们在点线定位(PL-Loc)中展示了所提出的线描述符和匹配。实验表明,使用本文线特征可以改进带有特征点的视觉定位,并验证了所提出的单应性估计和视觉定位方法。

引言

虽然在SLAM和SFM中,特征点已经被广泛研究,但在图像中分布不均匀的特征点可能会导致不稳定和不准确的姿态估计。最近的研究表明,即使在弱纹理环境中,也可以通过使用点线特征增强SLAM性能。例如SLAM中广泛使用的LBD线描述符,对于连续帧来说性能比较可靠,但对于宽基线图像来说,会阻止基于线的方法在视觉定位中直接适应线特征导致LBD描述符性能下降。

因此开始研究利用CNN来学习线描述符的表示,但CNN在研究可变线段的长度方面存在固有的弊端,基于上述问题,本文主要贡献如下:

通过将线段视为句子,将点视为单词,提出了一种使用transformer架构的新型线段描述符。利用NLP作为线段描述符,可以处理各种可变长度的线段;

提出的线段描述符通过关注线段上更有意义的点来理解线段的上下文。它有效地将各种长度的线段抽象为固定大小的描述符;

建议在邻域之间共享线属性(例如,位置、角度、长度和描述符)信息的线签名网络。

方法

本文提出的Line-Transformers旨在线段的给定点上构建线段描述符,如图1所示,Line-Transformers由两个主要部件组成:line transformers和line signature networks。

第一个组件使用线标记器从线段中提取点标记和嵌入。考虑到点嵌入的上下文,transformers将其归纳为线嵌入或线描述符。第二个组件通过与邻域共享线的位置上下文来增强线描述符。

2f6642b6-5a3c-11ed-a3b6-dac502259ad0.png

图1 提出的Line-Transformers架构

具体实施时,为了检测图像上的线段,文章使用了环境适用性较高的线段检测器LSD,选择SuperPoint作为前端描述符地图。

实验

本文根据单应性估计和视觉定位性能评估所提出的线描述符。对于两个测试场景,分别将所提方法与SuperPoint、LBD(手工绘制)、LLD、WLD和比较,此处LBD、LLD和WLD使用最近邻匹配器,使用自身的线匹配器完成线特征匹配,同时将SuperPoint作为基于点特征的匹配参考。

A、单应性估计

(1)数据集:使用Oxford和Paris数据集进行单应性估计。为了从图像对中建立真实线段对应关系,首先从原始图像及其增强图像中检测线段。然后使用已知的单应矩阵将每条线的两个端点投影到另外的线上。正确对应的标准是:存在重叠、重投影误差小于4个像素、角度差小于2度。得到的真实对应关系表示为重叠相似矩阵。两条线之间的重叠相似性用重叠线长度和较小线长度之间的比率表示:

2f7d53c0-5a3c-11ed-a3b6-dac502259ad0.png

其中重叠线长度是两条线段的四个端点里面中间两个端点间距离值。对于SuperPoint来说,真实点对应关系由点投影误差小于4个像素来表示。 (2)指标:首先利用2000次迭代的RANSAC实现基于线段的单应性矩阵估计,基于此计算4个图像角的平均重投影误差,并记录阈值为5、10和20个像素处累积误差曲线(AUC)下的面积。

同时还基于匹配真值计算了匹配精度(P)和召回率(R)。 (3)结果:表1列出了各方法定量比较的结果。可以看出,本文提出方法在F分数方面比其他线描述符方法有很大的优势(10.1%)。我们的方法除了低于5个像素的AUC之外,优于其他所有单应性估计指标。与SuperPoint相比,Line-Transformers在10和20像素以下的AUC下产生了更稳定的性能。LLD在这个数据集上的性能很低,因为它最初是在连续帧中训练的,没有大的视点变化。 表1 单应性估计结果对比

2f8c835e-5a3c-11ed-a3b6-dac502259ad0.png

准确率和召回率是对线匹配性能的直接而明确的度量,其仅取决于正确/错误匹配的数量。当性能取决于匹配的数量、分布和质量时,可以从单应性估计中分析更多的隐藏性能。在这个意义上,所提出的方法满足了可靠匹配的数量和质量。

2f9dbf34-5a3c-11ed-a3b6-dac502259ad0.png

图2 单应性估计和视觉定位的线匹配定性结果对比

图2显示了基于单应性估计的线匹配的定性结果。与其他线描述符相比,Line-Transformers通过产生更多正确匹配和更少错误匹配而具有更好的性能,其中LBD有许多不正确的匹配,导致匹配精度较低。

B、视觉定位

除了上述评价指标外,本文还通过估计三维线图中的相机姿态评估线描述符,这里使用了ScanNet和Oxford Radar RobotCar数据集进行室内外实验,为了验证本文所提方法的可推广性,分别对室内外环境应用不同的训练方法。

(1)室内:首先生成线段对应真值和三维线图。基于深度图选择了满足一定重叠的图像对(40-80%)。由于深度图中的潜在不确定性,此处将线分解为点序列,并检查中间点以验证线的对应性。

(2)室外:在随机选择的序列影像中执行视觉位置识别,以筛选出具有3D线特征的对应参考图像。此处没有使用不可靠的GPS数据,而是基于查询图像和参考图像的点云,通过迭代最近点ICP来计算它们之间的真实相对姿态,并排除了ICP适应度较差的查询参考图像对。

(3)指标:记录使用不同阈值(即室内0.25m、10°/0.5m、10°/1.0m、10°,室外0.25m、2°/0.5m,5°/5.0m和10°)时正确定位的查询图像的百分比。此处使用20次迭代的RANSAC,通过PnPL估计相机姿态。相应的利用PnP评估SuperPoint。本文分析了分别使用点、线、点和线的姿态估计结果,同时还分析了基于室内匹配真值的匹配精度(P)和召回率(R)。

(4)结果:如表2所示,对于室内外实验,Line-Transformers在视觉定位和精确召回指标方面达到了其他线描述符中的最高性能。图2中的定性结果也表明,Line-Transformers在成像变化(如模糊、视点和照明)方面表现强劲。 表2 视觉定位结果对比

2fdc2abc-5a3c-11ed-a3b6-dac502259ad0.png

但与单应性估计不同,利用PnP的基于点的方法优于所有基于线的方法。其中一个原因是在深度验证期间3D线内点的数量较少。虽然3D特征点直接由其对应的深度像素确定,但一些3D线特征会在RANSAC中的深度线性验证期间被过滤掉。

因此,在本文的映射方法中,基于线的定位比基于点的定位容易导致性能下降。然而,线特征还是可以补充点的性能,特别是当点特征数较少或有偏差时。

C、可变线段长度

图3(a)说明了整个图具有向上的轨迹,从而表明当线段延伸时,本文方法比其他基于CNN的线描述符表现得更好。

300f645e-5a3c-11ed-a3b6-dac502259ad0.png

图3 不同线段长度的性能差异

D、关于评估指标的讨论

与假定一对一匹配的点特征不同,线检测器倾向于在每个图像对中将相同的线段分割成不同的小线段,因此线匹配是一个多对多的问题。例如,由于遮挡和分割,两条不重叠的线可能源自一条线,它们在语义上应该被认为是正确的对应关系。因此精确召回度量的评估结果可能不太精确,因为它们不能考虑非重叠的线段对应关系。

此时,视觉定位和单应性估计相对来说更适合作为评估指标。因为在视觉定位中,因为PnL算法不考虑端点位置,所以非重叠但语义相同的线段也被认为是正确的匹配。另外单应性估计虽然也不考虑端点,但仅限于真实场景中的平面,所以综上所述,基于线的视觉定位是一种更好的选择,可以同时评估大视角差异下的重叠和非重叠线匹配情况。

E、了解Line-Transformers

图4(a)描述了点嵌入对构建线描述符的贡献。由图4(b)可看出线描述符之间的注意力得分最初很低且分布广泛,在稍后的层中逐渐收敛到少量相邻线上。

302508c2-5a3c-11ed-a3b6-dac502259ad0.png

图4 可视化注意力得分

F、基于点线特征的视觉定位

尽管表2中基于特征点定位的表现总体较好,但仍可能会因少量点或有偏差的特征分布而导致结果恶化,因此可以引入线特征以互补的方式增强基于特征点的视觉定位。这里使用3D特征的重投影误差定义基于点的定位失败,并在重投影误差小于四个像素时计算内点。

然后,当内点的数量小于5或20时,额外执行PL-Loc。如图5(b)所示,PL-Loc为视觉定位提供了额外的增强效果,61%的情况下点表现优于线段,这表明剩余39%的情况有可能通过线段得到改善。这也意味着点和线的适当组合将提高整体定位性能。

30687b98-5a3c-11ed-a3b6-dac502259ad0.png

图5 点线特征互补定位

结论

本文受NLP任务处理不同长度的句子和段落的启发,提出了一种利用注意力机制有效处理可变长度的新型线描述符,同时还展示了一个同时利用特征点和特征线进行视觉定位的PL-Loc方法。实验表明,本文所提线描述符在单应性估计和视觉定位数据集中达到了最先进的性能。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SLAM
    +关注

    关注

    23

    文章

    406

    浏览量

    31720
  • 计算机视觉
    +关注

    关注

    8

    文章

    1685

    浏览量

    45815
  • AUC
    AUC
    +关注

    关注

    0

    文章

    9

    浏览量

    6642
  • 卷积神经网络

    关注

    4

    文章

    358

    浏览量

    11800

原文标题:用于视觉定位的上下文感知线描述符(IEEE2021)

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    USB描述符详解

    对于实现USB功能的项目,不管是实现CDC,大容量存储、HID等都必须使用实现USB标准描述符,从而实现USB枚举过程。这里共享个USB描述符的详解。
    发表于 06-12 14:46

    UBL UBOOT 描述符

       在DM368的开发包目录下/psp/flash-utils/DM36x/GNU:执行make 可以省成UBL:ubl_DM36x_nand.bin ;我想问的是如何添加UBL 的描述符?烧写到
    发表于 06-21 08:48

    usb标准描述符之技巧

    usb标准描述符之技巧 USB是个通用的总线,端口都是统的。但是USB设备却各种各样,例如USB鼠标,USB键盘,U盘等等,那么USB主机是如何识别出不同的设备的呢?这就要依赖
    发表于 04-12 11:09 1499次阅读

    USB HID报告及报告描述符简介

    在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串
    发表于 04-12 11:13 3968次阅读

    Descriptor描述符解释

    Descriptor即描述符,是个完整的数据结构,可以通过C语言等编程实现,并存储在USB设备中,用于描述个USB设备的所有属性,USB主机是通过
    发表于 07-16 09:39 2582次阅读

    Linux中文件及文件描述符概述

    6.2 Linux中文件及文件描述符概述 在Linux中对目录和设备的操作都等同于文件的操作,因此,大大简化了系统对不同设备的处理,提高了效率。Linux中的文件主要分为4:普通文件、目录文件
    发表于 10-18 14:35 0次下载

    USB设备键值表描述符说明资料免费下载

    本文档的主要内容详细介绍的是USB设备键值表描述符说明资料免费下载包括了:1.设备描述符的结构,2. 配置描述符的结构,3. 接口描述符的结构,4. HID
    发表于 07-16 16:56 35次下载
    USB设备键值表<b class='flag-5'>描述符</b>说明资料免费下载

    USB各描述符之间的依赖是怎么样的

    USB 是个通用的总线,端口都是统的。但是USB 设备却各种各样,例如USB 鼠标, USB键盘, U盘等等,那么USB 主机是如何识别出不同的设备的呢?这就要依赖于描述符了。USB 的描述符主要有设备
    发表于 07-23 16:53 8次下载
    USB各<b class='flag-5'>描述符</b>之间的依赖是怎么样的

    隐藏描述符工具应用程序免费下载

    本文档的主要内容详细介绍的是HID Descriptor Tool隐藏描述符工具应用程序免费下载。
    发表于 01-08 08:00 11次下载
    隐藏<b class='flag-5'>描述符</b>工具应用程序免费下载

    Linux系统编程中的文件描述符调用

    文件描述符 进程每打开个文件的时候,会获得该文件的文件描述符,而后续的读写操作都把文件描述符作为参数。在用户空间或者内核空间,都是通过文件描述符
    的头像 发表于 09-02 09:50 1587次阅读
    Linux系统编程中的文件<b class='flag-5'>描述符</b>调用

    科普下什么是USB的描述符

    以及行为呢?这就要通过描述符来实现了。那么什么是USB的描述符呢?其实就是些传递的协议信息,比如设备的类型、厂商ID、产品ID、端点情况、版本号等信息。 既然描述符是协议信息,那么不
    的头像 发表于 12-02 14:41 3786次阅读

    Gadget框架构描述符

    假设你要【模拟】个 USB 设备: 这个 USB 设备含有厂家信息:它记录在设备描述符里,所以设备描述符应该由你提供 这个芯片可能有多种配置,这也是由你决定,所以配置描述符应该由你提
    的头像 发表于 07-13 11:34 523次阅读
    Gadget框<b class='flag-5'>架构</b>造<b class='flag-5'>描述符</b>

    从获取描述符的角度理解Gadget框架

    操作: 使用控制传输,读取设备信息(设备描述符):第次读取时,它只需要得到 8 字节数据,因为第 8 个数据表示端点 0 能传输的最大数据长度。 Host 分配地址给设备,然后把新地址发给设备。 使用新地址,重新读取设备描述符
    的头像 发表于 07-13 11:38 771次阅读
    从获取<b class='flag-5'>描述符</b>的角度理解Gadget框架

    基于DWC_ether_qos的以太网驱动开发-描述符格式介绍

    前面我们介绍了描述符链表的工作模式,重点是了解环形链表是如何环形的,以及相关的寄存器。驱动编写就需要更进步,了解描述符的具体内容,即4个描述符的每个字段的含义。
    的头像 发表于 09-04 14:14 2008次阅读
    基于DWC_ether_qos的以太网驱动开发-<b class='flag-5'>描述符</b>格式介绍

    Python的优雅之处:Descriptor(描述符

    语法糖的实现上也有使用到(在下面的文章会一一介绍)。 当你点进这篇文章时 你也许没学过描述符,甚至没听过描述符。 或者你对描述符只是知半解 无论你是哪种,本篇都将带你全面的学习
    的头像 发表于 11-02 10:52 897次阅读
    Python的优雅之处:Descriptor(<b class='flag-5'>描述符</b>)