Joint Bilateral Upsampling

Abstract

图像分析和增强任务(例如色调映射、着色、立体深度和蒙太奇)通常需要在像素网格上计算解决方案(例如,曝光、色度、视差、标签)。计算和内存成本通常要求在下采样图像上运行较小的解决方案。尽管通用上采样方法可用于将低分辨率解插值到全分辨率,但这些方法通常假设插值先验平滑。

我们证明,在上述情况下,可用的高分辨率输入图像可以在联合双边上采样过程中用作先验,以产生更好的高分辨率解决方案。我们展示了上述每个应用程序的结果,并将它们与传统的上采样方法进行比较。

1 Introduction

最近,计算机图形和计算机视觉文献中展示了各种新的图像分析和图像处理方法,包括自动的和用户引导的。这些包括立体深度计算 [Scharstein 和 Szeliski 2002]、图像着色 [Levin 等人2004年; Yatziv 和 Sapiro 2006],高动态范围 (HDR) 图像的色调映射 [Reinhard 等人2005],以及最小图割在图像合成中的应用[Agarwala 等人2004]。所有这些方法都有一个共同的问题,即寻找全局解决方案:描述输入图像像素网格上的某些感兴趣值(深度、色度、曝光、标签等)的分段平滑函数。

数字图像的尺寸不断增长,从 25 万像素视频帧到数百万像素数码照片,再到最近由专用相机产生的千兆像素图像 [Flint 2007] 以及将多个图像拼接成全景图 [Kopf 等人,2007 年]。如此高分辨率对上述方法提出了艰巨的挑战,这些方法通常至少需要线性时间,更重要的是,需要线性空间来计算全局解。因此,为了对如此高分辨率的图像进行操作,必须首先将它们下采样到较低的分辨率以使计算易于处理。这对于交互式应用程序尤其重要。

一旦找到了适用于较小的下采样图像的解决方案,问题就变成了如何将解决方案上采样到输入图像的完整原始分辨率。上采样是一种基本的图像处理操作,通常通过将低分辨率图像与插值内核进行卷积,然后在新的(高分辨率)网格上对结果进行重新采样来实现。 Wolberg [1990] 对常见插值核进行了很好的调查。由于线性插值滤波器固有的平滑先验,以这种方式上采样的图像通常会出现锐边模糊的情况。

然而,对于上面引用的应用,可以以原始高分辨率输入图像的形式获得附加信息。忽略这些信息并单独依赖平滑先验显然不是最好的策略。我们建议利用除了低分辨率解决方案之外我们还拥有高分辨率图像的事实。特别是,我们证明联合双边上采样(JBU)操作可以从以非常低的分辨率计算的解决方案中产生非常好的全分辨率结果。我们展示了立体深度、图像着色、自适应色调映射和基于图形切割的图像合成的结果。

2 Bilateral Filters

双边滤波器是一种边缘保留滤波器,最初由 Tomasi 和 Manduchi [1998] 提出。它与更广泛的非线性滤波器相关,例如各向异性扩散和鲁棒估计[Barash 2002;杜兰德和多西 2002;埃拉德 2002]。双边滤波器使用空间(或域)滤波器内核和根据数据值本身评估的范围滤波器内核。更正式地说,对于某个位置 p,过滤结果为:

其中 f 是空间滤波器内核,例如以 p 为中心的高斯滤波器,g 是范围滤波器内核,以 p 处的图像值为中心。 Ω 是核 f 的空间支持度,kp 是归一化因子,即 f·g 滤波器权重之和。由于双边滤波器 f·g 随着范围距离和/或空间距离的增加而呈现更小的值,所以边缘被保留。

最近,我们看到了联合(或交叉)双边滤波器的引入,其中范围滤波器应用于第二个引导图像,例如\tilde{I},当尝试组合来自一个图像的高频和来自另一图像的低频时[佩奇尼格等人2004年;艾斯曼和杜兰德 2004]。因此,

与 (1) 的唯一区别是范围过滤器使用\tilde{I}而不是 I。

2.1 Previous Work

双边滤波器之前已用于各种图像处理任务。 Durand 和 Dorsey [2002] 将双边滤波器应用于 HDR 色调映射,并描述了一种快速近似,该近似最近在 [Paris 和 Durand 2006;韦斯 2006]。

