Diffusion Probabilistic Priors for Zero-Shot Low-Dose CT Image Denoising

news2024/11/24 11:51:37

Zero-Shot 低剂量CT图像去噪的扩散概率先验

在这里插入图片描述

论文链接:https://arxiv.org/abs/2305.15887

项目链接:https://github.com/DeepXuan/Dn-Dp

Abstract

低剂量CT图像去噪是医学图像计算中的一项关键任务。近年来,基于监督的深度学习方法在这一领域取得了重大进展。然而,这些方法通常需要对低剂量和正常剂量的CT图像进行训练,这在临床环境中很难获得。现有的基于无监督深度学习的方法通常需要使用大量低剂量CT图像进行训练,或者依靠专门设计的数据采集流程来获得训练数据。为了解决这些限制,我们提出了一种新的无监督方法,该方法在训练期间仅使用正常剂量的CT图像,从而实现对低剂量CT图像的Zero-Shot去噪。我们的方法利用了扩散模型,一个强大的生成模型。我们首先训练一个级联无条件扩散模型,该模型能够从低分辨率到高分辨率生成高质量的正常剂量CT图像。级联结构使得高分辨率扩散模型的训练更加可行。随后,我们将低剂量CT图像作为似然引入扩散模型的反向过程中,结合扩散模型提供的先验,迭代求解多个最大后验(MAP)问题实现去噪。此外,我们提出了自适应调整MAP估计中平衡似然和先验系数的方法,允许适应低剂量CT图像中的不同噪声水平。我们在不同地区不同剂量水平的低剂量CT数据集上测试了我们的方法。结果表明,我们的方法优于目前最先进的无监督方法,并超过了几种基于监督的深度学习方法。

I. INTRODUCTION

低剂量计算机断层扫描(CT)因其显著降低辐射剂量而受到越来越多的关注。虽然低剂量CT降低了患者暴露于X射线的风险,但它通常会导致质量较差的重建图像和明显的噪声,这可能会妨碍准确的诊断。为了提高低剂量CT的图像质量,人们开发了多种算法,包括正弦图滤波[1]、迭代重建[2]和图像去噪[3]。在这些方法中,低剂量CT图像去噪应用最广泛,因为它不涉及重建过程,可以应用于不同的CT成像系统。

近十年来,在深度学习技术快速发展的推动下,深度神经网络已成为低剂量CT图像去噪的有力工具,并取得了显著的成功。通常,基于深度学习的方法以监督的方式学习从低剂量到正常剂量CT图像的端到端映射。最初,卷积神经网络(CNN)是低剂量CT图像去噪最常用的方法[3]。为了提高去噪图像的视觉质量,生成对抗网络(GANs)也被用于低剂量CT图像去噪[4],[5]。此外,基于Transformer的网络进一步增强了低剂量CT图像去噪的性能[6],[7]。

然而,监督深度学习算法的成功在很大程度上依赖于大量的成对训练数据[8]。不幸的是,由于遵守“尽可能低的合理可行”原则,在临床环境中获取此类数据具有挑战性[9]。因此,开发能够在不需要大量标记数据的情况下利用深度神经网络高性能的方法至关重要。

一些现有的方法试图使用不同的策略来解决这个问题。一类方法依赖于通过特殊获取方案获得的训练数据。Yuan等人提出Half2Half,利用配对的半剂量CT图像训练神经去噪器[10]。Wu等人开发了一种利用奇偶投影重建的图像对训练低剂量CT图像去噪网络的方法[11]。另一类方法进一步放宽了训练数据的条件,但仍然需要大量的低剂量CT图像进行训练。例如,Du等人提出从噪声图像中学习不变表示并重建干净的观察结果[12]。Liu等人采用可逆神经网络模拟配对正常剂量和低剂量CT图像,并进行非配对训练[8]。Niu等人提出了一种基于相似度的无监督深度去噪方法来处理CT图像中的相关噪声[13]。

与上述无监督方法不同,本文提出的方法不需要配对正常剂量和低剂量CT图像,也不需要任何低剂量CT图像作为训练集。我们仅使用正常剂量的CT图像训练去噪扩散概率模型[14],[15] (下文简称扩散模型),然后利用预训练扩散模型中嵌入的先验信息实现Zero-Shot低剂量CT图像去噪。扩散模型定义了一个恒定的正向过程,并通过迭代求解反向过程来实现图像生成。扩散模型不仅实现了最先进的生成结果,而且还提供了生成过程中数据分布的分析表示,这是GAN等模型无法实现的。由于扩散模型具有强大的生成和表征能力,已有一些研究探索了其先验在图像重建和恢复等下游任务中的应用[16]-[19]。然而,这些方法大多要么忽略了噪声的存在[19],要么只考虑简单的噪声场景[16]-[18]。在我们的方法中,我们首先提出将扩散先验纳入最大后验(MAP)框架,以解决低剂量CT图像去噪问题。此外,我们引入了一种动态调整先验和似然权重的策略来处理复杂的低剂量CT噪声,这些噪声在不同的CT切片上表现出不同的水平。

首先,我们使用正常剂量的CT图像训练扩散模型。先前的研究强调了直接生成尺寸为512×512的高分辨率图像的挑战。采用级联生成方法来解决这个问题[20]-[22]。具体来说,我们从随机噪声中生成低分辨率图像,然后通过对低分辨率图像的调节生成大小为512×512的高分辨率图像。然后,我们提出了一种将预训练扩散模型纳入MAP去噪框架的算法。在扩散模型生成过程的每一次迭代中,我们引入低剂量CT图像并解决MAP估计问题,确保生成的图像与输入的低剂量CT图像具有良好的似然性。最终,该扩散模型可以生成输入低剂量CT图像的高质量对应物,实现低剂量CT图像去噪。此外,考虑到不同的低剂量CT切片表现出不同的噪声水平,我们设计了两种自适应策略来改进MAP估计中的系数,以平衡似然和先验。该算法利用改进后的系数在中间时间步恢复去噪过程,可以自适应处理不同噪声水平的低剂量CT图像。

我们的贡献可以概括如下:

  1. 我们提出了在大规模CT图像数据集上以级联方式训练扩散模型,该模型可以从随机噪声中逐步生成真实的低分辨率和高分辨率正常剂量CT图像。
  2. 通过求解扩散模型反向过程中的多个MAP问题,提出了一种基于扩散先验的完全无监督Zero-Shot低剂量CT图像去噪算法。
  3. 引入了两种自适应策略来平衡MAP估计系数的似然性和先验性,以处理不同水平的低剂量CT噪声。
  4. 我们的方法在视觉效果和指标方面都表现出色,优于最先进的无监督方法,甚至超过了几种基于监督的深度学习方法。

