【论文阅读】Learning Texture Transformer Network for Image Super-Resolution

Learning Texture Transformer Network for Image Super-Resolution

  • 论文地址
  • Abstract
  • 1. 简介
  • 2.相关工作
    • 2.1单图像超分辨率
    • 2.2 Reference-based Image Super-Resolution
  • 3. 方法
    • 3.1. Texture Transformer
      • Learnable Texture Extractor 可学习的纹理提取器。
      • Relevance Embedding. 相关性嵌入。
      • Hard-Attention.
      • Soft-Attention.
    • 3.2. Cross-Scale Feature Integration
    • 3.3. 损失函数
      • Reconstruction loss.重建损失。
      • Adversarial loss. 对抗损失。
      • Perceptual loss. 知觉丧失。
    • 3.4. 实现细节
  • 4.实验
    • 4.1。数据集和指标
    • 4.2。评估
    • 4.3消融实验
  • 5. 结论

论文地址

1、论文
2、源码

Abstract

我们研究了图像超分辨率 (SR),旨在从低分辨率 (LR) 图像中恢复逼真的纹理。最近的进展是将高分辨率图像作为参考(Ref),从而可以将相关纹理转移到 LR 图像。然而,现有的 SR 方法忽略了使用注意力机制从参考图像传输高分辨率 (HR) 纹理,这在具有挑战性的情况下限制了这些方法。在本文中,我们提出了一种用于图像超分辨率 (TTSR) 的新型纹理变换器网络,其中 LR 和 Ref 图像分别被表述为变换器中的查询和键。 TTSR 由四个针对图像生成任务优化的密切相关的模块组成,包括 DNN 的可学习纹理提取器、相关嵌入模块、用于纹理传输的硬注意模块和用于纹理合成的软注意模块。这种设计鼓励跨 LR 和 Ref 图像的联合特征学习,其中可以通过注意力发现深度特征对应,从而可以传递准确的纹理特征。所提出的纹理变换器可以以跨尺度的方式进一步堆叠,从而能够从不同级别(例如,从 1 倍到 4 倍放大)恢复纹理。大量实验表明,TTSR 在定量和定性评估方面都比最先进的方法取得了显着改进。

1. 简介

图像超分辨率旨在从退化的低分辨率对应物中恢复高分辨率图像的自然和现实纹理 [12]。最近 image SR 的成功可以大大提高媒体内容的质量,从而提供更好的用户体验。例如,数码变焦移动摄像机算法和数字电视图像增强技术。此外,这项基础技术可以使广泛的计算机视觉任务受益,如医学成像[21]和卫星成像[35]。图像SR的研究通常基于两种范式进行,即单图像超分辨率(SISR)和基于参考的图像超分辨率(RefSR)。传统SISR通常会导致模糊效果,因为高分辨率(HR)纹理在退化过程中被过度破坏,无法恢复。尽管提出了基于生成对抗网络(GAN)[7]的图像SR方法来缓解上述问题,但GAN引起的幻觉和伪影进一步对图像SR任务提出了巨大的挑战。基于参考的图像超分辨率 (RefSR) 最近取得了进展,它从给定的参考图像转移 HR 纹理以产生视觉上令人愉悦的结果 [5、6、26、29、36]。然而,最先进的(SOTA)方法通常采用直接的方式来传输纹理,这可能会导致不满意的 SR 图像(如图 1 所示)。例如,郑等人。 [43] 采用基于流的方法,当面对 LR 和 Ref 图像之间的大视点变化时,通常会搜索和传输不准确的纹理(用红色表示)。张等。 [41] 采用由预训练分类模型定义的特征空间来搜索和传输 LR 和 Ref 图像之间的纹理。然而,这种高级语义特征不能有效地表示 HR 纹理,这仍然会产生令人难以置信的结果。

为了解决这些问题,我们提出了一种用于图像超分辨率(TTSR)的新型纹理变换器网络。具体来说,提出了四个针对图像生成任务优化的密切相关的模块。首先,我们提出了一个可学习的纹理提取器,其中的参数将在端到端训练期间更新。这样的设计使得 LR 和 Ref 图像的联合特征嵌入成为可能,这为在 SR 任务中应用注意力机制 [19,34,31] 奠定了坚实的基础。其次,我们提出了一个相关嵌入模块来计算 LR 和 Ref 图像之间的相关性。更具体地说,我们将从 LR 和 Ref 图像中提取的特征表示为转换器 [31] 中的查询和键,以获得硬注意图和软注意图。最后,我们提出了一个 hard-attention 模块和一个 soft-attention 模块来将 HR 特征从 Ref image 转移和融合到通过注意力图从 backbone 提取的 LR 特征中。 TTSR 的设计鼓励一种更准确的方法来搜索相关纹理并将其从 Ref 图像传输到 LR 图像。

