【论文阅读】CompletionFormer:深度完成与卷积和视觉变压器

【论文阅读】CompletionFormer:深度完成与卷积和视觉变压器

文章目录

  • 【论文阅读】CompletionFormer:深度完成与卷积和视觉变压器
    • 一、介绍
    • 二、联系工作
      • 深度完成
      • Vision Transformer
    • 三、方法
    • 四、实验结果

CompletionFormer: Depth Completion with Convolutions and Vision Transformers

  
给定稀疏深度和相应的RGB图像,深度补全旨在将稀疏测量值在整个图像中进行空间传播,以获得密集的深度预测

尽管基于深度学习的深度补全方法取得了巨大的进步,但卷积层或图模型的局部性使得网络难以对像素之间的长期关系进行建模

  

虽然最近完全基于transformer的体系结构在全局接受场方面取得了令人鼓舞的结果,但由于其局部特征细节的恶化,与发达的CNN模型相比,性能和效率差距仍然存在

  

但由于其局部特征细节的恶化,与发达的CNN模型相比,性能和效率差距仍然存在

联合卷积注意和变形块(Joint Convolutional Attention and Transformer block, JCAT)

  

作为构建金字塔结构深度补全模型的基本单元

在室外KITTI深度 和 室内NYUv2数据集

  

一、介绍

主动深度传感在性能上取得了显著的进步,并在自动驾驶和增强现实等众多应用中展示了其实用性
  
雷达传感器的扫描线数量有限,有效/正确深度点之间的距离仍然可能很远

深度补全技术[2,16,26,31]近年来受到了广泛关注,其目标是通过稀疏深度测量和相应的RGB图像(即RGBD)补全和重建整个深度图
  

对于深度补全,一个关键是获得相邻像素之间的深度亲和力,以便将可靠的深度标签传播到周围环境

稀疏深度可能由于噪声甚至深度传感器没有返回测量值而高度稀疏

  

所有这些属性都要求网络具有捕获像素之间局部和全局相关性的潜力。

目前的深度补全网络通过广泛使用的卷积神经网络(cnn)或图神经网络来收集上下文信息

  

GuideFormer采用了完全基于transformer的架构来实现全局推理

尽管可靠的深度点可以分布在任何距离上,但探索这两种不同范例(即cnn和Transformer)的优雅集成还没有实现

  
提出CompletionFormer,这是一种金字塔结构,将基于cnn的局部特征与基于transformer的全局表示相结合

  

面临两个缺口:

  • RGB和深度输入之间的内容缺口
  • convolution和Transformer之间的语义差距

  

我们建议在网络早期嵌入RGB和深度信息

并且可以在整个网络中聚合多模态信息。考虑到卷积和Transformer的融合,以往的工作从几个不同的角度对图像分类和目标检测进行了探索
  

我们将卷积注意和Transformer纳入一个块中,并将其作为基本单元来构建我们的多尺度网络

使Transformer层更加轻量级。对于与卷积相关的部分,常见的选择是使用普通卷积,如倒残差块

卷积和Transformer之间巨大的语义差距以及Transformer丢失的局部细节要求卷积层增加自己的容量来补偿它。根据这一原理,我们进一步引入空间和通道注意来增强卷积

  
信息交换和融合有效地发生在我们的网络的每一个块

  
贡献:

  • 我们建议将视觉转换器与卷积注意层集成到一个块中进行深度补全
  • 引入了一个单分支网络结构,即CompletionFormer
  • 与纯基于Transformer的方法相比,效率显着提高
  • CompletionFormer在深度补全方面有了很大的改进,特别是在实际应用中经常出现的深度非常稀疏的情况

  
我们模型的深度为 3,3,4,1 的11层结构,在补全深度上应该具有很好的效果

  

二、联系工作

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  

深度完成

随着有源深度传感器的出现,场景深度补全已成为计算机视觉中的一项基本任务

全卷积网络已经成为当前最先进的深度完成的原型架构

