论文阅读:Omnidirectional Image Super-resolution via Bi-projection Fusion

对于全景图像(ODIs)的超分辨率的技术有:等矩投影(ERP)但是这个没有利用 ODIs 的独特任何特性。ERP提供了完整的视场但引入了显著的失真,而立方体映射投影(CMP)可以减少失真但视场有限。

作者提出了一种新颖的双投影全景图像超分辨率(BPOSR)网络,以利用上述两种投影的几何特性。然后,为这两种投影设计了两种定制的注意力方法:用于ERP的水平条纹变换块(HSTB)和用于CMP的视角变换变换块(PSTB)。此外,作者提出了一种融合模块,使这些投影相互补充。

正文

将传统的二维图像的超分辨率方法用于全景图像的超分辨率是不可行的,因为将球面全景图像投影到二维平面时会出现失真和不连续性。同时,图像域之间的不同特性增加了ODIs重建的复杂性。

当前的用于全景图像的超分辨率网络主要是集中在了 ERP 域中解决这一任务,没有考虑 ODIs 中使用的各种投影格式。

ODIs中最常用的两种投影格式是等矩投影(ERP)和立方体映射投影(CMP)。具体而言,ERP提供广泛的全局视图但引入显著失真,而CMP失真较小,但仅提供有限的中央视图,并且边界不连续。

所以作者为了可以充分利用这两种投影的任何特性与互补信息,开发了双投影全景图像超分辨率(BPOSR)网络,使得 ERP 与 CMP 分支的信息流同时进行,并允许不同投影特征之间的交互和融合。

从下图可以看出,ERP 与 CMP 的不同的特性:

(a) ERP水平相似性。将ERP在水平方向上划分为不同区域后,可以观察到每个区域内存在多尺度相似性。

(b) CMP透视可变性。橙色箭头表示球面旋转,绿色箭头表示投影到CMP上。通过球面旋转和投影到CMP上,CMP的六个表面捕捉到不同的信息。

基于这些观察,我们为ERP引入了水平条纹变换块(HSTB),为CMP引入了视角变换变换块(PSTB),以充分挖掘不同投影的内在特性。最后,我们开发了一个块注意融合模块(BAFM),以促进来自不同投影和深度的特征之间的信息交互,并通过分配不同的注意权重来增强网络的表示学习能力。

贡献

  • 提出了一个双投影全景图像超分辨率(BPOSR)网络,利用两种全景投影,即ERP和CMP,促进两种投影信息的交互。
  • 通过分析ERP和CMP的图像几何特性,引入了水平条纹变换块(HSTB)和视角变换变换块(PSTB),以利用两种投影的内在特性。
  • 引入了一个块注意融合模块(BAFM),促进来自不同投影和深度的特征之间的融合。

ODIs 分析

等距圆柱投影(ERP)

ERP 通过经度和纬度均匀采样球体。设经度和纬度分别为φ和θ,其中, ( ϕ , θ ) ∈ [ − π , π ] ∗ [ − π 2 , π 2 ] (\phi, \theta) \in [-\pi, \pi] * [-\frac{\pi}{2}, \frac{\pi}{2}] (ϕ,θ)[π,π][2π,2π]. 角度位置可以通过以下公式转换为标准球体上的坐标:

从以下的图片中可以看到,ERP将球体投影到单个表面,从而获得宽广的视场。然而,由于投影中纬线的均匀间距和平行特性,ERP引入了显著的失真,尤其是在极附近。随着纬线向极点收敛,失真变得更加明显,导致图像拉长和变形。

水平相似性

如图2(a)所示,ERP图像的水平区域普遍存在多尺度相似性。因此,传统的全局尺度各向同性注意力机制对于处理ERP图像特征变得冗余。

因此,为ERP提出了一种更合适的方法,即利用水平窗口来建模图像内部依赖关系。此外,通过结合这些水平窗口内的局部感知和上下文信息,我们可以引入有限的空间范围来降低注意力的复杂性。

立方体映射投影(CMP)