此外,我们提出了一个跨尺度特征集成模块来堆叠纹理变换器,其中特征是跨不同的学习的缩放(例如,从 1× 到 4×)以实现更强大的特征表示。如图 1 所示,总体设计使我们的 TTSR 能够从 Ref 图像(以绿色表示)中搜索和传输相关纹理,与 SOTA 方法相比,这实现了更好的视觉效果。
本文的主要贡献是:
• 据我们所知,我们是最早将转换器架构引入图像生成任务的公司之一。更具体地说,我们提出了一种纹理转换器,其中包含四个密切相关的 SR 模块,它比 SOTA 方法有了显着改进。

• 我们提出了一种用于图像生成任务的新颖跨尺度特征集成模块,该模块使我们的方法能够通过堆叠多个纹理转换器来学习更强大的特征表示。

2.相关工作

在本节中,我们回顾了与我们的工作最相关的单图像超分辨率(SISR)和基于参考的图像超分辨率(RefSR)的先前工作。

2.1单图像超分辨率

近年来,基于深度学习的 SISR 方法比传统的非基于学习的方法取得了显着改进。 SISR 中基于深度学习的方法将此问题视为密集图像回归任务,该任务学习由 LR 和 HR 图像之间的 CNN 表示的端到端图像映射函数。Dong 等人。 [3] 提出了 SRCNN,它首先通过使用三层 CNN 来表示映射函数,将深度学习引入 SISR。董等。 [4] 通过用原始 LR 图像替换插值 LR 图像并在最后一层使用反卷积来放大特征图,进一步加快了 SR 过程。不久之后,Kim 等人。提出了 VDSR [14] 和 DRCN [15] 以及更深层的残差学习网络。施等。 [23] 用亚像素卷积层替换反卷积以减少棋盘伪影。残差块 [9] 在 SRResNet [16] 中被引入 SISR,并在 EDSR [17] 中得到改进。在残差块的帮助下,许多工作专注于设计更深或更宽的网络 [2,27,28]。张等。 [40] 和 Tong 等人。 [30] 采用密集块 [10] 来组合不同层次的特征。张等。 [39] 通过增加通道注意力来改进残差块。刘等人。 [18] 提出了一种用于图像恢复的非局部循环网络。戴等。 [2] 引入了二阶统计,用于更具辨别力的特征表示。上述方法使用均方误差(MSE)或平均绝对误差(MAE)作为忽略人类感知的目标函数。近年来,越来越多的作品以提高感知质量为目标。约翰逊等人。 [13] 将感知损失引入 SR 任务,而 SRGAN [16] 采用生成对抗网络 (GAN) [7] 并显示出视觉上令人满意的结果。 Sajjadi 等人。 [22] 使用基于 Gram 矩阵的纹理匹配损失来强制局部相似纹理,而 ESRGAN [32] 通过引入具有相对论对抗性损失的 RRDB 来增强 SRGAN。最近提出的 RSRGAN [38] 训练了一个排序器并使用排序内容损失来优化感知质量,从而实现了最先进的视觉效果。

2.2 Reference-based Image Super-Resolution

