Zero-Shot Restoration of Back-lit Images Using Deep InternalLearning

ABSTRACT

如何恢复背光图像仍然是一项具有挑战性的任务。该领域最先进的方法基于监督学习,因此通常仅限于特定的训练数据。在本文中,我们提出了一种用于背光图像恢复的“零样本”方案,该方案利用深度学习的力量,但不依赖于任何先前的图像示例或先前的训练。具体来说,我们在测试时训练一个小型图像特定 CNN,即 ExCNet(曝光校正网络的缩写),以估计最适合测试背光图像的“S 曲线”。一旦估计出S曲线,就可以直接恢复测试图像。 ExCNet 可以适应每个图像的不同设置。这使得我们的方法广泛适用于不同的拍摄场景和各种背光条件。对 1512 个真实背光图像进行的统计研究表明,我们的方法可以大幅优于竞争对手。据我们所知,我们的方案是第一个基于 CNN 的无监督背光图像恢复方法。为了使结果可重现,源代码可从 https://cslinzhang.github.io/ExCNet/ 获取。

1 INTRODUCTION

拍摄图像时,最令人讨厌的不良照明条件之一是背光。尽管大多数现代成像传感器可以根据拍摄目标的光照条件自动调整相关硬件参数(如光圈、快门速度和电子增益[24]),但在大多数逆光条件下仍然无法获得满意的结果案例。解决这个问题的一种可能方法是使用 HDR(高动态范围)成像技术 [5]。然而,HDR只能用于逆光下的图像采集,无法帮助恢复现有的劣质逆光图像。

在这项工作中,我们研究了背光图像恢复问题,并引入了一种“零样本”方案,即 ExCNet(曝光校正网络的缩写)。 “零样本”是指 ExCNet 不需要事先训练。 ExCNet 是一种专门设计的 CNN(卷积神经网络),可以直接估计给定背光图像的最佳拟合 S 曲线 [2, 28]。通过其S曲线,可以相应地恢复背光图像。在图 1 中,我们展示了 4 个典型的背光图像以及 ExCNet 的恢复结果。可以看出,所提出的方法对于恢复质量较差的背光图像具有很强的能力。

1.1 Related Work

实际上,可以探索传统的图像增强方法[8,13,19,21,30]来增强背光图像,但在大多数情况下其效果相当有限。还有一些专门为恢复背光图像而设计的启发式方法。在[22]中,Safonov 提出了一种基于对比度拉伸和初始图像亮度的 alpha 混合以及反射率估计的方法。在[25]中,Tsai和Yeh首先通过简单的亮度通道阈值检测背光区域,然后线性拉伸检测到的背光区域。李等人[15]通过引入四叉树生长和引导过滤来完善Tsai和Yeh的想法[11]。在[12]中,Im等人的方法首先使用暗通道先验[10]提取曝光不足的区域,然后执行空间自适应对比度增强。在[28]中,Yuan和Sun通过基于区域的区域级最佳曝光评估来估计图像特定的S曲线。他们将最佳区域估计表述为图标记问题,并通过强力搜索策略来解决它。后来,作者将他们的工作扩展到纠正曝光不良的视频序列 [6]。

背光图像恢复方法的另一个分支是基于机器学习理论。在[4]中,戴尔等人首先建立了一个包含100万张图像的数据库。给定要恢复的输入图像,他们的系统执行视觉搜索以查找数据库中最接近的图像;这些图像定义了输入的视觉上下文,可以进一步利用它来实例化恢复操作。在[14]中,Kang等人构建了一个数据库,其中存储描述训练图像的特征向量以及增强参数的向量。给定测试图像,然后在数据库中搜索最佳匹配图像,并使用相应的增强参数来执行增强。遵循 Kang 等人的想法 [14],Bychkovsky 等人[1] 构建了一个包含 5000 个示例输入输出图像对的数据集,可用于学习全局色调调整。在[16]中,Li和Wu提出了一种两阶段管道,它对背光和前光区域执行对象引导分割,然后进行空间自适应色调映射。

1.2 Our Motivations and Contributions