Ramanath 和 Snyder [2003] 在去马赛克的背景下使用双边滤波器来提高边缘灵敏度。他们的方法仅限于具有固定的小上采样因子的拜耳模式,并且不像我们那样使用引导图像。

杜兰德等人[2005] 提到使用双边滤波器对光线追踪器的着色结果进行上采样。然而,论文中没有给出细节,也没有探索其他应用。

索尼等人[2001] 对立体图像进行上采样,其中一个视图比另一个视图具有更高的分辨率。他们的方法估计对齐映射,然后使用相邻电影帧的变形和填充来对低分辨率图像进行上采样。

3 Joint Bilateral Upsampling

与通用图像上采样相比,在我们感兴趣的问题中,我们可以原始高分辨率输入图像的形式获得附加信息。给定高分辨率图像\tilde{I} 和针对图像的下采样版本计算的低分辨率解 S,我们提出了一种简单的方法,应用联合双边滤波器对解进行上采样。

这个想法是将空间滤波器(通常是截断高斯滤波器)应用于低分辨率解 S,同时将类似的范围滤波器联合应用于全分辨率图像 \tilde{I}。令 p 和 q 表示 \tilde{I}中像素的(整数)坐标,p↓ 和 q↓ 表示低分辨率解 S 中对应的(可能是小数)坐标。然后获得上采样解\tilde{S} 为:

这与等式(2) 几乎相同。 例外的是,我们正在构建与图像相反的高分辨率解决方案,并同时在两种不同的分辨率下运行。

请注意,q↓ 在低分辨率解中仅采用整数坐标。因此,引导图像仅被稀疏采样,并且性能不依赖于上采样因子(参见第 5 节)。

4 Applications

在本节中,我们将演示联合双边上采样操作对于各种应用的有用性。

Tone Mapping:

随着高动态范围 (HDR) 成像的日益普及和实用 [Reinhard 等人2005],需要色调映射方法来在普通设备上显示 HDR 图像。多年来已经提出了多种此类方法(有关广泛的调查,请参阅 [Reinhard et al. 2005])。其中一些方法可以产生高质量的结果,但需要求解非常大的线性方程组 [Fattal 等人2002年;利钦斯基等人2006]。尽管这些系统很稀疏,并且可以使用多分辨率求解器有效地求解[Szeliski 2006],但处理当今的数百万像素图像仍然是一个挑战:一旦数据超出可用的物理内存,迭代扫描数据就会导致抖动。

我们如下应用联合双边上采样滤波器。令 I 为低分辨率 HDR 图像,T(I) 为由某个色调映射算子生成的色调映射图像。然后,相应的低分辨率解被定义为像素商 S = T(I)/I。换句话说,解决方案是一张曝光图,它说明了要在每个像素上应用的曝光校正量。这样的曝光图通常是平滑的,但可能沿着重要的图像边缘具有不连续性[Lischinski et al. 2006]。因此,它们是我们上采样技术的理想候选者。请注意,曝光图可能具有单个通道(如果仅调整了亮度)或多个通道(以支持任意色调操作)。图 2 显示了使用我们的技术上采样的曝光图与许多标准上采样方法的比较。联合双边上采样产生的结果在视觉上和数值上更接近真实情况。

5 Performance and Accuracy

联合双边上采样操作的复杂度为 O(Nr^{2}),其中 N 是输出图像大小,r 是域滤波器半径。性能与输出大小成正比,而不与上采样因子成正比,因为域滤波器始终应用于低分辨率解决方案。对于所有结果,我们使用了 5×5 高斯,它速度非常快,但仍然具有足够的空间支持来从一定距离拉取解值。我们的实现每百万像素输出大约需要 2 秒。

这比在全分辨率图像上运行原始算法要快得多。例如,色调映射器需要 80 秒才能处理 3.1 兆像素的图像,而我们的上采样只需要 6 秒即可对较小的解决方案进行上采样,而计算速度要快得多。 Levin 等人的彩色解算器[2004] 甚至更慢,需要几分钟才能获得百万像素大小的图像。如上所述,由于内存问题,我们无法运行非常高分辨率的解决方案,因此对低分辨率解决方案进行上采样是我们处理如此大图像的唯一方法。