与 SISR 不同,RefSR 可以从 Ref 图像中获取更准确的细节。这可以通过多种方法来完成,例如图像对齐或补丁匹配。一些现有的 RefSR 方法 [33、36、43] 选择对齐 LR 和 Ref 图像。 Landmark [36] 通过全局配准将 Ref 图像与 LR 图像对齐以解决一个能量最小化问题。王等。 [33] 通过在特征合成之前反复应用非均匀变形来增强参考图像。 CrossNet [43] 采用光流来对齐不同比例的 LR 和 Ref 图像,并将它们连接到解码器的相应层中。然而,这些方法的性能在很大程度上取决于 LR 和 Ref 图像之间的对齐质量。此外,光流等对齐方法非常耗时,不利于实际应用。其他 RefSR 方法 [1, 41, 42] 采用“补丁匹配”方法来搜索适当的参考信息。 Boominathan 等人。 [1] 匹配 LR 和下采样参考图像的梯度特征之间的补丁。郑。等。 [42] 用卷积神经网络中的特征替换简单的梯度特征以应用语义匹配,并使用 SISR 方法进行特征合成。最近的工作 SRNTT [41] 在 LR 和 Ref 图像的 VGG [24] 特征之间应用了补丁匹配来交换相似的纹理特征。然而,SRNTT 忽略了原始特征和交换特征之间的相关性,并将所有交换特征均等地馈入主网络。为了解决这些问题,我们提出了一个纹理变换器网络,使我们的方法能够从 Ref 搜索相关纹理并将其传输到 LR图片。此外,通过使用建议的跨尺度特征集成模块堆叠多个纹理变换器,可以进一步提高我们方法的性能。

3. 方法

在本节中,我们介绍了所提出的用于图像超分辨率 (TTSR) 的纹理变换网络。在纹理变换器之上,我们提出了一个跨尺度特征集成模块(CSFI)来进一步提高模型性能。纹理转换器和 CSFI 将分别在 3.1 节和 3.2 节中讨论。一组用于优化建议网络的损失函数将在第 3.3.
在这里插入图片描述

3.1. Texture Transformer

纹理变换器纹理变换器的结构如图2所示。LR、LR↑和Ref分别表示输入图像、4×双三次上采样输入图像和参考图像。我们依次对 Ref 应用双三次下采样和上采样,并使用相同的因子 4× 以获得与 LR↑ 域一致的 Ref↓↑。纹理变换器将 Ref、Ref↓↑、LR↑ 和骨干产生的 LR 特征作为输入,输出合成的特征图,该图将进一步用于生成 HR 预测。纹理变换器中有四个部分:可学习纹理提取器(LTE)、相关嵌入模块(RE)、用于特征转移的硬注意模块(HA)和用于特征合成的软注意模块(萨)。细节将在下面讨论。

Learnable Texture Extractor 可学习的纹理提取器。

在 RefSR 任务中,参考图像的纹理提取是必不可少的,因为准确和适当的纹理信息将有助于 SR 图像的生成。我们没有使用像 VGG [24] 这样的预训练分类模型提取的语义特征,而是设计了一个可学习的纹理提取器,其参数将在端到端训练期间更新。这样的设计鼓励在 LR 和 Ref 图像之间进行联合特征学习,从而可以捕获更准确的纹理特征。纹理提取的过程可以表示为:
在这里插入图片描述

其中 LT E (·) 表示我们的可学习纹理提取器的输出。提取的纹理特征Q(查询),K(键)和V(值)表示转换器内部识别机制的三个基本元素,并将进一步用于我们的相关性嵌入模块。

Relevance Embedding. 相关性嵌入。

相关性嵌入旨在通过确定 Q 和 K 之间的相似性来嵌入 LR 和 Ref 图像之间的相关性。我们将 Q 和 K 展开成斑块,表示为 qi(i ∈ [1, HLR × WLR ]) 和 kj (j ∈ [1,HRef × WRef])。然后对于Q中的每个补丁qi和 K 中的 kj,我们通过归一化内积计算这两个补丁之间的相关性 ri,j:
在这里插入图片描述

相关性进一步用于获得hard-attention map和soft-attention map.

Hard-Attention.

我们提出了一个硬注意力模块来从 Ref 图像传输 HR 纹理特征 V。传统的注意机制对每个查询 qi 取 V 的加权和。然而,这样的操作可能会导致模糊效果,缺乏传递HR纹理特征的能力。因此,在我们的硬注意力模块中,我们只为每个查询 qi 从 V 中最相关的位置转移特征。更具体地说,我们首先计算一个硬注意力映射 H,其中第 i 个元素 hi (i ∈ [1 , HLR × WLR]) 是根据相关性 ri,j 计算的:
在这里插入图片描述

hi 的值可以被视为一个硬索引,它将 Ref 图像中最相关的位置与 LR 图像中的第 i 个位置表示不满。为了从 Ref 图像中获取转移的 HR 纹理特征 T,我们使用硬注意力图作为索引对 V 的展开斑块应用索引选择操作:
在这里插入图片描述