CMP 是将球体投影到立方体的六个表面上。所得的六个表面是特定的透视图像,对应于六个视图方向:前、后、左、右、上和下。

可以从图 3 b 中看到,与等距圆柱投影(ERP)相比,CMP 在图像失真方面有显著减少。然而,它通过破坏不同面边界处物体的连续性,引入了不连续性问题。

透视可变性

CMP 将球体投影到六个平面,每个平面可以从不同的视角获取球体的信息。如图 2 (b) 所示,当球体旋转并投影到 CMP 时,六个平面的视角会发生变化。

基于这一观察,我们提出了 CMP 的透视可变性。新增加的视角使得信息的可用性得以增强。通过在 CMP 上改变视角,我们有效地增强了 CMP 的特征表示,并解决了 CMP 中图像不连续性的固有局限性。

整体架构

模型主要由 3 个分支组成:ERP分支、CMP分支和融合分支。给定一个低分辨率的输入 I E R P l r I^{lr}_{ERP} IERPlr,会先将这个转换为 CMP 形式的 I C M P l r I^{lr}_{CMP} ICMPlr,然后使用 3*3 卷积分别提取两个投影的浅层特征,公式如下:

E2C 表示从 ERP 到 CMP 的投影, W 3 ∗ 3 W_{3*3} W33 表示 3*3 的卷积。接下来就是提取 ERP 与 CMP 分支的深层特征,公式如下:

HSAB(·)和PSAB(·)分别是水平条纹变换块和视角变换块。

同时,为了促进两个投影之间的信息交互与特征融合,提出了一种特征交互融合块,这个块会利用 F E R P i F_{ERP}^i FERPi F C M P i F_{CMP}^i FCMPi 生成融合特征,然后将结果特征施加到源特征上。这个过程如下:

最后,为了整合来自不同分支和不同深度的特征,我们开发了一个块注意力融合模块(BAFM),以生成最终特征 F f F_f Ff,如下所示:

最后,通过具有单个3×3卷积和像素 shuffle 操作的上采样模块来重建高分辨率图像 F u p F_{up} Fup

水平条纹变换块(HSTB)

HSTB是通过利用ERP的水平相似性设计的,它由多个水平Swin变换层(HSTL)和一个卷积层组成,如图4(a)所示。

与传统的 SwinIR 不同,作者将输入特征分为水平窗口,并对这些特征应用移位窗口自注意力机制。如下图所示:

HSTL利用水平条纹窗口内的自注意力机制来建立长期依赖关系。通过将注意力计算限制在水平窗口内,我们能够在更广泛和有效的范围内建立依赖关系,从而全面探索ERP中的上下文信息。

视角变换块(PSTB)

PSTB是基于CMP的视角可变性设计的。如图4(b)所示。PSTB由多个具有移位窗口自注意力的Swin变换层(Swin transformer layer, STL)和一个卷积层组成。

通过在输入之后和输出之前部署视角变换层(PSL)来引入视角变换。

PSL首先使用C2E将CMP特征 F C M P F_{CMP} FCMP 转换为ERP,然后在ERP域内水平滚动特征。PSL的最终输出是通过E2C将特征转换回CMP得到的,公式如下:

F C M P = E 2 C ( R ( C 2 E ( F C M P ) ) ) F_{CMP}=E2C(R(C2E(F_{CMP}))) FCMP=E2C(R(C2E(FCMP)))
R R R 是水平滚动操作。移位窗口自注意力模块的建模能力受限于不同视图之间缺乏连接,这一限制阻碍了它们充分挖掘CMP的特性。PSTB 通过引入不同视角之间的互连,使得建模范围更广、更有效。

块注意力融合模块(BAFM)

从公式 11 中可以看到,BAFM 的输入特征来自不同的深度和投影。为了增强融合效果,作者开发了 BAFM,如下图所示:

BAFM 的核心是 3d 自注意力机制,它选择性地增强了具有重要贡献的特征块,同时抑制冗余特征块。通过这种方式,网络的整体表示能力得到了增强。

