【论文精读】StableSR

摘要

       将Diffusion先验嵌入到合成模型(如Stable Diffusion)的模式在图像视频编辑领域取得了良好的结果。本文提出StableSR,将Diffusion先验嵌入到超分辨率(SR),且不对图像退化模式做明确假设。具体有:

  • 为了利用Diffusion先验,所提出方法只需为SR任务微调了一个轻量级的时间感知编码器和一些特征调整层。时间感知编码器纳入了一个时间嵌入层来生成时间感知特征,因为迭代过程中冻结了原始Diffusion模型以保留Diffusion先验,故通过时间感知特征在图像恢复过程中为每个Diffusion步骤提供自适应指导,使Diffusion特征在不同的迭代轮次中自适应调整。时间感知编码器在早期迭代步骤提供更强的指导,在后期提供更弱的指导,以保持SR保真度
  • 为了抑制Diffusion模型的生成随机性以及自编码器编码过程中产生的信息损失,在自编码器解码过程中应用了一个系数可调的可控特征包装模块(CFW),来细化Diffusion模型的输出
  • 为了使模型适应任意分辨率图像,引入一种渐进式聚合采样策略。首先将图像划分为重叠的块,并在每个Diffusion迭代过程都使用高斯核对这些块进行融合。这个过程可以平滑图像块边界,以产生了更连贯的输出
    image

       上图在实际场景下对BSRGAN、Real-ESRGAN+、FeMaSR、LDM和StableSR进行了定性比较。

框架

Guided Finetuning with Time Awareness

       为了使SR能利用Stable Diffusion的先验知识建立以下约束:

  • 模型必须以低分辨率输入图像为条件,生成高分辨率图像
  • 模型只对原始Stable Diffusion进行最小程度的修改,以防止破坏封装在其中的知识

Feature Modulation

       采用一个额外的编码器从退化的LR图像中提取多尺度特征 { F n } n = 1 N \{ F^n\}^N_{n=1} {Fn}n=1N,并结合空间特征变换(SFT)调制Stable Diffusion残差块的中间特征映射:
F ^ d i f n = ( 1 + α n ) ⊙ F d i f n + β n ; α n , β n = M θ n ( F n ) \hat F^n_{dif}=(1+\alpha^n)\odot F^n_{dif}+\beta^n;\ \ \alpha^n,\beta^n=M_\theta^n(F^n) F^difn=(1+αn)Fdifn+βn;  αn,βn=Mθn(Fn)

       其中, M θ n M_\theta^n Mθn表示由多个卷积层组成的小网络, α n α^n αn β n β^n βn表示SFT中的仿射参数, n n n索引Stable Diffusion的UNet空间尺度。微调过程中,会冻结Stable Diffusion的权重,只训练编码器和SFT层,该策略允许向Stable Diffusion中插入从LR图像中提取的结构信息,而不破坏Stable Diffusion捕获的生成先验。

Time-aware Guidance

image
       实验发现,在编码器中使用一个时间嵌入层合并时间信息,可以大大提高了生成的图像质量和保真度,这可以使Stable Diffusion在迭代过程中自适应地调整来自LR特征的条件强度。

       因为在生成过程中,随着噪声的逐渐去除,生成图像的信噪比(SNR)会逐渐增加。当SNR接近 5 e − 2 5e^{−2} 5e2时,图像内容会迅速填充,生成图像的SNR在 5 e − 2 5e^{−2} 5e2的范围内时,编码器会为Diffusion提供相对强的条件。如上图,利用SFT前后的Stable Diffusion特征之间的余弦相似性来衡量编码器提供的条件强度,并绘制不同时间步长的特征余弦相似度值,观察到,余弦相似度在 5 e − 2 5e^{−2} 5e2的信噪比附近达到最小值,这表明编码器施加了最强条件,验证了上述结论。上图b为从编码器中提取的特征图。

Color Correction

       Diffusion模型偶尔会出现颜色偏移,故需对生成的图像进行颜色归一化,以使其均值和方差与LR图像的均值和方差对齐。令 x x x表示LR图像, y ^ \hat y y^表示生成的HR图像,则颜色校正后的输出 y y y计算为:
