Cross-View Transformers for Real-Time Map-View Semantic Segmentation 论文阅读

论文链接

Cross-View Transformers for Real-Time Map-View Semantic Segmentation

0. Abstract

  • 提出了 Cross-View Transformers ,一种基于注意力的高效模型,用于来自多个摄像机的地图视图语义分割
  • 使用相机感知的跨视图注意机制隐式学习从单个相机视图到规范地图视图表示的映射
  • 该架构由每个视图的卷积图像编码器和跨视图变换层组成,以推断地图视图语义分割

1. Intro

背景

  • 基于图像的深度估计很容易出错,因为单眼深度估计与观察者的距离的关系很差
  • 基于深度的投影是视图之间映射的相当不灵活且僵化的瓶颈

工作

  • 使用该架构将相机视图映射到规范的地图视图表示,该架构不执行任何显式的几何推理,而是通过几何感知的位置嵌入学习在视图之间进行映射
  • 多头注意力学习使用学习的地图视图位置嵌入将特征从摄像机视图映射到规范的地图视图表示
  • 该模型学习将不同的地图位置链接到两个摄像机以及每个摄像机内的位置
  • 交叉视图变换器允许网络隐式地、直接地从数据中学习任何几何变换。通过几何感知位置嵌入尽可能准确地执行下游任务,通过依赖于相机的地图视图位置嵌入来学习深度的隐式估计

2. Related Works

单目三维物体检测

  • 单目检测旨在在场景中找到物体,估计它们在三维场景中的真实尺寸、方向和放置位置
  • 最常见的方法将问题简化为二维物体检测,并推断单目深度
  • 单目检测强烈依赖于一个良好的明确的单目深度估计,这可能更难获得

深度估计

  • 深度是许多多视点映射方法的核心要素。经典的运动构造方法利用极线几何和三角测量来显式计算相机外部参数和深度
  • 最近的深度学习方法直接从图像回归深度。虽然方便,但显式的深度对于下游任务而言具有挑战性
  • 与相机相关,并且需要准确的校准和多个嘈杂估计的融合

地图视图的语义映射

  • 输入是在校准过的相机视图中记录的,输出被光栅化到地图上
  • 一种常见的技术是假设场景主要是平面的,并将图像到地图视图的转换表示为简单的单应变换
  • 第二类方法直接从输入图像生成地图视图预测,没有明确的几何建模

VPN

  • 与本文方法思想类似。通过他们提出的视图关系模块 - 一个多层感知器(MLP),从所有视图的输入中输出地图视图特征,学习多个视图之间的共同特征表示
  • 缺点
    • 没有对场景的几何结构进行建模
    • 放弃了标定相机配置中包含的继承归纳偏置,并且需要学习嵌入到网络权重中的隐式相机标定模型

本文工作展示了隐式几何推理与显式几何模型的效果相当。隐式处理几何的附加好处是相比显式模型,在推理速度上有所提高。只需学习一组位置嵌入,注意力机制将重新映射相机到地图视图

3. Cross-view transformers

  • 在这个任务中,提供了一组由n个单独视图 ( I k , K k , R k , t k ) k = 1 n (I_k,K_k,R_k,t_k)^n_{k=1} (Ik,Kk,Rk,tk)k=1n 组成的输入图像 I k ∈ R H × W × 3 I_k∈\mathbb{R}^{H×W×3} IkRH×W×3,相机内参 K k ∈ R 3 × 3 K_k∈\mathbb{R}^{3×3} KkR3×3,外参旋转 R k ∈ R 3 × 3 R_k∈\mathbb{R}^{3×3} RkR3×3 和相对于自车中心的平移 t k ∈ R 3 t_k∈\mathbb{R}^3 tkR3

  • 目标是学习一个高效的模型,从多个相机视图中提取信息,以便预测一个二进制语义分割掩码 y ∈ { 0 , 1 } h × w × C y∈\{0, 1\}^{h×w×C} y{0,1}h×w×C 在正交地图视图坐标框架中

  • 为地图视角语义分割设计了一个简单而有效的编码器-解码器结构

    • 图像编码器为每个输入图像生成多尺度特征表示

    • 跨视角跨注意机制将多尺度特征聚合成一个共享的地图视角表示。所有相机共享相同的图像编码器,但使用依赖于它们各自相机校准的位置嵌入

    • 轻量级的卷积解码器对精炼的地图视角嵌入进行上采样,产生最终的分割输出

