Multiframe-to-Multiframe Network for Video Denoising

news2024/10/6 6:03:34

Multiframe-to-Multiframe Network for Video Denoising

摘要

现存方法:多相邻帧恢复一个干净帧,效果好但是由于按顺序去噪考虑可能造成视频闪烁;

本文:提出一个多帧对多帧的去噪模型,从连续噪声帧中恢复多个干净帧。本文基于训练策略,从时间和空间优化去噪视频,从而保持时间一致性。

MMNet架构:采用时空卷积机构,同时考虑帧间相似性和单帧特性。受益于并行机制

INTRODUCTION

1、去噪应用很广泛、基本的噪声退化模型为:z=r+α ,在视频中,区别于静态图像,视频中包含 possess spatial informationrich temporal redundancy

由于视频特性,因此面临两个挑战:(1)the volume of video data 大,(2)the content in each frame varies continuously in the temporal dimension;(单帧的内容在时间维度上不断变化)

2、解决问题的传统方法——handcrafted priors to model clean videos,其中,经典的是patch-based methods (文中分析了实现的三步策略),目前CNN-Based的方法,通过中间的参考帧及其相邻辅助帧作为输入,输出与参考帧对应的去噪帧,但是存在缺点:(1)不能直接从时间维度上优化质量,因为它们以逐帧的方式恢复干净的序列,可能会导致视觉闪烁。(2)它们效率不够高,因为它们必须处理多个帧才能仅恢复一帧。

image-20220315093834132

4、比较MM和SS/MS的不同和优势

比较SS:充分利用了序列的时间冗余信息,提高空间质量

比较MS:MS广泛用于video denoisingbrust image denoising,但是本文提出可以输出多个连续帧而不是单帧,能够优化时间维度信息,

由于并行机制的做作,MM更有效,此外,与其他视频处理工作 [39]-[41] 采用以多帧作为输入并输出多帧的训练方案不同,所提出的方法侧重于在训练和测试阶段重建多帧.

5、MMNet模块及其作用

the proposed MMNet consists of an interframe denoising module, intraframe denoising module, and merging module

帧间去噪The interframe denoising module 通过从空间和时间维度提取特征来探索帧间相似性,这有助于利用连续帧内的时间冗余。

帧内去噪the intraframe denoising module 侧重于通过提取空间特征来细化单帧特征,这有助于提高每个单独帧的空间表示

Subsequently, the merging module 聚合两组特征并估计干净的序列。

image-20220721001831693

原文:帧间去噪模块explores the interframe similarity by extracting the features from both the spatial and temporal dimensions, which helps to capitalize on the temporal redundancy within consecutive frames. 相比之下,帧内去噪模块 focuses on refining the single-frame characteristics by extracting spatial features, which helps to improve the spatial representation of each individual frame. 随后,合并模块ggregates both sets of features and estimates the clean sequence. MMNet recovers video in parallel and does not need to calculate the flow in the reference stage, which considerably improves the denoising efficiency.

RELATED WORK

(1)图像去噪

类似于SS方法,近几年比较火热,其中基于CNN的方法特别火,简单介绍两个人提出来的模型。这些基于CNN虽然扩展到图像去噪,但是由于特征提取过程中使用简单网络的局限性,因此性能有限

为了提取更具代表性的时空特征,大部分工作致力于CNN架构开发;简单介绍DnCNN和基于其改进的模型;通过编码器-解码器架构;通过建立噪声模型等等;但是这些没有考虑连续帧之间的时间冗余,性能并不好。

(2)视频去噪

