当前位置: 首页 > news >正文

Learning Multi-Scale Photo Exposure Correction

Abstract

用错误的曝光捕捉照片仍然是相机成像的主要错误来源。曝光问题可分为以下两类:(i)曝光过度,即相机曝光时间过长,导致图像区域明亮和褪色;(ii)曝光不足,即曝光时间过短,导致图像区域变暗。曝光不足和曝光过度都会大大降低图像的对比度和视觉吸引力。先前的工作主要集中在曝光不足的图像或一般图像增强。相比之下,我们提出的方法针对照片中的过度曝光和曝光不足错误。我们将曝光校正问题表述为两个主要子问题:(i)色彩增强和(ii)细节增强。因此,我们提出了一个从粗到精的深度神经网络(DNN)模型,可以端到端训练,分别解决每个子问题。我们的解决方案的一个关键方面是一个超过24,000张图像的新数据集,展示了迄今为止最广泛的曝光值范围和相应的正确曝光图像。我们的方法在曝光不足的图像上取得了与现有最先进的方法相当的结果,并且对遭受过度曝光错误的图像产生了显着改善。

1. Introduction

拍摄时使用的曝光直接影响最终渲染照片的整体亮度。数码相机使用三个主要因素来控制曝光:(i)捕捉快门速度,(ii) f值,即焦距与相机光圈直径的比率,以及(iii)控制接收像素信号放大系数的ISO值。在摄影中,曝光设置由曝光值(EV)表示,其中每个EV指的是产生相同曝光效果的相机快门速度和f值的不同组合,在摄影中也被称为“等效曝光”。

数码相机可以调整所摄图像的曝光值,以达到改变亮度水平的目的。这种调整可以由用户手动控制,也可以在自动曝光(AE)模式下自动进行。当使用AE时,相机调整EV以补偿拍摄场景中的低/高亮度,使用通过镜头(TTL)测光来测量从场景接收的光量[49]。曝光错误可能由以下几个因素引起,例如TTL测光测量错误、强光条件(例如,非常低的照明和背光)、场景亮度水平的剧烈变化以及用户在手动模式下的错误。这种曝光误差是在拍摄过程的早期引入的,因此在渲染最终的8位图像后很难纠正。这是由于相机图像信号处理器(ISP)在渲染最终的8位标准RGB (sRGB)图像[31]时应用了高度非线性的操作。

图显示了带有曝光误差的图像的典型例子。在图1中,曝光误差导致最终渲染图像中要么由于过度曝光导致图像区域非常亮,要么由于曝光不足导致图像区域非常暗。即使对于完善的图像增强软件包,纠正具有此类错误的图像也是一项具有挑战性的任务,参见图。虽然曝光过曝和曝光不足都是摄影中常见的错误,但大多数先前的工作主要集中在纠正曝光不足错误[23,56,58,65,66]或一般的图像质量增强[11,18]。

我们提出了一种从粗到精的深度学习方法,用于过度曝光和曝光不足的sRGB图像的曝光误差校正。我们的方法将曝光校正问题表述为两个主要的子问题:(i)颜色和(ii)细节增强。我们提出了一个从粗到细的深度神经网络(DNN)模型,可以端到端方式进行训练,该模型首先校正全局颜色信息,然后细化图像细节。除了我们的DNN模型之外,曝光校正问题的一个关键贡献是一个包含超过24,000张图像的新数据集1,这些图像从原始rgb渲染到sRGB,具有不同的曝光设置,曝光范围比以前的数据集更广。我们数据集中的每张图像都提供了相应的适当曝光的参考图像。最后,我们提出了一套广泛的评估和消融我们提出的方法与比较的艺术状态。我们证明,我们的方法达到了与以前的方法相当的结果,致力于曝光不足的图像和产生显着改善曝光过度的图像。此外,我们的模型可以很好地泛化到数据集之外的图像。

2. Related Work

