【视频异常检测】Diversity-Measurable Anomaly Detection 论文阅读

Diversity-Measurable Anomaly Detection 论文阅读

  • Abstract
  • 1. Introduction
  • 2. Related Work
  • 3. Diversity-Measurable Anomaly Detection
    • 3.1. The framework
    • 3.2. Information compression module
    • 3.3. Pyramid deformation module
    • 3.4. Foreground-background selection
    • 3.5. Training and inference
  • 4. Experiments and Analysis
  • 5. Conclusion

文章信息:
在这里插入图片描述

发表于:CVPR 2023
原文链接:https://arxiv.org/abs/2303.05047
源码:https://github.com/FlappyPeggy/DMAD

Abstract

基于重建的异常检测模型通过抑制对异常的泛化能力来实现其目的。然而,多样化的正常模式因此也不能被很好地重建。虽然一些努力已经被做出来通过建模样本多样性来缓解这个问题,但由于不希望的异常信息的传递而导致了捷径学习。在本文中,为了更好地处理这个权衡问题,我们提出了多样性可测量异常检测(DMAD)框架,以增强重建多样性,同时避免对异常的不良泛化。为此,我们设计了金字塔变形模块(PDM),它从重建的参考到原始输入中估计多尺度变形场,以建模不同的正常模式并测量异常的严重程度。结合信息压缩模块,PDM本质上将变形与原型嵌入分离开来,并使最终的异常分数更可靠。对监控视频和工业图像的实验结果证明了我们方法的有效性。此外,DMAD在面对受污染的数据和类似异常的正常样本时同样有效。

1. Introduction

视觉异常检测是计算机视觉领域中的一个基本且重要的问题,广泛应用于视频监控和工业检测等领域。它旨在从已知类别中检测异常值和从未见过的类别中发现新的模式。这项任务非常具有挑战性,因为异常数据的分布多样且收集成本高昂。因此,我们必须在无监督设置下基于仅有的正常样本构建模型,以便高度区分正常和异常样本。

在过去的十年中,基于重构的方法在异常检测方面取得了巨大进展。这些方法使用自动编码器(AEs)或生成对抗网络(GANs)来从任何输入图像或视频帧中重新构建正常对应物。基于AE的方法首先将输入压缩以丢弃超出正常原型的信息,然后解码嵌入以重新构建输入。根据估计的重构误差,可以检测出异常。

然而,基于重构的方法在异常检测方面的性能长期受到一个严峻问题的限制,即在重构多样化正常和检测未知异常之间的权衡。为了更容易区分异常,先前的工作施加了更多的约束来抑制自动编码期间的异常信息,这导致对多样化正常实例的高重构误差。例如,在图1和图2g中,严重变形的正常(也称为异常样本)“7”的样本甚至比异常样本“4”的误差更高。为了更好地重构多样化的正常,每个查询向量对应于内存中的多个原型,即使异常投影远离原型,也可能被组合到异常嵌入中。因此,在原型嵌入之间的低可能性区域分布的异常很难从多样化正常中识别出来。MNAD引入了跳跃连接以进行多样化重构,并添加了额外的约束以解决错误组合问题。但是后者通过跳跃连接强制模型传输更多不受约束的异常部分信息,导致了捷径学习和不受欢迎的异常重构。

在这里插入图片描述

图1. MNIST数据集中异常检测困难的示例。原型由橙色三角形表示,异常由红色点表示。在这种情况下,基于重构误差或高维特征空间中的距离几乎无法检测到异常。我们的解决方案在图2中进行了说明。

解决上述权衡问题的关键是找到一个适当的多样性度量,该度量能够正相关地反映正常和异常样本的多样性,同时与异常的严重程度相关联。有了这样的度量,我们就不需要对抗正常重构的不完美或者不受欢迎的异常重构,因为异常可以通过多样性度量和重构误差一起更准确地检测出来。需要注意的是,像素级的重构误差不是多样性的理想度量,因为高误差区域经常会将多样化的正常与异常混淆在一起,例如,具有结构变形的正常与颜色接近背景的异常可能会产生不可靠的重构误差。