其公式如下:

这里的 3 D C o n v ( ) 3DConv() 3DConv() 表示 1 ∗ 1 ∗ 1 1*1*1 1113d 卷积。

这里的 s 为缩放因子, F m ∈ R N ∗ C ∗ H ∗ W F_m \in R^{N*C*H*W} FmRNCHW。最后,可以提到结果:

实验

使用 ODI-SR 与 SUN 360 验证了方法的有效性,这些数据集包含各种类型的全景场景。

与最先进的方法的比较

可以看到,模型在两个数据集上都优于其他的对手。优于所有的 SISR 网络。

定性结果

BPOSR 可以有效抑制伪影,并利用场景细节和内部自然图像统计来恢复高频内容。

消融研究

双投影与单投影

引入了BPOSR的两个替代变体:Variant-CMP和Variant-ERP,它们分别在两个分支中都使用ERP或CMP。可以看到,双投影优于其他的两个版本。

水平条纹 transformer 块的有效性

通过改变使用的窗口大小进一步验证了我们的ERP水平条纹注意力的有效性。

当使用相同的注意力区域大小时,水平选择优于方形版本。这表明水平窗口注意力比方形变体更适合建模ERP。

透视移位Transformer块的有效性。

当不对CMP应用透视移位时,WS-PSNR下降了0.14 dB。这一观察强调了视图转换在提高CMP性能方面的重要性。

块注意力融合模块的有效性

进行了使用1 × 1卷积和平均操作来替代BAFM的实验。表5显示,移除BAFM导致WS-PSNR性能下降0.10 dB,这表明我们的设计是有效的。

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

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

相关文章

汽车总线协议分析-FlexRay总线

随着汽车智能化发展,汽车增加安全性和舒适体验的功能增多,用于实现这些功能的传感器、ECU的数量也在持续上升,严重阻碍了线控技术的发展。常用的CAN、LIN等总线由于缺少同步性、确定性和容错性不能满足汽车线控系统(X-by-Wire)的要求。因此&a…

《算法导论》英文版前言To the teacher第4段研习录:有答案不让用

【英文版】 Departing from our practice in previous editions of this book, we have made publicly available solutions to some, but by no means all, of the problems and exercises. Our Web site, http://mitpress.mit.edu/algorithms/, links to these solutions. Y…

AI Agent工作流程:关于是使用 LangGraph 还是 LangChain 进行构建的完整指南

深入了解同一创建者 LangChain 和 LangGraph 的两个库:它们的关键构建块、它们如何处理其功能的核心部分,以及为您的用例在它们之间做出决定 语言模型为用户如何与 AI 系统交互以及这些系统如何通过自然语言相互通信开启了可能性。 在本文中&#xff0c…

qt QPrinter详解

1、概述 QPrinter类是Qt框架中用于打印输出的绘图设备。它表示打印出来的一系列页面,并提供了一组附加功能来管理特定于设备的特性,比如方向和分辨率。QPrinter可以生成PDF文档,也可以将内容发送到打印机进行实际打印。它继承自QPagedPaintD…

腾讯面试:如何解决哈希冲突?

我们面试时经常被问到HashMap是怎么解决哈希冲突的,很多同学对其含糊其词、一知半解。因此小编对相关知识进行了总结,希望帮助读者加深对其理解。 哈希表就是通过散列函数将键映射到定值,简单来说就是一个键对应一个值。 而通过散列函数映射…

数组中的四个函数(数组实现)

strlen&#xff08;输出长度&#xff09; #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { char str[100]; int count 0; // 提示用户输入字符串 printf("请输入一个字符串: &qu…

大数据-241 离线数仓 - 电商核心交易 业务数据表结构 订单、产品、分类、店铺、支付表

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

Linux-命令

文章目录 一. Linux的目录1. Linux的目录结构2. Linux的路径的描述方式3. home目录,当前工作目录4. 栗子 二. Linux命令入门1. 什么是命令,命令行2. Linux命令基础格式 三. 目录相关命令1. ls:展示当前工作目录下的内容2. cd:切换工作目录3. pwd:输出当前所在的工作目录4. 相对…