我们的论文的重点是校正相机渲染的8位sRGB图像中的曝光误差。我们请读者参考[9,24,25,38],以获得渲染在低光或曝光误差下捕获的线性原始RGB图像的代表性示例。

曝光校正曝光校正和对比度增强的传统方法依赖于图像直方图来调整图像强度值[8,19,36,50,69]。或者,使用色调曲线调整来校正具有曝光误差的图像。该过程仅依赖于输入图像信息[63]或训练的深度学习模型[21,46,48,62]来执行。大多数先前的工作采用Retinex理论[34],假设曝光不当的图像可以用公式表示为目标图像的逐像素乘法,用正确的曝光设置捕获,通过照明图。因此,这些方法的目标是预测照明图以恢复曝光良好的目标图像。代表性的基于Retinex的方法包括[23,29,34,44,57,64,65]和最新的深度学习方法[56,58,66]。然而,这些方法中的大多数仅限于纠正欠显误差[23,56,58 - 60,65,66,68]。与之前的大多数工作相比,我们的工作是第一个使用单个模型明确纠正曝光过度和曝光不足照片的深度学习方法。

HDR 恢复和图像增强 HDR 恢复是从一幅或多幅低动态范围 (LDR) 输入图像重建场景辐射度 HDR 值的过程。 先前的工作要么需要访问多个 LDR 图像 [16, 30, 43],要么使用单个 LDR 输入图像,通过幻觉缺失信息将其转换为 HDR 图像 [15, 47]。 最终,这些重建的 HDR 图像被映射回 LDR 以进行感知可视化。 这种映射可以直接从输入多 LDR 图像 [7,13]、重建的 HDR 图像 [61] 执行,或者直接从单输入 LDR 图像执行,无需辐射 HDR 重建 [11, 18]。 还有一些专注于一般图像增强的方法,可用于增强曝光不良的图像。 特别是,[26, 27] 的工作主要是为了通过将捕获的图像映射为 DSLR 捕获的高质量图像来增强智能手机相机捕获的图像。 我们的工作并不寻求重建 HDR 图像或一般增强,而是经过训练以明确解决曝光错误。

配对数据集配对数据集对于图像增强任务的监督学习至关重要。 现有的曝光校正配对数据集仅关注低光曝光不足的图像。 代表性的例子包括 Wang 等人的数据集 [56] 和低光(LOL)配对数据集 [58]。 与现有的曝光校正数据集不同,我们引入了一个使用各种曝光错误渲染的大型图像数据集。 图 2 显示了我们的数据集和 LOL 数据集在图像数量和每个数据集中的曝光错误种类方面的比较。 与我们介绍的数据集相比,LOL 数据集涵盖了可能暴露水平的相对较小的一部分。 我们的数据集基于 MIT-Adobe FiveK 数据集 [6],并通过调整相机传感器原始 RGB 图像中提供的高色调值来准确渲染,以真实地模拟相机曝光错误。 另一种值得注意的方法是使用大型 HDR 数据集来生成训练数据,例如 Google HDR+ 数据集 [24]。 然而,一个缺点是该数据集是由不同数量的智能手机捕获的原始 RGB 图像组成的,这些图像首先与复合原始 RGB 图像对齐。 目标地面真实图像基于应用于该复合原始 RGB 图像的 HDR 到 LDR 算法 [18,24]。 我们选择使用 FiveK 数据集,因为它从单个高质量原始 RGB 图像开始,并且地面真实结果由专业摄影师生成。

3. Our Dataset