在本文中,我们提出了一种多样性可测量的异常检测(DMAD)框架,以增强重构多样性的可测量性,从而更准确地测量异常性。我们的基本思想是将重构分解为原型正常的紧凑表示和更多样化的正常与异常的可测量变形,从而将被低估的重构误差通过可以正确测量的多样性进行补偿。为此,DMAD框架包括一个金字塔变形模块(PDM)来建模和测量多样性,以及一个信息压缩模块(ICM)来学习原型正常模式。

受[4, 15]的启发,我们假设异常(例如在视频监控中)可以被表示为外观的显着变形,包括位置变化和微小运动。相比之下,各种各样的正常样本可以被表示为较弱的变形,因此可以很容易地与异常样本区分开来。因此,我们设计了PDM来建模正常样本的多样性以及异常的严重程度。具体来说,PDM学习了描述像素级转换方向和距离的分层二维变形场(图2c,d),从参考图(图2b,由内存中的原型重构而成)到原始输入。在ICM中,我们学习了作为稀疏原型的压缩表示。因此,单个内存项足以表示每个正常聚类。这比其他基于内存的方法更紧凑,其他方法通常需要多个内存项。通过将PDM与ICM集成,DMAD基本上将变形信息(图2e)与类原型分离开来,使最终的异常得分更具有区分性(图2f)。

在这里插入图片描述

图2. 我们的多样性可测方法解决检测困难的示意图。白色数字表示异常分数。a) 原始输入; b) 重构的参考图像; c) 粗略变形; d) 细微变形; e) 多样性的度量; f) 添加了变形信息的误差图为类似异常的样本分配了比真实异常更低的异常分数; g) 像素级重构误差产生了不正确的异常分数。

我们在视频监控和工业缺陷检测的场景中评估我们的异常检测框架。为了在后一种情况下应用DMAD,我们提出了PDM的一种变体PPDM,以处理纹理重建中的误报问题。大量的实验结果验证了我们方法的有效性。此外,即使在受污染的数据和异常样法线面前,我们的方法也能很好地工作。我们工作的主要贡献如下:

  • 我们引入了多样性可测量的异常检测框架,使基于重构的模型能够在重构各种各样的正常模式和检测未知异常之间实现更好的平衡。
  • 我们提出了金字塔变形模块来实现多样性度量,其中变形信息明确地与紧凑的类别原型分离,由此产生的多样性度量与异常性呈正相关。
  • 我们的方法在视频异常检测和工业缺陷检测方面优于先前的作品,并且在面对受污染数据和类似异常的正常样本时表现良好,展示了其广泛适用性和稳健性。

2. Related Work

Anomaly detection.基于重构的方法对正常数据的分布进行建模,并将重构误差较高的样本标记为异常,因为仅使用正常数据训练的模型无法重构异常数据。一些方法使用自动编码器来检测异常,例如卷积自动编码器[9]及其变种[24, 40]。其他方法引入额外的约束或记忆来使模型更具区分性。例如,稀疏编码[25, 39]通过正则化减少表示的冗余性;带记忆的自动编码器(MemAE)[8]使用外部记忆库记忆训练数据集中出现的正常模式;变分自动编码器[10, 35]假设正常数据的先验分布以约束非线性表示能力;HF2VAD [20]使用CVAE[33]捕获动态之间的相关性。帧预测[19]假设视频中的异常样本不能由不包含未见信息的过去帧表示,并迫使模型编码不同帧之间的变化。此外,自动编码器还可以与外部对象检测器[7, 14, 20]结合使用,以捕获与背景无关的外观。

尽管这些方法通常表现良好,但由于重构和区分之间的权衡问题,它们往往难以区分异常样本和类似异常的正常样本。在我们的框架中,利用金字塔变形模块和信息压缩模块来解决这一权衡问题,显著提高了异常检测性能。

