IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Rethinking Visual Geo-localization for Large-Scale Applications 论文阅读CosPlace -> 正文阅读

[人工智能]Rethinking Visual Geo-localization for Large-Scale Applications 论文阅读CosPlace

作者文章:地址

github代码:地址

一、作者的motivation

在自动驾驶中往往需要更大尺度的场景,面对大尺度场景需要克服两个限制:

(1)Non-representative数据集

当前存在的数据集在大尺度实际场景应用,无法表现的太好,主要原因:

  • 覆盖的地理区域太小
  • 场景图片地理分布太稀疏,如下图中MSLS
  • 当前存在的数据集都是分割成地理位置不相交的集合,用于训练和推理

弊端:在这些数据集进行训练,没有找到真世界中场景的相关性

(2)Scalability of training

  • 当前热门的方法大都使用对比学习(大多数依赖三元损失函数triplet loss),挖掘negative examples是一个很昂贵的操作
  • 现有的挖掘方法,也存在收敛速度慢,数据使用有效性差的缺点

贡献:

  • 稠密大尺度数据集SF-XL,大约是当前存在数据集规模的30倍,并且包括Crowd-sourced(i.e., multi-domain)
  • 提出一个CosPlace方法,利用图像分类任务的方法训练模型,提取有区分性的描述子,该方法相当简单,不需要挖局负例,就可以从大量数据中完成有效的学习
  • 与当前SOTA方法相比,GPU显存大约减少80%,embeddings也要小8倍,在其他数据集也有很好的泛化能力

二、相关工作

  • Visual geo-localization - 看成图像检索任务

    缺点:由于挖掘负例代价昂贵,导致训练时间长;Netvlad,PCA减少描述子维度,会导致表现退化。

  • Visual geo-localization - 看成图像分类任务

    缺点:精度太差

  • 本文方法结合这两种方式:
    利用不需要挖掘负例的分类任务训练模型,分类策略旨在利用稠密数据的可用性,并确保如果两个图像来自同一个类,它们将显示相同的场景。此外,与以前任务不同的是,经过训练后,本文方法可以通过对任何给定地理区域的图像检索来执行地理定位。

三、旧金山SF-XL数据集

在这里插入图片描述

  • 数据库:Database

    ? - 训练集:整座旧金山城市41.2M图片,包括6DOF的GPS信息和朝向方位角度,从2009年至2021年。

    ? - 测试集:仅有2.8M图片,从2013年开始,仍然覆盖整个几何区域

    ? - 验证集:8K数据库图片,8K查询图片

  • 查询:Queries

    思想:数据库和查询集合的拆分需要合适的分割方法,否则会影响结果。test queries不应该和Database来自相同的域,因为真实世界测试总是来自未见过的区域,本文的test queries包含两部分:

    ? test set v1: 从Flicker收集1000张图片,给出不精确的GPS坐标,所有图片都是手工选择,定位已经被验证

    ? test set v2: 从San Francisco Landmark Dataset选取598张图片,利用方法生成6DOF坐标。

四、方法

? 首先简单批评一下现有的比较好的方法的缺点:

? (1)训练的时候需要定期计算所有数据库图片的特征,时间和空间复杂度 O ( n ) \mathcal{O}(n) O(n),仅适用于小数据集。

? (2)基于NetVLAD和其变体的方法,描述子向量维度过高,推理阶段需要大量的内存占用,PCA减少维度,会导致结果退化。

