【论文阅读笔记】CycleISP: Real Image Restoration via Improved Data Synthesis

news2025/2/2 4:36:07

论文地址:https://arxiv.org/abs/2003.07761
代码地址:https://github.com/swz30/CycleISP

论文小结

  总的来说,就是现实世界中无法获取有效的图像对。且之前合成噪声的方式是在sRGB上添加高斯白噪声,但对于相机传感器成像管道来说,经过一系列的处理,噪声早已不是高斯白噪声了,所以之前的论文方法在相机图像中效果不好。
  所以作者设计了一种模式,实现sRGB图像->RAW图像->添加噪声->sRGB图像的一个循环过程,所以整个架构成为CycleISP。
  在训练的时候,sRGB图像->RAW图像的子网络,与RAW图像->sRGB图像的子网络使用干净图像单独训练。在RAW图像->sRGB图像的子网训练完成后,对RAW图像添加噪声,则能得到对应的有噪声的sRGB图像。通过完成的管道,可以得到sRGB去噪图像对。

论文简介

  真实世界中,由于数据不容易制作。所以图像去噪算法主要是在合成数据上开发和评估的。这些合成数据通常在广泛假设加性高斯白噪声 (AWGN) 的情况下生成的。
  但正如最近的基准数据集所报告的那样,它们在应用于真实相机图像时表现不佳。这主要是因为 AWGN 不足以模拟真实的相机噪声,它是信号相关的并且由相机成像管道经过大量转换得到的。在本文中,作者提出了一个框架,可以在正向和反向方向上对相机成像管道进行建模。 它允许我们生成任意数量的真实图像对,用于在 RAW 和 sRGB 空间中进行去噪
  本文模型中的参数比以前最好的 RAW 降噪方法少 5 倍。

  在本文中,作者提出了一种数据合成方式方法,可以在RAW和sRGB空间中生成真实的噪声图像。主要思想,是将噪声注入到我们学习到的设备位置变换获得的RAW图像中,而不是直接注入到sRGB图像中。这种框架背后的关键见解是:sRGB图像中存在的真实噪声被常规图像信号处理(ISP)管道中执行的一系列步骤所扭曲[6, 46]。所以,与原始传感器数据[35]相比,在sRGB中建模真实相机噪声是一项固有的艰巨任务。例如,RAW传感器空间是信号相关(signal-dependent)的,在经过去马赛克后,它变成空间-色彩相关。再通过其余的管道后,它概率分布不一定仍然保持高斯分布。这表示着相机ISP将传感器噪声进行了严重的转换。因此,相较于统一的AWGN模型,我们需要对图像管道对真实合成噪声的影响进行更详细的建模过程。(therefore more sophisticated models that take into account the influence of imaging pipeline are needed to synthesize realistic noise than uniform AWGN model [1, 26, 44].)

  为了利用互联网上可用的sRGB照片的丰富性和多样性,所提出的合成方法的主要挑战是如何将他们转换回原始测量值。[7]提出了一种技术,可用逐步反转相机ISP,因此可用转换sRGB数据到RAW数据。然而,这种方法需要关于目标相机设备的先验信息(例如,颜色校正矩阵和白平衡增益),这使得它特定于给定的设备,因此缺乏普遍性。此外,相机管道中的一些操作是专有的,这样的黑盒很难进行逆向工程。
  为了解决这些挑战,在本文中,我们提出了一个CycleISP框架,它可以将sRGB图像转换为RAW数据,然后再转换回sRGB图像,而不需要任何相机参数的知识。这个属性允许我们在RAW和sRGB空间中合成任意数量的干净和真实的噪声图像对

  作者的主要贡献有:

  1. 学习一种设备无关的转换,称为CycleISP,它允许我们在sRGB和RAW图像空间之间来回移动。
  2. 真实图像噪声合成器,用于在RAW和sRGB空间中生成干净/噪声配对数据。
  3. 一个具有双重注意机制的深度CNN,在各种任务中都有效:学习CycleISP,合成真实噪声和图像去噪。
  4. 从RAW和sRGB图像中去除噪声的算法,在DND[44]和SIDD[1]的真实噪声基准上设置了最新的技术(见下图1)。此外,我们的去噪网络的参数(2.6M)比之前的最佳模型(11.8M)[7]少得多。
  5. CycleISP框架的推广超越了去噪,作者通过一个额外的应用,即立体电影中的颜色匹配来证明这一点。