其中 ti 表示第 i 个位置的 T 值,该值是从 V 的第 hi 位置选择的。结果,我们获得了LR图像的HR特征表示T,该表示将进一步用于我们的软注意力模块。

Soft-Attention.

我们提出了一个软注意力模块来合成来自DNN主干的LR图像的转移HR纹理特征T和LR特征F的特征。在合成过程中,应增强相关的纹理转移,而不太相关的纹理应重新进行。为了实现这一点,从 ri,j 计算一个软注意力映射 S,以表示 T 中每个位置的转移属性特征的置信度:
在这里插入图片描述

其中 si 表示软注意图 S 的第 i 个位置。我们不是直接将注意图 S 应用到 T,而是首先将 HR 纹理特征 T 与 LR 特征 F 融合,以利用 LR 图像中的更多信息.这种融合的特征进一步逐元素乘以软注意图 S 并加回 F 以获得纹理转换器的最终输出。此操作可以表示为:
在这里插入图片描述

其中 Fout 表示合成的输出特征。Conv 和 Concat 分别表示卷积层和串联操作。运算符⊙表示特征映射之间的逐元素乘法。综上所述,纹理转换器可以有效地将相关的HR纹理特征从Ref图像转移到LR特征中,从而促进纹理生成的更精确过程。

3.2. Cross-Scale Feature Integration

我们的纹理转换器可以通过跨尺度特征集成模块以跨尺度方式进一步堆叠。该体系结构如图 3 所示。堆叠纹理变换器输出三个分辨率尺度(1×、2× 和 4×)的合成特征,从而可以将不同尺度的纹理特征融合到 LR 图像中。为了在不同尺度上学习更好的表示,受[25、37]的启发,我们提出了一个跨尺度特征集成模块(CSFI)来在不同尺度的特征之间交换信息。每次将 LR 特征上采样到下一个尺度时,都会应用 CSFI 模块。对于 CSFI 模块内的每个尺度,它通过上/下采样接收来自其他尺度的交换特征,然后在通道维度中进行级联操作。然后卷积层将特征映射到原始数量的通道中。在这样的设计中,从堆叠纹理变换器传输的纹理特征在每个尺度上交换,从而实现更强大的特征表示。这种跨尺度的特征集成模块进一步提高了我们方法的性能。
在这里插入图片描述

3.3. 损失函数

在我们的方法中有 3 个损失函数。总体损失可以解释为:
在这里插入图片描述

Reconstruction loss.重建损失。

第一个损失是重建损失:
在这里插入图片描述

其中 (C, H, W ) 是 HR 的大小。我们利用 L1 损失,与 L2 损失相比,它已被证明在性能上更敏锐并且更容易收敛。

Adversarial loss. 对抗损失。

生成对抗网络 [7] 被证明可以有效地生成清晰且视觉上令人满意的图像。这里我们采用 WGAN-GP [8],它提出了梯度范数的惩罚来代替权重裁剪,从而使训练更稳定,性能更好。这种损失可以解释为:
在这里插入图片描述

Perceptual loss. 知觉丧失。

知觉丧失已被证明有助于改善视觉质量,并且已被用于[13,16,22,41]。感知损失的关键思想是增强预测图像和目标图像之间特征空间的相似性。在这里,我们的知觉损失包含两部分:
在这里插入图片描述

其中第一部分是传统的感知损失,其中 CjHjWjφvgg(·) 表示第 i 层 VGG19 的特征图,andi(Ci, Hi, Wi) 表示特征图在。ISR 是预测的 SR 图像。感知损失的第二部分是转移感知损失,其中φlte(·)表示从所提出的LTE的第j-j层中提取的纹理特征图,(Cj,Hj,Wj)表示该层的形状。T 是图 2 中转移的 HR 纹理特征。这种转移感知损失约束预测的SR图像具有与转移的纹理特征T相似的纹理特征,这使得我们更有效地转移Ref纹理的方法。

3.4. 实现细节