Memory network.生成模型在特征空间中连续映射,可能会将异常赋予比正常样本更高的概率[28]。最近的研究[8,11,20,29]探索了使用离散外部存储器来生成已见的正常模式的应用,即使输入是异常的。MemAE [8]提出了一种记忆增强型自编码器,它使用编码器的信息作为查询,并从存储模块中获取检索到的正常模式。MNAD [29]引入了跳跃连接来缓解多样化的正常模式可能产生高重构误差的问题。HF2VAD [20]将存储模块扩展到多级存储,并使用额外的估算器[3,13]来明确建模运动信息并过滤背景中的噪声。DAAD [11]使用分块存储器来增加存储器的特异性。

在大多数现有的工作中,存储模块输出存储项的线性组合,这可能导致类似正常的异常不良重构。而它们并没有明确考虑到,对应于相同存储格的实例可能位于接受域的不同位置。在我们的方法中,通过将嵌入压缩为单个存储项来缓解这些问题,以确保输出绝对正常。

Transformation modeling.视频帧之间的转换是异常检测的关键线索。一些方法[7, 14, 19, 20]使用外部对象检测器或光流估计器隐式或显式地建模运动信息。在转换估计器中,光流估计[13]被广泛研究,旨在估计连续帧之间的像素级运动。此外,对成对图像之间的对应建模也应用于2D几何匹配[30]和3D图像配准[36]以获得图像变形场。STN [15]学习将原始图像自身进行转换,以提高识别算法的性能。RegAD [12]使用特征级仿射配准来重新定位特征而不改变嵌入。

然而,成对转换建模仅关注模式变化,因此无法检测静态异常。而预训练的转换估计器在不同场景中引入了泛化误差。相比之下,我们通过在端到端训练中将转换与原型内存分离和测量来解决这些问题。

3. Diversity-Measurable Anomaly Detection

在本节中,我们首先分析了基于重构的异常检测的目标,并提出了一个多样性可测量的框架,以解决现有工作中的权衡问题。然后,我们介绍了信息压缩模块和金字塔变形模块(PDM)作为该框架的实现。最后,我们解释了训练和推断过程,以及如何使用PDM的变体将该框架应用于缺陷检测。

3.1. The framework

给定输入 x x x,基于自编码器的方法旨在通过最小化以下重构损失(其中 ∥ . ∥ 2 \lVert.\rVert_2 .2只是一种重构损失的类型)来建模正常数据分布:
在这里插入图片描述

对于编码器 f ( ⋅ ) f(·) f()、解码器 g ( ⋅ ) g(·) g()、潜变量 z z z(在这些情况下是指离散记忆项)以及对应于其约束 R 1 ( ϕ ) R_1(\phi) R1(ϕ)的受限特征映射函数 ϕ ( ⋅ ) \phi(·) ϕ(),我们考虑最小化上述重构损失。为了生成多样化的正常模式,引入了跳跃连接和连接 [ ⋅ , ⋅ ] [·, ·] [⋅,⋅][29]:
在这里插入图片描述
然而,由于数据分布的多样性,先前的方法不得不面对代表多样化正常情况和检测异常之间的冲突。其固有原因在于多样性编码[·, f(x)]包含无法准确测量的冗余信息。

在这项工作中,我们提出了一个基于原则的框架,称为多样性可测量异常检测(DMAD),以缓解这种冲突。基本思想是限制传输到 g ( ⋅ ) g(·) g() 的异常信息,同时测量和建模其余部分的多样性。为此,我们设计了信息压缩模块 ϕ ( ⋅ ) \phi(·) ϕ() 和多样性感知模块 ψ ( ⋅ ) ψ(·) ψ(),在 DMAD 框架下:
在这里插入图片描述
其中, ∘ \circ 表示聚合运算符。通过适当设计 ϕ ( ⋅ ) \phi(·) ϕ() ψ ( ⋅ ) ψ(·) ψ()和约束条件,重建损失的优化可以提高特征嵌入的紧凑性。这样,多样化的表示通过 ϕ ( ⋅ ) \phi(·) ϕ()映射到内存中的紧凑原型。输入 x 相对于其重建的多样性由 ψ ( ⋅ ) ψ(·) ψ()表示。在 ψ ( ⋅ ) ψ(·) ψ()中测量到的多样性可以弥补对重建误差的低估,这是产生准确异常分数的关键因素。