y c = y ^ c − μ y ^ c σ y ^ c ⋅ σ x c + μ x c y^c=\frac {\hat y^c-\mu^c_{\hat y}} {\sigma^c_{\hat y}} \cdot \sigma^c_{x} + \mu^c_x yc=σy^cy^cμy^cσxc+μxc

       其中 c ∈ { r , g , b } c ∈ \{ r, g, b \} c{r,g,b}表示颜色通道, μ y ^ c \mu^c_{\hat y} μy^c σ y ^ c \sigma^c_{\hat y} σy^c(或 μ x c \mu^c_{x} μxc σ x c \sigma^c_{x} σxc )分别为从 y ^ \hat y y^(或 x x x)的 c − t h c -th cth通道估计的均值和方差,实验发现这种简单的校正足以弥补颜色差异。

       除了在像素域进行颜色校正外,还提出了基于小波的颜色校正方法,给定图像 I I I,通过小波分解在 i − t h ( 1 ≤ i ≤ l ) i -th \ (1 ≤ i ≤ l) ith (1il)尺度提取其高频分量 H i H^i Hi和低频分量 L i L^i Li
L i = C i ( L i − 1 , k ) , H i = L i − 1 − L i L^i=C_i(L^{i-1},k), \ H^i=L^{i-1}-L^i Li=Ci(Li1,k), Hi=Li1Li

       其中 L 0 = I L_0 = I L0=I, C i C_i Ci表示dilation rate为 2 i 2^ i 2i的空洞卷积算子, k k k为卷积核,定义为:
k = [ 1 16 1 8 1 16 1 8 1 4 1 8 1 16 1 8 1 16 ] k=\begin{bmatrix} \frac 1 {16} & \frac 1 {8} & \frac 1 {16} \\ \frac 1 {8} & \frac 1 {4} & \frac 1 {8} \\ \frac 1 {16} & \frac 1 {8} & \frac 1 {16} \end{bmatrix} k= 1618116181418116181161

       将 x x x(或 y ^ \hat y y^)的 l − t h l -th lth的低频和高频成分表示为 L x l L^l_ x Lxl H x l H^l_ x Hxl(或 L y ^ l L^l_ {\hat y} Ly^l H y ^ l H^l_ {\hat y} Hy^l),则输出 y y y表示如下:
y = H y ^ l + L x l y=H^l_{\hat y}+L^l_x y=Hy^l+Lxl

       通过将 y ^ \hat y y^的低频分量 L y ^ l L^l_ {\hat y} Ly^l替换为 L x l L^l_ x Lxl来纠正颜色偏差。本文默认采用像素域的颜色校正。

Fidelity-Realism Trade-off

image
       由于Diffusion模型具有随机性,其生成图像可能偏离真实情况,故引入一个可控特征包装(CFW)模块,以平衡生成图像的真实感和保真度。

       因为Stable Diffusion利用了编码器的潜空间进行生成,因此可以通过自编码器的编码器特征来调制相应的解码器特征,以进一步提高保真度。令 F e F_e Fe F d F_d Fd分别表示编码器和解码器特征,引入可调系数 w ∈ [ 0 , 1 ] w ∈ [0, 1] w[0,1]来控制调制权重:
F m = F d + C ( F e , F d ; θ ) × w F_m =F_d+C(F_e,F_d;\theta)\times w Fm=Fd+C(Fe,Fd;θ)×w

       其中 C ( ⋅ ; θ ) C(\cdot; θ) C(;θ)表示具有可训练参数 θ θ θ的卷积层,模型整体结果如上图。

       这种设计下,采用较小的 w w w可以更大权重利用Stable Diffusion的生成能力,可以增强输出的真实感;而较大的 w w w允许从LR图像中获得更强的结构指导,可以增强输出的保真度。实验观察到 w = 0.5 w=0.5 w=0.5时可以在真实感和保真度之间取得良好的平衡。(CFW只在这个特定阶段训练)

Aggregation Sampling