相邻视频帧之间的高相关性提供了丰富的时间冗余,有助于提高去噪质量。为了充分利用时间冗余,现有的视频去噪方法倾向于采用MS去噪方案。例如,[12] 通过使用归纳过程在视频序列的数据自适应时空子域中搜索相似块,将 BM3D 提出的想法扩展到视频去噪 (VBM3D)。基于这种方法,VBM4D [15] 使用运动补偿的 3D 补丁来克服 VBM3D 无法区分分组相似补丁的时间和空间相似性的主要问题。在 [13] 中,VBM4D 的更新版本,称为 BM4D,通过将相互相似的矩形 3D 补丁堆叠成 4D 阵列,然后时在变换域中去除噪声来实现视频去噪。此外,为了减轻运动伪影,Buades 等人。[16] 提出了一种去噪算法,它将基于补丁的去噪方法与运动估计方法相结合。这些方法大大提高了最终的视频质量;然而,它们中的大多数依赖于手工制作的先验,并且在处理视频数据方面效率低下,在去噪质量和效率方面为进一步提高性能留下了相当大的空间。

最近,随着深度学习的进步,相关技术已应用于许多视频处理任务,例如语义分割[51]、事件摘要[52]-[54]和手语识别[55]。为了提高去噪性能,已经提出了许多基于深度学习的视频去噪方法。 [33] 中最早的尝试设计了一种用于视频去噪的循环架构。然而,这种方法不能有效地利用自相似性,导致去噪性能无法与基于补丁的方法竞争。为了解决这个问题,更多的研究倾向于采用 CNN 模型来学习从输入到输出的直接映射。特别是,[23]-[25] 中提出的方法使用级联 2D-CNN 分别执行空间和时间去噪,这使它们能够实现最先进的去噪性能。此外,在 [26]、[27] 中提出了一种将基于非局部补丁的方法与 CNN 模型相结合的视频非局部去噪网络。在[29]中,薛等人。将运动估计和图像处理步骤集成到视频处理模型中,以自我监督的方式利用面向任务的流程。在[31]中,徐等人开发了用于视频去噪的 3D 可变形内核,并提出了一种时空像素聚合网络,以有效地对时空空间中的像素进行采样。与基于补丁的方法相比,基于 CNN 的方法在去噪质量方面取得了巨大的进步。然而,他们逐帧恢复干净的序列,这使得他们无法在时间维度上优化去噪结果。此外,为了恢复干净的序列,他们必须多次处理每个有噪声的帧,这限制了他们的去噪效率。与上述方法相比,本文提出的方法采用了直接恢复短序列的MM去噪方案,使去噪模型能够在空间和时间维度上优化去噪结果,实现更具竞争力的去噪效率。

METHODOLOGY

MM Denoising Scheme

$X \times T \rightarrow R $ 被定义为 z ( x , y , t ) = r ( x , y , t ) + η ( x , y , t ) x , y ∈ X , t ∈ T z(x, y, t)=r(x, y, t)+\eta(x, y, t) \quad x, y \in X, t \in T z(x,y,t)=r(x,y,t)+η(x,y,t)x,yX,tT

r代表干净视频,η表示增加噪声,(x,y,t)表示3D时空坐标,其中X为空间坐标,T为时间域

观察到的视频序列z(X,T),根据去噪模型D(.) 通过网络模型参数θ恢复得到去噪序列$ \overline r $

对于SS来说模型: r ~ ( X , t ) = D ( z ( X , t ) ; Θ ) \tilde{r}(X, t)=\mathrm{D}(z(X, t) ; \Theta) r~(X,t)=D(z(X,t);Θ)

对于MS来说模型: r ~ ( X , t ) = D ( z ( X , t { − n , n } ) ; Θ ) \tilde{r}(X, t)=\mathrm{D}\left(z\left(X, t_{\{-n, n\}}\right) ; \Theta\right) r~(X,t)=D(z(X,t{n,n});Θ)

其中,z(X,t)表示从序列中Z(X,T)中的一个噪声帧,n表示相邻帧数量,$ \overline r $(X,t)表示t时刻恢复的干净帧,

显然,SS 或 MS 去噪模型的去噪结果的时间一致性无法在时间维度上进行优化,因为这些模型以逐帧方式恢复序列。此外,SS去噪模型根本无法利用时间冗余来提高去噪结果的空间质量。


本文模型: r ~ ( X , t { − n ^ , n ^ } ) = D ( z ( X , t { − n , n } ) ; Θ ) \tilde{r}\left(X, t_{\{-\hat{n}, \hat{n}\}}\right)=\mathrm{D}\left(z\left(X, t_{\{-n, n\}}\right) ; \Theta\right) r~(X,t{n^,n^})=D(z(X,t{n,n});Θ)