在满足以下条件(图3)的前提下,该框架可以实现我们的目标:1. ψ ( ⋅ ) ψ(·) ψ()能够从原型模式到任何正常输入中学习所有的多样化信息,以确保正常样本不会产生高异常分数;2. ψ ( ⋅ ) ψ(·) ψ()生成的变形与多样性度量呈正相关;3. 由 ψ ( ⋅ ) ψ(·) ψ()表示的有关 x x x 的原型信息需要最小化。在接下来的小节中,我们将解释如何设计模块来满足这些条件。

在这里插入图片描述

图3.DMAD 框架的三个条件。线条的颜色表示多样性(异常程度)的测量值;灰色区域表示测量的不确定性;双虚线箭头表示边界的可能范围。最后两行分别表示 DMAD 和传统的基于重构的方法。

3.2. Information compression module

根据 [35],我们采用 VQ-Layer 作为信息压缩模块来学习 ϕ ( ⋅ ) \phi(·) ϕ(),给定嵌入 f ( x ) ∈ R D × H ′ × W ′ f(x)∈R^{D×H'×W'} f(x)RD×H×W 作为查询 z e = f ( x ) z^e = f(x) ze=f(x),并且记忆 z ∈ R D × N z ∈ R^{D×N} zRD×N。然后,通过寻找具有最小 L 2 L2 L2 距离的记忆项(图 4 中的“搜索”),将 z e z_e ze 量化为单个记忆特征立方体 z q ∈ R D × H ′ × W ′ z_q ∈ R^{D×H'×W'} zqRD×H×W
在这里插入图片描述
这里, z n z_n zn 表示第 n n n 个记忆项, h ∈ { 1 , ⋅ ⋅ ⋅ , H ′ } h ∈ \{1, · · · ,H'\} h{1,⋅⋅⋅,H} w ∈ { 1 , ⋅ ⋅ ⋅ , W ′ } w ∈ \{1, · · · ,W'\} w{1,⋅⋅⋅,W} 表示 z q z_q zq z e z_e ze 中相同的位置。使用 stop-gradient 运算符 S G ( ⋅ ) SG(·) SG() 来更新其参数,压缩损失 L c o m L_{com} Lcom 由超参数 β β β 加权组合:
在这里插入图片描述
可以使用信息容量较低的跳跃连接(图 4 中的 “ C o m p Comp Comp.”)来进一步提高重建质量,而不会引入过多的泛化(即对中间特征使用带有 stop-gradient 运算符的 Conv-Layer,其缩减因子为 16 或更大)。

在这里插入图片描述

图 4. 多尺度金字塔形变场的两个版本多样性可测量异常检测框架。用 O \Omicron O 表示前向形变过程,反向过程为 O T \Omicron^T OT。a) PDM 版本在重建后计算前向形变 O \Omicron O。b) PPDM 版本采用循环一致的前向-反向形变,前向形变应用在输入上。

3.3. Pyramid deformation module

我们将未知的异常分为以下三种类型:未见类别(例如,新颖的对象)、全局异常(例如,意外的移动)和已见类别的局部异常(例如,奇怪的行为和工件损坏)。未见类别往往可以根据重建结果轻松检测,但后两种类型通常会与多样化的正常样本混淆。为了将这些异常与正常样本区分开来,我们使用可测量的形变来表示多样性,即重建参考图像与原始输入之间的形变,这样,正常样本中会出现轻微的形变,而异常样本中会出现剧烈的形变。