II. METHOD

A. 基于扩散模型的NDCT图像生成

我们采用两步级联扩散模型来生成正常剂量的CT图像。第一个模型是无条件扩散模型,它从随机噪声中生成低分辨率正常剂量CT图像。第二种模型是条件扩散模型,以低分辨率图像为条件生成尺寸为512×512的高分辨率正常剂量CT图像。整个模型是无监督的,因为它只使用正常剂量的CT图像,没有标签进行训练。

1) 无条件扩散模型(Unconditional Diffusion Model):给定一组数据 x 0 ∼ q ( x 0 ) x_0 \sim q(x_0) x0q(x0),扩散模型定义了一个固定的正向过程,并旨在将其反转,以实现从随机噪声中生成图像。前向过程 q ( x 1 : T ∣ x 0 ) q (x_{1:T} | x_0) q(x1:Tx0)被定义为一个马尔可夫链,其中每个时间步的概率分布只依赖于前一个时间步。具体来说,我们有:
q ( x 1 : T ∣ x 0 ) : = ∏ t = 1 T q ( x t ∣ x t − 1 ) , q ( x t ∣ x t − 1 ) : = N ( x t ; 1 − β t x t − 1 , β t I ) , (1) \begin{aligned} q\left(x_{1:T}\mid x_{0}\right)& :=\prod_{t=1}^{T}q\left(x_{t}\mid x_{t-1}\right),q\left(x_{t}\mid x_{t-1}\right) \\ &:=\mathcal{N}\left(x_{t};\sqrt{1-\beta_{t}}x_{t-1},\beta_{t}I\right), \end{aligned} \tag{1} q(x1:Tx0):=t=1Tq(xtxt1),q(xtxt1):=N(xt;1βt xt1,βtI),(1)
式中, x t x_t xt为时间步长t的数据, N ( ⋅ ; μ , Σ ) \mathcal{N}\left(\cdot;\mu,\Sigma\right) N(;μ,Σ)表示高斯分布,平均值 μ \mu μ和协方差矩阵 Σ \Sigma Σ β 1 , … , β T \beta_1,…, \beta_T β1,,βT是固定方差表。前向过程逐步向 x 0 x_0 x0中加入噪声[15]。根据(1),我们可以推导出以下两个条件分布:
q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) , q ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 ; μ ~ t ( x t , x 0 ) , β ~ t I ) , \begin{align} q\left(x_{t}\mid x_{0}\right)=\mathcal{N}\left(x_{t};\sqrt{\bar{\alpha}_{t}}x_{0},\left(1-\bar{\alpha}_{t}\right)I\right),\tag{2}\\ q\left(x_{t-1}\mid x_{t},x_{0}\right)=\mathcal{N}\left(x_{t-1};\tilde{\mu}_{t}\left(x_{t},x_{0}\right),\tilde{\beta}_{t}I\right),\tag{3} \end{align} q(xtx0)=N(xt;αˉt x0,(1αˉt)I),q(xt1xt,x0)=N(xt1;μ~t(xt,x0),β~tI),(2)(3)
其中:
α ˉ t : = ∏ i = 1 t ( 1 − β i ) , μ ~ t ( x t , x 0 ) : = α ˉ t − 1 β t 1 − α ˉ t x 0 + α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t , β ~ t : = ( 1 − α ˉ t − 1 ) 1 − α ˉ t β t . \begin{align} &\bar{\alpha}_{t}:=\prod_{i=1}^{t}(1-\beta_{i}),\tag{4} \\ &\tilde{\mu}_{t}\left(x_{t},x_{0}\right):=\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_{t}}{1-\bar{\alpha}_{t}}x_{0}+\frac{\sqrt{\alpha_{t}}\left(1-\bar{\alpha}_{t-1}\right)}{1-\bar{\alpha}_{t}}x_{t}, \tag{5}\\ &\tilde{\beta}_{t}:=\frac{(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_{t}}\beta_{t}.\tag{6} \end{align} αˉt:=i=1t(1βi),μ~t(xt,x0):=1αˉtαˉt1 βtx0+1αˉtαt (1αˉt1)xt,β~t:=1αˉt(1αˉt1)βt.(4)(5)(6)
将反向过程定义为具有可学习参数 θ θ θ的马尔可夫链,
p θ ( x 0 : T ) : = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) , (7) p_{\theta}\left(x_{0:T}\right):=p\left(x_{T}\right)\prod_{t=1}^{T}p_{\theta}\left(x_{t-1}\mid x_{t}\right), \tag{7} pθ(x0:T):=p(xT)t=1Tpθ(xt1xt),(7)
其中:
p ( x T ) = N ( x T ; 0 , I ) , p θ ( x t − 1 ∣ x t ) : = N ( x t − 1 ; μ θ ( x t , t ) , σ t 2 I ) . \begin{align} &p\left(x_T\right)=\mathcal{N}\left(x_T;0,I\right),\tag{8}\\ &p_\theta\left(x_{t-1}\mid x_t\right):=\mathcal{N}\left(x_{t-1};\mu_\theta\left(x_t,t\right),\sigma_t^2I\right).\tag{9} \end{align} p(xT)=N(xT;0,I),pθ(xt1xt):=N(xt1;μθ(xt,t),σt2I).(8)(9)
这里, μ θ ( x t , t ) \mu_{\theta}\left(x_{t},t\right) μθ(xt,t)一般由U-nets预测, σ t 2 \sigma_{t}^{2} σt2定义为 1 − α ˉ t − 1 1 − α ˉ t β t \frac{1-\bar{\alpha}_{t}-1}{1-\bar{\alpha}_{t}}\beta_{t} 1αˉt1αˉt1βt。训练损失是通过最小化负对数似然 − log ⁡ p θ ( x 0 ) -\log p_{\theta}\left(x_{0}\right) logpθ(x0)的变分界得到的[14],