r ~ ( X , t { − n ^ , n ^ } ) \tilde{r}\left(X, t_{\{-\hat{n}, \hat{n}\}}\right) r~(X,t{n^,n^}) 为去噪的序列, 去噪模型的恢复总帧数2 n ‾ \overline n n+1( n ‾ \overline n n<n);与 SS 和 MS 去噪方案相比,所提出的方案同时恢复多个连续帧,使其能够在空间和时间维度上优化去噪结果。因此,我们提出了一种由空间损失和时间损失组成的混合损失来训练去噪模型。

The Architecture of MMNet

1)Interframe Denoising Module

As shown in Fig. 3, in this module, the down sampling or upsampling operations are implemented using [56], which conducts a transformation between the spatial and channel dimensions for the extracted features. Moreover, a spatiotemporal convolution operation [57] is used to extract the spatiotemporal features from both the spatial and temporal dimensions by convolving a 3D kernel to the 3D ectangular patches of the consecutive input frames. Specifically, convolution kernels with sizes of 1 × 3 × 3,3 × 1 × 1, and 3 × 3 × 3 are used to extract the spatial features and the temporal features and aggregate the spatiotemporal information, respectively. The output feature maps are set to 64.

为了充分利用视频中的时间冗余,通过编码器-解码器架构实现的帧间去噪模块。如图 3 所示,在该模块中,下采样或上采样操作是使用the pixel-shuffle strategy像素混洗策略 [56] 实现,该策略对提取的特征进行空间和通道维度之间的转换。此外,时空卷积操作 [57] 用于通过将 3D 内核卷积到连续输入帧的 3D 矩形块上来从空间和时间维度中提取时空特征。具体来说,分别使用大小为 1×3×3、3×1×1 和 3×3×3 的卷积核来提取空间特征和时间特征并聚合时空信息。输出特征图设置为 64。此外,LeakyReLU 非线性[58]和批量归一化[59]用于促进模型训练。通过这种方式,所提出的模块有效地利用了输入的连续帧内的帧间相似性

2)Intraframe Denoising Module

原因:方法在时空特征的帮助下利用了连续帧内的时间冗余。然而,当去噪模型仅使用时空特征来表示每个帧时,**每个单独帧的空间表示可能会受到对象运动的影响。结果,去噪结果可能会受到运动伪影的影响。**因此,必须细化每个单独帧的特征以改善它们的空间表示。

在这项工作中,我们提出了一个帧内去噪模块来探索单帧特征。帧内去噪模块的主干类似于帧间去噪模块;然而,帧内去噪模块通过将2D内核卷积到输入帧的矩形块独立地提取每个输入帧的空间特征。因此,帧内去噪模型只关注每个输入帧的空间维度,有助于避免物体运动对每个帧的空间表示的影响。本质上,单帧特征是对时空特征的补充,有助于为每个单独的帧生成更准确的空间表示。

3)Merging Module

The merging module is used to recover consecutive frames by aggregating the extracted spatiotemporal and spatial features.

(1)connect the spatiotemporal and spatial features. 连接前面两个模块的特征

(2)**spatial convolution operation **时空卷积操作对提取的特征进行整合,生成残余噪声映射

(3)adopt the residual learning strategy [60]恢复去噪结果

此模块 我们使用一个简单的架构合并模块,因为特征已经完全提取了帧间和帧内去噪模块。

MM Training

To optimize the denoising model, we propose a hybrid loss(混合损失) for network training.因为混合损失函数包括时间损失,因为时间一致性是视频的重要perceptual factor感知因素

混合损失函数: ℓ h y b r i d = ℓ spatial  ( r , r ~ ) + λ ℓ temporal  ( r , r ~ ) \ell_{h y b r i d}=\ell_{\text {spatial }}(r, \tilde{r})+\lambda \ell_{\text {temporal }}(r, \tilde{r}) hybrid=spatial (r,r~)+λtemporal (r,r~)