? 受到人脸识别的启发,cosFace和arcFace是其实现最佳结果的关键,需要把训练集分类。但是SX-XL数据集标签空间是连续的,分类并不直观,所以引入下面方法:

  • 数据集分类:

    利用UTM坐标 { e a s t , n o r t h } \{east, north\} {east,north}将数据库分成正方形地理单元格,然后根据每张图片的方位/朝向 { h e a d i n g } \{heading\} {heading},进一步把每个单元格分成一组类。定义类 C e i , n j , h k C_{e_i,n_j,h_k} Cei?,nj?,hk??内的图片集合为
    { x : ? e a s t M ? = e i , ? n o r t h M ? = n j , ? h a d i n g α ? = h k } \{x:\lfloor \frac{east}{M} \rfloor = e_i, \lfloor \frac{north}{M} \rfloor = n_j, \lfloor \frac{hading}{\alpha} \rfloor = h_k\} {x:?Meast??=ei?,?Mnorth??=nj?,?αhading??=hk?}
    其中 M M M α \alpha α分别表示确定类单元格范围位置和朝向的长度(米)和角度(度)。

    虽然这种解决方案可以从数据集创建一组类,但它有一个很大的局限性:由于量化误差,几乎相同的图像(例如,以相同的方向拍摄,但相距几厘米)可能被分配到不同的类如下图,会妨碍分类方法的训练。
    UTM坐标cell

    本文的方法是不一次性训练所有类,而是仅训练不相邻的类(如果位置或朝向上的微小差异,可以将图片从一个类带到另一个类,则两个类是相邻的),这些组称为CosPlace Groups,类似于单独的数据集,每一次训练一个group。

    生成groups的原则是:一个group中的任意两个类,在平移和朝向上有一个最小的间隔数值。引入两个超参数, N N N控制同一group中的任意两个类之间最小单元格数量, L L L表示同一个单元格内相隔多少个 α \alpha α角度选取图片。具体如下图:
    CosPlace视觉表示
    ? 按照图中的逻辑,水平竖直各相隔N的M长度单元格选取类,每个单元格内部再每隔 L L L α \alpha α角度选取图片放进一个group,图中设置 α = 6 0 ° , ? N = 3 , ? L = 2 \alpha = 60^{\circ},\space N = 3, \space L = 2 α=60°,?N=3,?L=2,那么一共有多少个群组呢?答案是 3 × 3 × 2 = 18 3\times3\times2 = 18 3×3×2=18个,图中的橙色和紫色其实就是表示同一个单元格每隔 α × L = 12 0 ° \alpha \times L = 120^\circ α×L=120°采样 6 0 ° 60^\circ 60°范围内的图片放入一个group中,那么一个类单元格就分成2个群组,然后再水平竖直每隔3个单元格,又分成 3 × 3 = 9 3\times3=9 3×3=9个组,两个相乘就是18个群组。

    ? 根据上述解释定义CosPlace Group G u v w G_{uvw} Guvw?为:
    G u v w = { C e i n j h k : ( e i m o d ?? N = u ) ∧ ( n j m o d ?? N = v ) ∧ ( h k m o d ?? L = w ) } G_{uvw} = \{C_{e_in_jh_k}:(e_i \mod N = u)\wedge(n_j \mod N = v) \land (h_k \mod L= w)\} Guvw?={Cei?nj?hk??:(ei?modN=u)(nj?modN=v)(hk?modL=w)}
    每个CosPlace Group之间都是非连通集合。性质如下:

    (1) 每一个类别都明确一个群组(我认为应该是一个类别单元格会明确分给 L L L个群组)

    (2) 同一个群组,如果两张图片属于不同的类,它们至少相隔 M ? ( N ? 1 ) M\cdot(N-1) M?(N?1)米,或者相隔 α × ( L ? 1 ) \alpha \times (L-1) α×(L?1)

    (3) CosPlace Groups总数目为 N × N × L N \times N \times L N×N×L

    (4) 没有任何两个连通的类属于同一个群组(除非 N = 1 N=1 N=1或者 L = 1 L=1 L=1

  • 训练网络:

    受到LCML也被称为cosFace的启发,但是原本的LCML不能直接应用到该数据集,因为图像数据没有被分成有限数量的类。然而通过上述的数据集分区方法,可以在每个CosPlace groups上顺序执行LCML(其中每个组可以被视为一个单独的数据集),并在许多组上进行迭代。由于LCML需要全连接层对应类别数,训练阶段每一个群组都需要一个全连接层,在验证和测试阶段不需要全连接层。注意并不是所有群组都是需要的,单一一个群组也可以训练,文章中图10消融实验证明,多于一个群组,效果会更好一点。按顺序训练每个群组:
    L c o s P l a c e = L l m c l ( G u v w ) \mathcal L_{cosPlace} = \mathcal L_{lmcl}(G_{uvw}) LcosPlace?=Llmcl?(Guvw?)
    L l m c l \mathcal L_{lmcl} Llmcl? 是LCML loss, u ∈ { 0 , . . . , N } , ? v ∈ { 0 , . . . , } , ? W ∈ { 0 , . . . , L } . u \in \{0,...,N\},\space v \in \{0,...,\},\space W\in\{0,...,L\}. u{0,...,N},?v{0,...,},?W{0,...,L}. 就按照 G 000 , ? G 001 , . . . G_{000},\space G_{001},... G000?,?G001?,...的顺序依次迭代群组。

五、实验

  • 实施细节:

    ? 架构:一个标准的CNN backbone(VGG16) + GeM pooling + fully connected layer(output 512)。在消融实验和预实验也使用了ResNet18,结果差不多,也在各个框架都试了一下,其中ResNet101+128-D描述子结果表现超过当前使用4096-D描述子的SOTA方法。

    ? 训练:超参数设置, M = 10 , ? α = 3 0 ° , ? N = 5 , ? L = 2 M = 10, \space \alpha = 30^\circ, \space N = 5, \space L = 2 M=10,?α=30°,?N=5,?L=2. 每个epoch执行一个群组迭代10k次,一个群组一个epoch,一共50个epochs(例如:batchsize = 32,500k次迭代)。在训练期间,为了每个群组可以多次看到,仅使用8个groups(50个群组中的8个,代码中是0~7)。每训练一次验证一次,训练结束,测试集在验证集表现最好的模型上测试。更多的细节看附录。

  • 方法比较:

    ? 比较25米阈值的recall@N,结果更好。还比较了内存占用,描述子维度,都是最佳的,具体看文章。

  • 计算效率:

    ? 内存占用;GPU需求,CosPlace只需要7.5GB、单GPU2080Ti训练;描述子维度和其他方法相比非常小;训练测试速度更快。

  • 消融实验:

    ? 超参数 M , N , L , α M,N,L,\alpha M,N,L,α;backbone和描述子维度等等,具体结果看文章附录。

  • 限制:

    ? 使用了Heading labels,Pitts30K和MSLS没有该数据,CosPlace无法在上面训练;研究了较小训练集的训练,但是并没有达到SOTA的结果,所以该方法并不适合在小训练集训练。

六、附录:B.2 进一步实施细节

  • 为了更好的表示每个类,对于训练期间的数据,保证每个单元格内至少10张全景图,抛弃了大约15%的图片
  • 超参数 M = 10 , α = 30 , N = 5 , L = 2 M = 10,\alpha = 30, N = 5, L = 2 M=10,α=30,N=5,L=2得到50个群组,每个组大概35k个类,每个类平均包含19.8张图片
  • 训练阶段仅训练50个群组中的8个,包含大约5.6M张图片,将来的工作也可以修改这个参数
  • 优化器:Adam optimizer,lr = 0.00001,batchsize = 32,数据增强采用color jittering,random cropping
  • cosFace loss 的 margin = 0.04

? 以上就差不多是这篇文章的全部内容,其实主要思想还是利用heading labels对稠密的图片进行数据划分,来更好的提取特征,但是文章中的数据集主要集中在旧金山城镇街道,一些户外数据集或者相似区域的图像检索,效果如何不能确定,但这种思想值得借鉴,为数据集进行非连通的分类分组。

? 最后欢迎大家留言讨论!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-19 11:56:10  更:2022-05-19 11:57:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:40:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码