• 一种基于Transformers架构的线描述子


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

    作者:Sungho Yoon1 and Ayoung Kim2∗

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

    本文主要记录的是LT描述子的构建过程

    LT描述子的优点:

    1. 通过将线段视为句子,将点视为单词,提出了一种使用transformer架构的新型线段描述符。利用NLP作为线段描述符,可以处理各种可变长度的线段;
    2. 提出的线段描述符通过关注线段上更有意义的点来理解线段的上下文。它有效地将各种长度的线段抽象为固定大小的描述符;
    3. 建议在邻域之间共享线属性(例如,位置、角度、长度和描述符)信息的线签名网络。

    框架如图:

    A  Line Transformer

    1、Line Tokenizer(线标记化):NLP中,单词标记化是用于将句子划分为称为标记的较小单词单位(tokens)的过程。tokens被用作模型输入的最小单元。特殊tokens用于执行特殊任务。例如,分类标记[CLS]被应用于分类任务的聚合序列表示,并且分隔符标记[SEP]被用于区分两个句子。这些tokens通过将具有相似含义的单词分配到相似的向量空间中来转换为向量表示。这些token的向量表示被称为词向量编码(word enbedding)(简单理解就是将每个tokens 进行一个编码器编码,将每个单词变换为向量,便于进一步处理)NLP模型利用它们来有效地理解自然语言。在我们的问题中,我们将点与线段的关系类比为自然语言中单词与句子之间的关系。

    2.Transformer :作者使用Transformers来建立直线特征描述子模型。Transformer的编码器由 两部分组成:MSA和MLP层。将Transformer堆叠L次,得到line Descriptor。z0为Transformers的输入,Eline为描述子的初始状态;En表示第n个特征点的描述向量;Epos表示每个特征点的位置信息;为了解决直线特征长度不同的问题,加入mask0来去除相关性比较低的特征点;d即为得到的直线特征描述子过程如下:

    B  LIne Signature Networks

            根据直线的位置、角度将直线聚成一簇,并且相邻直线的信息(位置、角度)通过信息传递网络共享。传递公式如下所示:

     

    C Sublines to Keylines

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

    D loss Function

            

           其中,ai为锚描述子(计算相似度检测的描述子),Pi为正描述子(根据相似度采取一定阈值人为正确匹配上的描述子),ni为负描述子(错误描述子),就是使匹配上的描述子之间的距离最小,未匹配上的描述子之间的距离最大。

            

             

  • 相关阅读:
    Github 2FA绑定中国+86手机号码实现两步验证
    FreeRTOS简单内核实现3 任务管理
    Python自动化测试面试题精选(一)
    运维 | 使用 Docker 安装 Jenkins | Jenkins
    Spring 框架中都用到了哪些设计模式:单例模式、策略模式、代理模式
    使用docker搭建webtop
    怎么修复vcomp140.dll丢失问题?5个详细的修复方法分享
    组件协作模式
    “自主可控”的正确姿势—自主可控交换机的机遇与挑战
    计算机系统(16)----- 调度算法(2)
  • 原文地址:https://blog.csdn.net/dsp1218/article/details/132642103