2) 条件扩散模型(Conditional Diffusion Model):给定图像对 ( x 0 , c ) (x_0, c) (x0,c)的数据集,条件扩散模型与无条件模型保持相同的正向过程,其中正向过程与 c c c无关,遵循(1)。而反向过程以 c c c为附加条件,可定义为 p θ ( x 0 : T ∣ c ) : = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t , c ) p_{\theta}\left(x_{0:T}\mid c\right):=p\left(x_{T}\right)\prod_{t=1}^{T}p_{\theta}\left(x_{t-1}\mid x_{t},c\right) pθ(x0:Tc):=p(xT)t=1Tpθ(xt1xt,c),其中
p θ ( x t − 1 ∣ x t , c ) : = N ( x t − 1 ; μ θ ( x t , t , c ) , σ t 2 ) (10) p_{\theta}\left(x_{t-1}\mid x_{t},c\right):=\mathcal{N}\left(x_{t-1};\mu_{\theta}\left(x_{t},t,c\right),\sigma_{t}^{2}\right) \tag{10} pθ(xt1xt,c):=N(xt1;μθ(xt,t,c),σt2)(10)
3) 级联扩散模型用于NDCT图像生成(Cascaded Diffusion Model for NDCT Image Generation):我们建议使用级联框架生成高分辨率正常剂量CT图像,因为先前的研究表明直接生成高分辨率图像存在挑战[20]-[22]。给定一组正常剂量的CT图像 x 0 h r ∈ R 512 × 512 x_{0}^{hr}\in\mathbb{R}^{512\times512} x0hrR512×512,我们通过对 x 0 h r x^{hr}_0 x0hr进行k的降采样得到图像对 ( x 0 h r , x 0 l r ) (x^{hr}_0, x^{lr}_0) (x0hr,x0lr),其中 x 0 l r ∈ R 512 × 512 x_{0}^{lr}\in\mathbb{R}^{512\times512} x0lrR512×512。我们首先定义了一个前向过程参数 { α ˉ t l r } t = 1 , … , T \{\bar{\alpha}^{lr}_t\}_{t=1,…,T} {αˉtlr}t=1,,T和反向过程参数 θ l r θ^{lr} θlr,用于从随机噪声中生成低分辨率正常剂量CT图像。第二种扩散模型是以低分辨率CT图像为条件,实现正常剂量CT图像超分辨率的条件扩散模型。其正向过程参数为 { α ˉ t s r } t = 1 , … , T ∞ \{\bar{\alpha}_{t}^{sr}\}_{t=1,\ldots,T}^{\infty} {αˉtsr}t=1,,T和反向过程参数为 θ s r θ^{sr} θsr。通过级联两种扩散模型,首先由随机噪声生成低分辨率正常剂量CT图像,然后将生成的低分辨率CT图像作为超分辨率扩散模型的条件生成高分辨率正常剂量CT图像。总体生成过程如图1所示。

在这里插入图片描述

B. 基于扩散先验的低剂量CT图像去噪

在本节中,我们提出了一种称为Dn-Dp(扩散先验去噪)的算法,用于使用扩散先验对低剂量CT图像进行去噪。我们首先在一般情况下描述该算法,然后利用我们的预训练扩散模型将其应用于低剂量CT图像去噪的具体问题。

1)使用扩散先验的迭代去噪:在图像去噪问题中,损坏可以建模如下:
y 0 = x 0 + n , (11) y_0=x_0+n, \tag{11} y0=x0+n,(11)
其中 y 0 y_0 y0是观察到的噪声图像, x 0 x_0 x0是我们要估计的底层干净图像。为了实现这一点,我们利用一个训练有素的扩散模型,该模型使用前向过程参数 { α ˉ t } t = 1 , … , T \{\bar{\alpha}_t\}_{t=1,…,T} {αˉt}t=1,,T准确捕获 x 0 x_0 x0的先验分布和反向过程参数 θ θ θ。目标是使用扩散先验有效地去噪。具体方法概述如下。