在这里插入图片描述

  一个更精确的真实RAW传感器噪声模型既包含信号相关的噪声分量(射击噪声),也包含信号无关的加性高斯分量(读噪声)[22,23,24]。

CycleISP

  为了合成真实的噪声数据集,作者在这项工作中使用了两阶段方案。首先,开发了一个框架,在正向和反向两个方向上对相机ISP建模,因此命名为CycleISP。其次,利用CycleISP合成真实噪声数据集用于RAW图像去噪和sRGB图像去噪。

  CycleISP模型的模块如下图所示,(a) RGB2RAW网络分支;(b)RAW2RGB网络分支。此外,作者还引入了一个额外的颜色校正网络分支,为RAW2RGB网络提供显式的颜色attention,以正确恢复原始sRGB图像。
在这里插入图片描述

  上图中的噪声注入,只有在合成噪声数据阶段时才需要。CycleISP的训练过程分为两步:(1)独立训练RGB2RAW和RAW2RGB网络(2)进行联合微调。

RGB2RAW网络分支

  数码相机对RAW传感器数据进行一系列操作,以生成可用于监控的sRGB图像[46]。本文的RGB2RAW网络分支旨在扭转摄像机ISP的影响。与[7]的非处理技术相比,RGB2RAW分支不需要任何相机参数。

  RGB图像 I r g b ∈ R H ∗ W ∗ 3 I_{rgb}\in\mathbb{R}^{H*W*3} IrgbRHW3作为输入,经过一个卷积层 M 0 M_0 M0得到特征 T 0 ∈ R H ∗ W ∗ C T_0\in\mathbb{R}^{H*W*C} T0RHWC,再通过N个循环残差组(RRGs,recursive residual groups)提取深层特征 T d ∈ R H ∗ W ∗ C T_d\in\mathbb{R}^{H*W*C} TdRHWC,起重每个RRG包含多个多重注意块。 T d = R R G N ( . . . ( R R G 1 ( T 0 ) ) ) (1) T_d=RRG_N(...(RRG_1(T_0)))\tag{1} Td=RRGN(...(RRG1(T0)))(1)

  然后再通过一个最后的卷积操作 M 1 M_1 M1获得去马赛克图像 I ^ d e m ∈ R H ∗ W ∗ 3 \hat{I}_{dem}\in\mathbb{R}^{H*W*3} I^demRHW3。这里让 M 1 M_1 M1的channel为 3 3 3是有意为之的,是想让其尽量与原图有一样的结构信息。且实验结果也表明,channel为 3 3 3有助于网络更快、更准确地学习从sRGB到RAW的映射。在这一点上,该网络能够反转色调映射、伽马校正、颜色校正、白平衡和其他转换的效果,并为我们提供图像 I ^ d e m \hat{I}_{dem} I^dem,其值与场景亮度线性相关。最后,为了生成有马赛克的RAW输出 I ^ r a w ∈ R H ∗ W ∗ 1 \hat{I}_{raw}\in\mathbb{R}^{H*W*1} I^rawRHW1。将拜耳采样函数 f B a y e r f_{Bayer} fBayer应用到 I ^ d e m \hat{I}_{dem} I^dem,依据拜耳模式,每个像素省略两个颜色通道。 I ^ r a w = f B a y e r ( M 1 ( T d ) ) (2) \hat{I}_{raw}=f_{Bayer}(M_1(T_d))\tag{2} I^raw=fBayer(M1(Td))(2)

  看来,图上的马赛克层,就是 f B a y e r f_{Bayer} fBayer了,拜耳函数。

  RGB2RAW网络使用线性域和对数域的 L 1 L_1 L1损失进行优化,下公式中的 ϵ \epsilon ϵ是小数值的常量, I r a w I_{raw} Iraw是ground truth RAW图像,也像[21]一样,加入了对数损失项以强制对所有像素值进行近似相等的处理,否则网络将更多的注意力用于恢复突出区域。 L s → r ( y ^ r a w , I r a w ) = ∥ I ^ r a w − I r a w ∥ 1 + ∥ l o g ( m a x ( I ^ r a w , ϵ ) ) − l o g ( m a x ( I r a w , ϵ ) ) ∥ 1 (3) \mathcal{L}_{s\rightarrow r}(\hat{y}_{raw},I_{raw})=\|\hat{I}_{raw}-I_{raw}\|_1 + \|log(max(\hat{I}_{raw}, \epsilon))-log(max(I_{raw}, \epsilon))\|_1\tag{3} Lsr(y^raw,Iraw)=I^rawIraw1+log(max(I^raw,ϵ))log(max(Iraw,ϵ))1(3)