三个分别代表空间、时间和混合损失,参数λ用来平衡时间和空间损失,其中空间损失类似于MS和SS中的损失函数;时间损失强制去噪序列中的对象运动和光照变化在时间上与原始序列的一致。

spatial loss 利用空间损失来确保每个去噪帧的内容尽可能接近地面真实值。一般来说,MS或SS去噪方法中常用的损失函数可以作为空间损失函数;其中包括均方损失[25]、总变异损失[61]和知觉损失[62]。本文为了简化采用mean-squared loss 均方差损失
ℓ spatial  ( r , r ~ ) = 1 2 B ∑ i = 1 B ∑ t = − n ^ n ^ ∥ r ~ i ( X , t ) − r i ( X , t ) ∥ 2 = 1 2 B ∑ i = 1 B ∑ t = − n n ∥ D ( z i ( X , t ) ; Θ ) − r i ( X , t ) ∥ 2 \begin{aligned} \ell_{\text {spatial }} &(r, \tilde{r})=\frac{1}{2 B} \sum_{i=1}^{B} \sum_{t=-\hat{n}}^{\hat{n}}\left\|\tilde{r}_{i}(X, t)-r_{i}(X, t)\right\|^{2} \\ =\frac{1}{2 B} \sum_{i=1}^{B} \sum_{t=-n}^{n}\left\|\mathrm{D}\left(z_{i}(X, t) ; \Theta\right)-r_{i}(X, t)\right\|^{2} \end{aligned} spatial =2B1i=1Bt=nnD(zi(X,t);Θ)ri(X,t)2(r,r~)=2B1i=1Bt=n^n^r~i(X,t)ri(X,t)2
B表示训练对的batch,ˆn表示参考帧的相邻帧。该去噪模型利用空间损失去除输入序列中的大部分噪声。然而,空间损失独立评估每个去噪帧,这导致无法从时间维度优化去噪序列。

Temporal Loss为了使去噪视频获得更好的时间一致性,我们提出了一个时间损失,通过强制去噪视频的运动和强度变化在时间上保持与原始视频的一致来优化恢复的连续帧。具体来说,我们首先计算帧r(X,t)和它的前帧r(X,t−1)之间的前向光流 f o ( X , t ) = F ( r ( X , t ) , r ( X , t − 1 ) ) f o(X, t)=\mathrm{F}(r(X, t), r(X, t-1)) fo(X,t)=F(r(X,t),r(X,t1))(F为光流估计函数),

然后,将去噪后的帧和gt帧按照以下计算流程进行变形: r w ′ ( X , t ) = W ( r ′ ( X , t − 1 ) , f o ( X , t ) ) r_{w}^{\prime}(X, t)=\mathrm{W}\left(r^{\prime}(X, t-1), f o(X, t)\right) rw(X,t)=W(r(X,t1),fo(X,t)) 其中, r ′ ( X , t − 1 ) r^{\prime}(X, t-1) r(X,t1)表示gt的序列帧或者去噪的序列帧,W即为计算从t-1帧到t帧补偿光流的函数[40]

r w r_w rw表示变形后的gt帧, r ~ w \tilde{r}_{w} r~w表示变形后的去噪帧,由于我们只注重当前帧和变形帧的感知质量,由于在序列运动中, r ′ r^{\prime} r的一些像素可能不在 r w ′ r_{w}^{\prime} rw中,因此通过mask掩码m计算这些时间上的损失,
ℓ temporal  ( r , r ~ ) = 1 B ∑ i = 1 B ∑ t = − n ^ + 1 n ^ ∥ m i ( X , t ) ⊙ ( ( r ~ i ( X , t ) − r ~ w i ( X , t ) ) − ( r i ( X , t ) − r w i ( X , t ) ) ) ∥ , \begin{array}{r} \ell_{\text {temporal }}(r, \tilde{r})=\frac{1}{B} \sum_{i=1}^{B} \sum_{t=-\hat{n}+1}^{\hat{n}} \| m_{i}(X, t) \odot\left(\left(\tilde{r}_{i}(X, t)-\right.\right. \\ \left.\left.\tilde{r}_{w i}(X, t)\right)-\left(r_{i}(X, t)-r_{w i}(X, t)\right)\right) \|, \end{array} temporal (r,r~)=B1i=1Bt=n^+1n^mi(X,t)((r~i(X,t)r~wi(X,t))(ri(X,t)rwi(X,t))),
其中m (X, t)∈[0,1]是利用光流计算的掩模,在遮挡边界和运动边界区域为0,在其他区域为1.圆圈表示乘法,虽然光流计算占用了大量的时间,但只需要在训练阶段进行计算;在参考阶段,不需要光流信息,这有助于提高模型的竞争性去噪效率。