在扩散模型中,图像 x t x_t xt在时间步长 t = 1 , … , T t = 1,…,T t=1,,T根据正向过程,由 x 0 x_0 x0生成:
x t = α ˉ t x 0 + 1 − α ˉ t ϵ t , (12) x_t=\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon_t, \tag{12} xt=αˉt x0+1αˉt ϵt,(12)
其中 ϵ t ∼ N ( 0 , I ) \epsilon_{t}\sim\mathcal{N}\left(0,I\right) ϵtN(0,I)取自正态分布。为了在每个时间步 t t t上引入输入噪声图像 y 0 y_0 y0的似然,根据之前的工作[18]我们使用与(12)相同的 ϵ t \epsilon_{t} ϵt y 0 y_0 y0中生成 y t y_t yt(对于 t = 1 , … , T t = 1,…,T t=1,,T):
y t = α ˉ t y 0 + 1 − α ˉ t ϵ t . (13) y_t=\sqrt{\bar{\alpha}_t}y_0+\sqrt{1-\bar{\alpha}_t}\epsilon_t. \tag{13} yt=αˉt y0+1αˉt ϵt.(13)
将式(11)和式(12)代入式(13),设 α ˉ 0 = 1 \bar{\alpha}_0 = 1 αˉ0=1,我们得到 t = 0 , … , T t = 0,…,T t=0,,T时的方程:
y t = x t + α ˉ t n . (14) y_{t}=x_{t}+\sqrt{\bar{\alpha}_{t}}n. \tag{14} yt=xt+αˉt n.(14)
式(14)表明,在每个时间步长 t t t,存在一个新的噪声 α ˉ t n \sqrt{\bar{\alpha}_{t}}n αˉt n的去噪问题。由于 α ˉ t \bar{\alpha}_{t} αˉt随着 t t t的增加而减小,并且 α ˉ t ≈ 0 \bar{\alpha}_{t}≈0 αˉt0[14],我们可以使用 x ^ T = y T \hat{x}_T = y_T x^T=yT作为初始化。然后,对于 t = T … , 1 t = T…, 1 t=T,1,我们可以将扩散先验 p θ ( x t − 1 ∣ x t ) p_{\theta}\left(x_{t-1}\mid x_{t}\right) pθ(xt1xt)纳入MAP框架[23]来求解 x t − 1 x_{t−1} xt1
x ^ t − 1 = arg ⁡ min ⁡ x t − 1 [ ∥ x t − 1 − y t − 1 ∥ 2 − λ t − 1 log ⁡ p θ ( x t − 1 ∣ x ^ t ) ] , (15) \begin{aligned}\widehat x_{t-1}&=\arg\min_{x_{t-1}}[\|x_{t-1}-y_{t-1}\|^2\\&-\lambda_{t-1}\log p_{\theta}(x_{t-1}\mid\widehat x_{t})],\end{aligned} \tag{15} x t1=argxt1min[xt1yt12λt1logpθ(xt1x t)],(15)
其中 λ t λ_t λt是在时间步长t处权衡似然和先验的系数。在扩散模型的反向过程中, p θ ( x t − 1 ∣ x ^ t ) p_{\theta}\left(x_{t-1}\mid\widehat{x}_{t}\right) pθ(xt1x t)服从高斯分布,其均值为 μ θ ( x ^ t , t ) \mu_{\theta}\left(\widehat{x}_{t},t\right) μθ(x t,t),对角协方差矩阵为 σ t 2 I \sigma_{t}^{2}I σt2I。当 t > 1 t > 1 t>1时, σ t > 0 \sigma_{t}> 0 σt>0[14],则有:
x ^ t − 1 = arg ⁡ min ⁡ x t − 1 [ ∥ x t − 1 − y t − 1 ∥ 2 + λ t − 1 σ t ∥ x t − 1 − μ θ ( x ^ t , t ) ∥ 2 ] , t > 1. (16) \begin{aligned} {\widehat{x}}_{t-1}& =\arg\min_{x_{t-1}}[\|x_{t-1}-y_{t-1}\|^{2} \\ &+\frac{\lambda_{t-1}}{\sigma_{t}}\|x_{t-1}-\mu_{\theta}(\widehat{x}_{t},t)\|^{2}],\quad t>1. \end{aligned} \tag{16} x t1=argxt1min[xt1yt12+σtλt1xt1μθ(x t,t)2],t>1.(16)
t = 1 t = 1 t=1时, σ t = 0 \sigma_{t}= 0 σt=0,表明扩散的最终生成步长是确定的:
x ^ t − 1 = μ θ ( x ^ t , t ) , t = 1. (17) \widehat{x}_{t-1}=\mu_{\theta}\left(\widehat{x}_{t},t\right),\quad t=1. \tag{17} x t1=μθ(x t,t),t=1.(17)
式(16)是一个具有封闭解的凸优化问题。通过求解(16)并与(17)结合,我们可以得到每次迭代中 x ^ t − 1 \hat{x}_{t−1} x^t1的解如下:
x ^ t − 1 = { y t − 1 + λ t − 1 μ θ ( x ^ t , t ) / σ t 1 + λ t − 1 / σ t , t > 1 μ θ ( x ^ t , t ) , t = 1 . (18) \widehat x_{t-1}=\begin{cases}\dfrac{y_{t-1}+\lambda_{t-1}\mu_{\theta}\left(\widehat x_{t},t\right)/\sigma_{t}}{1+\lambda_{t-1}/\sigma_{t}},&t>1\\\mu_{\theta}\left(\widehat x_{t},t\right),&t=1\end{cases}. \tag{18} x t1= 1+λt1/σtyt1+λt1μθ(x t,t)/σt,μθ(x t,t),t>1t=1.(18)
同理,若预训练扩散模型以 c c c为条件,则解为:
x ^ t − 1 c = { y t − 1 + λ t − 1 μ θ ( x ^ t , t , c ) / σ t 1 + λ t − 1 / σ t , t > 1 μ θ ( x ^ t , t , c ) , t = 1 . (19) \widehat x_{t-1}^c=\begin{cases}\dfrac{y_{t-1}+\lambda_{t-1}\mu_\theta\left(\widehat x_t,t,c\right)/\sigma_t}{1+\lambda_{t-1}/\sigma_t},&t>1\\\mu_\theta\left(\widehat x_t,t,c\right),&t=1\end{cases}. \tag{19} x t1c= 1+λt1/σtyt1+λt1μθ(x t,t,c)/σt,μθ(x t,t,c),t>1t=1.(19)
式(18)和(19)说明了使用预训练的无条件或条件扩散模型去噪的过程。在每个时间步,(13)中的 y t − 1 y_{t−1} yt1有助于校正扩散模型的输出,确保生成图像的准确性。具体算法用算法1表示。

在这里插入图片描述

给定低剂量CT图像 y 0 h r y^{hr}_0 y0hr和两个参数为 { θ l r , { α ˉ t l r } t = 1 , . . . , T } \{θ^{lr},\{\bar{α}^{lr}_t\}_{t=1,...,T}\} {θlr,{αˉtlr}t=1,...,T}的预训练扩散模型和 { θ s r , { α ˉ t s r } t = 1 , … , T } \left\{\theta^{s r},\left\{\bar{\alpha}_t^{s r}\right\}_{t=1, \ldots, T}\right\} {θsr,{αˉtsr}t=1,,T},我们首先通过 k × k \times k×下采样得到低分辨率低剂量CT图像 y 0 l r y_0^{l r} y0lr。接下来,我们输入 y 0 l r y_0^{l r} y0lr, c = N o n e c= None c=None, θ l r , { α ˉ t l r } t = 1 , … , T , { λ t l r } t = 1 , … , T − 1 \theta^{l r},\left\{\bar{\alpha}_t^{l r}\right\}_{t=1, \ldots, T},\left\{\lambda_t^{l r}\right\}_{t=1, \ldots, T-1} θlr,{αˉtlr}t=1,,T,{λtlr}t=1,,T1代入算法1,得到去噪后的低分辨率CT图像 x ^ 0 lr  \widehat{x}_0^{\text {lr }} x 0lr ,如图2(a)所示。然后,输入 y 0 h r y_0^{h r} y0hr x ^ 0 l r \widehat{x}_0^{l r} x 0lr θ s r \theta^{s r} θsr { α ˉ t s r } t = 1 , … , T \left\{\bar{\alpha}_t^{s r}\right\}_{t=1, \ldots, T} {αˉtsr}t=1,,T { λ t s r } t = 1 , … , T − 1 \left\{\lambda_t^{s r}\right\}_{t=1, \ldots, T-1} {λtsr}t=1,,T1 (其中 x ^ 0 l r \widehat{x}_0^{l r} x 0lr为条件)转化为算法1。得到去噪后的高分辨率CT图像 x ^ 0 h r \widehat{x}_0^{h r} x 0hr,如图2(b)所示。图2中的蓝色块表示我们去噪算法的一次迭代。
在这里插入图片描述

2) λ的自适应细化:在式1中,超参数 { λ t } t = 1 , … , T − 1 \left\{\lambda_t\right\}_{t=1, \ldots, T-1} {λt}t=1,,T1用于平衡似然和先验之间的权衡。根据经验,噪音水平较低λ需要更小的值。由式(14)可知,时间步长 t t t处的噪声电平由 α ˉ t n \sqrt{\bar{\alpha}_{t}}n αˉt n给出,其中当 t t t从0增加到T时, α ˉ t \bar{\alpha}_{t} αˉt从1减小到接近0。因此,我们暂定 λ t λ_t λt α ˉ t \bar{\alpha}_{t} αˉt与常数 λ 0 λ_0 λ0的乘积,
λ t = λ 0 ⋅ α ˉ t . (20) \lambda_{t}=\lambda_{0}\cdot\sqrt{\bar{\alpha}_{t}}. \tag{20} λt=λ0αˉt .(20)
我们把这种策略称为ConsLam。然而,不同的低剂量CT切片通常表现出不同的噪声水平,使得固定的 λ 0 λ_0 λ0很难达到每个图像的最佳去噪结果。为了对不同噪声水平的低剂量CT图像进行自适应降噪,首先提出了估计单幅低剂量CT图像的噪声水平的方法。

由于低剂量CT噪声的非解析性,从单幅低剂量CT图像中直接估计噪声水平是困难的。因此,我们首先使用固定的 λ 0 λ_0 λ0对低剂量CT图像进行去噪,得到初始去噪结果 x ^ 0 \hat{x}_0 x^0。然后将估计的噪声计算为原始图像 y 0 y_0 y0与去噪图像 x ^ 0 \hat{x}_0 x^0之间的绝对差,
n ^ = ∣ y 0 − x ^ 0 ∣ . (21) \widehat{n}=|y_0-\widehat{x}_0|. \tag{21} n =y0x 0∣.(21)
虽然使用固定的 λ 0 λ_0 λ0获得的估计 n ^ \hat{n} n^可能不是最优的,但它仍然提供了输入低剂量CT图像 y 0 y_0 y0中的噪声的可靠表示。我们基于 n ^ \hat{n} n^调整 λ 0 λ_0 λ0,然后从中间某一步恢复去噪算法,以获得更精确的去噪。具体来说,我们提出了两种精炼 λ 0 λ_0 λ0的策略。

第一种策略是使用估计噪声的标准差作为噪声级来动态确定 λ 0 λ_0 λ0。它被表示为 λ 0 a d a λ^{ada}_0 λ0ada
λ 0 a d a = a ⋅ s t d ( n ^ ) + b , (22) \lambda_{0}^{ada}=a\cdot std(\widehat{n})+b, \tag{22} λ0ada=astd(n )+b,(22)
其中std(·)为图像中所有像素的标准差,a和b为人工选择的参数。我们将此策略称为AdaLam-I。

第二种策略考虑到低剂量CT图像的不同区域表现出不同程度的噪声。为了解决这个问题,我们在不同位置引入了一个不均匀的 λ 0 λ_0 λ0,得到了一个矩阵 Λ 0 a d a \Lambda_{0}^{ada} Λ0ada
Λ 0 a d a = c ⋅ n ^ , (23) \Lambda_{0}^{ada}=c\cdot\widehat{n}, \tag{23} Λ0ada=cn ,(23)
其中c是手动选择的系数。为了将矩阵 Λ 0 a d a \Lambda_{0}^{ada} Λ0ada代替标量 λ 0 λ_0 λ0合并到算法1中,我们执行Hadamard积。我们把第二个策略称为AdaLam-II。在第IV . b节中,我们验证了分别使用这两种策略中的每一种策略以及同时使用它们的有效性。

图3给出了 λ 0 λ_0 λ0细化的详细过程。值得注意的是,以更大的步长恢复可以从 n ^ \hat{n} n^中得到更准确的 λ 0 a d a λ^{ada}_0 λ0ada Λ 0 a d a \Lambda_{0}^{ada} Λ0ada。理论上,在时间步长T处恢复将是最优选择。然而,这种方法会使算法的计算时间增加一倍。因此,为了平衡准确性和计算时间,我们选择只回滚几个步骤。

在我们的实验中,我们将迭代步骤设置为3,从 x ^ 3 \hat{x}_3 x^3恢复,这只会增加推理时间大约10%。值得注意的是,我们只在降噪算法的第二阶段采用了 λ λ λ的自适应细化策略,因为常数 λ 0 λ_0 λ0足以用于低分辨率图像的降噪。

在这里插入图片描述

3) 加速:扩散模型依赖于迭代生成过程,其耗时的性质造成了显著的限制。同样的问题也影响着我们基于扩散模型的去噪算法。为了解决这个问题,我们采用了DDIM[15]提出的方法,通过区间抽样加快扩散模型的生成过程。具体地说,我们提取了一个子序列 τ = [ τ 1 , … , τ S ] \tau=[\tau_{1},\ldots,\tau_{S}] τ=[τ1,,τS]的长度为S,从[1,…,T],然后从 x τ s x_{\tau_s} xτs x τ s − 1 x_{\tau_{s−1}} xτs1进行采样。对于我们的去噪算法,迭代次数按照以下关系递减:
x ^ τ s − 1 = y τ s − 1 + λ τ s − 1 μ θ ( x ^ τ s , τ s ) / σ τ s 1 + λ τ s − 1 / σ τ s , s > 1. (24) \widehat{x}_{\tau_{s-1}}=\frac{y_{\tau_{s-1}}+\lambda_{\tau_{s-1}}\mu_{\theta}\left(\widehat{x}_{\tau_{s}},\tau_{s}\right)/\sigma_{\tau_{s}}}{1+\lambda_{\tau_{s-1}}/\sigma_{\tau_{s}}},\quad s>1. \tag{24} x τs1=1+λτs1/στsyτs1+λτs1μθ(x τs,τs)/στs,s>1.(24)
对于加速算法,当t > 1时,式(24)代替(18)。在条件扩散模型的情况下,实现是类似的,将 μ θ ( x ^ τ s , τ s ) \mu_{\theta}\left(\widehat{x}_{\tau_{s}},\tau_{s}\right) μθ(x τs,τs)替换为 μ θ ( x ^ τ s , τ s , c ) \mu_{\theta}\left(\widehat{x}_{\tau_{s}},\tau_{s},c\right) μθ(x τs,τs,c)