image
       Stable Diffusion的注意力层对图像分辨率有高度敏感性,对于与其训练设置不同分辨率的图像,其会产生劣质输出,对该问题,常见的解决方案是将较大的图像分割为几个重叠的较小的patch,并分别进行处理。但patchs之间的差异会在Diffusion迭代过程中被复合和放大,如上图左中对比。

       本文采用一种渐进式块聚合采样算法来处理任意分辨率的图像。具体为,首先将低分辨率图像通过编码器编码为潜特征图 F ∈ R h × w F ∈ R^{h\times w} FRh×w,然后将其划分为 M M M个重叠的patch { F Ω n } n = 1 M \{F_{Ω_n} \}^M_{ n=1} {Fn}n=1M,每个patch的分辨率为 64 × 64 64 × 64 64×64 Ω n Ω_n n是特征图 F F F的第 n n n个patch的坐标集。reverse sampling过程的每个step中,会通过StableSR处理每个patch,然后对处理后的patch进行合并。为了合并处理后的patch,对每个patch F Ω n F_{Ω_n} Fn生成一个权重图 w Ω n ∈ R h × w w_{Ω_n} ∈ R^{h×w} wnRh×w,该步骤会将patch从 64 × 64 64×64 64×64扩展为 h × w h×w h×w的分辨率。 w Ω n w_{Ω_n} wn中, Ω n Ω_n n区域为特征图经过高斯滤波器得到的值, Ω n Ω_n n之外的区域由函数 f ( ⋅ ) f(\cdot) f()填充0。随后,patchs根据各自的高斯权重图进行加权相加得到最终的合并输出。

       每个patch的输出定义为 ϵ θ ( Z Ω n ( t ) , F Ω n , t ) \epsilon_\theta(Z^{(t)}_{Ω_n},F_{Ω_n},t) ϵθ(Zn(t),Fn,t),其中 Z Ω n ( t ) Z^{(t)}_{Ω_n} Zn(t)为噪声 Z ( t ) Z^{(t)} Z(t)的第 n n n个patch, θ θ θ是Diffusion模型的参数,所有patch合并的结果为:
ϵ θ ( Z ( t ) , F , t ) = ∑ n = 1 M w Ω n w ^ ⊙ f ( ϵ θ ( Z Ω n ( t ) , F Ω n , t ) ) \epsilon_\theta(Z^{(t)},F,t)=\sum^M_{n=1} \frac {w\varOmega_n} {\hat w} \odot f(\epsilon_\theta(Z^{(t)}_{\varOmega_n},F_{\varOmega_n},t)) ϵθ(Z(t),F,t)=n=1Mw^wΩnf(ϵθ(ZΩn(t),FΩn,t))

       其中 w ^ = ∑ n w Ω n \hat w = \textstyle\sum_n w_{Ω_n} w^=nwn。采用 S a m p l e r ( Z ( t ) , ϵ θ ( Z ( t ) , F , t ) ) Sampler(Z^{(t)} , \epsilon_\theta(Z^{(t)},F,t)) Sampler(Z(t),ϵθ(Z(t),F,t))采样 Z ( t − 1 ) Z^{(t−1)} Z(t1),随后将 Z ( t − 1 ) Z^{(t−1)} Z(t1)重新分割为重叠的patch,并重复上述步骤,直到 t = 1 t = 1 t=1。整体流程如下:
image
       实验表明,这种渐进式聚合方法可以大大提高输出质量,如图4右。

实验

Implementation Details

       StableSR基于Stable Diffusion 2.1-base构建,所提出的时间感知编码器类似于Stable Diffusion中的denoising U-Net的收缩路径,但更轻量(∼105M,包括SFT层)。

       首先对Diffusion模型微调117个epoch,batch size为192,prompt固定为null,并采用学习率为 5 × 1 0 − 5 5×10^{−5} 5×105的Adam优化器优化模型。训练过程中使用了8个NVIDIA Tesla 32G-V100 gpu。

       对于CFW的训练,首先按照Real-ESRGAN中的degradation pipeline生成100k个分辨率为 512 × 512 512 × 512 512×512的合成LR-HR对,并以LR为条件,采用微调后的Diffusion模型生成相应的潜代码 Z 0 Z_0 Z0来训练CFW。训练损失与LDM中使用的自编码器损失相同,且使用固定的对抗性损失权重0.025。

       推理采用200个step的DDPM采样。为了处理任意大小的图像,对分辨率大于 512 × 512 512 × 512 512×512的图像采用了所提出的聚合采样策略。对分辨率小于 512 × 512 512 × 512 512×512的图像,首先放大LR图像,使较短的边具有512的长度,并在生成后将结果重新缩放回目标分辨率(推理前,输入首先被上采样到与输出相同的大小)。

Experimental Settings