JBU 完全是本地的,内存占用非常小。大图像可以在单次扫描中计算,其中任何时候仅分页。我们已经成功地将我们的方法应用于十亿像素图像的上采样色调映射解决方案 [Kopf 等人2007]。

在我们的实验中,我们通常将域滤波器的高斯 σd 设置为 0.5,并支持 5×5。范围滤波器高斯 σr 与应用密切相关。以下默认值对于我们尝试的图像效果很好:着色、立体深度和图形切割标签使用颜色值归一化为 [0,1] 区间的图像。 σr = 0.1 在大多数图像上效果良好。色调映射应用程序适用于无限的亮度值。我们发现将 σr 设置为值的标准差总是能给出良好的结果。

图 1 显示了 JBU 与其他上采样方法相比的 MSE 误差曲线。为了计算误差,我们计算了全分辨率解决方案(或者简单地使用全分辨率彩色图像或深度图进行着色和立体深度)作为地面实况。然后,我们在每个方向上按 2、4、8、16 和 32 倍进行下采样。然后,我们使用各种方法进行上采样并绘制与真实情况的差异。我们的滤波器在所有下采样级别上都表现良好,并且正如预期的那样,随着每增加一个下采样级别,相对改进都会增加。

毫不奇怪,MSE 误差随着上采样因子的增加而增加。但在实践中,应用程序常常会限制对问题进行下采样的程度。我们展示的结果是针对非常小的下采样图像的解决方案。由于某些应用程序需要一些 UI,因此您需要留下足够的图像,例如,在色调映射或着色的提示上涂鸦。

6 Conclusion

我们已经证明了当高分辨率先验可用于指导从低分辨率到高分辨率的插值时,联合双边上采样策略的好处。我们展示的四个应用程序相对于以前的“盲”上采样方法都有所改进。我们相信该策略适用于图像处理内外的许多其他领域。例如,通过粗简化网格计算的全局照明解决方案可以上采样为更精细的网格。域滤波器的内核可以用测地距离来测量,而范围内核将在高斯球上(法线的差异)。我们期待尝试对计算机图形学中的这个问题和其他感兴趣的问题进行联合双边上采样。

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

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

相关文章

只需十分钟快速入门Python,快速了解基础内容学习。零基础小白入门适用。

文章目录 简介特点搭建开发环境版本hello world注释文件类型变量常量数据类型运算符和表达式控制语句数组相关函数相关字符串相关文件处理对象和类连接mysql关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源…

matlab绘图函数plot和fplot的区别

一、背景 有的函数用plot画就会报错,显示数据必须为可转换为双精度值的数值、日期时间、持续时间、分类或数组。 如下图所示: 但用fplot函数就没有问题,因此这里记录一下两者的区别,如果使用不当,画出的图可能就是下…

以太网通讯协议小结--持续更新中