在典型的生成任务中,加速采样的时间步长通常被均匀地减小。然而,在本文中,我们提出采用一种非均匀策略从2000个时间步长中提取子序列。具体来说,在前500个时间步内,我们每20个时间步提取一个。在随后的1500个时间步中,我们每500个时间步提取一个。最后,我们加入最后的时间步长T,以保证算法初始条件的有效性,即 x ^ T = y T \hat{x}_T = y_T x^T=yT。因此,我们设 τ = [ 1 , 21 , 41 , … , 501 , 1001 , 1501 , 2000 ] \tau =[1,21,41,…,501,1001,1501,2000] τ=[1,21,41,,501,1001,1501,2000]并将总迭代次数从2000减少到29。设计这种非均匀采样方法是因为似然项在较小的时间步长中发挥更突出的作用,而更密集的采样可以更好地利用低剂量CT输入,从而获得更准确的去噪结果。

III. IMPLEMENTATION DETAILS

A. 数据集

我们分别在低剂量 CT 和投影数据 (LDCT-PD) 数据集 [24]、[25] 中的 10 名患者的腹部和胸部正常剂量 CT 图像上预训练两个扩散模型。对于腹部和胸部CT图像,高分辨率图像尺寸均为512×512,低分辨率图像尺寸分别为128×128和256×256。为了评估我们提出的Dn-Dp算法的去噪性能,我们使用了来自2016年AAPM Grand Challenge数据集[3]的4名患者的四分之一剂量腹部CT图像和来自LDCT-PD数据集的4名患者的10%剂量胸部CT图像,以确保这些图像与训练数据不同。