我们发现使用机器学习工具来解决背光图像恢复问题是最近的趋势,也是一个有前途的方向。然而,应该注意的是,该领域现有的解决方案[1,3,4,14,16,27]都是基于监督学习框架,因此它们的性能高度依赖于训练数据集。事实上,对于背光图像恢复问题,如何收集足够有效的训练数据本身就是一项具有挑战性的任务。因此,这些基于监督学习的方案通常在满足训练条件的测试图像上表现良好;相反,一旦这些条件不满足,它们的性能就会显着恶化。这促使我们思考:是否可以从逆光图像中学习曝光校正模型来恢复自身?如果“是”,学习的模型将是特定于图像的,并且该方法本身可以适应未见过图像的不同设置。实际上,仅从测试图像本身学习恢复模型的想法在图像超分辨率领域已被证明是可行的[23]。在[23]中,Shocher 等人提出了一种超分辨率模型,这是一种特定于图像的 CNN,仅在从低分辨率测试图像中提取的内部示例上进行训练。在处理现实世界的低分辨率图像时,Shocher 等人的方法大大优于其竞争对手。

因此,在本文中,受 Shocher 等人在超分辨率领域工作成功的启发,提出了一种用于背光图像恢复的“零样本”方案。 “零样本”一词是从识别领域借用的,这里用来强调我们的方法不需要事先的图像示例或事先的训练。我们的主要贡献总结如下。

(1)我们方法的核心是一个专门设计的CNN,即ExCNet(曝光校正网络)。给定测试背光图像 I,ExCNet 可以在有限的迭代时间内估计最适合 I 的参数“S 曲线”。凭借它的S曲线,I可以直接恢复。据我们所知,我们的工作是第一个自动校正图像曝光的无监督学习框架。它可以轻松应用于不同曝光级别下各种内容的图像。

(2)在设计ExCNet时,一个关键问题是如何设计一个可以评估图像曝光不良程度的损失函数。为此,在MRF(马尔可夫随机场)[17]公式的推动下,我们设计了一种基于块的损失函数,该函数倾向于最大化所有块的可见性,同时保持相邻块之间的相对差异。实验表明,设计的损失函数可以指导ExCNet获得高视觉质量的恢复结果。当多种竞争方法的结果呈现在他们面前时,人们更倾向于选择我们方法的输出。

(3)由于ExCNet的CNN结构,我们的方法可以学习图像与其最佳“S曲线”参数之间的映射关系。因此,随着处理图像的增加,ExCNet在面对未见过的图像时需要更少的迭代次数来收敛到优化曲线。此外,在处理视频流时,后续帧的校正可以由先前帧的参数来指导,这不会导致像[28]那样的明显的闪烁伪影,并且计算成本相对较低。

2 S-CURVE

大多数摄影师经常使用S形非线性曲线,即S曲线,通过照片编辑软件手动调整照片中阴影/中调/高光区域的曝光度[2]。 S 曲线可以将输入电平映射到所需的输出电平。典型的S曲线图如图2所示。图的横轴代表原始图像值,纵轴代表新的调整值。调整图像时,图表的右上区域代表高光,左下区域代表阴影。

正如[28]中所建议的,S曲线可以简单地用两个参数来参数化,即阴影量 \phi _{s}和高光量 \phi _{h} ,因此它可以表示为:

3 EXCNET: AN UNSUPERVISED CNN-BASED APPROACH TO ESTIMATE THE S-CURVE

这里详细介绍了我们提出的背光图像恢复方法 ExCNet。 ExCNet实际上是一个CNN,旨在从输入图像I的亮度通道I_{l}估计最佳S曲线。利用估计的S曲线,可以相应地恢复I。 ExCNet的结构如图3所示。为了更好地理解它,ExCNet的每次训练迭代在概念上可以被认为有两个阶段,使用中间S曲线调整I_{l}并导出损失。这两个阶段的详细内容将在 3.1 和3.2节给出。实施细节将在3.3给出。

3.1 Adjusting I_{l} Using the Intermediate S-curve

3.2 Deriving the Loss

3.3 Implementation Details