EXPERIMENTAL RESULTS

Experimental Settings

(1)权值的初始化:采用Kaiming uniform initialization[64]Kaiming均匀初始化

(2)ADAM优化器,epoch=35,batch=10,lr init=0.0004,每6个epoch后lr降低2倍,patch=128,input_frame=7,loss的超参数为0.02(该参数设定参考第五节)

(3)训练数据集:(合成)向Vimeo-90K dataset添加参数为δ∈[0,55]的AWGN

(4)测试数据集:(真实) the Captured Raw Video Denoising (CRVD)2 dataset [30]

注意,所提出的方法适用于标准 RGB (sRGB) 视频去噪;但是,CRVD 数据集包含 RAW 格式的视频。因此,我们遵循 [30] 中使用的技术,并使用预训练的图像信号处理器 (ISP) 模型 [66] 生成真实的 sRGB 视频数据集。

(5)评估标准:PSNRSSIM,还有一个:此外,在 FastDVDnet [25] 之后,the spatiotemporal reduced reference entropic differences (ST-RRED) [67] 指数来测量时间失真并评估时间一致性。

Comparison Results for Gaussian Noise

主要是于SS和MS方法的进行比较

image-20220315111605434

相比较于DnCNN,MMNet的成绩归功于其帧内去噪模块可以充分探索连续帧之间的空间和时间冗余信息

相比较于MS去噪,MMNet的成绩归功于其架构设计和提出的MM训练模式:充分考虑到帧间相似性和单帧特征,减少了时间冗余,减少伪影

另外,表中可以看出时间损失函数的设计可以优化结果,执行效果有提升(最后两个的区别 加不加temporal losses)

原图的图4 :注意绿色框中显示的面部和背景的清晰度。所提出的方法可以恢复更清晰的人脸并在背景中产生更少的伪影。

Comparison Results for Real-World Noise

image-20220720232546071

这些值不同的原因:对真实噪声和高斯噪声进行去噪的不同方法的性能是不同的。这些差异可能是因为 CRVD 测试数据集的数据分布与 Vimeo-90K 测试数据集的数据分布不同,并且真实噪声比高斯噪声更复杂。此外,真实噪声和高斯噪声的去噪模型的学习能力和通用性是不同的。原图6显示这些方法的一些图片比较结果。

Generality Evaluation Using Other Types of Noise

与含有其他噪声的方法进行对比 Poisson noise and speckle noise (泊松噪声和散斑噪声) 【其模型都采用相应的噪声进行重新训练】

image-20220315114149297

Temporal Consistency

Temporal consistency is an important factor for visual quality. 本文通过ST-RRED作为非主观的指标进行测评,结果见表1,ST-REDD值越小越好,

MS去噪方法的时间质量主要依赖于从连续输入帧中学习残差,但由于缺乏明确的监督,学习到的残差可能不准确。相比之下,所提出的 MMNet 不仅从输入中学习残差,而且从时间维度优化输出。此外,所提出的 MMNet 使用帧内去噪模块来细化每个单独帧的特征,以改善它们的空间表示,因此,其值更明显。

image-20220720232929457

图8,DnCNN 无法利用时间冗余来恢复纹理细节,导致恢复草的过度平滑和草纹理的不一致。