Training Datasets

       训练数据采用Real-ESRGAN的degradation pipeline在DIV2K、DIV8K、Flickr2K、OutdoorSceneTraining和FFHQ数据集的5000张人脸图像数据集上合成LR/HR对。

Testing Datasets

       本文在合成数据集和真实世界数据集上评估了所提出方法。合成数据集遵循Real-ESRGAN的degradation pipeline,从DIV2K Valid中生成了3k的 LR-HR对。真实世界数据集采用了RealSR、DRealSR、DPED-iPhone及从互联网上收集的40张图像。

Compared Methods

       为了验证所提方法的有效性,将StableSR与RealSR 、BSRGAN、Real ESRGAN+、DASR、FeMaSR、LDM、SwinIR-GAN 、DeepFloyd IF_III进行了比较。由于LDM是在分辨率为 256 × 256 256 × 256 256×256的图像上训练的,故按照StableSR的相同训练设置对其进行微调,其他方法直接使用官方代码和模型进行测试。

Evaluation Metrics

       对DIV2K Valid、RealSR和DRealSR,采用LPIPS6、FID、CLIP-IQA、MUSIQ、PSNR和SSIM评分等感知指标,评估生成图像的感知质量。

Comparison with Existing Methods

Quantitative Comparisons

image
       定量对比结果如上表。观察到,stableSR在多个感知指标方面优于最先进的SR方法,包括FID、CLIP-IQA和MUSIQ。在合成数据集基准DIV2K Valid上,StableSR( w = 0.5 w = 0.5 w=0.5)实现了24.44 FID分数,比LDM低7.7%,比其他基于GAN的方法至少低32.9%。 StableSR( w = 0.5 w = 0.5 w=0.5)在两个常用的现实世界数据集基准上也取得了最高的CLIP-IQA分数,表明StableSR的优越性。

Qualitative Comparisons

image
       上图展示了stableSR重建的真实世界数据集基准和互联网的真实世界图像的视觉结果。实验结果表明,StableSR在伪影去除和细节生成方面都优于之前的方法。
image
       上图进一步证明了StableSR在分辨率大于 512 × 512 512 × 512 512×512的图像上的优越性。

User Study

       为了进一步检验StableSR的有效性,本实验从互联网上收集了16幅真实的LR图像,采用StableSR与BSRGAN, Real-ESRGAN+和LDM分别进行图像重建,并挑选了25个人类受试者对 3 × 16 3 × 16 3×16的生成图像对进行评估,总共投票 3 × 400 3 × 400 3×400次。
image
       结果如上图,StableSR以很大的优势超过了所有三种竞争方法,始终获得超过75%的投票。

Comparison with Concurrent Diffusion Applications

       本文在真实世界数据集的图像上进一步与ControlNet-tile、IF_III upscaler 进行了比较,所有方法都使用eta 1.0和timestep 200的DDIM采样,随机数种子固定为42。 在StableSR中进一步设置了 w = 0.0 w = 0.0 w=0.0,以避免由于CFW带来的额外改进。对于ControlNet-tile,使用stable-Diffusion-WebUI生成额外的prompt,以获得更好的性能。对于IF_III upscaler ,按照官方示例将噪音等级设置为100 w/o。
image
       结果如上图,由于没有针对SR的具体设计,ControlNet-tile保真度较差。与IF_III upscaler相比,StableSR能够生成边缘更清晰的细节。实验进一步验证了StableSR的优越性。

Ablation Study

Importance of Time-aware Guidance and Color Correction

       本节研究了时间感知引导和颜色校正在真实世界数据集基准上的有效性。
image
       消融结果如上表,删除时间感知引导或颜色校正都会导致较差的SSIM和LPIPS。
image
       上图可视化了在没有时间感知引导或颜色校正情况下的生成结果,整体显示出较差的生成性能,这表明时间感知引导和颜色校正的有效性。
image
       上图可视化了采用小波颜色校正的模型生成质量,显示出较好的生成质量,这可能进一步促进实际使用。

Flexibility of Fidelity-realism Trade-off

image
       CFW模块受CodeFormer的启发,允许灵活的现实-保真权衡。给定一个可控系数 w w w,范围为 [ 0 , 1 ] [0, 1] [0,1],小的w的CFW倾向于生成逼真的结果,而大的 w w w的CFW提高了保真度。详细实验结果如上表,与StableSR( w = 0.0 w = 0.0 w=0.0)相比,具有较大的 w w w值(例如,0.75)的StableSR在所有三个成对基准上取得了 更高的PSNR和SSIM,表明更好的保真度。相比之下,StableSR ( w = 0.0 w = 0.0 w=0.0)通过更高的CLIP-IQA分数和MUSIQ分数实现了更好的感知质量。