ExCNet 可以被认为是一种无监督学习方法。也就是说,在处理一些图像后,ExCNet可以逐步学习捕获图像色调信息的能力。当处理即将到来的图像时,这种预先训练的 ExCNet 的收敛速度比随机初始化的对应图像快得多。因此,在我们的实现中,我们准备了 50 张背光图像并使用 ExCNet 来估计它们的最佳 S 曲线。最终权重被保存并用于随后处理新图像时初始化 ExCNet。

4 BACK-LIT IMAGE RESTORATION USING EXCNET

值得一提的是,我们在实现中还考虑了细节保留。我们首先使用引导滤波器[11]将每个输入图像分离为基础层和细节层,然后使用估计的S曲线来调整基础层。最后,我们采用韦伯对比度[26]来融合细节层和调整后的基础层。

我们的硬件平台是一个配备 3.0GHZ Intel Core i7-5960X CPU 和 Nvidia Titan X GPU 卡的工作站。该方法使用Python和TensorFlow实现。我们的方法处理一张 4032 × 3024 图像大约需要 1.0 秒。

5 EXPERIMENTAL RESULTS

6 CONCLUSION

背光图像修复具有重要的实际意义,但尚未得到很好的解决。本文提出了一种“零样本”背光图像恢复方案,该方案利用深度学习的力量,无需依赖任何外部示例或事先训练。这是通过一个小型的特定于图像的 CNN(即 ExCNet)实现的,它通过最小化在中间恢复结果上定义的基于块的损失函数来指导恢复进度。所提出的方案简洁而强大。它非常稳健,因此可以在不同类型的照明条件下产生令人满意的结果。综合进行了主观和客观评估,以证实所提出的方法相对于其他主流竞争对手的优越性。据我们所知,这是第一个基于 CNN 的无监督背光图像恢复方法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

砖家测评:腾讯云标准型S5服务器和s6性能差异和租用价格

腾讯云服务器CVM标准型S5和S6有什么区别?都是标准型云服务器,标准型S5是次新一代云服务器规格,标准型S6是最新一代的云服务器,S6实例的CPU处理器主频性能要高于S5实例,同CPU内存配置下的标准型S6实例要比S5实例性能更好…

请简要说明 Mysql 中 MyISAM 和 InnoDB 引擎的区别

“请简要说明 Mysql 中 MyISAM 和 InnoDB 引擎的区别”。 屏幕前有多少同学在面试过程与遇到过类似问题, 可以在评论区留言:遇到过。 考察目的 对于 xxxx 技术的区别,在面试中是很常见的一个问题 一般情况下,面试官会通过这类…

无法打开 “XXXX“ ,因为Apple 无法检测其是否包含恶意软件

解决方案 设置 - > 隐私和安全性 这里会显示这个,点击仍要打开

QT专栏2 -Qt for Android

#2023年11月18日 # Qt version 6.6 JDK17 JDK 安装 Java Downloads | Oracle 设置环境变量 鼠标右键我的电脑,出现如下界面 Qt配置 改用JDK18,没有乱码,由于不影响APK产生。 做了好多尝试,更换JDK版本(11,18,19,21)&…

Ubuntu apt-get换源

一、参考资料 ubuntu16.04更换镜像源为阿里云镜像源 二、相关介绍 1. apt常用命令 sudo apt-get clean sudo apt-get update2. APT加速工具 轻量小巧的零配置 APT 加速工具:APT Proxy GitHub项目地址:apt-proxy 三、换源关键步骤 1. 更新阿里源 …

碰撞检测要点总结