最先进的方法 DVDnet和FastDVDnet能够恢复草地区域的一些细节,但它们会产生运动伪影,导致细节纹理的时间不一致。相比之下,在时间损失的帮助下,所提出的MMNet恢复了精细的细节并保持了高时间一致性。

Runtime

image-20220720233158910

这种显着的改进可以归因于底层的并行机制和 MMNet 隐式处理运动的能力。

DISCUSSION AND ANALYSIS 细节问题讨论

Ablation Study

删除其中一个模块的结果

去掉帧间模块:使其无法利用时空冗余来恢复精细细节

去掉帧内模块:仅使用时空特征来表示每一帧时,每一帧的空间表示可能会受到对象运动的影响,从而导致运动伪影。因此,帧间和帧内去噪模块都有助于提高去噪质量。

image-20220315124128762

Discussion of the Number of Frames

设计:训练集仍采用Vimeo-90K dataset. 考虑GPU内存的问题,主要讨论帧数为:1,3,5,7

从两方面进行考虑,输出帧和输出帧的数量的问题

2)Discussion of the Number of Input Frames

image-20220315124356379

2) Discussion of the Number of Output Frames

同时恢复多个帧使所提出的方法能够优化空间和时间维度的去噪结果,然而,它也导致不对称的时间信息利用,因为一些恢复的帧将不是输入序列的中心帧。

image-20220315124647490

一个使用 7 帧作为输入并恢复 3 帧(以蓝色、绿色和红色框表示)的示例。绿色框对称地利用了前三帧和后三帧,而蓝色框不对称地利用了前两帧和后四帧;同样,红色框不对称地利用了前四帧和随后的两帧。