为了训练我们的模型,我们需要大量渲染有真实的过度曝光和曝光不足错误的训练图像以及相应的正确曝光的地面实况图像。 正如第 2 节中所讨论的。 2、目前此类数据集尚未公开以支持曝光校正研究。 因此,我们的首要任务是创建一个新的数据集。 我们的数据集是从 MIT-Adobe FiveK 数据集 [6] 渲染的,该数据集包含 5,000 个原始 RGB 图像以及由五位专业摄影师手动渲染的相应 sRGB 图像 [6]。 对于每个原始 RGB 图像,我们使用 Adob​​e Camera Raw SDK [1] 来模拟相机 [53] 应用的不同 EV。 Adobe Camera Raw 使用每个 DNG Raw 文件中嵌入的元数据准确模拟非线性相机渲染过程 [2, 53]。 我们使用不同的数字 EV 渲染每个原始 RGB 图像,以模拟真实的曝光错误。 具体来说,我们使用相对 EV -1.5、-1、+0、+1 和 +1.5 分别渲染具有曝光不足错误、原始 EV 零增益和过度曝光错误的图像。 零增益相对 EV 相当于拍摄期间相机上应用的原始曝光设置。

作为地面实况图像,我们使用由专家摄影师(在[6]中称为专家C)手动修饰的图像作为我们的目标正确曝光图像,而不是使用相对EV为+0的渲染图像。 这种选择背后的原因是,大量图像在原始曝光捕捉设置中包含背光或部分曝光错误。 专家调整的图像是在 ProPhoto RGB 色彩空间 [6](而不是原始 RGB)中执行的,我们将其转换为标准 8 位 sRGB 色彩空间编码。 我们的数据集总共包含 24,330 张具有不同数字曝光设置的 8 位 sRGB 图像。 我们丢弃了少量与其相应的地面真实图像不一致的图像。 这些错位是由于 Adob​​e Camera Raw SDK 和专家对 DNG 裁剪区域元数据的不同使用造成的。 我们的数据集分为三组:(i) 17,675 张图像的训练集,(ii) 750 张图像的验证集,以及 (iii) 5,905 张图像的测试集。 训练、验证和测试集不共享任何共同场景。 图 2 显示了我们生成的 8 位 sRGB 图像和相应的正确曝光的 8 位 sRGB 参考图像的示例。

4. Our Method

给定一个 8 位 sRGB 输入图像 I,使用不正确的曝光设置渲染,我们的方法旨在生成一个输出图像 Y,其曝光错误比 I 中的曝光错误更少。当我们同时针对曝光过度和曝光不足错误时,我们的方法的目标 输入图像 I 预计包含接近过饱和或欠饱和值的区域,且颜色和细节信息已损坏。 我们建议按顺序纠正 I 的颜色和细节错误。 具体来说,我们处理 I 的多分辨率表示,而不是直接处理 I 的原始形式。我们使用拉普拉斯金字塔 [4] 作为我们的多分辨率分解,它源自 I 的高斯金字塔 [5]。

4.1. Coarse-to-Fine Exposure Correction

令 X 表示 I 的 n 层拉普拉斯金字塔,使得 X(l) 是 X 的第 l 层。该金字塔的最后一层(即 X(n))捕获 I 的低频信息,而第一层捕获 I 的低频信息。 level(即 X(1))捕获高频信息。 这些频率级别可以分为:(i)存储在低频级别中的I的全局颜色信息和(ii)存储在中高频级别中的图像从粗到细的细节。 这些级别稍后可用于重建全色图像 I。

图3激发了我们从粗到精的曝光校正方法。图3-(A)和(B)分别显示了一个示例过曝图像及其相应的曝光良好的目标。可以看出,在拉普拉斯金字塔重建过程中,仅使用目标图像的低频层(即全局颜色信息)即可获得显著的曝光校正,如图图-(C)所示。然后,我们可以通过纠正拉普拉斯金字塔的每个层次,以顺序的方式增强细节,从而改善最终图像,如图图-(D)所示。实际上,在推理阶段,我们无法访问图-(B)中正确曝光的图像,因此我们的目标是预测拉普拉斯金字塔中每一层缺失的颜色/细节信息。