RAW2RGB网络分支

  RAW2RGB网络的最终目标是为sRGB图像去噪问题生成合成的真实噪声数据。本节的内容还是先描述如何将干净的RAW图像映射到干净的sRGB图像(即图2中让噪声注入模块保持"OFF"状态)。

  为了减少计算消耗,将 I r a w I_{raw} Iraw装成 2 ∗ 2 2*2 22的块,变为4个channel(RGGB)。也因为输入的RAW图像可能来自于不同的相机,有不同的拜耳模式,所以我们需要注意channel的顺序,利用拜耳模式统一技术,保持图像的通道顺序为RGGB。再然后,通过一个卷积层 M 2 M_2 M2后,接着 K − 1 K-1 K1个RRG模块对堆叠的RAW图像 I p a c k ∈ R H 2 ∗ 2 W 2 ∗ 4 I_{pack}\in\mathbb{R}^{\frac H2*2\frac W2*4} IpackR2H22W4进行编码,得到深层特征tensor T d ′ ∈ R H 2 ∗ W 2 ∗ C T_{d'}\in \mathbb{R}^{\frac H2 * \frac W2 * C} TdR2H2WC T d ′ = R R G K − 1 ( . . . ( R R G 1 ( M 2 ( P a c k ( I r a w ) ) ) ) ) (4) T_{d'}=RRG_{K-1}(...(RRG_1(M_2(Pack(I_{raw})))))\tag{4} Td=RRGK1(...(RRG1(M2(Pack(Iraw)))))(4)

  需要注意的是, I r a w I_{raw} Iraw是原始的相机RAW图像,而不是RGB2RAW图像的输出。因为这里的首要目标是先独立地学习RAW到sRGB的映射。