image
       上图为相应的可视化结果,观察到适当的 w w w可以促使保真度和感知质量的提高。StableSR( w = 0.5 w = 0.5 w=0.5)显示了与StableSR( w = 1.0 w = 1.0 w=1.0)相当的PSNR和SSIM,但同时具有更好的感知度量分数。因此,StableSR将系数 w w w默认设置为0.5,以便在感知质量和保真度之间进行权衡。

Complexity Comparison

image
       StableSR是一种基于Diffusion的方法,需要多步采样来生成图像。如上表,当采样步数设置为200时,StableSR在一个NVIDIA Tesla 32G V100 GPU上需要15.16秒才能生成 512 × 512 512 × 512 512×512的图像,这与IF_III upscaler相当,但比基于GAN的SR方法(如Real-ESRGAN+和SwinIR-GAN)慢。若需提高模型效率,可采用快速采样策略、模型蒸馏或缩短Diffusion过程链等方法。

Inference Strategies

       StableSR在合成和真实世界的数据集基准上展示了卓越的性能,本节讨论了采样过程中的几种有效策略,可以进一步提高生成结果的视觉质量,而无需额外的微调。

Classifier-free Guidance with Negative Prompts

       StableSR的prompt默认为null,然而通过实验观察到StableSR可以对prompt做出反应,特别是negative prompt,故本节研究prompt的使用,以进一步提高采样期间的生成图像质量。

       给定两个分别以null prompt ϵ θ ( Z ( t ) , F , [ ] , t ) ϵ_θ(Z^{(t)} ,F, [], t) ϵθ(Z(t),F,[],t)和negative prompt ϵ θ ( Z ( t ) , F , c , t ) ϵ_θ(Z^{(t)},F, c, t) ϵθ(Z(t),F,c,t)为条件的StableSR模型,则新的抽样过程可以使用negative prompt的模型估计与guidance scale为s的线性组合:
ϵ ˜ θ = ϵ θ ( Z ( t ) , F , c , t ) + s ( ϵ θ ( Z ( t ) , F , [ ] , t ) − ϵ θ ( Z ( t ) , F , c , t ) ) \~ϵ_θ=ϵ_θ(Z^{(t)},F, c, t)+s(ϵ_θ(Z^{(t)},F, [], t)-ϵ_θ(Z^{(t)},F, c, t)) ϵ˜θ=ϵθ(Z(t),F,c,t)+s(ϵθ(Z(t),F,[],t)ϵθ(Z(t),F,c,t))

       其中 c c c为negative prompt, s = 0 s = 0 s=0时相当于直接使用negative prompt, s = 1 s = 1 s=1相当使用null prompt。
image
       上表比较了StableSR在各种positive prompts和negative prompt下的性能,positive prompts有“(masterpiece:2), (best quality:2), (realistic:2), (very clear:2)”、“Good photo.“,negative prompt有“3d, cartoon, anime, sketches,(worst quality:2), (low quality:2)”。

       从上表观察到,negative prompt对性能指标有显著影响,更高的 s s s会导致更高的CLIP-IQA和MUSIQ分数,表现出更清晰的结果。
image
       对应的可视化结果如上图,结果进一步验证了上述结论。另外观察到,过于强烈的引导( s = 7.5 s = 7.5 s=7.5),会导致生成图像过度锐化。

Pre-cleaning for Severe Degradations

image
       当LR图像严重降质、伴有明显的模糊或噪声时,StableSR可能产生次优的结果,如上图第一列。故在StableSR之前加入了一个辅助的预清洗阶段,以解决严重退化下的场景。

       首先采用通用SR的Real-ESRGAN+和用于人脸SR的CodeFormer初步生成,为了抑制预清洗阶段产生的伪影放大,预清洗后再采用2×双三次下采样操作,随后使用StableSR生成最终输出。如上图右,这种预清洗阶段大大提高了StableSR的鲁棒性。

Appendix

Details of Time-aware Encoder

image
       上表为时间感知编码器的详细设置。