一、以太网介绍 以太网是一种产生较早,使用相当广泛的局域网技术,局域网就是一个区域的网络互联,可以使办公室也可以是学校等等,大小规模不一。 目前以太网根据速度等级分类大概分为:标准以太网(10Mbit/s…

Redis-Redis高可用集群之水平扩展

Redis3.0以后的版本虽然有了集群功能,提供了比之前版本的哨兵模式更高的性能与可用性,但是集群的水平扩展却比较麻烦,今天就来带大家看看redis高可用集群如何做水平扩展,原始集群(见下图)由6个节点组成,6个节点分布在三…

JOSEF 双可调漏电继电器 ZLR-T81 ZCT-80 面板嵌入式安装

ZLR-T系列漏电继电器(以下简称继电器)适用于交流电压为380.660V.至1140V系统中源率为50HZ电流为15~4000A线路中做有无中性点漏电保护. 系列型号 ZLR-T81漏电继电器 ZLR-T81ZCT-35漏电继电器 ZLR-T81ZCT-80漏电继电器 ZLR-T81ZCT-120漏电继电器 一、…

csv文件EXCEL默认打开乱码问题

这里讨论的问题是,当用记事本打开带有中文字符的csv正常时,用excel打开却是乱码。 简单概括就是:编码问题,windows的 excel打开csv文本文件时,默认使用的是系统内的ANSI,在中文环境下就是GB2312。如果写文件…

华为ospf和isis双点双向路由重分布的次优路径和环路终极解决方案

r5上直接导入直连路由 r3和r2进行双点双向路由重分布 查看R3去往R5产生了次优路径: 因为是R2先互相引入的isis和ospf,所以R3会产生次优路径,如果是R3先相互引入ospf和isis,那就是R2去R5会产生次优路径,而R3本身不会。…

Spark_Spark高阶特性

wscg filter导致断链 Codegen 向量化 simdjson Orc Parquet 支持批量读取 spark本身对parquet支持比较好,因为parquet

基于FPGA的五子棋游戏设计

基于FPGA的五子棋游戏设计 本文基于FPGA设计五子棋游戏,使用按键输入,使用VGA接口输出。五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为1010,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮…

牛客 算法题 golang语言实现

题目 HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序 描述 输入整型数组和排序标识,对其元素按照升序或降序进行排序数据范围: 1 ≤ � ≤ 10001≤n≤1000 ,元素大小满足 0 ≤ � &#…

有一种浪漫,叫接触Linux

大家好,我是五月。 嵌入式开发 嵌入式开发产品必须依赖硬件和软件。 硬件一般使用51单片机,STM32、ARM,做成的产品以平板,手机,智能机器人,智能小车居多。 软件用的当然是以linux系统为蓝本&#xff0c…

五分钟 k8s 实战-应用探针

Probe.png 今天进入 kubernetes 的运维部分(并不是运维 kubernetes,而是运维应用),其实日常我们大部分使用 kubernetes 的功能就是以往运维的工作,现在云原生将运维和研发关系变得更紧密了。 今天主要讲解 Probe 探针相…

SpringCloud 微服务全栈体系(十七)

第十一章 分布式搜索引擎 elasticsearch 七、搜索结果处理 搜索的结果可以按照用户指定的方式去处理或展示。 1. 排序 elasticsearch 默认是根据相关度算分(_score)来排序,但是也支持自定义方式对搜索结果排序。可以排序字段类型有&#…

C语言进阶指南(11)(指针数组与二维数组)

*欢迎来到博主的专栏——C语言进阶指南 博主id:reverie_ly 文章目录 N级指针指针数组指针数组与二维数组数组指针作为函数的参数 N级指针 指针变量是一个存放地址的变量,在C语言中,每个变量都会有一个地址值。所以指针变量也有一个地址。 …

WIN10 x86环境部署ARM虚拟机(银河麒麟)

我们经常使用的是x86架构的cpu,而对于不同cpu架构的arm架构的操作系统,我们可以通过QEMU模拟器来进行模拟一个arm环境 1、部署前的准备 arm的镜像: 以此镜像为例:Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso QE…

【C++ Primer Plus学习记录】while循环

while循环是没有初始化和更新部分的for循环,它只有测试条件和循环体: while(test-condition)dody 首先,程序计算圆括号内的测试条件表达式。如果该表达式为true,则执行循环体内的语句。与for循环一样,循环体也由一条…

IO和NIO的区别 BIO,NIO,AIO 有什么区别? Files的常用方法都有哪些?

文章目录 IO和NIO的区别BIO,NIO,AIO 有什么区别?Files的常用方法都有哪些? 今天来对java中的io, nio, bio, aio进行了解,有何区别。 IO和NIO的区别 NIO与IO区别 IO是面向流的,NIO是面向缓冲区的Java IO面向流意味着每次从流中读一个或多个字…

数据结构-单链表

文章目录 单链表概念链接存储方法头指针head和终端结点链接过程单链表的优缺点:实现代码一览 单链表概念 链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) 指针(指示后继元素存储位置),元素就是存储数据的存储…

经典滑动窗口试题(二)

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、水果成篮1、题目讲解2、讲解算法思路3、代码实现 二、找到字符串中所有字母异位词1、题目…

合并区间[中等]

一、题目 以数组intervals表示若干个区间的集合,其中单个区间为intervals[i] [starti, endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例 1: 输入:intervals […