3.1 Cross-view Attention

  • 跨视角注意力的目标是将地图视图表示与图像视图特征相连接
    x ( I ) ≃ K k R k ( x ( W ) − t k ) (1) x^{(I)} ≃ K_kR_k(x^{(W)} − t_k) \tag{1} x(I)KkRk(x(W)tk)(1)
    ≃ ≃ 表示等比例关系, x ( I ) = ( ⋅ , ⋅ , 1 ) x^{(I)} = (·, ·, 1) x(I)=(⋅,⋅,1) 使用齐次坐标

    在没有相机视图中准确的深度估计或地图视图中的地面高度估计的情况下,世界坐标 x ( W ) x^{(W)} x(W)是不确定的 。我们不学习深度的显式估计,而是将任何深度不确定性编码在位置嵌入中,并让 Transformer 学习深度的代理

  • 从对等式1中的世界坐标和图像坐标之间的几何关系进行重新表述,将其作为余弦相似度在注意机制中使用
    s i m k ( x ( I ) , x ( W ) ) = ( R k − 1 K k − 1 x ( I ) ) ⋅ ( x ( W ) − t k ) ∥ R k − 1 K k − 1 x ( I ) ) ∥∥ ( x ( W ) − t k ∥ (2) sim_k(x^{(I)}, x^{(W)}) = \frac{(R^{−1}_k K^{−1}_k x^{(I)}) \cdot (x^{(W)} − t_k)} {∥R^{−1}_k K^{−1}_k x^{(I)})∥∥(x^{(W)} − t_k∥} \tag{2} simk(x(I),x(W))=Rk1Kk1x(I))∥∥(x(W)tk(Rk1Kk1x(I))(x(W)tk)(2)
    这种相似性仍然依赖于准确的世界坐标 w ( W ) w^{(W)} w(W)用位置编码替换这种相似性的所有几何组件,位置编码可以学习几何和外观特征

考虑相机的位置编码

  • 对于每个图像坐标 x i ( I ) x^{(I)}_i xi(I),位置编码从未投影的图像坐标 d k , i = R k − 1 K k − 1 x i ( I ) d_{k,i} = R^{−1}_k K^{−1}_k x^{(I)}_i dk,i=Rk1Kk1xi(I) 开始。未投影的图像坐标 d k , i d_{k,i} dk,i 描述了从摄像机 k 的起始点 t k t_k tk 到深度为 1 的图像平面的方向向量。方向向量使用世界坐标
  • 使用一个多层感知器(在所有k视图上共享)将这个方向向量 d k , i d_{k,i} dk,i 编码为一个D维的位置嵌入 δ k , i ∈ R D δ_{k,i}∈\mathbb{R}^D δk,iRD 。将该位置嵌入与图像特征 ϕ k , i \phi _{k,i} ϕk,i 相结合,作为我们跨视图注意力机制的键

地图视图的潜在嵌入

  • 在一个单独的位置嵌入中对两者进行编码。使用MLP将每个相机位置tk转换为一个嵌入 τ k ∈ R D τ_k ∈ \mathbb{R}^D τkRD
  • 从一个学习到的位置编码 c ( 0 ) ∈ R w × h × D c^{(0)} ∈ \mathbb{R}^{w×h×D} c(0)Rw×h×D 开始。地图视图位置编码的目标是产生每个道路元素的3D位置的估计
    • 最初,这个估计在所有场景中是共享的,并且可能学习到了每个场景元素在地面平面上的平均位置和高度
    • 然后,变换器架构通过多轮计算对这个估计进行细化,得到新的潜在嵌入 c ( 1 ) 、 c ( 2 ) c^{(1)}、c^{(2)} c(1)c(2)
    • 每个位置嵌入都能更好地将地图视图坐标投影到三维环境的代理中
  • 将地图视图嵌入 c 和相机位置嵌入 τ k τ_k τk 之间的差异用作变换器中的查询

跨视图注意力

  • 跨视图变换器通过跨视图注意力机制结合了位置编码。允许每个地图视图坐标关注一个或多个图像位置,但并非每个地图视图位置在每个视图中都有对应的图像块

  • 允许注意机制在每个摄像头和每个摄像头内的位置之间进行选择

    • 首先将所有视图的相机感知位置嵌入 δ 1 , δ 2 , δ_1, δ_2, δ1,δ2, . . .合并为单个键向量 δ = [ δ 1 , δ 2 , . . . ] δ = [δ_1,δ_2, . . .] δ=[δ1,δ2,...]
    • 同时,我们将所有图像特征 ϕ 1 , ϕ 2 , \phi_1,\phi_2, ϕ1,ϕ2, . . .合并为单个值向量 ϕ = [ ϕ 1 , ϕ 2 , . . . ] \phi = [\phi_1,\phi_2, . . .] ϕ=[ϕ1,ϕ2,...],将相机感知位置嵌入 δ δ δ 和图像特征 ϕ \phi ϕ 相结合以计算注意力键
    • 最后,我们在键 [ δ , ϕ ] [δ,\phi] [δ,ϕ]、值 ϕ \phi ϕ 和地图视图查询 c − τ k c − τ_k cτk 之间执行 softmax 交叉注意力
  • softmax 注意力使用键和查询之间的余弦相似度
    s i m ( δ k , i , ϕ k , i , c j ( n ) , τ k ) = ( δ k , i + ϕ k , i ) ⋅ ( c j ( n ) − τ k ) ∥ δ k , i + ϕ k , i ∥∥ c j ( n ) − τ k ∥ (3) sim(δ_{k,i}, \phi_{k,i}, c^{(n)}_j , τ_k) = \frac{(δ_{k,i} + \phi_{k,i})\cdot(c^{(n)}_j − τ_k)} {∥δ_{k,i} + \phi_{k,i}∥∥c^{(n)}_j − τ_k∥} \tag{3} sim(δk,i,ϕk,i,cj(n),τk)=δk,i+ϕk,i∥∥cj(n)τk(δk,i+ϕk,i)(cj(n)τk)(3)

3.2 A cross-view transformer architecture

  • 网络的第一阶段为每个输入图像建立相机视图表示
    • 将每个图像 I i I_i Ii 输入特征提取器,并获得多分辨率补丁嵌入 ϕ 1 1 , ϕ 1 2 , . . . , ϕ n R {\phi_1^1, \phi^2_1,..., \phi_n^R} ϕ11,ϕ12,...,ϕnR,其中 R 是我们考虑的分辨率数量(实验中 R=2)
    • 单独处理每个决议。从最低分辨率开始,并使用跨视图注意将所有图像特征投影到地图视图中
    • 然后,细化地图视图嵌入并重复该过程以获得更高分辨率
    • 最后,我们使用三个上卷积层来产生全分辨率输出

4. Implementation Details

架构

  • 使用(并微调)预训练的 EfficientNet-B4 来计算两个不同尺度的图像特征 —— (28, 60) 和 (14, 30),分别对应于 8 倍和 16 倍的缩小
  • 初始地图视图位置嵌入是学习参数 w × h × D 的张量,其中 D = 128。为了计算效率,选择 w = h = 25,因为交叉注意力函数随网格大小呈二次方增长
  • 编码器由两个交叉注意力块组成:一个用于每个尺度的块特征
    • 使用具有4个头和嵌入尺寸 d h e a d = 64 d_{head} = 64 dhead=64 的多头注意力
    • 解码器由三个(双线性上采样 + 卷积)层组成,将潜在表示上采样到最终输出尺寸

5. Results

数据集

利用 nuScenes 数据集,数据集是一个包含1000个不同场景的集合,这些场景在各种天气、时间和交通条件下采集

评估

对于地图视图车辆分割,有两种常用的评估设置

  • 设置1在车辆周围使用一个100m×50m的区域,并以25cm的分辨率对地图进行取样
  • 设置2在车辆周围使用一个100m×100m的区域,并以50cm的取样分辨率

使用模型预测和地图视角标签之间的交并比(IoU)分数作为主要性能指标

5.1 Comparison to prior work

  • 将模型与在线地图上五种最具竞争力的现有方法进行比较
  • 与金字塔占用网络(PON)、正交特征变换(OFT)、视图解析网络(VPN)、时空聚合(STA)、Lift-Splat-Shoot 和火热 FIERY 比较
  • 在这两种设置中,我们的交叉视图转换器和 FIERY 都明显优于所有替代方法

5.2 Ablations of cross-view attention

  • 方法的核心要素是跨视图注意机制。它将相机感知嵌入和图像特征结合起来作为键,并将学习到的地图视图位置嵌入作为查询

  • 地图视图嵌入允许在多次迭代中更新,而相机感知嵌入包含一些几何信息

  • 系统最重要的组成部分是相机感知的位置嵌入。它赋予注意力机制推理场景几何布局的能力。如果没有它,注意力就必须依靠图像特征来揭示自己的位置

  • 仅图像特征很难正确连接地图视图和摄像机视图视角。它还需要明确推断每个图像所面向的方向,以消除不同视图的歧义

  • 另一方面,仅靠纯粹的几何相机感知位置嵌入也是不够的。该网络可能使用语义和几何线索来对齐地图视图和相机视图,特别是在地图视图嵌入的细化之后

  • 使用单个固定地图视图嵌入也会降低模型的性能。最终模型在其所有注意力组件下表现最佳

5.3 Camera-aware positional embeddings

  • 不使用任何位置嵌入的效果很差。注意机制难以定位特征并识别摄像头
  • 个摄像头学习的嵌入效果出人意料地好。这可能是因为摄像机校准基本保持静态,而学习到的嵌入则将所有几何信息整合在一起
  • 使用线性或随机傅立叶投影的相机感知嵌入效果最好

5.4 Accuracy vs distance

5.5 Robustness to sensor dropout

  • 采用在所有六个输入上训练的模型,通过在验证集中对每个样本随机删除 m 个摄像头来评估交并比(IoU)指标

  • 性能随着删除的摄像头数量的线性下降。这是相当直观的,因为不同的摄像头仅有轻微的重叠

  • 值得注意的是,基于Transformer的模型通常对摄像头丢失具有相当强的鲁棒性,整体性能不会下降到场景的未观察区域以外

5.6 Qualitative Results

  • 对于每一行,我们展示了六个输入摄像机视图以及预测的地图视图分割和地面真实分割
  • 提出的方法可以准确地分割附近的车辆,但对于远处或遮挡的车辆无法感知良好

5.7 Geometric reasoning in cross-view attention

  • 可视化了地图视角中几个点的图像视角注意力。每个点对应车辆的一个部分。根据定性证据,注意机制可以突出显示相互对应的地图视角和摄像头视角位置

6. Conclusion

  • 提出了一种基于跨视图变换器架构的地图视图分割方法,该方法建立在考虑相机位置的位置嵌入之上。所提出的方法实现了最先进的性能,易于实施,并且实时运行

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

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

相关文章

MySQL数据库索引以及使用唯一索引实现幂等性

📑前言 本文主要是MySQL数据库索引以及使用唯一索引实现幂等性的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 &#x1f30…

【LeetCode:2736. 最大和查询 | 贪心 + 二分 + 单调栈】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

微信小程序会议OA首页-开发说明创建项目关于flex布局关于尺寸单位(rpx)关于WXS轮播图会议信息

目录 1. 创建项目 2. 关于flex布局 3. 关于尺寸单位(rpx) 4. 关于WXS 4. 轮播图 5. 会议信息 1. 创建项目 基于微信原生开发工具,稳定版 Stable Build (1.06.22010310) 创建项目前,请确定有小程序测试账号 使用向导创建一个…

北京君正客户应用案例:掌静脉3D人脸猫眼视屏智能锁

凯迪仕在今年4月发布了智能锁旗舰新品K70 Pro Max掌静脉3D人脸猫眼视屏智能锁,随即这款新品也成了行业热议的焦点。凯迪仕每次新品都力求突破精益求精,不仅追求科技感、高级感与品质感,而且赋予科技温度,带来人文化的关怀。K70 Pr…

2023.11.19 hadoop之MapReduce

目录 1.简介 2.分布式计算框架-Map Reduce 3.mapreduce的步骤 4.MapReduce底层原理 map阶段 shuffle阶段 reduce阶段 1.简介 Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架; Mapreduce核心功能是…

【SpringBoot3+Vue3】二【实战篇】-后端

目录 一、环境搭建 1、数据库脚本 2、pom 3、yml 4、通过mybatis-X生成实体pojo等 4.1 Article 4.2 Category 4.3 User 5、 Mapper 5.1 ArticleMapper 5.2 CategoryMapper 5.3 UserMapper 6、service 6.1 ArticleService 6.2 CategoryService 6.3 UserService …

workman使用手册1.0

workman官网地址:高性能PHP应用容器 workerman 1:把workman项目放到linux服务器后,需要启动你的php文件,才可以使用 定位到项目根目录:例:cd /mnt/workman 启动代码:php outin.php start -d 停…

关于DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC的一些发现

任务在哪 这个是11g以后的自动收集统计信息的后台任务,10g之前是在dba_scheduler_jobs里查看 SQL> SELECT CLIENT_NAME ,STATUS ,MEAN_INCOMING_TASKS_7_DAYS,MEAN_INCOMING_TASKS_30_DAYS FROM DBA_AUTOTASK_CLIENT WHERE…

计算机视觉:使用opencv实现车牌识别

1 引言 汽车车牌识别(License Plate Recognition)是一个日常生活中的普遍应用,特别是在智能交通系统中,汽车牌照识别发挥了巨大的作用。汽车牌照的自动识别技术是把处理图像的方法与计算机的软件技术相连接在一起,以准…

Flutter 中在单个屏幕上实现多个列表

今天,我将提供一个实际的示例,演示如何在单个页面上实现多个列表,这些列表可以水平排列、网格格式、垂直排列,甚至是这些常用布局的组合。 下面是要做的: 实现 让我们从创建一个包含产品所有属性的产品模型开始。 …

ZJU Beamer学习手册(二)

ZJU Beamer学习手册基于 Overleaf 的 ZJU Beamer模板 进行解读,本文则基于该模版进行进一步修改。 参考文献 首先在frame文件夹中增加reference.tex文件,文件内容如下。这段代码对参考文献的引用进行了预处理。 \usepackage[backendbiber]{biblatex} \…

【机器学习】划分训练集和测试集的方法

在机器学习中,我们的模型建立完成后,通常要根据评估指标来对模型进行评估,以此来判断模型的可用性。而评估指标主要的目的是让模型在未知数据上的预测能力最好。因此,我们在模型训练之前,要对训练集和测试集进行划分。…

【Python数据结构与算法】——(线性结构)精选好题分享,不挂科必看系列

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏:<<Python数据结构与算法专栏>>&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 时间复杂度大小比较 1.time complexity of algorithm A is O(n^3) while algorithm B is O(2^n). Which o…

股东入股可用的出资形式主要有哪些

股东入股&#xff0c;可用的出资形式主要包括货币以及实物、知识产权、土地使用权等可以用货币估价并可以依法转让的非货币财产。 第一&#xff0c;货币。设立公司必然需要一定数量的流动资金。以支付创建公司时的开支和启动公司运营。因此&#xff0c;股东可以用货币出资。 第…

自学嵌入式,已经会用stm32做各种小东西了

自学嵌入式&#xff0c;已经会用stm32做各种小东西了 1、stm32 工程中&#xff0c;定义一个变量&#xff0c;记录复位次数&#xff0c;即复位一次变量加一。要求不许用备份寄存器和 flash 保存信息。本题只讨论不断电热启动情况&#xff0c;至于冷启动&#xff0c;不在此讨论。…

【MATLAB源码-第80期】基于蚯蚓优化算法(EOA)的无人机三维路径规划,输出做短路径图和适应度曲线

操作环境&#xff1a; MATLAB 2022a 1、算法描述 蚯蚓优化算法&#xff08;Earthworm Optimisation Algorithm, EOA&#xff09;是一种启发式算法&#xff0c;灵感来源于蚯蚓在自然界中的行为模式。蚯蚓优化算法主要模仿了蚯蚓在寻找食物和逃避天敌时的行为策略。以下是蚯蚓…

【论文阅读】基于隐蔽带宽的汽车控制网络鲁棒认证(二)

文章目录 第三章 识别CAN中的隐藏带宽信道3.1 隐蔽带宽vs.隐藏带宽3.1.1 隐蔽通道3.1.2 隐藏带宽通道 3.2 通道属性3.3 CAN隐藏带宽信道3.3.1 CAN帧ID字段3.3.2 CAN帧数据字段3.3.3 帧错误检测领域3.3.4 时间通道3.3.5 混合通道 3.4 构建信道带宽公式3.5通道矩阵3.6 结论 第四章…

视频集中存储/云存储平台EasyCVR级联下级平台的详细步骤

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

前台页面从数据库中获取下拉框值

后端&#xff1a;查询所有信息 前台&#xff1a;elementUI <el-select v-model"searchData.stationName" clearable> <el-option :label"item.stationName" :value"item.stationName" v-for"item in stationNameList&quo…

GoLong的学习之路,进阶,标准库之并发(context)补充并发三部曲,你真的明白context吗?

其实对于&#xff0c;context来说&#xff0c;如果只是用来做并发处理就有些不太合适。因为对于golang来说&#xff0c;context应用场景不仅在并发有用&#xff0c;并且在网络链接&#xff0c;http处理&#xff0c;gorm中都有体现。但是其实&#xff0c;本质来说。以上这些场景…