为了分析输出帧数的影响,我们进行了实验,其中输入帧数固定为 7,恢复输出帧数变化。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CcQtArwM-1689334219366)(https://data-1306794892.cos.ap-beijing.myqcloud.com/typora_imgs/typora_imgs/20220315-1248-332.png)]

当输出帧数大于1时,没有出现实质性的改善或下降,这表明非对称时间信息利用的影响非常有限。此外,与仅恢复一帧的方法相比,恢复多帧(即 3、5 和 7)的方法获得了更具竞争力的性能,这证明了从空间和时间维度优化去噪结果的有效

根据分析,结合10(b)我们发现在输出帧为7时,运行时间也会更小,决定选7

Analysis of the Hyperparameter λ

损失函数中参数设定

超参数 λ 对于优化去噪结果很重要。通过在 Vimeo-90K 测试集上进行实验来对λ进行敏感性分析,不同的λ值范围从0到1。噪声水平设置为25和45。如图12所示,总体而言,提出的MMNet当λ取值在 0.01到0.1之间时,去噪质量显着提高,当λ设置为0.02时,去噪效果最好。因此,在这项工作中,我们将λ设置为 0.02 来训练提出的MMNet

image-20220315125220179

CONCLUSIONS

MMNet 实现了最先进的去噪质量。此外,它并行恢复视频帧,不需要在参考阶段计算流量,从而具有极具竞争力的去噪效率。对合成数据集和真实数据集的广泛比较证明了所提出方法的有效性和优越性。

问题:

(1)MMNet 需要成对的训练数据,因此当应用程序无法有效获取成对数据时,模型无法轻松微调

(2)MMNet 隐式处理对象运动,因此在某种程度上,它处理运动的能力依赖于训练数据。这些方面是所提出方法的主要限制。

(3)在未来的工作中,我们计划以自我监督的方式实施 MM 去噪方案,并提高 MMNet 对不同运动水平的鲁棒性。

外,它并行恢复视频帧,不需要在参考阶段计算流量,从而具有极具竞争力的去噪效率。对合成数据集和真实数据集的广泛比较证明了所提出方法的有效性和优越性。

问题:

(1)MMNet 需要成对的训练数据,因此当应用程序无法有效获取成对数据时,模型无法轻松微调

(2)MMNet 隐式处理对象运动,因此在某种程度上,它处理运动的能力依赖于训练数据。这些方面是所提出方法的主要限制。

(3)在未来的工作中,我们计划以自我监督的方式实施 MM 去噪方案,并提高 MMNet 对不同运动水平的鲁棒性。

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

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

相关文章

【通览一百个大模型】GLM(THU)

【通览一百个大模型】GLM&#xff08;THU&#xff09; 作者&#xff1a;王嘉宁&#xff0c;本文章内容为原创&#xff0c;仓库链接&#xff1a;https://github.com/wjn1996/LLMs-NLP-Algo 订阅专栏【大模型&NLP&算法】可获得博主多年积累的全部NLP、大模型和算法干货资…

基础算法-【区间合并】

题目 给定 n 个区间 [li,ri]&#xff0c;要求合并所有有交集的区间。 注意如果在端点处相交&#xff0c;也算有交集。 输出合并完成后的区间个数。 例如&#xff1a;[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。 输入格式 第一行包含整数 n。 接下来 n行&#xff0c;每行…

《远见》阅读笔记

不同的环境&#xff0c;不同的职业&#xff0c;职业生涯的建议并没有什么不同 找到热爱的工作&#xff0c;建立热爱的生活 如何思考职业远景 如何分配时间 如何扩张人脉 职业生涯决策框架 三个部分 职场思维、框架、工具实用性建议和案例现实生活为基础&#xff0c;平衡职…

MacOS触控板缩放暂时失灵问题解决

我的系统版本为Monterey 12.5.1&#xff0c;亲测有效 直接创建脚本xxx.sh&#xff0c;并在终端执行脚本bash xxx.sh即可解决此问题&#xff0c;脚本内容如下&#xff1a; #!/bin/bashkillall Finder #kill Finder如不需要可以删除 killall Dock #kill Dock 如不需要可以删…

一文详细介绍什么是数据标注?

机器学习和深度学习算法都依赖于数据&#xff0c;为构建可靠的人工智能模型&#xff0c;需要为算法提供结构良好且标注良好的数据。 为了让机器学习算法学习如何完成特定任务&#xff0c;我们必须标注它们用于训练的数据。换句话说&#xff0c;标注数据很简单&#xff0c;但并不…

pytorch深度学习 之二 拟合数据 从线性到非线性

目的 深入了解线性回归的使用方法&#xff0c;使用非线性激活函数&#xff0c;同时使用pytorch的nn模块&#xff0c;最后使用神经网络来求解线性拟合&#xff0c;只有深入了解了基础&#xff0c;才能做出更高水平的东西。 上一章 神经网络梯度下降和线性回归 拟合定义数据 …

php代码审计15.3之phar伪协议与反序列化

文章目录 1、基础2、生成phar格式文件3、例子4、小试牛刀 1、基础 在漏洞的利用过程之中&#xff0c;我们需要先本地生成phar格式的文件&#xff0c;而生成phar格式的文件&#xff0c;需要将php.ini中的phar.readonly配置项配置为0或Off。目标服务器端是不必开启此配置&#x…

设计模式07-责任链模式

责任链模式属于行为设计模式&#xff0c;常见的过滤器链就是使用责任链模式设计的。 文章目录 1、真实开发场景的问题引入2、责任链模式讲解2.1 核心类及类图2.2 基本代码 3、利用构建者模式解决问题4、责任链模式的应用实例5、总结5.1 解决的问题5.2 使用场景5.3 优缺点 1、真…

计算机的工作原理(操作系统篇)

文章目录 1.操作系统的定位1.硬件2.驱动3.操作系统内核4.系统调用 2.进程3.PCB中有哪些描述进程的特征4.内存管理 1.操作系统的定位 先看一张图: 1.操作系统是最接近硬件的软件,是软件/硬件/用户之间交互的媒介; 2.操作系统起到一个管理的作用 1)对下,要管理硬件设备 2)对上,…

【100天精通python】Day4:运算符

目录 1 算数运算符 2 赋值运算符 3 比较&#xff08;关系运算符&#xff09; 4 逻辑运算符 5 位运算符 6 运算符的优先级 以下是一个完整的示例代码&#xff0c;用于计算学生三科成绩的分差和平均分&#xff1a; 1 算数运算符 Python中的算术运算符包括&#xff1a; 加…