B. 网络结构及参数

对于我们的扩散模型,我们采用来自SR3[26]的U-Net架构,而残差块则来自BigGAN[27]。在条件扩散模型的情况下,使用双三次插值对低分辨率图像进行上采样,然后沿着通道维度与U-Net的先前输出连接。表1提供了初始信道维度(Dim d d d),信道乘数(Muls { m [ 1 ] , … , m [ k ] } \{m[1],…,m[k]\} {m[1],,m[k]})的具体数量,残差块的数量(ResBlocks),使用自注意残差块的分辨率(Res-Attn),以及dropout rate (dropout)。

在这里插入图片描述

我们的扩散模型中使用的条件U-Net架构如图4所示。为了获得无条件版本,只需从模型中删除条件图像c。

在这里插入图片描述

对于预训练的两个级联扩散模型,我们将时间步长数设为定义为T的2000。在正演过程中,我们设置 β 1 = 1 × 1 0 − 6 β_1 = 1 × 10^{−6} β1=1×106 β T = 1 × 1 0 − 2 β_T = 1 × 10^{−2} βT=1×102 β i ( 1 < i < T ) β_i(1 < i < T) βi(1<i<T)在中间时间步长线性增加。本文提出的去噪算法涉及到(20)、(22)和(23)中的 λ 0 λ_0 λ0 a a a b b b c c c几个超参数,分别通过人工调整来实现腹部和胸部CT图像的去噪。我们在表二中提供了选定的参数。

在这里插入图片描述

此外,在正演过程中引入的变化噪声产生的去噪结果显示一致的分布,但像素值不同。为了提高性能,我们计算10个去噪结果的平均值[16]。

IV. EXPERIMENTS

A. 正常剂量CT图像生成

图5展示了由我们预先训练的级联扩散模型生成的高质量正常剂量CT图像。这些生成的图像显示出显著的真实感和多样性,表明我们训练有素的扩散模型对正常剂量CT图像具有很强的先验理解。

在这里插入图片描述

B. λ的消融研究

在本小节中,我们将评估(22)和(23)中提出的 λ λ λ改进策略的有效性,包括AdaLam-I、AdaLam-II和表示同时使用的AdaLam-I& ii。为了进行消融研究,我们从4例患者的腹部和胸部数据中统一提取了80个CT切片,形成了两个迷你数据集。表III给出了去噪结果的统计度量。度量是在[- 1024,3072]HU窗口内计算的。

在这里插入图片描述

从表III的结果可以看出,对于腹部CT图像去噪,AdaLam-I和AdaLam-II的平均PSNR(峰值信噪比)都提高了约0.1dB,两者联合使用效果同样良好。另一方面,对于噪声水平较高的胸部CT图像去噪,与ConsLam相比,AdaLam-I和AdaLam-II在PSNR和SSIM(结构相似性指数测量)方面表现出更显著的增强。此外,与单独使用任何一种相比,使用adalam - i和ii进行胸部CT图像可获得更好的结果。

由于在不同的低剂量CT图像中观察到不同的噪声水平,使用自适应细化策略可以增强去噪结果。通常,低噪声水平的低剂量CT图像更适合较小的 λ 0 λ_0 λ0,而高噪声水平的图像则适合较大的 λ 0 λ_0 λ0。图6(a)和图6©分别绘制了两幅腹部低剂量CT图像和两幅胸部低剂量CT图像去噪后图像PSNR与常数 λ 0 λ_0 λ0的关系。

在这里插入图片描述

很明显,在不同的CT图像中使用ConsLam可以获得具有不同 λ 0 λ_0 λ0值的最佳去噪结果。通过计算自适应 λ 0 a d a λ^{ada}_0 λ0ada Λ 0 a d a \Lambda_{0}^{ada} Λ0ada,然后恢复去噪算法进行几次迭代,我们可以对不同噪声水平的低剂量CT图像获得更好的去噪效果。如图6(b)和6(d)所示,同时适应AdaLam-I和AdaLam-II产生的去噪性能超过或接近使用ConsLam获得的最佳结果。这说明了为什么采用自适应 λ λ λ策略可以增强算法在整个数据集上的性能,如表III所示。

C. 降噪性能比较

基于λ的消融研究,我们已经确定同时使用AdaLam-I和AdaLamII可以为我们的去噪算法产生最佳性能。在接下来的实验中,我们使用Adalam - i&ii进行DnDp。此外,我们评估了两种版本的Dn-Dp: Dn-Dp (Single),它对输入图像进行一次去噪,以及Dn-Dp (Average),它对相同的输入图像产生多个去噪结果并对它们进行平均。后一种方法可以提高性能,但需要更多的计算时间。

我们将该方法与各种低剂量CT图像去噪算法进行了比较,包括两种经典的非学习方法:块匹配3D (BM3D)[28]和非局部均值(NLM)[29]。此外,我们还考虑了在低剂量CT图像去噪方面取得优异效果的两个基于监督学习的神经网络:RED-CNN[3]和CTformer[6],其中RED-CNN基于CNN, CTformer是基于Transformer的模型。由于我们的方法以完全无监督的方式运行,我们还将其与两种基于无监督学习的方法:LIR-IR[12]和Noise2Sim[13]进行了比较,后者是目前最先进的无监督低剂量CT图像去噪方法。