颜色attention单元

  使用MIT-Adobe FiveK数据集[10]训练CycleISP。MIT-Adobe FiveK数据集包含数个不同相机的图像,这些相机有不同而复杂的ISP系统。

  CNN很难准确地学习所有不同类型相机的RAW到sRGB映射函数(因为一个RAWimage可以映射到许多sRGB图像)。一种解决方案是为每个摄像头ISP训练一个网络[13,51,62]。然而,这样的解决方案是不可扩展的,性能可能无法推广到其他相机。为了解决这个问题,我们建议在RAW2RGB网络中包含一个颜色注意单元,它通过一个颜色校正分支提供显式的颜色注意。
  颜色校正分支是一个CNN,以sRGB图像 I r g b I_{rgb} Irgb作为输入,生成颜色编码的深层特征tensor T c o l o r ∈ R H 2 ∗ W 2 ∗ C T_{color}\in\mathbb{R}^{\frac H2 * \frac W2 * C} TcolorR2H2WC。在颜色校正分支中,先对 I r g b I_{rgb} Irgb应用高斯模糊,再接着一个卷积层 M 3 M_3 M3,接着两个RRGs,以及一个门机制的sigmoid激活函数 σ \sigma σ T c o l o r = σ ( M 4 ( R R G 2 ( R R G 1 ( M 3 ( K ∗ I r g b ) ) ) ) ) (5) T_{color}=\sigma(M_4(RRG_2(RRG_1(M_3(K*I_{rgb})))))\tag{5} Tcolor=σ(M4(RRG2(RRG1(M3(KIrgb)))))(5)

  公式(5)中, ∗ * 表示卷积, K K K表示标准差经验性设为 12 12 12的高斯核。这种强模糊操作确保了只有颜色信息可以流经这个分支,而结构内容和精细纹理主要来自RAW2RGB网络。使用较弱的模糊处理会削弱公式(4)的特征张量 T d ′ T_{d'} Td的有效性。 T a t t e n = T d ′ + ( T d ′ ⊗ T c o l o r ) (6) T_{atten}=T_{d'}+(T_{d'}\otimes T_{color})\tag{6} Tatten=Td+(TdTcolor)(6)

  公式(6)中的 ⊗ \otimes 是哈达玛积(Hadamard product),即点乘。然后再通过一个RRG模块,一个卷积层 M 4 M_4 M4,一个上采样层 M u p M_{up} Mup将颜色注意力单元输出的特征 T a t t e n T_{atten} Tatten转换为最后的sRGB图像 I ^ r g b \hat{I}_{rgb} I^rgb I ^ r g b = M u p ( M 5 ( R R G K ( T a t t e n ) ) ) \hat{I}_{rgb}=M_{up}(M_5(RRG_K(T_{atten}))) I^rgb=Mup(M5(RRGK(Tatten)))

  为优化RAW2RGB网络,使用 L 1 L_1 L1损失进行优化。 L r → s ( I ^ r g b , I r g b ) = ∥ I ^ r g b − I r g b ∥ 1 \mathcal{L}_{r\rightarrow s}(\hat{I}_{rgb},I_{rgb})=\|\hat{I}_{rgb}-I_{rgb}\|_1 Lrs(I^rgb,Irgb)=I^rgbIrgb1

RRG:循环残差组

  RRG模块如下图3所示:RRG包含 P P P个双重注意块(DAB),每个DAB的目标是抑制不太重要的特性,只允许传播更有信息的特性。DAB通过使用两种注意机制:(1)通道级注意(CA)和(2)空间级注意(SA)进行特征的再校准。
在这里插入图片描述

  上面管道可以通过如下公式(9)表示:其中 U ∈ R H ∗ W ∗ C U\in \mathbb{R}^{H*W*C} URHWC表示着输入tensor T i n ∈ R H ∗ W ∗ C T_{in}\in \mathbb{R}^{H*W*C} TinRHWC通过DAB前端的两层卷积层得到的特征图。而 M c M_c Mc是经过最后一个卷积核大小为 1 ∗ 1 1*1 11的卷积层。 T D A B = T i n + M c ( [ C A ( U ) , S A ( U ) ] ) (9) T_{DAB}=T_{in}+M_c([CA(U), SA(U)])\tag{9} TDAB=Tin+Mc([CA(U),SA(U)])(9)

CycleISP的联合训练

  在RGB2RAW网络和RAW2RGB网络单独训练后,进行联合训练,即将RGB2RAW的输出变成RAW2RGB的输入。联合优化的损失函数如下公式所示,其中 β \beta β是一个正常量: L j o i n t = β L s → r ( I ^ r a w , I r a w + ( 1 − β ) L r → s ( I ^ r g b , I r g b ) ) \mathcal{L}_{joint}=\beta\mathcal{L}_{s\rightarrow r}(\hat{I}_{raw}, I_{raw} + (1-\beta)\mathcal{L}_{r\rightarrow s}(\hat{I}_{rgb}, I_{rgb})) Ljoint=βLsr(I^raw,Iraw+(1β)Lrs(I^rgb,Irgb))

合成真实噪声数据生成

RAW去噪数据

  CycleISP方法的RGB2RAW网络分支使用干净的sRGB图像作为输入,并将其转换为干净的RAW图像。就像下图的顶部分支。在训练CycleISP时,原本为“OFF”状态的噪声注入模块就需要变成“ON”状态。噪声注入模块在RGB2RAW网络的输出中添加不同级别的射频噪声和读噪声(shot and read noise)。作者使用和[7]中相同的程序来采样射频/读取(shot/read)噪声因子。因此,我们可以从任何sRGB图像生成干净及其对应的图像对 { R A W c l e a n , R A W n o i s e } \{RAW_{clean},RAW_{noise}\} {RAWcleanRAWnoise}
在这里插入图片描述

sRGB去噪数据

  给定合成的RAW噪声数据作为输入,RAW2RGB网络将其映射到一个噪声的sRGB图像(上图的底部分支)。因此,我们能够为sRGB去噪问题生成一个图像对 { s R G B c l e a r , s R G B n o i s e } \{sRGB_{clear},sRGB_{noise}\} {sRGBclearsRGBnoise}

  虽然这些合成图像对已经足以训练去噪网络,但我们可以通过以下步骤进一步提高质量。使用真实相机捕获的SIDD数据集[1]对CycleISP模型进行微调。对于每个静态场景,SIDD在RAW和sRGB空间中都包含干净和有噪声的图像对。微调过程如下图4所示。注意,添加随机噪声的噪声注入模块被(仅用于微调)逐像素噪声残留( n o i s e = R A W n o i s y − R A W c l e a n noise=RAW_{noisy}-RAW_{clean} noise=RAWnoisyRAWclean)所代替,其中 R A W n o i s y RAW_{noisy} RAWnoisy R A W c l e a n RAW_{clean} RAWclean的都是真实图像获得的。一旦微调过程完成,我们可以通过给CycleISP模型提供干净的sRGB图像来合成真实的噪声图像
在这里插入图片描述

去噪框架

  如下图5所示,作者提出了一个使用多个RRG的图像去噪网络,并将所提出的下面这个网络用语两组不同设置中:(1)RAW图像去噪;(2)sRGB图像去噪。在这两种设置下,使用相同的网络结构,唯一的区别在于输入和输出的处理。对于sRGB空间的去噪,网络的输入和输出是3通道的sRGB图像。对于RAW图像去噪,网络将4通道噪声填充图像与一个4通道噪声级别图连接作为输入,提供的是一个4通道压缩去噪输出。(For denoising the RAW images, our network takes as input a 4-channel noisy packed image concatenated with a 4-channel noise level map, and provides us with a 4-channel packed denoised output.)。噪声级别图提供了输入图像中存在的噪声的标准偏差的估计,基于其拍摄和读取噪声参数[7]。
在这里插入图片描述

论文实验

真实图像数据集

  DND数据集,是由4款消费级相机捕获的50个去噪图像对。由于原图是超高分辨率的,所以提供者为每张图片提供了 20 20 20 512 ∗ 512 512*512 512512的切片(crop),所以一共有 20 ∗ 50 = 1000 20*50=1000 2050=1000个patches。由于ground-truth的无噪声图片没有公开,所以这个数据集通常用于测试。测试途径是在线服务可以计算得到PSNR和SSIM,RAW空间和sRGB空间均可。

  SIDD数据集。由于小的sensor size和高分辨率,相比较于那些DSLRs,智能手机图像要有更多的噪声。这个数据集用五个智能手机相机手机而成。SIDD有320个图片对可以用于训练,1280个图片对可以用于验证。该数据集也提供了RAW空间和sRGB空间图像。

实现细节

  使用Adam优化器, β 1 = 0.9 \beta_1=0.9 β1=0.9 β 2 = 0.999 \beta_2=0.999 β2=0.999,patchSize为128。使用拜耳统一(Bayer unification)和增强技术(水平翻转和垂直翻转)。DAB除了最后一个卷积层为 1 ∗ 1 1*1 11,其他的卷积层均为 3 ∗ 3 3*3 33

CycleISP的初始训练

  用MIT-Adobe FiveK数据集训练CycleISP模型。MIT-Adobe FiveK有 5000 5000 5000张RAW图像。作者使用LibRaw 库处理RAW图像,生成sRGB图像。拆分4850张图像用于训练,150张图像用于验证。
  RGB2RAW网络和RAW2RGB网络均使用 3 3 3个RRGs和 5 5 5个DABs构建,使用 2 2 2个RRGs和 3 3 3个DABs用于颜色校正网络。CycleISP的RGB2RAW和RAW2RGB分支都独立训练 1200 1200 1200个epochs。batch size为 4 4 4,初始学习率为 1 0 − 4 10^{-4} 104,在 800 800 800个epoch后降到 1 0 − 5 10^{-5} 105

CycleISP Fine-tuning

  先用无噪声图像对CycleISP进行finetune,然后使用合成的噪声图像再次进行finetune。在前者中,CycleISP模型的输出是无噪声的;在后者中,输出是有噪声的。对于每个fine-tuning阶段,训练 600 600 600个epochs,batchSize设为 1 1 1,学习率为 1 0 − 5 10^{-5} 105

去噪网络的训练

  在四个训练集中,分别训练了四个网络,数据集分别为:(1)DND RAW 数据;(2)DND sRGB图像;(3)SIDD RAW 数据;(4)SIDD sRGB图像。四个网络,都使用 4 4 4个RRGs和 8 8 8个DABs, 65 65 65个epoch,batchSize为 16 16 16,初始学习率为 1 0 − 4 10^{-4} 104,每 25 25 25个epoch学习率衰减 10 10 10倍。

  从MIR flickr扩展数据集(MIR flickr extended dataset)去了 1000000 1000000 1000000张图像,依据 90 : 5 : 5 90:5:5 90:5:5的比例划分用于训练、验证和测试。所有图像都使用标准差 σ = 1 \sigma=1 σ=1的高斯核进行预处理,以减少噪声和其他伪影的影响。然后使用前面得到干净/噪声图像对的方式获得数据用于训练。

RAW去噪结果

  下表展示了所有竞争方法在评估服务器[16]网站上获得的DND数据集的量化结果(PSNR/SSIM)。下表中有两个指标,RAW是在RAW空间去噪后的对比结果,sRGB列是服务器使用图像元数据将去噪后的RAW图像通过摄像机成像管道传递后提供的。本文模型的参数比之前最好的方法[7](2019.)要少5倍的参数。
在这里插入图片描述

  下表是在SIDD数据集上RAW空间的去噪结果,表现和DND趋势基本一致。
在这里插入图片描述

  下图是当时最先进网络的视觉对比效果。本文模型能有效地去除真实噪声,特别是低频色度噪声和缺陷像素噪声。
在这里插入图片描述

sRGB去噪结果

  虽然建议对RAW数据(其中噪声不相关且不太复杂)[26]应用去噪,但去噪通常在sRGB域进行研究。下面两表展示了在DND和SIDD数据集上sRGB图像的去噪结果
在这里插入图片描述

  下面两图是在DND和SIDD上sRGB去噪的结果。为了去除噪声,大多数评估算法要么产生过平滑的图像(并牺牲图像细节),要么生成带有斑点纹理和色度伪影的图像。相比之下,本文的方法生成干净和无伪影的结果,同时忠实地保存图像细节
在这里插入图片描述
在这里插入图片描述

  为了比较用我们的方法生成的合成数据训练的去噪模型与[7]的去噪模型的泛化能力,作者进行了以下实验。作者采用(公开的)为DND训练的[7]去噪模型,并直接在SIDD数据集的RAW图像上评估它。作者对去噪模型也重复相同的过程。为了公平的比较,作者使用与[7]相同的网络架构(U-Net)和噪声模型。唯一的区别是从sRGB到RAW的数据转换。表5的结果表明用本文的方法训练的去噪网络不仅在DND数据集上表现良好,而且对SIDD集也有很好的泛化效果(相较于[7]而言,增益大约 1 1 1 dB)。
在这里插入图片描述

消融学习

  从小表可以看出,短的skip connections是最重要的一部分,其次是颜色校正分支。
在这里插入图片描述

立体电影的色彩匹配

  
在这里插入图片描述
在这里插入图片描述

  

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

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

相关文章

工控CTF之协议分析7——OMRON

协议分析 流量分析 主要以工控流量和恶意流量为主,难度较低的题目主要考察Wireshark使用和找规律,难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律,难可以难得五花八门 常见的工控协议有:Modbus、MMS、IEC60870、…

同源策略跨域

目录1.同源策略限制的意义1.请求协议 均为 http2.主机此这为 localhost3.端口号不同 一个 8080 一个 50002.注意3.解决跨域代理服务器 80801.同源策略限制的意义 让前端发送的请求不能随意访问其他端口的服务器,一定程度保护服务器和用户的隐私 1.请求协议 均为 …

nexus上传jar包

nexus上传自定义starter1、普通jar包和springboot的starter1.1、starter上传简介1.2、上传方法2.1.1、setting.xml文件2.1.2、项目中的pom文件1.3、具体部署2、父pom文件上传这里我们主要讲解两种,一种是jar包上传,包含普通jar包和springboot的starter包…

jmeter简单压力测试

测试目的:10个用户并发访问一个接口(http://127.0.0.1:8080/dfm/login.action),能否正常响应。 一、打开JMeter 二、右击“测试计划”,添加线程组 三、设置线程组的线程数 JMeter中的线程组,类似于LoadRunn…

RCTFweb复现

文章目录filechecker_minieasy_uploadfilechecker_plusfilechecker_pro_maxezbypassezruoyifilechecker_mini 给了附件,代码比较短,先审计一下。 在这里发现了file –b命令,且filepath部分可控,明显的ssti漏洞,没过…

Clickhouse引擎之kafka

Clickhouse kafka引擎需要结合kafka使用,需要确保已经安装clickhouse和kafka 实战环境: Clickhouse-server 版本:22.4.5 Kafka版本:kafka_2.13-3.2.0 Clickhouse数据库执行: 1、使用引擎创建一个kafka消费者 CREA…

【OpenCV+Qt】使用车牌识别系统EasyPR识别车牌号

EasyPR是一个中文的开源车牌识别系统,其车牌识别划分为了两个过程:即车牌检测(Plate Detection)和字符识别(Chars Recognition)两个过程: 车牌检测(Plate Detection)&am…

用于医疗诊断的花青染料ICG-Sulfo-EG8-OSu,

凯新生物产品介绍: (ICG)是一个用于医疗诊断的花青染料。它是用于测定心输出量、肝脏功能、肝血流量,和对于眼科血管造影术。它有一个最大吸收光谱在800nm附近。这些红外波段可以穿透视网膜层,相比荧光素血管造影ICG血管造影图像允许进入更深的血液循环。传统的激活…

华为机试_HJ24 合唱队【中等】【收藏】

目录 描述 输入描述: 输出描述: 解题过程 提交代码 学习代码 代码一 代码二 收藏点 描述 N 位同学站成一排,音乐老师要请最少的同学出列,使得剩下的 K 位同学排成合唱队形。 设KK位同学从左到右依次编号为 1&#xff0…

想学Redis却不会安装,这有一个快速入门请拿去

一. Redis简介 1.什么是Redis Redis是一个完全开源免费、且遵守BSD协议的,高性能(NOSQL)的key-value数据库。Redis本身使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型,并提供多种语言的API。 2.Redis特点 Redis具有如下特点&#xff1…

DJ13-2 汇编语言程序设计

目录 一、顺序程序设计 二、分支程序设计 1. 用比较/测试命令条件转移指令实现分支 2. 采用跳转表实现多路分支 三、循环程序设计 1. 计数循环程序设计 2. 条件判断循环程序设计 四、子程序设计 1. 子程序设计举例 2. 主程序和子程序设计举例 一、顺序程序设计 举例…

低代码为什么会受到企业青睐?是何原因?

低代码为什么会受到企业青睐?是何原因?回答这个问题,只需用4个“更”字,就能很好的概括。 1、更快(开箱即用) 2、更省(人力、时间成本) 3、更合适(需求贴合业务&#…

mfc常用控件

mfc在编写桌面客户端应用应用程序,在设计界面时,如果像一般的界面,实施人员或者适配人员使用(特定的用户群体)对界面要求没有那么高,只要软件功能正常,稳定就行,我们在做这些界面时,通常使用原生…

CSDN第16期竞赛

目录 1.比赛详情 2.竞赛感悟 3.竞赛题目回顾 (1)鬼画符门莲台争夺战 (2)津津的储蓄计划 (3)多边形的面积 (4)小桥流水人家 1.比赛详情 比赛地址:http://t.csdn.cn/b1Lzm 2.竞赛感悟 通过这次的周赛&#xff0c…

SQLserver技巧 年份判断,以及向上想下取整

SELECT [出厂日期],DATEDIFF(month,出厂日期,getdate())*1.0/12 as 使用年限/年 ---------得到的结果实际(浮点),cast(DATEDIFF(month,出厂日期,getdate())*1.0/12 as decimal(18,1)) as 使用年限/年 FROM tableA参考: https://blog.csdn.…

这篇文章来告诉你几个实用的视频转文字的方法

相信大家在闲暇之余,都会通过一些网课来提高自己的知识本领吧!有的时候在上网课的过程中,会感觉自己做笔记的速度赶不上老师的进度,重复观看又比较麻烦,这时我们就可以借助一些视频转换软件来将视频转换成文字&#xf…

元宇宙产业委共同主席倪健中:发挥元宇宙总部基地优势,探索农业元宇宙发展之路|2022首届海南自贸港(临高)乡村振兴发展论坛

12月12日,2022首届海南自贸港(临高)乡村振兴发展论坛暨经济合作洽谈周活动在临高开幕。此次活动以“精彩新临高抢滩自贸港”为主题,重点推介“红色”文旅、“黄色”农业、“蓝色”海洋、“绿色”金牌港和“紫色”数字经济组成的五…

【c++提高1】二叉树二叉堆(万字总结)

大纲 一、二叉树 二叉树:1.二叉树简介 二叉树:2.二叉树的性质 二叉树:3.二叉树的存储 二叉树:4.二叉树的遍历 二叉树:5.求解先序、后序、层次遍历序列 二叉树:6.例题 二、二叉堆 二叉堆:1.二叉堆…

Windows下NCNN环境配置(VS2019)

Windows下NCNN环境配置(VS2019) 本文修改自:Windows下ncnn环境配置(VS2019) 一、下载VS2019并安装 1、下载地址:https://visualstudio.microsoft.com/zh-hans/vs/ 2、下载后安装工作负载(安装以…

答疑解惑:开发者必须了解的Unicode和字符编码系统

目录 前言 ASCII Unicode UTF-8 C#中的字符串类型 UTF-16 String.Length 返回的是字符个数吗? 问题与答案 总结 参考 前言 请大家先思考几个问题 为什么有时候页面文本全是“锟斤拷”等乱码,有时候是个别字符别被替换为了�呢&a…