如何在pd里设置win10虚拟机command+w关闭chrome浏览器的一个标签页

背景 在windows&#xff0c;我们知道 ctrlw 在chrome浏览器里可以关闭一个标签页&#xff0c;但是对于MacOS&#xff0c;pd的虚拟机里安装win10后&#xff08;pdparallel desktop)&#xff0c;commandw默认并不是料想中的相当于ctrlw关闭一个标签页&#xff0c;而是关闭所有的…

MPP概述

前言 最近忙于工作&#xff0c;有一段时间没更新自己的博客了&#xff0c;也就意味着囤积了一波需要梳理总结并记录的知识点&#xff0c;但可以保证的是所有都是零星的知识点&#xff0c;不会涉及工作内容。 一、MPP简介 MPP (Massively Parallel Processing)&#xff0c;即大…

Cisco学习笔记(CCNA)——Internetworking

Internetworking Internetworking Basics 什么是网络&#xff1f; 计算机网络&#xff1a;具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来 网络设备 Hub&#xff08;集线器&#xff09; 优点&#xff1a;便宜、操作简单 缺点&#xff1a;共享型、…

Set与Map的使用 + 二叉搜索树与哈希桶的大白话讲解和图解+完整代码实现(详细注释)

文章目录 前言一、Set与Map概念及场景模型纯Key模型Key-Value模型 Map 的使用Set 的使用 二、二叉搜索树什么是二叉搜索树代码实现二叉搜索树查找操作插入操作删除操作(难点)cur这个节点没有左子树(cur.left null)cur这个节点没有右子树(cur.right null)cur这个节点没有左右子…

springboot与rabbitmq的整合【演示5种基本交换机】

前言&#xff1a; &#x1f44f;作者简介&#xff1a;我是笑霸final&#xff0c;一名热爱技术的在校学生。 &#x1f4dd;个人主页&#xff1a;个人主页1 || 笑霸final的主页2 &#x1f4d5;系列专栏&#xff1a;后端专栏 &#x1f4e7;如果文章知识点有错误的地方&#xff0c;…

基于梯度下降的线性回归(Gradient Descent For Linear Regression)

概述&#xff1a; 梯度下降是很常用的算法&#xff0c;它不仅被用在线性回归上和线性回归模型、平方误差代价函数。在本次&#xff0c;我们要将梯度下降和代价函数结合。我们将用到此算法&#xff0c;并将其应用于具体的拟合直线的线性回归算法里。 梯度下降算法和线性回归算法…

Cell 子刊 | 深度睡眠脑电波调节胰岛素敏感性促进血糖调节

缺乏高质量的睡眠会增加一个人患糖尿病的风险。然而&#xff0c;为什么会这样仍然是一个不解之谜。 近期&#xff0c;加州大学伯克利分校的一组睡眠科学家的新发现为我们揭示了答案。研究人员在人体内发现了一种潜在的调控机制&#xff0c;解释了为什么夜间深度睡眠脑电波能够调…

数据结构(王道)——线性表之静态链表顺序表和链表的比较

一、静态链表 定义&#xff1a; 代码实现&#xff1a; 如何定义一个静态链表 静态链表的基本操作思路&#xff1a; 初始化静态链表&#xff1a; 静态链表的查找、插入、删除 静态链表总结&#xff1a; 二、顺序表和链表的比较 逻辑结构对比&#xff1a; 存储结构对比&#xff…

golang关于成员变量使用:=

错误 错误原因 结构体成员变量不能与:一起用&#xff0c;这是一个语法错误。

Mybatis架构简介

文章目录 1.整体架构图2. 基础支撑层2.1 类型转换模块2.2 日志模块2.3 反射工具模块2.4 Binding 模块2.5 数据源模块2.6缓存模块2.7 解析器模块2.8 事务管理模块3. 核心处理层3.1 配置解析3.2 SQL 解析与 scripting 模块3.3 SQL 执行3.4 插件4. 接口层1.整体架构图 MyBatis 分…