受这一观察结果和其他各种计算机视觉任务(例如[14,33,41,54])的粗精架构的成功启发,我们设计了一个DNN,该DNN使用拉普拉斯金字塔分解以顺序的方式校正I的全局颜色和细节信息。本节的其余部分解释了我们模型的技术细节(第4.2节),包括损失(第4.3节)、推理阶段(第4.4节)和训练(第4.5节)的细节。

4.2. Coarse-to-Fine Network

我们的图像曝光校正架构顺序地处理输入图像I的n级拉普拉斯金字塔X,以产生最终的校正图像Y。该模型由n个子网络组成。这些子网络中的每一个都是一个类似于U网的架构[52],具有不受约束的权重。我们基于每个子问题(即,全局颜色校正和细节增强)有助于我们的最终结果。图4提供了我们网络的概述。如图所示,我们的架构中最大的(就权重而言)子网络专用于处理I中的全局颜色信息(即,X(n))。该子网络(图4中黄色所示)处理低频电平X(n)并产生放大图像Y(n)。放大过程使用具有可训练权重的跨步转置卷积将我们的子网络的输出放大两倍。接下来,我们将第一个中频电平X(n−1)添加到Y(n),由模型中的第二个子网处理。这个子网络增强了当前层的相应细节,并产生一个残差层,然后将其添加到Y(n)+X(n-1)以重建图像Y(n-1),这相当于相应的高斯金字塔层n-1。该细化上采样过程继续进行,直到产生最终输出图像Y。我们的网络是完全可区分的,因此可以以端到端的方式进行训练。补充材料中提供了我们网络的其他详细信息。

4.3. Losses

我们对模型进行端到端训练,以最小化以下损失函数:

Pyramid Loss 为了引导每个子网络遵循拉普拉斯金字塔重建程序,我们在每个金字塔级别引入了专门的损失。令T(l)表示参考图像T的高斯金字塔的第l层,经过二倍的上采样。我们使用简单的插值过程进行上采样操作[43]。我们的金字塔损失计算如下:

其中hl和wl分别是训练图像的拉普拉斯金字塔中的第l级的高度和宽度的两倍,并且p分别是在第l级Y(l)处的我们的校正图像和在相同级T(l)处的适当曝光的参考图像中的每个像素的索引。金字塔损失不仅给出了每个子网络任务的原则性解释,而且与仅使用重建损失的训练相比,还导致更少的视觉伪影,如图5所示。请注意,如果没有中间金字塔损失,与使用每个尺度的金字塔损失相比,图5(顶部)所示的每个子网络的输出与中间高斯目标偏离很大,如图5(底部)所示。我们在补充材料中通过消融研究提供了该损失的支持性依据。

Adversarial Loss

为了在感知上增强校正图像输出的重建的真实性和吸引力,我们还考虑将对抗性损失作为正则化器。这个对抗性损失项可以用下面的等式[20]来描述:

其中 S 是 sigmoid 函数,D 是与我们的主网络一起训练的判别器 DNN。 我们在补充材料中提供了鉴别器网络的详细信息以及使用非对抗性和对抗性训练的结果之间的视觉比较。

4.4. Inference Stage

我们的网络是完全卷积的,可以处理不同分辨率的输入图像。 虽然我们的模型需要合理的内存大小(∼7M 参数),但处理高分辨率图像需要高计算能力,而这可能并不总是可用。 此外,处理比训练过程中使用的分辨率范围高得多的分辨率(例如 16 兆像素)的图像可能会影响我们的模型对大的均匀图像区域的鲁棒性。 出现这个问题的原因是我们的网络是在一定范围的有效感受野上进行训练的,与高分辨率图像所需的感受野相比,该范围非常低。 为此,我们使用双边引导上采样方法[10]来处理高分辨率图像。 首先,我们调整输入测试图像的大小,使其最大尺寸为 512 像素。 然后,我们使用我们的模型处理输入图像的下采样版本,然后应用快速上采样技术 [10] 和 22×22×8 单元的双边网格。 这个过程使我们能够在平均 4.5 秒内处理 16 兆像素的图像。 该时间包括在 NVIDIA GeForce GTX 1080TM GPU 上运行我们的网络所需的 0.5 秒,以及在 Intel Xeon E5-1607 @ 3.10 GHz 机器上运行网络的 4 秒,用于引导上采样过程。 请注意,使用 Halide 实现 [51] 可以显着改善引导上采样步骤的运行时间。