受到 STN 和 DCN [4,15] 的启发,我们引入了金字塔形变模块(PDM),该模块明确地学习具有分层尺度的形变场,以模拟不同异常类型的运动、行为和缺陷,如图 4a 所示。具体而言,在特征提取之后, ψ ( ⋅ ) ψ(·) ψ() 使用 K K K 个头来计算偏移量 O \pmb{\Omicron} O = { O 1 , ⋅ ⋅ ⋅ , O K } \{O_1, · · · , O_K\} {O1,⋅⋅⋅,OK},对应 K K K 个粗到细的形变:
在这里插入图片描述
这里的 P E ( ⋅ ) PE(·) PE() 是位置嵌入算子 [18], h h h : R C × H × W → R 2 × { H 1 × W 1 , ⋅ ⋅ ⋅ , H K × W K } R^{C×H×W} → R^{2×\{H_1×W^1,··· ,H^K×W^K\}} RC×H×WR2×{H1×W1,⋅⋅⋅,HK×WK} 是形变估计器,生成偏移向量, U p ( ⋅ ) Up(·) Up() 是上采样函数,将 K K K 个头的输出调整为与原始图像相同大小。在我们的实验中,我们设置 K K K = 2,其中 O 1 O_1 O1 用于估计粗略形变(例如,对应于行人的位置或工件的摆放位置),而 O 2 O_2 O2 用于估计细微形变(例如,对应于行人行为或工件细节)。

考虑到没有位置信息的量化嵌入可能导致不准确的重构,我们还为解码器 g ( ⋅ ) g(·) g() 引入位置嵌入算子。然后,我们将 O \pmb{\Omicron} O 聚合到重构的参考图 g ( P E ( z q ) ) g(PE(z^q)) g(PE(zq)) 上,得到由第 k k k 层形变场校准的 x ~ k ( k = 1 , . . . , K ) \tilde{x}_k(k = 1, . . . ,K) x~k(k=1,...,K)
在这里插入图片描述
其中, ∘ \circ 是在此实现中带有参考坐标的网格采样函数(图 4 中的“Agg.” 和 “Coord.”)。然而,针对 ψ ( x ) ψ(x) ψ(x) 最小化无约束的重构损失可能会导致编码器 f ( ⋅ ) f(·) f() 的退化解。为了解决这个问题,我们通过梯度运算和强度损失添加了平滑度损失的约束,如下所示:
在这里插入图片描述

3.4. Foreground-background selection

将背景信息存储在存储器中将破坏嵌入的紧凑性并且需要大量的存储器项。此外,变形估计不应应用于背景。一些方法使用外部估计器来消除背景的干扰,但是在不同场景中的泛化不能得到保证,并且额外的噪声将不可避免地被引入。由于固定视角视频具有强大的先验知识,我们使用可学习的模板 x b g x_{bg} xbg 来建模背景,并使用 f m ( ⋅ ) f_m(·) fm() 生成一个二进制掩码来指示像素是否属于前景或背景。第 k k k 个头部的最终重构 x ~ k \tilde{x}_k x~k 为:
在这里插入图片描述

3.5. Training and inference

Training phase.一旦我们获得了重构 x ~ k \tilde{x}_k x~k,我们就可以计算重构损失 L r e c L_{rec} Lrec 如下:
在这里插入图片描述
这里的 D i s ( ⋅ ) Dis(·) Dis() 是样本空间中的距离函数。回想一下方程 3 中的优化目标,我们使用 L c o m L_{com} Lcom L d f L_{df} Ldf 实现了两个约束。最后,训练通过最小化总损失来完成:
在这里插入图片描述
Inference phase.在推断阶段,我们使用 O \pmb{\Omicron} O 和重构损失来计算输入样本 x x x 的误差图:
在这里插入图片描述
基于局部最大值计算图像级异常分数:
在这里插入图片描述
其中, ⊗ ⊗ 表示卷积运算符, k ⋆ k^{\star} k 是用于异常图的卷积核。 α α α 是一个权衡参数。也就是说,重构损失和变形共同决定了异常分数,这比传统的基于重构的方法更有效,如图 3 所示。

4. Experiments and Analysis

在这里插入图片描述

5. Conclusion

