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 网格的分层结构对齐,另一种是从一个极点到另一个极点的螺旋移动。

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

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。

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

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中用黄色突出显示了相应的像素。

鱼眼相机变普通相机,利用Transform进行球面变换_数据集_03

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

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

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

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

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

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

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

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

Experiments

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

鱼眼相机变普通相机,利用Transform进行球面变换_数据集_05

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

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

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

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


总结

本的主要贡献如下:

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), 第一时间获取更新内容。

本的主要贡献如下:

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), 第一时间获取更新内容。