鱼眼相机变普通相机,利用Transform进行球面变换

Abstract

高分辨率广角鱼眼图像在自动驾驶等机器人应用中变得越来越重要。然而,使用普通的卷积神经网络或视觉变换器处理这类数据时会遇到问题,因为在将其投影到平面上的矩形网格时会引入投影和失真损失。为了解决这个问题,我们引入了HEAL-SWIN变换器。HEAL-SWIN将天文学和宇宙学中常用的高度均匀的Hierarchical Equal Area iso-Latitude Pixelation (HEALPix)网格与Hierarchical Shifted-Window (SWIN)变换器结合,创建了一个高效灵活的模型,能够在高分辨率、无失真的球面数据上进行训练。在HEAL-SWIN中,利用HEALPix网格的嵌套结构来执行SWIN变换器的补丁和窗口操作,使网络能够以最小的计算开销处理球面表示。我们展示了我们的模型在合成和真实汽车数据集以及其他图像数据集上的优越性能,包括语义分割、深度回归和分类任务。

代码地址:

https://github.com/JanEGerken/HEAL-SWIN

Introduction

作为同时解决所有这些问题的一种新方法,我们提议将经过调整的视觉变换器与Hierarchical Equal Area iso-Latitude Pixelisation (HEALPix) 网格结合起来 [23]。HEALPix 网格是为了捕捉 MAP 和 PLANCK 卫星对宇宙微波背景高分辨率测量而开发的,具有在球面上均匀分布的网格点,使每个像素区域相等。这与文献中使用的大多数其他网格如 Driscoll–Healy 网格或二十面体网格形成对比。
在我们的模型中,我们称之为 HEAL-SWIN,我们使用修改后的 Hierarchical Shifted-Window (SWIN) 变换器直接在HEALPix 网格上进行学习,计算开销极小。SWIN 变换器在称为窗口的像素块上执行注意力操作,这与 HEALPix 网格的嵌套结构非常匹配(见图1)。为了全局分布信息,SWIN 变换器在每一层中移动窗口,创建重叠区域。在 HEAL-SWIN 中,我们采用相同的原则,但将其调整以适应 HEALPix 网格的结构。特别是,我们提出了两种不同的球面窗口移动策略:一种是与 HEALPix 网格的分层结构对齐,另一种是从一个极点到另一个极点的螺旋移动。

图片

Method

3. HEAL-SWIN

我们提议将SWIN-transformer与HEALPix网格结合,形成能够在球面上进行高分辨率图像训练的HEAL-SWIN-transformer。在本节中,我们详细描述HEAL-SWIN模型的结构。

3.1. SWIN transformer

SWIN-transformer是一种计算效率高的视觉变换器,它关注从层到层移动的窗口,能够全局分布信息,同时减少了注意力在像素数量上的二次扩展。在SWIN-transformer的第一层中,像素的方块被组合成称为补丁的标记,以降低输入图像的初始分辨率。每个后续的SWIN层包括两个变换器块,这些块在称为窗口的补丁方块上执行注意力操作。在计算第二个变换器块的注意力之前,窗口沿着补丁网格轴移动半个窗口大小。通过这种方式,信息分布跨越窗口边界。为了降低空间分辨率,补丁方块的两乘两块周期性合并。
在此设置中的一个重要细节是,在图像边界处,移位会导致部分填充的窗口。在这里,SWIN-transformer使用来自其他部分填充窗口的补丁填充窗口,然后执行一个掩码版本的自注意力,该自注意力不会关注来自原始图像不同区域的像素对。
对于本文中考虑的深度估计和分割任务,我们使用SWIN-transformer的UNet变体,它通过跳跃连接连接编码层和对应的解码层。解码层与编码层相同,只是补丁合并层被补丁扩展层替换,该层将一个补丁扩展为两乘两块补丁,使整个模型的输出分辨率与输入相同。

3.2. The HEALPix grid

在HEAL-SWIN-transformer中,补丁不像原始的SWIN-transformer那样与底层的矩形像素网格相关联,而是与球面上的HEALPix网格相关联。HEALPix网格由十二个相等面积的不同形状的四边形(四边形)构成,这些四边形将球面分割(在图1左上方的球体中用红色绘制)。网格的像素然后放置在这些四边形的中心。得到的位置按照嵌套顺序排列,从基本分辨率四边形的迭代子分割中依次降序(如图3所示),或者按照从一个极点到另一个极点的等纬度环顺序排列。为了处理这种数据结构,我们使用一维版本的SWIN变换器,它操作这些HEALPix像素位置的有序列表。为了检索特定分辨率下的HEALPix像素位置,转换嵌套和环索引,并在HEALPix网格中进行插值,我们使用Python包healpy。

图片

3.3. HEAL-SWIN

在HEAL-SWIN中,我们调整了SWIN变换器的补丁、窗口和移位机制,以适应HEALPix网格,使变换器能够在数据的球面表示上进行操作。