User Study Settings

image
       用户研究采用谷歌表单作为研究平台,如上图。

Additional Visual Results

Visual Results on Fixed Resolution

image
       上图为真实世界数据集图像的 128 × 128 128×128 128×128:LR图像 to 512 × 512 512×512 512×512:HR图像的定性比较,观察到StableSR成功地产生了更精细细节和更清晰边缘的输出,显著优于之前最先进的方法。

Visual Results on Arbitrary Resolution

image
       上图显示了StableSR能够生成超过4倍分辨率的高质量SR图像,表明其在现实应用中的实际应用。
image
       上图显示,StableSR可以在建筑和文本等不同和复杂的真实场景下生成真实的纹理。

reference

Jianyi, W. , Zongsheng, Y. , Shangchen, Z. , Kelvin C.K. C. , & Chen C. L. . (2023). Exploiting Diffusion Prior for Real-World Image Super-Resolution.

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

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

相关文章

编译链接实战(25)ThreadSanitizer检测线程安全

ThreadSanitizer(又称为TSan)是一个用于C/C的数据竞争检测器。在并发系统中,数据竞争是最常见且最难调试的错误类型之一。当两个线程并发访问同一个变量,并且至少有一个访问是写操作时,就会发生数据竞争。C11标准正式将…

JAVA面向对象高级部分—多态

面向对象高级部分—多态 认识多态 对象多态,对象既可以指向老师对象,也可以指向学生对象。 注意事项: 成员变量不谈多态,编译看左边,运行看左边 成员变量编译的是父类People,所以编译的是左边的People&a…

Javaweb之SpringBootWeb案例之自动配置的原理分析的详细解析

3.2.3 原理分析 3.2.3.1 源码跟踪 前面我们讲解了在项目当中引入第三方依赖之后,如何加载第三方依赖中定义好的bean对象以及配置类,从而完成自动配置操作。那下面我们通过源码跟踪的形式来剖析下SpringBoot底层到底是如何完成自动配置的。 源码跟踪技巧…

【README 小技巧】 展示gitee中开源项目start

【README 小技巧】 展示gitee中开源项目start <a target"_blank" hrefhttps://gitee.com/wujiawei1207537021/wu-framework-parent><img srchttps://gitee.com/wujiawei1207537021/wu-framework-parent/badge/star.svg altGitee star/></a>

在VMware中安装CentOS 7并配置Docker

VMware安装CentOS 7 一、介绍 该文章介绍如何使用启动U盘在虚拟机里面安装系统&#xff0c;虚拟机版本为VMware Workstation 16 pro&#xff0c;Linux版本为CentOS Linux release 7.9.2009 (Core)。 二、安装 1、创建虚拟机 点击创建新的虚拟机 选择典型就可以了&#xf…

YOLO算法

YOLO介绍 YOLO&#xff0c;全称为You Only Look Once: Unified, Real-Time Object Detection&#xff0c;是一种实时目标检测算法。目标检测是计算机视觉领域的一个重要任务&#xff0c;它不仅需要识别图像中的物体类别&#xff0c;还需要确定它们的位置。与分类任务只关注对…

2024年最新腾讯云学生专属的服务器优惠活动申请流程

2024年腾讯云学生服务器优惠活动「云校园」&#xff0c;学生服务器优惠价格&#xff1a;轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年&#xff0c;轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年&#xff0c;CVM云服务器2核4G配置842.4元一年&…

HarmonyOS Full SDK的安装

OpenHarmony的应用开发工具HUAWEI DevEco Studio现在随着OpenHarmony版本发布而发布,只能在版本发布说明中下载,例如最新版本的OpenHarmony 4.0 Release。对应的需要下载DevEco Studio 4.0 Release,如下图。 图片 下载Full SDK主要有两种方式,一种是通过DevEco Studio下载…

babylonjs入门-自由相机 FreeCamera

基于babylonjs封装的一些功能和插件 &#xff0c;希望有更多的小伙伴一起玩babylonjs&#xff1b; 欢迎加群&#xff08;点击群号传送&#xff09;&#xff1a;464146715 官方文档 中文文档 案例传送门 懒得打字 粘贴复制 一气呵成 ​

【黑马程序员】4、TypeScript高级类型_黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程