在本文中,我们提出了一种基于重建的多样性可测量异常检测框架,该框架同时增强了异常区分能力和重建多样性。为了实现这一目的,我们提出了金字塔变形模块与信息压缩模块一起使用。PDM显式地模拟了从参考到原始输入的多尺度变换场,而不依赖于外部估计器。因此,可以准确重建多样性正常模式并且可以准确测量异常的严重程度。对视频和图像基准数据的实证研究表明了我们工作的有效性和适用性。在未来的研究中,我们将进一步探索多样性感知模型用于异常检测。

注:
我并没有对图像一场检测那部分进行过多关注,有时间的话再研究工业一场检测那部分的。

更新:简单跑了一下代码,这两天看看代码看看
在这里插入图片描述

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

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

相关文章

JavaScript实现简单的表单验证

关键代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

ChatGPT在大气科学领域建模、数据分析、可视化与资源评估中的高效应用及论文写作

深度探讨人工智能在大气科学中的应用&#xff0c;特别是如何结合最新AI模型与Python技术处理和分析气候数据。课程介绍包括GPT-4等先进AI工具&#xff0c;旨在帮助学员掌握这些工具的功能及应用范围。课程内容覆盖使用GPT处理数据、生成论文摘要、文献综述、技术方法分析等实战…

HTML案例-1.标签练习

效果 源码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head&g…

物资管理系统建设方案

二、 项目概述 2.1 项目背景 2.2 现状分析 2.2.1 业务现状 2.2.2 系统现状 三、 总体需求 3.1 系统范围 3.2 系统功能 3.3 用户分析 3.4 假设与依赖关系 四、 功能需求 五、 非功能性需求 5.1 用户界面需求 5.2 软硬件环境需求 5.3 产品质量需求 5.4 接口需求 …

高效文件管理,批量复制文件夹名称 ,轻松提升工作效率

在信息爆炸的时代&#xff0c;电脑中的文件夹数量与日俱增&#xff0c;管理和整理这些文件夹成为一项繁琐的任务。您是否曾因为需要复制大量文件夹的名称而感到苦恼&#xff1f;现在&#xff0c;我们为您带来了一款能够一键批量复制文件夹名称的神奇工具&#xff0c;让您的效率…

在SAP BAS中创建你的第一个Fiori项目

1. 前言 本文将通过step by step的方式介绍如何在SAP Business Studio中创建一个Fiori项目&#xff0c;并通过Mock Data启动Fiori应用程序。 2. Demo Step1: 登录BAS并创建Dev Space Step2: 进入创建好的Dev Space&#xff0c;通过Get Started页面&#xff0c;选择New Projec…

STM32-DMA数据转运

DMA进行转运的条件 1&#xff1a;开关控制&#xff0c;DMA_CMD必须使能2&#xff1a;传输计数器必须大于03&#xff1a;触发源必须有触发的信号

Zookeeper(五)Zokeeper 环境搭建与Curator使用

目录 一 环境搭建1.1 单机环境搭建1.2 可视化工具ZooKeeper Assistant1.3 集群环境搭建 二 常用命令1.1 命令行语法1.2 数据节点信息1.3 节点类型 三 CuratorAPI使用3.1 依赖3.1 创建会话3.2 基本使用增删改查3.3 ACL权限控制3.4 分布式锁3.5 分布式计数器3.6 分布式Barrier3.7…

婴儿洗衣机硬核测评:希亦、鲸立、小吉婴儿洗衣机性能大比拼!

如果你非常注重婴儿衣物的卫生问题&#xff0c;那么婴儿洗衣机则是非常理想的选择。毕竟&#xff0c;在婴儿吃奶或者接触其他材料时&#xff0c;其抵抗力是比较弱的&#xff0c;再加上普通洗衣机无法对婴儿的衣物进行有效的消毒处理&#xff0c;轻则会对婴儿的健康造成威胁&…

基于 HBase Phoenix 构建实时数仓(5)—— 用 Kafka Connect 做实时数据同步

目录 一、总体架构 二、安装配置 MySQL 1. 创建 mysql 用户 2. 建立 MySQL 使用的目录 3. 解压安装包 4. 配置环境变量 5. 创建 MySQL 配置文件 6. MySQL 系统初始化 7. 启动 mysql 服务器 8. 创建 dba 用户 三、配置 MySQL 主从复制 四、安装部署 Kafka Connector…