表IV给出了不同方法的定量去噪结果,度量使用窗口[- 1024,3072]HU计算。我们提出的方法在PSNR和SSIM方面显示出有竞争力的定量结果,如表4所示。

在这里插入图片描述

具体而言,在腹部CT数据集上,我们的方法优于所有无监督方法。值得注意的是,我们的方法比经典的基于监督的深度学习方法RED-CNN实现了更高的PSNR,并且接近最新的基于Transformer的网络CTformer的性能。这个结果令人惊讶,因为用MSE(均方误差)损失训练的监督网络通常优先考虑更高的PSNR值。然而,对于胸部CT数据集,低剂量CT图像表现出更明显的噪声,基于CNN的监督神经网络(如REDCNN)表现出最好的性能。由于噪声水平较高,无监督算法和有监督算法之间的性能差距变得更加明显。尽管如此,我们的方法仍然是无监督方法中表现最好的,超过了LIR-IR和Noise2Sim。

图7显示了腹部CT图像的去噪结果。

在这里插入图片描述

很明显,我们的方法产生的结果与正常剂量CT图像的视觉质量非常相似。通过对比©和(d)可以看出,传统方法无法有效消除低剂量CT中存在的噪声。另一方面,(e)和(f)表明,基于无监督深度学习的方法比传统方法产生更好的结果,但由于其端到端性质,仍然容易丢失正常剂量CT图像中的一些纹理细节。对于有监督的深度学习算法,这个问题在(g)和(h)中变得更加明显,导致明显的过平滑。相比之下,我们的方法利用MAP框架结合先验和似然,在视觉上获得了更真实的结果。

图8显示了胸部CT图像的视觉结果。

在这里插入图片描述

在黄色感兴趣区域(ROI)内,比较了不同算法恢复骨结构的能力。由于10%剂量胸部CT的噪声水平较高,可以观察到即使是监督算法也会丢失一些轮廓信息。然而,我们的方法力求在去噪过程中尽可能地保留轮廓。红色ROI内,箭头示实性非钙化肺结节。用BM3D、NLM和LIRIR去噪会使结节模糊,妨碍临床诊断。相比之下,我们的方法和监督方法有效地保持了结节的形状。

D. 讨论

虽然我们的方法在视觉效果和定量指标方面取得了很好的效果,但仍然存在一些值得注意的局限性。我们的方法的主要限制在于模型参数的大小和所需的计算时间。为了训练生成高分辨率正常剂量CT图像的扩散模型,需要级联生成方法和非常大的模型尺寸。尽管使用加速算法将迭代次数从2000次减少到29次,但与端到端网络相比,单个图像去噪的推理时间仍然要高得多。表V给出了所用模型的参数大小以及使用这些模型去噪所需的相应推理时间。其中Time(1)和Times(10)分别表示使用单个NVIDIA GeForce RTX 3090显卡对单个图像和10个图像并行去噪的推理时间。

在这里插入图片描述

在对低分辨率图像进行Dn-Dp去噪后,另一种方法是直接训练超分辨率神经网络来获得高分辨率的干净图像。虽然超分辨率网络需要监督训练,但训练对可以通过下采样从正常剂量的CT图像中产生。使用这样的超分辨率网络代替Dn-Dp的第二阶段将不可避免地导致性能损失,因为它没有利用高分辨率低剂量CT图像的信息,但它可以节省一些推理时间并提供合理的去噪结果 。

此外,我们选择使用级联方式生成高分辨率图像的原因是为了便于扩散模型的预训练。然而,这种方法可能会导致性能下降,因为降采样实际上会进一步降低图像质量,导致一些信息丢失。如果我们可以直接训练无条件扩散模型用于高分辨率图像生成,那么我们的算法对于单阶段去噪也是有效的,并且结果可能会更好。然而,训练这样一个高分辨率的无条件扩散模型往往需要更深入的网络、更多的训练数据和更长的训练时间。

V. CONCLUSION

本文提出了一种基于扩散先验的低剂量CT图像去噪算法Dn-Dp。Dn-Dp是一种完全无监督的算法,它只需要用正常剂量的CT图像训练网络。该算法包括训练级联扩散模型来生成正常剂量的CT图像。随后,在扩散模型的反向过程中,我们迭代求解了多个MAP估计问题。这确保了生成的图像与输入的低剂量CT图像之间的高似然性,同时保持了良好的图像质量。为了解决不同低剂量CT图像中不同的噪声水平,我们采用了两种自适应策略来调整系数 λ λ λ,以平衡MAP估计中的似然项和先验项。我们还介绍了一种以更精确的λ在中间阶段恢复去噪的方法。我们的方法在定量指标和视觉效果方面表现出色,特别是在四分之一剂量的腹部CT图像去噪方面,在PSNR和SSIM方面甚至超过了监督方法。此外,我们的目标是将基于扩散先验的方法扩展到CT重建算法中,从正弦图域开始。

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

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

相关文章

【Windows系统编程】06.HotFixHook与进程通信(详解HotFixHook)

上一讲讲到的InlineHook&#xff0c;每次Hook的时候&#xff0c;都要读写两次内存&#xff08;先Hook&#xff0c;再还原&#xff09;这种Hook方式&#xff0c;性能比较低&#xff0c;今天我们讲的这种Hook方式&#xff0c;可以说是InlineHook的升级版本 HotFix&#xff08;热…

Android性能优化----执行时间优化

作者&#xff1a;lu人皆知 在APP做启动优化时&#xff0c;Application会做一些初始化的工作&#xff0c;但不要在Application中做耗时操作&#xff0c;然而有些初始化工作可能是很耗时的&#xff0c;那怎么办&#xff1f;初始化操作可以开启子线程来完成。 计算执行时间 常规…

Android控件【ProgressBar】

文章目录 常用属性项目结构主要代码 常用属性 max&#xff1a;进度条的最大值progress&#xff1a;进度条已完成进度值indeterminate&#xff1a;如果设置成true&#xff0c;则进度条不精确显示进度style"?android:attr/progressBarStyleHorizontal"&#xff1a;水…

ubuntu 22.04 LTS 在 llvm release/17.x 分支上编译 cookbook llvm example Chapter 02