可学习的纹理提取器包含 5 个卷积层和 2 个池化层,输出三种不同尺度的纹理特征。为了减少时间和 GPU 内存的消耗,相关性嵌入仅应用于最小的规模,并进一步传播到其他规模。对于鉴别器,我们采用与SRNTT [41]相同的网络,并删除所有BN层。在训练,我们通过随机和垂直翻转来增强训练图像,然后随机旋转 90◦、180◦ 和 270◦。每个小批次包含 9 个大小为 40 × 40 的 LR 补丁以及 9 个大小为 160 × 160 的 HR 和 Ref 补丁。Lrec、Ladv 和 Lper 的权重系数分别为 1、1e-3 和 1e-2。使用 β1 = 0.9、β2 = 0.999 和 ǫ =1e-8 的亚当优化,学习率为 1e-4。我们首先预热网络 2 个仅应用 Lrec 的时期。之后,所有损失都涉及训练另外 50 个纪元。

4.实验

4.1。数据集和指标

为了评估我们的方法,我们在最近提出的 RefSR 数据集 CUFED5 [41] 上训练和测试我们的模型。 CUFED5 中的训练集包含 11,871 对,每对由一个输入图像和一个参考图像组成。 CUFED5 测试集中有 126 张测试图像,每张图像附有 4 张不同相似度的参考图像。为了评估在 CUFED5 上训练的 TTSR 的泛化性能,我们在 Sun80 [26]、Urban100 [11] 和 Manga109 [20] 上额外测试了 TTSR。 Sun80 包含 80 张自然图像,每张都与几张参考图像配对。对于 Urban100,我们使用与 [41] 相同的设置将其 LR 图像视为参考图像。由于 Urban100 都是具有强自相似性的建筑物图像,因此这种设计实现了显式的自相似搜索和传输过程。对于同样缺少参考图像的 Manga109,我们随机抽取该数据集中的 HR 图像作为参考图像。由于这个数据集是由直线、曲线和平坦的彩色区域构成的,这些都是常见的模式。即使使用随机选取的 HR Ref 图像,我们的方法仍然可以利用这些常见模式并取得良好的效果。 SR 结果在 YCbCr 空间的 Y 通道上的 PSNR 和 SSIM 上进行评估。

4.2。评估

为了评估 TTSR 的有效性,我们将我们的模型与其他最先进的 SISR 和 RefSR 方法进行了比较。 SISR 方法包括 SRCNN [3]、MDSR [17]、RDN [40]、RCAN [39]、SRGAN [16]、ENet [22]、ES-RGAN [32]、RSRGAN [38],其中 RCAN 有近年来在 PSNR 和 SSIM 上都取得了最先进的性能。 RSRGAN 被认为可以实现最先进的视觉质量。至于 RefSR 方法,CrossNet [43] 和 SRNTT [41] 是最近最先进的两种方法,它们明显优于以前的 RefSR 方法。所有实验都是在 LR 和 HR 图像之间以 4 倍的比例因子进行的。

定量评估。为了公平比较,我们按照 SRNTT [41] 中的设置来训练所有方法在 CUFED5 训练集上,并在 CUFED5 测试集、Sun80、Urban100 和 Manga109 数据集上进行测试。对于 SR 方法,有一个事实是,使用对抗性损失进行训练通常可以获得更好的视觉质量,但会减少 PSNR 和 SSIM 的数量。因此,我们训练了我们模型的另一个版本,该版本仅针对名为 TTSR-rec 的重建损失进行了优化,以便在 PSNR 和 SSIM 上进行公平比较。表 1 显示了定量评估结果。红色数字表示最高分,而蓝色数字表示第二高分。如比较结果所示,TTSR-rec 在所有四个测试数据集上都明显优于最先进的 SISR 方法和最先进的 RefSR 方法。在旨在通过对抗损失获得更好视觉质量的方法中,我们的模型在 Sun80 和 Manga109 数据集上仍然具有最佳性能。在另外两个数据集 CUFED5 和 Urban100 上,我们的模型实现了与最先进模型相当的性能。定量比较结果证明了我们提出的 TTSR 优于最先进的 SR 方法。
在这里插入图片描述