4.5. Training Details

在我们的实现中,我们使用具有四个级别(即 n = 4)的拉普拉斯金字塔,因此我们的模型中有四个子网络 - 一项消融研究,评估对拉普拉斯级别数量的影响,包括与普通模型的比较 U-Net 架构在补充材料中介绍。 我们在从不同维度的训练图像中随机提取的补丁上训练我们的模型。 我们首先在 128×128 像素大小的块上进行训练。 接下来,我们继续在 256×256 个 patch 上进行训练,然后在 512×512 个 patch 上进行训练。 我们使用 Adam 优化器 [32] 来最小化方程式中的损失函数。 1. 受之前工作 [40] 的启发,我们最初在没有对抗性损失项 Ladv 的情况下进行训练,以加速主网络的收敛。 收敛后,我们添加对抗性损失项 Ladv 并微调我们的网络以增强我们的初始结果。 补充材料中提供了其他培训详细信息。

5. Empirical Evaluation

6. Concluding Remarks

我们提出了一种从粗到精的深度学习模型,用于曝光过度和曝光不足的图像校正。 我们采用拉普拉斯金字塔分解来处理不同频段的输入图像。 我们的方法旨在以多尺度方式顺序校正每个拉普拉斯金字塔级别,从图像中的全局颜色开始并逐步解决图像细节。 我们的方法由包含超过 24,000 张图像的新数据集启用,这些图像使用迄今为止最广泛的曝光错误进行渲染。 我们引入的数据集中的每个图像都有一个由训练有素的摄影师通过良好的曝光补偿正确渲染的参考图像。 通过广泛的评估,我们表明,与校正曝光错误渲染的图像的可用解决方案相比,我们的方法产生了令人信服的结果,并且它具有良好的概括性。 我们相信我们的数据集将有助于未来改进照片曝光校正的工作。

相关文章:

Learning Multi-Scale Photo Exposure Correction

Abstract 用错误的曝光捕捉照片仍然是相机成像的主要错误来源。曝光问题可分为以下两类:(i)曝光过度,即相机曝光时间过长,导致图像区域明亮和褪色;(ii)曝光不足,即曝光时间过短,导致图像区域变暗。曝光不足和曝光过度都会大大降低…...

【Rust自学】7.4. use关键字 Pt.1:use的使用与as关键字

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.4.1. use的作用 use的作用是将路径导入到当前作用域内。而引入的内容仍然是遵守私有性原则,也就是只有公共的部分引入进来才…...

C++ 设计模式:门面模式(Facade Pattern)

链接:C 设计模式 链接:C 设计模式 - 代理模式 链接:C 设计模式 - 中介者 链接:C 设计模式 - 适配器 门面模式(Facade Pattern)是一种结构型设计模式,它为子系统中的一组接口提供一个一致&#…...

从0到100:基于Java的大学选修课选课小程序开发笔记(上)

背景 为学生提供便捷的课程选择方式,并帮助学校进行课程管理和资源调配;主要功能包括:课程展示,自主选课,取消选课,后台录入课程,统计每门课程报名情况,导出数据,用户管…...

【算法题解】B. President‘s Office - Python实现

题目描述 Berland的总统办公室内设有多个办公桌,其中总统和其属下各自拥有独特颜色的办公桌。总统希望统计哪些属下的办公桌紧邻他的办公桌,但不记得确切的数量。 输入描述: 第一行包含三个值 n, m, c,分别是办公室的长度、宽度…...

【Spring Boot 】详解