下载 llvm-cookbook example: $ git clone https://github.com/elongbug/llvm-cookbook.git 开发环境&#xff1a; 从apt source 安装llvm、clang和lldb&#xff1a; $ apt install llvm $ apt install llvm-dev $ apt install clang $ apt install lldb $ cd llvm-cookboo…

c语言生成.exe文件的方法

一、在Windows shell下使用gcc命令 1、需要下载获取GCC安装包 官网:MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net 其他下载: 文件文件大小:48.0 M|https://wwnb.lanzoul.com/iIsq815lktfchttps://download.c

归并排序算法细节演示

【样例输入】 5 11 8 34 2 9 【样例输出】 2 8 9 11 34 #include<iostream> using namespace std; int n;//n个数 int data[100]; int tmp[100]; int nums 1; void ss(){cout<<endl<<"-----------------"<<endl; for(int i1;i<n;i){cou…

创建一个简单的HTML Viewer应用程序

使用wxPython和内嵌浏览器来创建一个简单的HTML Viewer应用程序。 在本篇文章中&#xff0c;我们将使用Python和wxPython模块来创建一个简单的HTML Viewer应用程序。这个应用程序可以让用户输入HTML内容&#xff0c;并在内嵌浏览器中显示该内容的效果。 准备工作 在开始之前…

Shell学习笔记之基础部分

Shell基础&#xff1a; 查看操作系统支持的shell&#xff1a; [rootrhel9 ansible]# cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bashShell的基本元素&#xff1a; 声明&#xff1a;声明用哪个命令解释器来解释并执行当前脚本文件中的语句&#xff0c;一般写的…

Cross-Site Scripting

文章目录 反射型xss(get)反射型xss(post)存储型xssDOM型xssDOM型xss-xxss-盲打xss-过滤xss之htmlspecialcharsxss之href输出xss之js输出 反射型xss(get) <script>alert("123")</script>修改maxlength的值 反射型xss(post) 账号admin密码123456直接登录 …

tauri-react:快速开发跨平台软件的架子,支持自定义头部UI拖拽移动和窗口阴影效果

tauri-react 一个使用 taurireacttsantd 开发跨平台软件的模板&#xff0c;支持窗口头部自定义和窗口阴影&#xff0c;不用再自己做适配了&#xff0c;拿来即用&#xff0c;非常 nice。而且已经封装好了 tauri 的 http 请求工具&#xff0c;省去很多弯路。 开原地址&#xff…

抖音短视频SEO矩阵系统源码开发

一、概述 抖音短视频SEO矩阵系统源码是一项综合技术&#xff0c;旨在帮助用户在抖音平台上创建并优化短视频内容。本文将详细介绍该系统的技术架构、核心代码、实现过程以及优化建议&#xff0c;以便读者更好地理解并应用这项技术。 二、技术架构 抖音短视频SEO矩阵系统采用前…

ai之美:探索写真照片软件的创造力

小青&#xff1a;嘿&#xff0c;小华&#xff0c;你知道最近ai艺术写真非常流行吗&#xff1f; 小华&#xff1a;真的吗&#xff1f;我还不知道呢。告诉我更多细节吧&#xff01; 小青&#xff1a;好的&#xff0c;ai艺术写真是指使用人工智能技术将照片转化为艺术作品的过程…

飞天使-k8s简单搭建(编写中)

文章目录 k8s概念安装部署无密钥配置与hosts与关闭swap开启ipv4转发安装前启用脚本开启ip_vs安装指定版本docker 安装kubeadm kubectl kubelet k8s单节点部署参考链接地址 k8s概念 K8sMaster : 管理K8sNode的。 K8sNode:具有docker环境 和k8s组件&#xff08;kubelet、k-prox…

C#小轮子:MiniExcel,快速操作Excel

文章目录 前言环境安装功能测试普通读写读新建Excel表格完全一致测试&#xff1a;成功大小写测试&#xff1a;严格大小写别名读测试&#xff1a;成功 写普通写别名写内容追加更新模板写 其它功能xlsx和CSV互转 前言 Excel的操作是我们最常用的操作&#xff0c;Excel相当于一个…

【markdown】使用 Mermaid 制作的图表和图形的一些示例

Mermaid是一种用于绘制流程图,状态图,序列图和甘特图的文本标记语言。 Mermaid的主要特点包括: 基于文本 - 使用类似Markdown的语法来描述图表,之后可以转换为SVG图表。支持流程图 - 使用图形节点和箭头来表示流程步骤和流转方向。支持状态图 - 可以绘制状态之间的转换条件。支…

【使用Zookeeper当作注册中心】自己定制负载均衡常见策略

自己定制负载均衡常见策略 一、前言随机&#xff08;Random&#xff09;策略的实现轮询&#xff08;Round Robin&#xff09;策略的实现哈希&#xff08;Hash&#xff09;策略 一、前言 大伙肯定知道&#xff0c;在分布式开发中&#xff0c;目前使用较多的注册中心有以下几个&…

Centos 8 网卡connect: Network is unreachable错误解决办法

现象1、ifconfig没有ens160配置 [testlocalhost ~]$ ifconfig lo: flags73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopba…

css学习4(背景)

1、CSS中&#xff0c;颜色值通常以以下方式定义: 十六进制 - 如&#xff1a;"#ff0000"RGB - 如&#xff1a;"rgb(255,0,0)"颜色名称 - 如&#xff1a;"red" 2、background-image 属性描述了元素的背景图像. 默认情况下&#xff0c;背景图像进…

SaaS当然是一门好生意了啊

&#xff08;1&#xff09;SaaS关键特征 1、应用架构&#xff1a;多租户 2、部署&#xff1a;公有IaaS部署 3、商业模式&#xff1a;年度订阅续费 &#xff08;2&#xff09;用户云注册、用户在线付费 用户云注册、用户在线付费&#xff0c;站在中国乙方利益视角&#xff0c;多…

【Linux命令详解 | ssh命令】 ssh命令用于远程登录到其他计算机,实现安全的远程管理

文章标题 简介一&#xff0c;参数列表二&#xff0c;使用介绍1. 连接远程服务器2. 使用SSH密钥登录2.1 生成密钥对2.2 将公钥复制到远程服务器 3. 端口转发3.1 本地端口转发3.2 远程端口转发 4. X11转发5. 文件传输与远程命令执行5.1 文件传输5.1.1 从本地向远程传输文件5.1.2 …