定性评估。如图 5 所示,我们的模型在视觉质量上也取得了最佳性能。TTSR 可以从参考图像传输更准确的 HR 纹理以生成有利的结果,如图 5 中的前三个示例所示。即使参考图像不是与输入图像全局相关,我们的 TTSR 仍然可以从局部区域提取更精细的纹理并将有效纹理转移到预测的 SR 结果中,如图 5 中的最后三个示例所示。进一步验证我们的应用程序的卓越视觉质量proach,我们进行了一项用户研究,其中将 TTSR 与四种 SOTA 方法进行了比较,包括 RCAN [39]、RSR-GAN [38]、CrossNet [43] 和 SRNTT [41]。该用户研究涉及 10 个主题,在 CUFED5 测试集上收集了 2,520 票。对于每个比较过程,我们为用户提供两张图像,其中包括一张 TTSR 图像。要求用户选择视觉质量更高的那个。图 4 显示了我们的结果用户研究,其中 Y 轴上的值表示更喜欢 TTSR 而不是其他方法的用户年龄百分比。正如我们所看到的,所提出的TTSR明显优于其他方法,超过90%的用户投票支持我们的方法,这验证了TTSR良好的视觉质量。
在这里插入图片描述

在这里插入图片描述

4.3消融实验

5. 结论

本文提出了一种新型的图像超分辨率纹理转换器网络(TTSR),将HR纹理从Ref图像转换为LR图像。所提出的纹理转换器由一个可学习的纹理提取器组成,该提取器学习联合特征嵌入以进行进一步的衰减计算,以及两个基于注意力的模块,该模块从Ref图像中传输HR纹理。此外,所提出的纹理转换器可以与所提出的CSFI模块以跨尺度的方式堆叠,以学习更强大的特征表示。广泛的实验表明,我们的TTSR在定量和定性评估方面优于最先进的方法。将来,我们将进一步将提出的纹理转换器扩展到一般的图像生成任务。

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

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

相关文章

Qt QImageWriter类介绍

1.简介 QImageWriter 用于写入图像文件的类。它提供了将 QImage 对象保存到不同图像格式文件的功能,包括但不限于 PNG、JPEG、BMP 等。QImageWriter 可以将图像写入文件,也可以写入任何 QIODevice,如 QByteArray,这使得它非常灵活…

python中type,object,class 三者关系

type,object,class 三者关系 在python中&#xff0c;所有类的创建关系遵循&#xff1a; type -> int -> 1 type -> class -> obj例如&#xff1a; a 1 b "abc" print(type(1)) # <class int> 返回对象的类型 print(type(int)) …

基于OpenCv的图像金字塔

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

【讲解如何OpenCV入门】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

需求规格说明书编制书(word原件)

1 范围 1.1 系统概述 1.2 文档概述 1.3 术语及缩略语 2 引用文档 3 需求 3.1 要求的状态和方式 3.2 系统能力需求 3.3 系统外部接口需求 3.3.1 管理接口 3.3.2 业务接口 3.4 系统内部接口需求 3.5 系统内部数据需求 3.6 适应性需求 3.7 安全性需求 3.8 保密性需…

GiantPandaCV | FasterTransformer Decoding 源码分析(二)-Decoder框架介绍

本文来源公众号“GiantPandaCV”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;FasterTransformer Decoding 源码分析(二)-Decoder框架介绍 作者丨进击的Killua 来源丨https://zhuanlan.zhihu.com/p/669303360 编辑丨GiantPand…

【Python编程实践1/3】模块

目录 目标 模块 import ​编辑 代码小结 题目 from...import 随机模块 代码小结 randint函数 骰子大战 choice函数 总结 目标 拧一颗螺丝&#xff0c;只会用到螺丝刀&#xff1b;但是修一台汽车&#xff0c;需要一整套汽修的工具。函数就像螺丝刀&#xff0c;可以帮…

python项目==一个web项目,配置模板指定文件清洗规则,调用模板规则清洗文件

代码地址 一个小工具。 一个web项目&#xff0c;配置模板指定文件清洗规则&#xff0c;调用模板规则清洗文件 https://github.com/hebian1994/csv-transfer-all 技术栈&#xff1a; SQLite python flask vue3 elementplus 功能介绍&#xff1a; A WEB tool for cleaning…

JavaScript:Web APIs(三)

本篇文章的内容包括&#xff1a; 一&#xff0c;事件流 二&#xff0c;移除事件监听 三&#xff0c;其他事件 四&#xff0c;元素尺寸与位置 一&#xff0c;事件流 事件流是什么呢&#xff1f; 事件流是指事件执行过程中的流动路径。 我们发现&#xff0c;一个完整的事件执行…

Delta lake with Java--利用spark sql操作数据1