Spring Boot 详解 一、Spring Boot 概述 (一)产生背景 随着 Java 应用的日益复杂,传统 Spring 框架在项目搭建与配置方面愈发繁琐,大量的 XML 配置、依赖管理等工作耗费开发者诸多精力。为解决这些痛点,Spring Boot …...

Redisson 框架详解

目录 一.为什么要使用分布式锁? 二.Redisson 的基本使用: 1.添加 Redisson 依赖: 2.在 application.yml 配置 Redis: 3. 创建 Redisson 客户端: (1)单节点模式: (…...

正确导入MapStruct并避免与Lombok编译冲突的深入分析

正确导入MapStruct并避免与Lombok编译冲突的深入分析 一、MapStruct与Lombok概述 1.1 MapStruct简介 MapStruct是一个代码生成器,它基于约定优于配置的原则,通过注解处理器在编译时自动生成源代码,实现对象之间的属性映射。MapStruct的优势在于减少样板代码,提高开发效率…...

K8S 黑魔法之如何从 Pod 拿到节点的命令行

搞 K8S 运维的时候,偶尔会遇到一个难题,定位到问题出在某个节点上,而由于权限审批,错误配置等等各种原因,没有办法拿到节点的 SSH 权限,无法进入节点命令行进一步排障。 这个时候,就可以用这个…...

【bluedroid】A2dp Source播放流程源码分析(4)

接上集分析:【bluedroid】A2dp Source播放流程源码分析(3)-CSDN博客 蓝牙和AUDIO之间的接口 蓝牙和audio之间的通信是通过socket,管理socket中的文件是UIPC,UIPC管理两条socket。 A2DP_CTRL_PATH /data/misc/bluedroid/.a2dp_ctrl A2DP_DATA_PATH /data/misc/bluedroid…...

计算机网络 (9)数据链路层

前言 计算机网络中的数据链路层(Data Link Layer)是OSI(开放系统互连)参考模型中的第二层,位于物理层和网络层之间。它在物理层提供的服务基础上,负责在相邻节点之间建立、维护和终止链路,确保数…...

kubernetes学习-集群搭建部署(一)

一、开三台虚拟机进行试验(centos7) 1、初始操作 # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld# 关闭selinux sudo sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时# 关闭swap sudo swapoff -a # 临时 s…...

docker commit生成的镜像瘦身

1、清除宿主系统的docker资源 docker system prune -a --volumes 2、清理容器内系统的临时文件和缓存 # 删除包管理器缓存 apt-get clean rm -rf /var/lib/apt/lists/* # 删除日志文件 rm -rf /var/log/* # 删除临时文件 rm -rf /tmp/* 3、安装docker squash工具&#xff0…...

基于Spring Boot的宠物领养系统的设计与实现(代码+数据库+LW)

摘 要 如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于宠物领…...

7.若依参数设置、通知公告、日志管理

参数设置 对系统中的参数进行动态维护。 关闭验证码校验功能 打开页面注册功能 需要修改前端页面代码 通知公告 促进组织内部信息传递 若依只提供了一个半成品,只实现了管理员可以添加通知公告。 日志管理 追踪用户行为和系统运行状况。 登录日志 和操作日志…...

基于FISCO BCOS的电子签署系统

概述 本项目致力于构建一个安全、高效且功能完备的电子签署系统,通过整合区块链技术与传统数据库管理,为用户提供了可靠的电子签署解决方案,有效应对传统电子签署系统的数据安全隐患,满足企业和个人在数字化办公环境下对电子文档…...

RocketMQ(二)RocketMQ实战

文章目录 一、RocketMQ实战1.1 批量消息发送1.2 消息发送队列自选择1.3 事务消息1.4 SpringCloud集成RocketMQ 二、最佳实践2.1 生产者2.1.1 发送消息注意事项2.1.2 消息发送失败处理方式 2.2 消费者2.2.1 消费过程幂等2.2.2 消费打印日志 2.3 Broker 三、相关问题3.1 为什么要…...

Java重要面试名词整理(十三):RocketMQ

文章目录 简述环境搭建分布式集群配置升级高可用集群 RocketMQ的消息模型基本流程消息确认机制广播消息顺序消息机制延迟消息批量消息过滤消息事务消息ACL权限控制机制 调优消费者端进行幂等控制 核心客户端负载均衡Consumer负载均衡 消息持久化设计Dleger集群的文件同步机制 简…...

机器学习之线性回归算法预测数据

机器学习之线性回归算法预测数据 目录 机器学习之线性回归算法预测数据线性回归算法概念理解算法导入线性回归模型参数理解误差项分析 LinearRegression理解参数理解返回值方法基本格式 预测一元线性回归数据问题及理解可视化数据理解数据预测 预测二元线性回归数据问题及理解数…...

Python | 如何在Matplotlib中仅绘制热图的上/下三角形

热图是一种强大的可视化工具,用于以矩阵格式表示数据,其中各个值由颜色表示。它们对于可视化相关矩阵特别有用,其中矩阵的对称性质使得显示上下三角形变得多余。本文将指导您使用Matplotlib(Python中流行的绘图库)仅绘…...

Leetcode经典题20--长度最小的子数组

题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 输入输出示例 输入&…...

【计算机视觉】超简单!维纳滤波的经典案例

Hey小伙伴们!今天来给大家分享一个 计算机视觉 中非常经典且实用的技术——维纳滤波(Wiener Filter)。维纳滤波是一种基于最小均方误差准则的滤波方法,广泛应用于图像去噪、模糊恢复等领域。它不仅可以有效去除图像中的噪声&#…...

【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存!

添加图片注释,不超过 140 字(可选) 【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存! 大家好,我是Jimmy。反推提示词的节点有很多,像Florence2 、Joycaption2、喵手等。都是非常优秀的。但是呢,就是占用设备资源,加…...

AE Dressler CESAR 1312 Generator Model User Manual

AE Dressler CESAR 1312 Generator Model User Manual...

【513. 找树左下角的值 中等】

题目: 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 提示: 二叉树的节点个数的范围是 …...

网络通信的瑞士军刀:Python socket库全解析

文章目录 网络通信的瑞士军刀:Python socket库全解析背景库介绍安装与重要性简单库函数使用方法场景应用常见Bug及解决方案总结 网络通信的瑞士军刀:Python socket库全解析 背景 在现代编程中,网络通信是不可或缺的一部分。无论是构建客户端…...

【笔记️】魔爪 Mini mx 使用快捷键

B站教程地址:MOZA魔爪的个人空间-MOZA魔爪个人主页-哔哩哔哩视频 1、开关键: 单击 → 开启录制/拍照 → 再次单击结束;休眠时,单击晚醒 双击 → 切换拍照/录制模式 三击 → 切换横竖拍 长按 → 关机 2、变焦键: 单击 → 切换航向俯仰跟随模式 ( 开机默…...

去除 el-input 输入框的边框(element-ui@2.15.13)

dgqdgqdeMac-mini spid-admin % yarn list --pattern element-ui yarn list v1.22.22 └─ element-ui2.15.13 ✨ Done in 0.23s.dgqdgqdeMac-mini spid-admin % yarn list vue yarn list v1.22.22 warning Filtering by arguments is deprecated. Please use the pattern opt…...

Vue中的一些用法

一、验证规则: 身份证的验证规则: 电话号码的验证规则: 二、选中一项后禁用其他选项: data(){ return{ dataForm{ medicalHistory:[] } }, 三、多选框选择后页面中不显示数据: 在表单提交时加 .join(",&…...

异步爬虫之协程的基本原理

我们知道爬虫是 IO 密集型任务,例如使用 requests 库来爬取某个站点,当发出一个请求后,程序必须等待网站返回响应,才能接着运行,而在等待响应的过程中,整个爬虫程序是一直在等待的,实际上没有做…...