3.3.1 补丁和窗口HEALPix网格的嵌套结构与SWIN变换器的补丁、窗口、补丁合并和补丁扩展操作非常匹配。因此,对SWIN变换器的修改导致了最小的计算开销。输入数据按照上文3.2节中描述的嵌套顺序提供为列表。因此,我们从模型的一维版本开始(与通常用于图像的二维版本相反)。然后,将输入像素的补丁操作转换为将连续像素连接成补丁。由于HEALPix网格的嵌套顺序和均匀性,得到的补丁覆盖了球面上相同大小的四边形区域。

3.3.2 移位

如上所述,为了在图像中全局分布信息,SWIN变换器在每第二个注意力层沿着图像的两个轴线上移动半个窗口大小。我们在HEALPix网格中尝试了两种不同的执行移位的方式。在原始SWIN-transformer的像素网格中移位的最直接推广是在HEALPix网格中沿着基本分辨率像素的四边形轴线进行移位,参见图3和图4(左侧)。我们称之为网格移位,并在两个方向上移动半个窗口。类似于原始SWIN的移位方案,在由网格覆盖的半球边缘存在边界效应。此外,由于基础像素相对位置的对齐,移位在图像内部的某些基础像素边界处必然会发生冲突。与原始SWIN变换器类似,这些效应通过重新排列问题像素以填充所有窗口,并随后屏蔽注意机制以不处理源自球体不同区域的像素对来处理。图4中用黄色突出显示了相应的像素。

图片

在螺旋移位方案中,我们首先将嵌套顺序转换为环顺序,然后在该列表上执行nshift个单位的滚动操作。

最后,我们再转换回嵌套顺序。

通过这种方式,窗口沿着方位角按nshift像素移动,由于恒纬度圆的长度减小,极向逐渐变大,导致轻微的畸变,参见图4(右侧)。

与网格移位方案类似,我们遇到边界效应。

在螺旋移位中,这些效应发生在极点和由网格覆盖的半球边界处。

这些效应再次通过重新排列像素并适当地屏蔽注意机制来处理。

在这种方案中,图像内部没有边界效应。

这两种移位策略都可以被实现。

Experiments

图片

图片

图片

图片

图片

图片

总结

本的主要贡献如下:

1.我们构建了HEAL-SWIN变换器,它通过将球面HEALPix网格与调整后的SWIN变换器结合,可以处理高分辨率的球面表示数据。通过利用HEALPix和SWIN中类似的层级结构,我们为HEALPix网格构建了窗口和移位机制,有效处理仅覆盖球面部分区域的数据。

2.我们首次将汽车应用中的鱼眼图像视为无畸变的球面信号。我们展示了这种方法在合成和真实汽车数据集上进行深度估计和语义分割的优越性。

3.为了将HEAL-SWIN与其他处理球面表示的模型进行比较,我们在Stanford 2D-3D-S室内鱼眼数据集上进行了基准测试,发现我们的模型优于可比较的球面模型。

引用CVPR2024文章:

HEAL-SWIN: A Vision Transformer On The Sphere

关注我的公众号auto_driver_ai(Ai fighting), 第一时间获取更新内容。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

雷达组网拼图3.0数据掌握和python解析处理

废话不多说,先展示雷达图 以反射率为例: 核对数据格式 Z_RADA_C_BABJ_20240705043615_P_DOR_ACHN_CREF_20240705_043000.bin数据分析认识 1. 组网产品分类:组网产品包括组网混合扫描反射率(HSR),组网组…

Qt-事件与信号

事件和信号的区别在于,事件通常是由窗口系统或应用程序产生的,信号则是Qt定义或用户自定义的。Qt为界面组件定义的信号往往通常是对事件的封装,如QPushButton的clicked()信号可以看做对QEvent::MouseButtonRelease类事件的封装。 在使用界面组…

Android Studio - adb.exe已停止运作的解决方案

adb.exe 是Android Debug Bridge 的缩写,它是Android SDK 中的一个调试工具,允许开发者通过命令行界面与设备进行交互,执行各种操作,如运行设备的shell、管理模拟器或设备的端口映射、在计算机和设备之间上传/下载文件、将本地APK…

鸿蒙语言基础类库:【@system.mediaquery (媒体查询)】

媒体查询 说明: 从API Version 7 开始,该接口不再维护,推荐使用新接口[ohos.mediaquery]。本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import mediaquery from sy…

PySide在Qt Designer中使用QTableView 显示表格数据

在 PySide6 中,可以使用 Qt Model View 架构中的 QTableView 部件来显示和编辑表格数据。 1、创建ui文件 在Qt Designer中新建QMainWindow,命名为csvShow.ui。QMainWindow上有两个部件:tableview和btn_exit。 2、使用pyuic工具将ui文件转换为…

使用IDEA编写lua脚本并运行

下载lua https://github.com/rjpcomputing/luaforwindows/releases 是否创建桌面快捷方式:我们的目标是使用IDEA编写lua脚本,所以不需要勾选。后面需要的话,可以到安装目录下手动创建快捷方式 环境变量自动配置 安装后会自动配置好环境变量…

从零开始读RocketMq源码(五)Consumer消费Message流程解析