在监督或自监督框架内预测密集输出。为了保持给定稀疏深度下的准确测量值,并对最终深度图进行细化

但性能受到卷积U-Net骨干网容量的限制

  

增强了U-Net骨干网对本地和全局连贯上下文信息的表达能力,证明在提高性能方面是有效的

  

Vision Transformer

Transformer 首先被引入到自然语言处理中

语义分割等领域也显示出巨大的潜力

而是探索将Transformer和convolution结合到一个block中进行深度补全

  

同时使用卷积和Vision Transformer的MPViT[12]和CMT[6])相比,

我们提出的联合卷积关注和Transformer块在公共基准测试中实现了更高的效率和性能
  

三、方法

我们的目标是在深度补全任务中引入局部特征和全局上下文信息,以便从任何距离收集可靠的深度提示

使用我们的JCAT块构建的主干进行多尺度特征提取,解码器提供全分辨率特征用于初始深度预测
    

在这里插入图片描述
  

RGB and Depth Embedding

多模态信息融合具有以下几个优点:

  • 使每个像素的特征向量同时具有RGB和深度信息,使得深度无效的像素仍然有机会通过可靠的深度测量根据外观相似性进行校正
  • 以下网络只需要一个分支,实现效率高。因此,我们首先使用两个单独的卷积对输入的稀疏深度图S和RGB图像i进行编码,输出经过另一个卷积层连接并进一步处理,得到包含两个源内容的原始特征

  

联合卷积注意与变压器编码器

如何在像素之间建立连接来实现可靠像素的深度传播,同时避免不正确的像素,已经得到了广泛的研究

基于注意力的图传播已成为这一目的的主要操作

  

MPViT和CMT是自注意与卷积相结合的两种具有代表性的最先进网络

利用空间和通道的关注增强了基于卷积的路径的表示能力

  
联合卷积注意与变形块

我们的JCAT块可以以并行或级联的方式组织

在这里插入图片描述

它包含一个具有多头机制的空间减少注意(SRA)层和一个前馈层(FNN)

  

允许不同尺度的特征表示有效地相互通信。

在第一阶段,为了降低Transformer层带来的计算成本和内存开销,我们使用ResNet34中的一系列BasicBlocks进行处理

在接下来的四个阶段,我们将介绍我们提出的JCA T块作为框架设计的基本单元

  