SpringBoot该怎么使用Neo4j - 优化篇

文章目录 前言实体工具使用 前言 上一篇中&#xff0c;我们的Cypher都用的是字符串&#xff0c;字符串拼接简单&#xff0c;但存在写错的风险&#xff0c;对于一些比较懒的开发者&#xff0c;甚至觉得之间写字符串还更自在快速&#xff0c;也确实&#xff0c;但如果在后期需要…

旋转图像

旋转图像 ​ 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 ​ 你必须在** 原地** 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,…

3D数据大屏实现过程,使用echarts、Next.js

&#x1f4dc; 本文主要内容 数据大屏自适应方案动效 echarts&#xff1a; 3D 立体柱状图动态流光折线图 3D 地球&#xff08;飞线、柱状图&#xff09;无限滚动列表 &#x1f50d; 大屏效果 数据大屏&#xff1a; 点击预览 &#x1f579; 运行条件 next 12.3.4echarts 5.4…

长文 | RAG的实战指南及探索之路

今天给大家带来一篇知乎孙鹏飞 的关于RAG实战的文章。 作者&#xff1a;孙鹏飞 知乎&#xff1a;https://zhuanlan.zhihu.com/p/6822534961. 背景介绍 RAG&#xff08;Retrieval Augmented Generation&#xff0c;检索增强生成 &#xff09;方法是指结合了基于检索的模型和生…

LeetCode—11. 盛最多水的容器(中等)

题目描述&#xff1a; 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;…

leetcode 63.不同路径||

1.题目要求: 2.题目代码: class Solution { public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {//创建dp数组的含义vector<vector<int>> dp;dp.resize(obstacleGrid.size());for(int i 0;i < dp.size();i){dp[i].…

C++:std::deque简介

std::deque 是 C 标准模板库&#xff08;STL&#xff09;中的一个双端队列&#xff08;Double-ended Queue&#xff09;容器。它是一种动态数组&#xff0c;允许快速地在序列的两端插入和删除元素&#xff0c;同时支持随机访问。 特点 双端操作 支持在队列头部和尾部快速插入和…

【Linux】基础IO_文件系统IO_“一切皆文件”_缓冲区

目录 1. 理解"⽂件" 1-1 狭义理解 1-2 ⼴义理解 1-3 ⽂件操作的归类认知 1-4 系统⻆度 访问文件&#xff0c;需要先打开文件&#xff01;那么是由谁打开文件&#xff1f;&#xff1f;&#xff1f; 操作系统要不要把被打开的文件管理起来&#xff1f; 2. 回顾…

nginx防盗链原理与实践

nginx防盗链的原理是基于http请求头中的referer来限制对资源的访问&#xff08;referer是用来告知浏览器该网页时从哪个页面链接来的&#xff09;&#xff0c;从而防止其他网站胃经授权直接链接资源。 nginx防盗链的作用是节省带宽和资源消耗&#xff0c;保护数据安全&#xf…

UG NX二次开发(Python)-UIStyler-选取点

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、设计一个UI界面3、创建长方体的代码4、需要引入的库5、测试验证1、前言 采用Python语言进行UG NX二次开发的资料比较少,我本来不是很认可采用Python进行二次开发的,但是近期有读者咨询…

linux环境中后台运行java程序

在生产环境&#xff0c;我们通常需要让java进程后台运行&#xff0c;并且即使会话关闭&#xff0c;进程也依然存在。 使用的命令&#xff1a; nohup java -jar xxx.jar -> aaa.log 2>&1 & 详细介绍下上面这条命令 &#xff08;1&#xff09;nohup&#xff1a;…

算法笔记:力扣15、三数之和

思路&#xff1a; 实现代码 class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> result new ArrayList<>(); Arrays.sort(nums); // 先对数组进行排序 for (int i 0; i < nums.length - 2; i) { /…