课程地址&#xff1a;【黑马程序员前端TypeScript教程&#xff0c;TypeScript零基础入门到实战全套教程】 https://www.bilibili.com/video/BV14Z4y1u7pi/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 4、TypeScript高级类型 4.1 class类 4…

双周回顾#005 - 零

一件悲伤的事实&#xff0c;这两周&#xff0c;成长值为零&#xff5e;&#xff5e; 从大数据部门临时抽调到互联网部门&#xff0c;支援重构的“配置下单”项目。 一个变种的低代码架构设计&#xff0c;唯一比较有意思的是它的业务组件的设计与校验设计&#xff0c;算是学习…

百度SEO快排原理是什么?如何快速排名方法?

前言&#xff1a;我之前说过我不打算写这个快速排序。 首先&#xff0c;我从来没有在自己的网站上操作过所谓的快速排序。 其次&#xff0c;我不能像网上很多人写的那样透露百度快速排序的秘密&#xff08;说实话&#xff0c;你可以透露秘密&#xff09;。 方法是有了&#xff…

React富文本编辑器开发(三)

现在我们的编辑器显示的内容很单一&#xff0c;这自然不是我们的目标&#xff0c;让呈现的内容多元化是我们的追求。这就需要让编辑器能够接收多元素的定义。从初始数据的定义我们可以推断数据的格式远不止一种&#xff0c;那么其它类型的数据如何定义及呈现的呢&#xff0c;我…

AutoEncoder和 Denoising AutoEncoder学习笔记

参考&#xff1a; 【1】 https://lilianweng.github.io/posts/2018-08-12-vae/ 写在前面&#xff1a; 只是直觉上的认识&#xff0c;并没有数学推导。后面会写一篇&#xff08;抄&#xff09;大一统文章&#xff08;概率角度理解为什么AE要选择MSE Loss&#xff09; TOC 1 Au…

一次奇怪的事故:机器网络连接打满,导致服务不可用

业务背景 发生事故的业务系统是一个toB业务&#xff0c;业务是服务很多中小企业进行某项公共信息指标查询。系统特点:业务处理相对简单&#xff0c;但是流量大&#xff0c;且对请求响应要求较高&#xff1a; 业务请求峰值qps达50w&#xff0c;平时流量达20w左右。 请求响应时…

前端学习第七天-css常用样式设置

达标要求 掌握元素的显示与隐藏 熟练应用溢出的文字隐藏 熟练掌握版心和布局流程 1. 元素的显示与隐藏 在CSS中有三个显示和隐藏的单词比较常见&#xff0c;我们要区分开&#xff0c;他们分别是 display visibility 和 overflow。 他们的主要目的是让一个元素在页面中消失…

Springboot接口参数校验

在设计接口时我们通常需要对接口中的非法参数做校验&#xff0c;以降低在程序运行时因为一些非法参数而导致程序发生异常的风险&#xff0c;例如登录的时候需要校验用户名密码是否为空&#xff0c;创建用户的时候需要校验邮件、手机号码格式是否准确。如果在代码中对接口参数一…

【Git教程】(三)提交详解 —— add、commit、status、stach命令的说明,提交散列值与历史,多次提交及忽略 ~

Git教程 提交详解 1️⃣ 访问权限与时间戳2️⃣ add命令与 commit 命令3️⃣ 提交散列值4️⃣ 提交历史5️⃣ 一种特别的提交查看方法6️⃣ 同一项目的多部不同历史6.1 部分输出&#xff1a;-n6.2 格式化输出&#xff1a;--format、--oneline6.3 统计修改信息&#xff1a;--st…

Linux内存地址空间

目录 一、虚拟地址空间 1.虚拟地址空间的定义 2.虚拟地址空间的布局 二、内存壁垒 1.内存壁垒的定义​编辑 2.段错误 三、内存映射的建立与解除 &#xff08;1&#xff09;mmap &#xff08;2&#xff09;munmap &#xff08;3&#xff09;堆内存的分配和释放 1.sbrk …

浅析能耗监测系统在大型数据中心的应用

彭姝麟 Acrelpsl 1总体设计 大型数据中心能耗监测系统包含硬件和软件两大部分&#xff0c;其硬件组成主要包括监控服务器、主机设备、网络设备、环境参数传感器、通风模块等&#xff0c;总体采集逻辑采用三级监控体系。一级为主机设备&#xff0c;作为系统的应用层&#xff0c…