给定来自补丁嵌入模块或最后一个联合块的输入特征F∈R Hi×Wi×C(第i阶段特征的高度和宽度分别为Hi和Wi

一步减小K和V的空间尺度以减少内存消耗,然后进行自注意:
  

在这里插入图片描述

  

SPN的细化和损失函数

考虑到稀疏输入经过U-Net后可能不能很好地保留准确的深度值,空间传播网络已成为最终细化的标准操作

增强的U-Net骨干网,网络能够提供良好的深度亲和力

  

针对cspn++消耗较多的计算成本,我们采用非局部空间传播网络[进行进一步细化

在这里插入图片描述

d表示原始深度的保留程度

  

解码器还输出亲和矩阵w,并由解码器预测的置信度映射进行调制,以防止不太自信的像素传播到邻居中,无论亲和度有多大

采用L1和L2联合损失来监督网络训练

  
在这里插入图片描述

  

四、实验结果

  
NYUv2数据集:

  • 在464个室内场景中捕获的RGB和深度图像组成
  • 按照之前深度补全方法的类似设置
  • 训练集中均匀采样的50,000张图像上进行训练
  • 测试集中的654张图像上进行测试以进行评

  

KITTI深度补全(DC)数据集:

  • 包含86 898个训练数据,其中1 000个用于验证,1 000个用于无ground truth的测试
  • V elodyne HDL-64e获得的原始深度图是稀疏的,大约覆盖5.9%像素
  • 密集的地面真相是通过将11个连续时间帧的激光雷达扫描收集到一个帧中生成的,产生了近30%的注释像素

  
在这里插入图片描述

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

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

相关文章

S7-200 SMART 应用第003期-数字量输入模块接线

概述 S7-200 SMART作为西门子的一款高性价比PLC产品,很多工控电气工程师在选型和电路图设计时,对模块接线并不是非常清楚,为了使大家更好的了解和掌握该部分,本文从CPU本体、数字量输入(DI)、数字量输出(DQ)向大家详细介绍S7-200 SMART 详细的接线和注意事项。 不同型号C…

Linux学习之路 -- 进程篇 -- PCB介绍2 -- 标识符和进程创建

前面我们介绍了的进程的标识符&#xff0c;下面继续介绍进程标识符和进程创建的知识。 目录 一、进程创建 <1>fork函数的返回值 <2>创建子进程的目的 <3>代码共享 二、fork函数的相关问题 <1>为什么给父进程返回子进程的pid&#xff0c;给子进程…

OpenHarmony开发-系统烧录

本文详细介绍了烧录OpenHarmony系统到开发板的操作流程。从基础的硬件准备和软件环境设置入手&#xff0c;详细说明了如何配置开发环境、构建系统镜像等过程&#xff0c;详细描述了烧录过程中的关键步骤&#xff0c;以及如何使用专用工具将OpenHarmony系统镜像传输到开发板。同…

CSS层叠样式表学习(引入方式)

&#xff08;大家好&#xff0c;今天我们将继续来学习CSS引入方式的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 五、CSS的三种样式表 5.1 CSS的三种样式表 按照CSS样式书写的位置(或者引入方式)&#xff0c;CSS样式表可…

11-pyspark的RDD的变换与动作算子总结

目录 前言 变换算子动作算子 前言 一般来说&#xff0c;RDD包括两个操作算子&#xff1a; 变换&#xff08;Transformations&#xff09;&#xff1a;变换算子的特点是懒执行&#xff0c;变换操作并不会立刻执行&#xff0c;而是需要等到有动作&#xff08;Actions&#xff09;…

蓝桥杯每日一题:公约数(gcd)

题目描述&#xff1a; 给定两个正整数 a 和 b。 你需要回答 q 个询问。 每个询问给定两个整数 l,r&#xff0c;你需要找到最大的整数 x&#xff0c;满足&#xff1a; x 是 a和 b 的公约数。l≤x≤r。 输入格式 第一行包含两个整数 a,b。 第二行包含一个整数 q。 接下来…

并发包中的CompletableFuture介绍及使用示例

一、抛砖引玉——优化一个计数任务 1.1、需求&#xff1a;计算从1加累加到100的结果 1.1.1、普通的实现代码示例 package com.example.mavendemo.completablefuture;public class NormalTest {public static void main(String[] args) {long startTime System.currentTimeM…

C#开发中一些常用的工具类分享

一、配置文件读写类 用于在开发时候C#操作配置文件读写信息 1、工具类 ReadIni 代码 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks;namesp…

LeetCode 1017. 负二进制转换

解题思路 相关代码 class Solution {public String baseNeg2(int n) {if(n0) return "0";String s"";while(n!0)if(Math.abs(n)%20){nn/(-2);ss0;}else{ss1; n (n-1)/(-2);}String t reverse(s);return t;}public String reverse(String s){Str…

ZYNQ学习Linux 基础外设的使用

基本都是摘抄正点原子的文章&#xff1a;《领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf》&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 工程的创建参考&#xff1a;《ZYNQ学习之Petalinux 设计流程实战》 一、GPIO 之 LED 的使…

自定义实现shell/bash

文章目录 函数和进程之间的相似性shell打印提示符&#xff0c;以及获取用户输入分割用户的输入判断是否是内建命令执行相关的命令 全部代码 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&#xff0c;风趣幽默&#…

(二)小案例银行家应用程序-创建DOM元素

● 上图的数据很明显是从我们账户数组中拿到了&#xff0c;我们刚刚学习了forEach&#xff0c;所以我们使用forEach来创建我们的DOM元素&#xff1b; const displayMovements function (movements) {movements.forEach((mov, i) > {const type mov > 0 ? deposit : w…