今天要解决的问题是如何使用spark sql 建表&#xff0c;插入数据以及查询数据 1、建立一个类叫 DeltaLakeWithSparkSql1&#xff0c;具体代码如下&#xff0c;例子参考Delta Lake Up & Running第3章内容 import org.apache.spark.sql.SaveMode; import org.apache.spark.…

区域文本提示的实时文本到图像生成;通过一致性自注意力机制的视频生成工具保持视频的一致性;专门为雪佛兰汽车设计的客服聊天机器人

✨ 1: StreamMultiDiffusion StreamMultiDiffusion是首个基于区域文本提示的实时文本到图像生成框架&#xff0c;实现了高速且互动的图像生成。 StreamMultiDiffusion 旨在结合加速推理技术和基于区域的文本提示控制&#xff0c;以克服之前解决方案中存在的速度慢和用户交互性…

约瑟夫问题新解法

前言 又碰到了约瑟夫问题&#xff0c;这样的题目本来用环形链表模拟的话就能做出来。然而&#xff0c;最近新学习了一种做法&#xff0c;实在是有点震惊到我了。无论是思路上&#xff0c;还是代码量上&#xff0c;都是那么的精彩。就想也震惊一下其他人。谁能想到原来模拟出来四…

C/C++程序设计实验报告综合作业 | 小小计算器

本文整理自博主本科大一《C/C程序设计》专业课的课内实验报告&#xff0c;适合C语言初学者们学习、练习。 编译器&#xff1a;gcc 10.3.0 ---- 注&#xff1a; 1.虽然课程名为C程序设计&#xff0c;但实际上当时校内该课的内容大部分其实都是C语言&#xff0c;C的元素最多可能只…

深度解析 Spring 源码:探寻Bean的生命周期

文章目录 一、 Bean生命周期概述二、Bean生命周期流程图三、Bean生命周期验证3.1 代码案例3.2 执行结果 四、Bean生命周期源码4.1 setBeanName()4.2 setBeanFactory()4.3 setApplicationContext()4.4 postProcessBeforeInitialization()4.5 afterPropertiesSet()4.6 postProces…

力扣刷题第1天:消失的数字

大家好啊&#xff0c;从今天开始将会和大家一起刷题&#xff0c;从今天开始小生也会开辟新的专栏。&#x1f61c;&#x1f61c;&#x1f61c; 目录 第一部分&#xff1a;题目描述 第二部分&#xff1a;题目分析 第三部分&#xff1a;解决方法 3.1 思路一&#xff1a;先排序…

十、多模态大语言模型(MLLM)

1 多模态大语言模型&#xff08;Multimodal Large Language Models&#xff09; 模态的定义 模态&#xff08;modal&#xff09;是事情经历和发生的方式&#xff0c;我们生活在一个由多种模态(Multimodal)信息构成的世界&#xff0c;包括视觉信息、听觉信息、文本信息、嗅觉信…

MySQL技能树学习——数据库组成

数据库组成&#xff1a; 数据库是一个组织和存储数据的系统&#xff0c;它由多个组件组成&#xff0c;这些组件共同工作以确保数据的安全、可靠和高效的存储和访问。数据库的主要组成部分包括&#xff1a; 数据库管理系统&#xff08;DBMS&#xff09;&#xff1a; 数据库管理系…

MySQL45讲(一)(40)

回顾binlog_formatstatement STATEMENT 记录SQL语句。日志文件小&#xff0c;节约IO&#xff0c;但是对一些系统函数不能准确复制或不能复制&#xff0c;如now()、uuid()等 在RR隔离级别下&#xff0c;binlog_formatstatement 如果执行insert select from 这条语句是对于一张…

OpenCV如何为等值线创建边界旋转框和椭圆(63)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:OpenCV 为轮廓创建边界框和圆(62) 下一篇:OpenCV的图像矩(64) 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 cv::minAreaRect使用 OpenCV 函数 cv::fitEllipse cv::min…

Gradle 进阶学习 之 build.gradle 文件

build.gradle 是什么&#xff1f; 想象一下&#xff0c;你有一个大型的乐高项目&#xff0c;你需要一个清单来列出所有的乐高积木和它们如何组合在一起。在软件开发中&#xff0c;build.gradle 就是这个清单&#xff0c;它告诉计算机如何构建&#xff08;组合&#xff09;你的软…