23.python标准库之turtle库

一、窗体函数 turtle.setup(width, height, startx, starty) width:窗口宽度 height:窗口高度 startx:窗口与屏幕左侧距离&#xff08;单位象素&#xff09; starty:窗口与屏幕顶部距离&#xff08;单位象素&#xff09; 二、画笔状态函数 三、画笔运动函数

Java字符串精通之旅:从新手到专家

目录 一、字符串的创建 1.直接赋值 2.使用构造方法 二、字符串不可变性 三、常用操作 1.字符串长度 2.连接字符串 3.格式化字符串 四、示例代码&#xff1a;String类应用 五、String中常用的方法 在Java编程世界里&#xff0c;字符串无疑是最常用的数据类型之一。不论…

想要把PDF文件转TXT文本编辑改动怎么办?三秒钟帮你搞定 PDF编辑器

pdf是一种便携文件格式&#xff0c;是由Adobe公司所开发的独特的跨平台文件格式。PDF文件以PostScript语言图象模型为基础&#xff0c;无论在哪种打印机上都可保证精确的颜色和准确的打印效果&#xff0c;即PDF会忠实地再现原稿的每一个字符、颜色以及图象。有点遗憾的是&#…

【好用】Star超36.8k,一个的免费通用数据库管理工具

关于数据库管理工具&#xff0c;大家可能都在用SQLyog、Navicat、MySQL-Front、SQL Studio、MySQL Workbench等等&#xff0c;这些管理工具不是不好用&#xff0c;就是要变魔术才可以用&#xff0c;今天 V 哥给大家推荐一个即好用&#xff0c;又免费的可视化通用数据库管理工具…

Git 删除.git 目录

Git 删除.git 目录 如上图&#xff0c;删除项目中的.git目录 ①在windows系统上&#xff0c;进入该项目的根目录 ②在根目录下打开Git bash ③使用rm -rf .git命令递归删除.git目录 rm -rf .git在删除后想重新初始化&#xff0c;可以参考下面链接里的内容 Git初始化及远程推送…

腾讯云优惠券领取的几种方法,助你降低云服务成本

腾讯云优惠券领取的几种方法&#xff0c;助你降低云服务成本 一、最新优惠卷二、最新活动 腾讯云—腾讯倾力打造的云计算品牌&#xff0c;以卓越科技能力助力各行各业数字化转型&#xff0c;为全球客户提供领先的云计算、大数据、人工智能服务&#xff0c;以及定制化行业解决方…

刷题日记:面试经典 150 题 DAY6

刷题日记&#xff1a;面试经典 150 题 DAY6 392. 判断子序列167. 两数之和 II - 输入有序数组11. 盛最多水的容器15. 三数之和209. 长度最小的子数组 392. 判断子序列 原题链接 392. 判断子序列 双指针&#xff0c;i指向s&#xff0c;j指向t 如果s[i]t[j]&#xff0c;则匹配…

JDK1.8超详细安装教程

1、下载jdk1.8 大家可以直接去百度云盘下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/187N6CU9Gu4bjtOz5_cjd-A?pwd3535 提取码&#xff1a;35352、开始安装 双击下载好的.exe文件&#xff0c;点击下一步 修改安装路径&#xff0c;点击下一步 会顺带安装jre…

107 在携带请求体的情况下, hutool 将 get 请求转换为了 post 请求

前言 本问题主要是来自于同事 情况大致如下, 同样的代码 一个是测试用例, 一个是生产环境的应用, 访问同一个第三方服务, 参数什么的完全一致 但是 出现的问题就是 测试用例能够拿到正确的对方的响应, 但是 生产环境的应用 却是拿到的对方的报错 然后 我开始以为是 是否…

【CKA模拟题】学会JSONPath,精准定位Pod信息!

题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetesyou have a script named pod-filter.sh . Update this script to include a command that filters and displays the label with the…