Physics.SphereCast不会检测已经在半径内的碰撞!!! 加个容错 private bool SphereCast(Vector3 _originPos,Vector3 _targetPos,out RaycastHit hit,LayerMask _layerMask) {Vector3 dir (_targetPos - _originPos).normalized;float radius…

机器视觉技术在现代汽车制造中的应用

原创 | 文 BFT机器人 机器视觉技术,利用计算机模拟人眼视觉功能,从图像中提取信息以用于检测、测量和控制,已广泛应用于现代工业,特别是汽车制造业。其主要应用包括视觉测量、视觉引导和视觉检测。 01 视觉测量 视觉测量技术用于…

800万欧元投资!Nu Quantum正构建可扩展量子计算机

​(图片来源:网络) 总部位于英国剑桥的量子计算机公司Nu Quantum宣布在种子轮融资中筹集了800万欧元(约合人民币6225.7万元)。此轮融资由Amadeus Capital Partner、Expeditions Fund和IQ Capital领投,该公…

axios 请求合集

post 请求 请求负载请求参数(Request Payload) import axios from axios import qs from query-stringexport function getRoles(data){return axios.post(目标地址,data,{headers:{Content-Type: application/json,},}) }表单请求参数(Form…

VLAN综合实验

目录 一、实验拓扑 二、实验要求 三、实验步骤 1、交换机配置vlan 1)SW1配置 2)SW2配置 3)SW3配置 2、路由器配置子接口、DHCP 配置结果: PC1-6IP地址 测试 一、实验拓扑 二、实验要求 1、pc1和pc3所在接口为access&a…

用户增长常见分析模型

一、用户增长是什么 用户增长基本上会涉及生意场上的各行各业,你开个店面希望有更多的客户光顾,你做了个APP希望有更多的用户经常使用,你搭建了个电商平台希望有更多的人下单买东西。 用户增长,即以提升用户LTV为目的&#xff08…

SpringBoot整合Data JPA

SpringBoot整合Data JPA 一、pandas是什么&#xff1f; 创建SpringBoot项目 二、使用步骤 1.引入库 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.…

HINSTANCE是什么?

HINSTANCE 就是 HMODULE&#xff1a;

HT8699R AB类和D类的升压双声道音频功率放大器

HT8699R是一款内置BOOST升压模块的立体声音频功率放大器。 HT8699R在D类模式下&#xff0c;内置的BOOST升压模块可通过外置电阻调节升压值&#xff0c;即使是锂电池供电&#xff0c;在升压至7V时&#xff0c;10% THDN&#xff0c;4Ω负载条件下&#xff0c;能连续输出25.5W 的…

生产环境_移动目标轨迹压缩应用和算法处理-Douglas-Peucker轨迹压缩算法

场景&#xff1a; 我目前设计到的场景是&#xff1a;即在地图应用中&#xff0c;对GPS轨迹数据进行压缩&#xff0c;减少数据传输和存储开销&#xff0c;因为轨迹点太频繁了&#xff0c;占用空间太大&#xff0c;运行节点太慢了&#xff0c;经过小组讨论需要上这个算法&#x…

Vue项目Jenkins自动化部署

1. 需求描述 我们希望提交uat分支时,UAT项目能够自动发布,提交master分支时,无需自动发布,管理员手工发布 2. 效果展示 3. 采用技术 Jenkins + K8S + Docker + Nginx 4. 具体实现 4.1 编写default.conf 在Vue项目根目录新建default.conf文件,主要进行代理配置、首页…

[GFCTF 2021]wordy 编写去花IDAPYTHON

首先查壳 发现没有东西 然后放入ida 发现没有main并且软件混乱 发现这里1144的地方 出错 IDA无法识别数据 报错内容是EBFF 机器码 这里看了wp知道是很常见的花指令 所以我们现在开始去花 这里因为我们需要取出 EBFF 下面的地址也都是 EBFF 所以工作量大 使用IDApython脚本即…

放大招:腾讯云5年服务器和3年轻量应用服务器租用价格表

腾讯云3年轻量和5年云服务器CVM优惠活动入口&#xff0c;3年轻量应用服务器配置可选2核2G4M和2核4G5M带宽&#xff0c;5年CVM云服务器可以选择2核4G和4核8G配置可选&#xff0c;阿腾云atengyun.com分享腾讯云3年轻量应用服务器和5年云服务器CVM优惠活动入口和配置报价&#xff…

DCDC同步降压控制器SCT82A30\SCT82630

SCT82A30是一款100V电压模式控制同步降压控制器&#xff0c;具有线路前馈。40ns受控高压侧MOSFET的最小导通时间支持高转换比&#xff0c;实现从48V输入到低压轨的直接降压转换&#xff0c;降低了系统复杂性和解决方案成本。如果需要&#xff0c;在低至6V的输入电压下降期间&am…