目录 前言 准备 拉取服务和重平衡服务启动 初识PullRequest 重平衡服务 对重平衡资源进行排序 MessageQueue消息队列集合来源 Consumer消费者集合数据来源 确实分配资源策略 执行分配策略 初始化ProcessQueue 初始化PullRequest 内存队列填充PullRequest 消息拉取…

TikTok用户必看:代理IP的优缺点深度剖析

在咱们这庞大的网络世界里,TikTok就像是夜空中最亮的星星,吸引着全世界的人们。它不仅仅是个让大家开心的地方,更是个能让不同地方的人互相了解、分享生活的神奇平台。但你有没有想过,要是能让这个连接更顺畅,让TikTok…

h5点击电话号跳转手机拨号

需要使用到h5的 <a>标签 我们首先在<head>标签中添加代码 <meta name"format-detection" content"telephoneyes"/>然后再想要的位置添加代码 <a href"tel:10086"> 点击拨打&#xff1a;10086 </a> 这样功能就实现…

【CSS in Depth 2 精译_019】3.2 CSS 的盒模型

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…

LLaMA 数据集

LLaMA的训练数据集来源多样&#xff0c;涵盖了多个不同的数据集和预处理步骤。以下是详细的描述&#xff1a; 公开数据来源和预处理 CommonCrawl [67%]&#xff1a; 使用CCNet管道&#xff08;Wenzek等人&#xff0c;2020年&#xff09;对2017年至2020年间的五个CommonCrawl转…

Vue3 + uni-app 微信小程序:仿知乎日报详情页设计及实现

引言 在移动互联网时代&#xff0c;信息的获取变得越来越便捷&#xff0c;而知乎日报作为一款高质量内容聚合平台&#xff0c;深受广大用户喜爱。本文将详细介绍如何利用Vue 3框架结合微信小程序的特性&#xff0c;设计并实现一个功能完备、界面美观的知乎日报详情页。我们将从…

生成式AI的未来:对话的艺术与代理的实践

生成式 AI 的发展方向&#xff0c;是 Chat 还是 Agent&#xff1f; 随着生成式AI技术的不断进步&#xff0c;关于其未来发展方向的讨论也愈发激烈。究竟生成式AI的未来是在对话系统&#xff08;Chat&#xff09;中展现智慧&#xff0c;还是在自主代理&#xff08;Agent&#x…

《驾驭AI浪潮:伦理挑战与应对策略》

AI发展下的伦理挑战&#xff0c;应当如何应对&#xff1f; 人工智能飞速发展的同时&#xff0c;也逐渐暴露出侵犯数据隐私、制造“信息茧房”等种种伦理风险。随着AI技术在社会各个领域的广泛应用&#xff0c;关于AI伦理和隐私保护问题日趋凸显。尽管国外已出台系列法规来规范…

npm安装依赖包报错,npm ERR! code ENOTFOUND

一、报错现象&#xff1a; npm WARN registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning ETIMEDOUT: request to https://registry.npmjs.org/vue failed, reason: connect ETIMEDOUT 104.16.23.35:443 npm WARN registry Using stale data…

【扁平化多级双向链表】python刷题记录

进入链表的遍历模块了 好复杂的题目描述。。。 DFS深度遍历扁平拼接 """ # Definition for a Node. class Node:def __init__(self, val, prev, next, child):self.val valself.prev prevself.next nextself.child child """class Soluti…

Windows双网卡上网原理以及配置方法

目录 1. 背景 2. IP路由原理 3. windows双网卡上网解决方案 3.1. 基础配置解决方案 3.2. 高阶配置解决方案 1. 背景 在windwos上使用多网卡在工作和生活中是一个常见的操作&#xff0c;比如为了获取内部消息将有线连接到内部局域网中&#xff0c;为而了访问外网又将电脑的…

申请https证书的具体流程

申请HTTPS证书的具体流程通常涉及以下步骤&#xff0c;不过请注意&#xff0c;具体细节可能因不同的证书颁发机构&#xff08;CA&#xff09;而有所差异&#xff1a; 1、确定证书类型&#xff1a; 证书类型&#xff1a;根据需求选择合适的SSL证书类型。常见的有DV&#xff08;…

Windows下使用Cygwin创建rsync服务端

1 下载Cygwin 访问官网Cygwin&#xff0c;点击setup-X86_64.exe即可开始下载 2 安装 前面全部默认。路径可以自己选择&#xff0c;站点选阿里云的&#xff0c;等待安装即可 3 配置 使用打开Cygwin安装后创建的快捷方式窗口&#xff0c;输入下面的指令将windows用户导入到cyg…

如何将几百兆的包优化到几十兆----记一次vue项目的打包优化过程

打包优化 现象 前段时间开发的时候遇到客户反馈的一个问题 界面无法打开&#xff0c;显示白屏&#xff0c;控制台无报错 经过我们在开发环境&#xff0c;测试环境反复测试都没复现出客户的问题&#xff0c;然后我们又不停的在生产环境上找问题&#xff0c;也没复现出来 最…