TII-2024《AGP-Net: Adaptive Graph Prior Network for Image Denoising》
推荐深蓝学院的《深度神经网络加速:cuDNN 与 TensorRT》,课程面向就业,细致讲解CUDA运算的理论支撑与实践,学完可以系统化掌握CUDA基础编程知识以及TensorRT实战,并且能够利用GPU开发高性能、高并发的软件系统,感兴趣可以直接看看链接:
深蓝学院《深度神经网络加速:cuDNN 与 TensorRT》

核心思想分析
该论文提出了一种名为AGP-Net(Adaptive Graph Prior Network)的图像去噪框架,旨在解决传统图像去噪方法在捕捉长距离依赖性、特征重建以及泛化能力方面的不足。其核心思想包括以下几个方面:
- 多尺度长距离依赖建模:通过一种新颖的图构造方法,AGP-Net能够在像素级和补丁级(patch-level)捕捉图像的长距离依赖关系,克服了传统卷积神经网络(CNN)和Transformer结构在建模全局特征时的局限性。
- 自适应特征补充:提出**图补充先验(Graph Supplementary Prior, GSP)**机制,通过嵌入特征生成自适应的图先验信息,增强图像重建所需的特征表达,解决训练数据不足导致的特征缺失问题。
- 动态正则化噪声:引入**图噪声先验(Graph Noise Prior, GNP)**机制,生成动态的正则化噪声,通过混合正态分布和均匀分布的噪声增强模型的泛化能力,缓解过拟合问题。
- 端到端去噪框架:AGP-Net基于编码器-解码器结构,结合GSP和GNP模块,形成一个即插即用的去噪网络,能够高效处理多样化和复杂的噪声。
目标函数分析
AGP-Net的目标函数采用Charbonnier损失函数,其定义为:
L = 1 N ℓ ∑ ( ∣ I d − I target ∣ 2 + ϵ 2 ) \mathcal{L} = \frac{1}{N_\ell} \sum \sqrt{\left( |\mathbf{I}_d - \mathbf{I}_{\text{target}}|^2 + \epsilon^2 \right)} L=Nℓ1∑(∣Id−Itarget∣2+ϵ2)
其中:
- I d \mathbf{I}_d Id:去噪后的图像。
- I target \mathbf{I}_{\text{target}} Itarget:对应的真实无噪图像(ground-truth)。
- N ℓ N_\ell Nℓ:训练样本数量。
- ϵ 2 \epsilon^2 ϵ2:一个经验常数,通常设为 1 × 1 0 − 6 1 \times 10^{-6} 1×10−6。
选择Charbonnier损失的原因:
- 可微性:相比L1损失(最小绝对误差),Charbonnier损失在零点处是连续可微的,有利于梯度优化方法的稳定性。
- 对异常值的鲁棒性:相比L2损失(均方误差),Charbonnier损失对大误差的权重较低,能够有效处理噪声图像中的异常值,避免过平滑。
- 细节保留:Charbonnier损失在L1和L2损失之间取得平衡,通过平滑过渡(从二次区域到线性区域)保留图像的锐利边缘和细微结构。
目标函数的优化过程
优化过程基于深度学习的标准梯度下降方法,具体步骤如下:
- 优化器:采用Adam优化器,参数设置为 β 1 = 0.9 \beta_1 = 0.9 β1=0.9, β 2 = 0.999 \beta_2 = 0.999 β2=0.999,学习率设为 1 × 1 0 − 4 1 \times 10^{-4} 1×10−4。
- 训练数据:每批次包含128个256×256像素的图像补丁,训练数据由噪声/干净图像对组成。
- 损失计算:通过Charbonnier损失函数计算去噪图像 I d \mathbf{I}_d Id与真实图像 I target \mathbf{I}_{\text{target}} Itarget之间的差异。
- 参数更新:利用反向传播算法计算梯度,更新网络参数,包括卷积层权重、GSP模块中的可学习节点特征值 λ n \lambda_n λn以及GNP模块中的噪声分布参数( μ , σ , α \mu, \sigma, \alpha μ,σ,α)。
- 正则化噪声生成:GNP模块通过可学习的混合噪声分布(正态分布 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2)和均匀分布 U ( − α , α ) U(-\alpha, \alpha) U(−α,α))生成动态正则化噪声,增强模型泛化能力。
- 迭代训练:通过多次迭代优化,网络逐步学习到从噪声图像到干净图像的映射。
优化过程中,GSP和GNP模块的参数通过端到端的训练过程与整个网络共同优化,确保生成的图先验信息和正则化噪声能够适应不同的噪声分布和图像内容。
主要贡献点
- 新颖的图构造方法:提出了一种基于K近邻(KNN)的图构造方法,将特征图分为补丁并构建图结构,同时在像素级和补丁级捕捉长距离依赖,显著提升去噪性能。
- GSP机制:通过嵌入像素级和补丁级的特征生成自适应图先验信息,补充图像重建所需的特征,解决训练数据不足的问题。
- GNP机制:提出动态正则化噪声生成方法,通过混合正态和均匀分布的噪声增强模型泛化能力,有效缓解过拟合。
- 高性能去噪:在多个基准数据集(CBSD68、SIDD、DND)上,AGP-Net取得了最先进的去噪性能,特别是在噪声水平较高的场景中表现出色。
- 实际应用验证:在车辆计数检测等实际任务中,AGP-Net展示了在复杂噪声和不同天气条件下的鲁棒性。
实验结果分析
-
数据集与评估指标:
- CBSD68:包含彩色图像,噪声水平为50,AGP-Net取得了 28.69 dB 28.69 \, \text{dB} 28.69dB的峰值信噪比(PSNR)。
- SIDD和DND(真实噪声数据集):AGP-Net分别取得了 40.18 dB 40.18 \, \text{dB} 40.18dB和 40.25 dB 40.25 \, \text{dB} 40.25dB的PSNR,优于SCUNet、EFFNet和CFPNet等方法。
- 其他指标包括结构相似性(SSIM),例如在CBSD68噪声水平25时,AGP-Net达到 31.83 dB 31.83 \, \text{dB} 31.83dB PSNR和 0.895 0.895 0.895 SSIM。
-
消融实验:
- 移除GSP和GNP模块后,性能显著下降(PSNR从 31.83 dB 31.83 \, \text{dB} 31.83dB降至 31.36 dB 31.36 \, \text{dB} 31.36dB),证明两模块的互补性和必要性。
- 图构造参数(特征向量维度 L L L和邻居数量 k k k)的调整显示,增大 L L L和 k k k(如 L = 768 , k = 3 L=768, k=3 L=768,k=3)能提升PSNR,表明高维特征和更多邻居有助于捕捉细节。
-
实际应用:
- 在车辆计数检测任务中,AGP-Net在不同天气条件(阴天、晴天、夜晚)下表现出色,相比CFPNet能更好地保留车辆细节,提高检测准确性。
算法实现过程详细解释
AGP-Net的实现基于编码器-解码器框架,结合图构造、GSP和GNP模块,以下是详细步骤:
1. 网络结构
-
输入投影层:将输入噪声图像 I n ∈ R H × W × 3 \mathbf{I}_n \in \mathbb{R}^{H \times W \times 3} In∈RH×W×3通过 3 × 3 3 \times 3 3×3卷积层和LeakyReLU激活函数映射为低级特征 F 0 ∈ R H × W × C \mathbf{F}_0 \in \mathbb{R}^{H \times W \times C} F0∈RH×W×C:
F 0 = ϕ ( f p in ( I n ) ) \mathbf{F}_0 = \phi(f_p^{\text{in}}(\mathbf{I}_n)) F0=ϕ(fpin(In))
其中 f p in ( ⋅ ) f_p^{\text{in}}(\cdot) fpin(⋅)表示卷积操作, ϕ ( ⋅ ) \phi(\cdot) ϕ(⋅)为LeakyReLU。 -
编码器:包含4组AGP块和下采样层。每个下采样层使用 4 × 4 4 \times 4 4×4卷积核(步幅2,填充1),将特征图的空间分辨率减半,通道数加倍:
F d = φ ( f 1 ( F 1 ) ) \mathbf{F}_d = \varphi(f_1(\mathbf{F}_1)) Fd=φ(f1(F1))
最终生成编码特征 F en ∈ R H 2 N × W 2 N × C \mathbf{F}_{\text{en}} \in \mathbb{R}^{\frac{H}{2^N} \times \frac{W}{2^N} \times C} Fen∈R2NH×2NW×C, N N N为下采样层数。 -
解码器:包含4组AGP块和上采样层,上采样层通过 2 × 2 2 \times 2 2×2卷积核(步幅2,填充1)恢复空间分辨率,通道数减半,最终生成特征 F e \mathbf{F}_e Fe。
-
输出投影层:通过 3 × 3 3 \times 3 3×3卷积层将 F e \mathbf{F}_e Fe映射为去噪图像 I d ∈ R H × W × 3 \mathbf{I}_d \in \mathbb{R}^{H \times W \times 3} Id∈RH×W×3:
I d = f c out ( F e ) → R R H × W × 3 + I n \mathbf{I}_d = f_c^{\text{out}}(\mathbf{F}_e) \xrightarrow{R} \mathbb{R}^{H \times W \times 3} + \mathbf{I}_n Id=fcout(Fe)RRH×W×3+In
其中 → R \xrightarrow{R} R表示张量重塑操作。
2. 图构造
- 补丁划分:将特征图 F in ∈ R H × W × C \mathbf{F}_{\text{in}} \in \mathbb{R}^{H \times W \times C} Fin∈RH×W×C划分为 S S S个补丁,每个补丁转化为特征向量 x i ∈ R L \mathbf{x}_i \in \mathbb{R}^L xi∈RL,形成节点集 X = [ x 1 , x 2 , … , x S ] \mathbf{X} = [\mathbf{x}_1, \mathbf{x}_2, \dots, \mathbf{x}_S] X=[x1,x2,…,xS]。
- KNN连接:对每个节点 x i \mathbf{x}_i xi,通过K近邻算法找到 k k k个最近邻节点 K ( x i ) \mathcal{K}(\mathbf{x}_i) K(xi),构建边集 E \mathbf{E} E,生成图结构 F g = ( X , E ) ∈ R L × S × C \mathbf{F}_g = (\mathbf{X}, \mathbf{E}) \in \mathbb{R}^{L \times S \times C} Fg=(X,E)∈RL×S×C。
- 信息聚合:通过迭代变换和学习,在像素级(节点内)和补丁级(节点间)交换和聚合信息。
3. GSP模块
- 嵌入特征生成:
- 像素级嵌入:通过线性层压缩通道维度,生成像素级嵌入特征:
S p = φ ( H p ( F g ) ) , S p ∈ R L × 1 \mathbf{S}_p = \varphi(\mathcal{H}_p(\mathbf{F}_g)), \quad \mathbf{S}_p \in \mathbb{R}^{L \times 1} Sp=φ(Hp(Fg)),Sp∈RL×1
其中 H p ( ⋅ ) \mathcal{H}_p(\cdot) Hp(⋅)为线性层, φ ( ⋅ ) \varphi(\cdot) φ(⋅)为GELU激活。 - 补丁级嵌入:类似地生成补丁级嵌入特征:
S n = φ ( H n ( F g ) ) , S n ∈ R 1 × C × S \mathbf{S}_n = \varphi(\mathcal{H}_n(\mathbf{F}_g)), \quad \mathbf{S}_n \in \mathbb{R}^{1 \times C \times S} Sn=φ(Hn(Fg)),Sn∈R1×C×S
- 像素级嵌入:通过线性层压缩通道维度,生成像素级嵌入特征:
- 图先验生成:结合可学习节点特征值 λ n \lambda_n λn,混合像素级和补丁级嵌入,生成图先验信息:
F out = ( λ n ⋅ ( S p × S n ) + F g ) → R R H × W × C \mathbf{F}_{\text{out}} = \left( \lambda_n \cdot (\mathbf{S}_p \times \mathbf{S}_n) + \mathbf{F}_g \right) \xrightarrow{R} \mathbb{R}^{H \times W \times C} Fout=(λn⋅(Sp×Sn)+Fg)RRH×W×C
其中 F out \mathbf{F}_{\text{out}} Fout为补充后的图特征, F a g = λ n ⋅ S m \mathbf{F}_{ag} = \lambda_n \cdot \mathbf{S}_m Fag=λn⋅Sm为图先验信息。
4. GNP模块
- 混合噪声生成:通过正态分布 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2)和均匀分布 U ( − α , α ) U(-\alpha, \alpha) U(−α,α)生成混合噪声:
m = n + u , n ∼ N ( μ , σ 2 ) , u ∼ U ( − α , α ) m = n + u, \quad n \sim N(\mu, \sigma^2), \quad u \sim U(-\alpha, \alpha) m=n+u,n∼N(μ,σ2),u∼U(−α,α) - 可微化处理:使用重参数化技巧,从标准正态分布 N ( 0 , 1 ) N(0,1) N(0,1)和标准均匀分布 U ( − 1 , 1 ) U(-1,1) U(−1,1)采样初始噪声,通过可学习参数 μ , σ , α \mu, \sigma, \alpha μ,σ,α投影:
m = ( n ′ × σ + μ ) + ( u ′ × α ) , n ′ ∼ N ( 0 , 1 ) , u ′ ∼ U ( − 1 , 1 ) m = (n' \times \sigma + \mu) + (u' \times \alpha), \quad n' \sim N(0,1), \quad u' \sim U(-1,1) m=(n′×σ+μ)+(u′×α),n′∼N(0,1),u′∼U(−1,1) - 特征正则化:将生成噪声叠加到图特征上:
F g = m × H r ( λ r ) + F i m \mathbf{F}_g = m \times \mathcal{H}_r(\lambda_r) + \mathbf{F}_{im} Fg=m×Hr(λr)+Fim
其中 F i m \mathbf{F}_{im} Fim为输入特征, H r ( ⋅ ) \mathcal{H}_r(\cdot) Hr(⋅)为线性层, F om \mathbf{F}_{\text{om}} Fom为正则化后的输出。
5. 训练与配置
- 网络配置:编码器和解码器各包含4组AGP块,具体参数见表I(例如,输入投影层通道数从3到48,AGP块特征维度 L L L从48增至768)。
- 训练细节:使用Adam优化器,批次大小为128,学习率 1 × 1 0 − 4 1 \times 10^{-4} 1×10−4,通过Charbonnier损失函数进行端到端优化。
总结
AGP-Net通过图构造、GSP和GNP模块,成功解决了图像去噪中的长距离依赖、特征不足和泛化问题。其创新点在于多尺度依赖建模和自适应正则化机制,实验结果证明了其在合成和真实噪声数据集上的优越性能。算法实现过程清晰,结合编码器-解码器框架和模块化设计,具有较高的可扩展性和实用性。
相关文章:
TII-2024《AGP-Net: Adaptive Graph Prior Network for Image Denoising》
推荐深蓝学院的《深度神经网络加速:cuDNN 与 TensorRT》,课程面向就业,细致讲解CUDA运算的理论支撑与实践,学完可以系统化掌握CUDA基础编程知识以及TensorRT实战,并且能够利用GPU开发高性能、高并发的软件系统…...
Pageassist安装(ollama+deepseek-r1)
page-assist网站:https://github.com/n4ze3m/page-assist 首先电脑配置node.js,管理员打开命令窗口输入下面命令下载bun npm install -g buncd 到你想要安装page-assist的地方(推荐桌面) 输入下列命令 git clone https://gith…...
Java—— 方法引用 : :
方法引用是什么 把已经存在的方法拿过来用,当做函数式接口中抽象方法的方法体 方法引用符 :: 方法引用的条件 1.需要有函数式接口 2.被引用方法必须已经存在 3.被引用方法的形参和返回值需要跟抽象方法保持一致 4.被引用方法的功能要满足当前…...
Linux基础开发工具大全
目录 软件包管理器 1>软件包 2>软件生态 3>yum操作 a.查看软件包 b.安装软件 c.卸载软件 4>知识点 vim编辑器 1>基本概念 2>基本操作 3>正常模式命令集 a.模式切换 b.移动光标 c.删除 d.复制 e.替换 f.撤销 g.更改 4>底行模式命令…...
C语言实现INI配置文件读取和写入
一.INI文件介绍 INI配置文件是一种简单的文本文件,用于存储配置信息,通常由一个或多个节(section)组成,每个节包含多个键值对(Key-Value)格式。INI文件易于阅读和编辑,广泛应用于多…...
volatile关键字详解
volatile关键字详解 1. 定义与核心作用 volatile 是Java中的关键字,用于修饰变量,主要解决多线程环境下的内存可见性和指令重排序问题。其核心作用: 保证可见性:确保所有线程读取到变量的最新值。禁止指令重排序:防止…...
二叉树子树判断:从递归到迭代的全方位解析
一、题目解析 题目描述 给定两棵二叉树root和subRoot,判断root中是否存在一棵子树,其结构和节点值与subRoot完全相同。 示例说明 示例1: root [3,4,5,1,2],subRoot [4,1,2] 返回true,因为root的左子树与subRoot完…...
【PhysUnits】4.1 类型级比特位实现解释(boolean.rs)
一、源码 该代码实现了一个类型级(type-level)的布尔系统,允许在编译时进行布尔运算。 //! 类型级比特位实现 //! //! 这些是基础的比特位类型,作为本库中其他数值类型的构建基础 //! //! 已实现的**类型运算符**: //! //! - 来自 core::op…...
(7)python开发经验
文章目录 1 找不到资源文件2 使用subprocess执行时有黑色弹窗3 找不到exec4 pyside6-project lupdate的bug5 找不到pyd模块6 pyd模块编码错误7 运行显示Qt platform plugin "windows" in "8 tr()包含的字符串无法被翻译 更多精彩内容👉内容导航 &…...
【Manim】使用manim画一个高斯分布的动画
1 Manim例子一 最近接触到manim,觉得挺有趣的,来玩一玩把。如下是一个使用manim画的高斯分布的动画。 from manim import * import numpy as npclass GaussianDistribution(Scene):def construct(self):# 创建坐标系axes Axes(x_range[-4, 4, 1],y_ra…...
Day11-苍穹外卖(数据统计篇)
前言: 今天写day11的内容,主要讲了四个统计接口的制作。看起来内容较多,其实代码逻辑都是相似的,这里我们过一遍。 今日所学: Apache ECharts营业额统计用户统计订单统计销量排行统计 1. Apache ECharts 1.1 介绍 A…...
论文阅读:Self-Collaboration Code Generation via ChatGPT
地址:Self-Collaboration Code Generation via ChatGPT 摘要 尽管大型语言模型(LLMs)在代码生成能力方面表现出色,但在处理复杂任务时仍存在挑战。在现实软件开发中,人类通常通过团队协作来应对复杂任务,…...
LocaleContextResolver实现多语言切换-笔记
1. LocaleContextResolver功能简介 org.springframework.web.servlet.LocaleContextResolver是 Spring MVC 中用于解析和管理用户 Locale(语言环境) 的核心接口。 //LocaleContextResolver 接口定义 public interface LocaleContextResolver extends L…...
Vue3中setup运行时机介绍
在 Vue3 中,直接写在 <script setup>...</script> 中的代码运行时机可以分为以下几个关键阶段: 一、执行顺序层级 #mermaid-svg-bF3p98MiNdLfcoSG {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#33…...
计算机视觉----感兴趣区域(ROI)、非极大值抑制
感兴趣区域(Region of Interest,ROI)是指在一幅图像或者数据集中,用户关注并希望进行重点分析、处理或者研究的特定区域。以下为你详细介绍它在不同领域的应用: 医学影像领域 在医学影像中,医生可以通过确…...
YOLO11解决方案之对象裁剪探索
概述 Ultralytics提供了一系列的解决方案,利用YOLO11解决现实世界的问题,包括物体计数、模糊处理、热力图、安防系统、速度估计、物体追踪等多个方面的应用。 对象裁剪是指从图像或视频中分离并提取特定的检测对象,YOLO11 模型功能可用于准…...
将单链表反转【数据结构练习题】
- 第 98 篇 - Date: 2025 - 05 - 16 Author: 郑龙浩/仟墨 反转单链表(出现频率非常的高) 文章目录 反转单链表(出现频率非常的高)题目:反转一个链表思路:代码实现(第3种思路): 题目:反转一个链表 将 1->2->3->4->5->NULL反转…...
多网卡管理实战指南:原理、问题分析与实用工具推荐
多网卡管理实战指南:原理、问题分析与实用工具推荐 在现代网络环境中,越来越多的用户面临一个实际问题:一台电脑连接了多个网络接口,如有线 无线、双有线、或实体网卡 虚拟VPN网卡。这种“多网卡”环境虽然提供了更多可能性&am…...
qt5.14.2 opencv调用摄像头显示在label
ui界面添加一个Qlabel名字是默认的label 还有一个button名字是pushButton mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <opencv2/opencv.hpp> // 添加OpenCV头文件 #include <QTimer> // 添加定…...
使用Python实现简单的人工智能聊天机器人
最近研学过程中发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…...
Python爬虫(28)Python爬虫高阶:Selenium+Splash双引擎渲染实战与性能优化
目录 一、背景:动态渲染技术的演进与挑战二、核心技术对比与选型三、环境搭建与工具链配置1. Docker部署Splash集群2. Selenium环境配置 四、双引擎渲染核心实现1. 智能路由中间件2. Splash高级Lua脚本控制 五、性能优化实战方案1. 浏览器资源池化2. 异步渲染加速 六…...
uv python 卸载
又是查了半天 官网wiki没有 网上一堆傻子胡说 uv提示也不对 AI还在这尼玛胡编乱造 开始 我原来装了这几个环境 uv python list 现在python3.7.7不需要了,卸载,直接 uv python uninstall 3.7.7 去找你自己要卸载的版本号,不需要整个包名复制…...
如何备考GRE?
1.引言 GRE和雅思不太相同,首先GRE是美国人的考试,思维方式和很多细节和英系雅思不一样。所以底层逻辑上我觉得有点区别。 难度方面,我感觉GRE不容易考低分,但考高分较难。雅思就不一样了不仅上限难突破,下限还容易6…...
Crowdfund Insider聚焦:CertiK联创顾荣辉解析Web3.0创新与安全平衡之术
近日,权威金融科技媒体Crowdfund Insider发布报道,聚焦CertiK联合创始人兼CEO顾荣辉教授在Unchained Summit的主题演讲。报道指出,顾教授的观点揭示了Web3.0生态当前面临的挑战,以及合规与技术在推动行业可持续发展中的关键作用。…...
第六章 进阶10 实习生的焦虑
时间过得很快,实习的蕾蕾入职已经三个月了,到了离开的日子。 照例我和她约了1对1谈话,在开始和结束阶段的谈话格外有意义。 谈话的最后,我问蕾蕾有没有什么问题问我,她的问题让我格外惊讶: “自己有点焦…...
技术融资:概念与形式、步骤与案例、挑战与应对、发展趋势
一、技术融资概述 技术融资是指通过外部资金支持技术研发、产品开发或市场扩展的过程。它通常涉及风险投资、天使投资、私募股权、众筹等多种形式。技术融资的核心目标是为技术创新提供资金保障,推动技术从概念到市场的转化。 技术融资的主要形式包括以下几种&…...
duxapp 2025-03-29 更新 编译结束的复制逻辑等
CLI copy 文件夹内的内容支持全量复制优化小程序配置文件合并逻辑(更新后建议将 project.config.json 文件从git的追踪中移除)新增 copy.build.complete 文件夹的复制逻辑,会在程序编译结束之后将文件复制到指定位置 (模块和用户…...
【Linux】Shell脚本中向文件中写日志,以及日志文件大小、数量管理
1、写日志 shell脚本中使用echo命令,将字符串输入到文件中 覆盖写入:echo “Hello, World!” > laoer.log ,如果文件不存在,则会创建文件追加写入:echo “Hello, World!” >> laoer.log转移字符:echo -e “Name:\tlaoer\nAge:\t18” > laoer.log,\t制表符 …...
Qwen3技术报告
参考链接:https://zhuanlan.zhihu.com/p/1905945819108079268 介绍的很详细,先贴后续再整理...
python + flask 做一个图床
1. 起因, 目的: 对这个网站:https://img.vdoerig.com/ , 我也想实现这种效果。做一个简单的图床,后面,可以结合到其他项目中。 2. 先看效果 实际效果。 3. 过程: Grok 聊天: https://img.vdoerig.co…...
虚拟来电 4.3.0 |集虚拟来电与短信于一体,解锁VIP优雅脱身
虚拟来电是一款集虚拟来电与虚拟短信于一体的应用程序。它可以帮助用户在需要时模拟一个真实的来电或短信,以最顾及对方情面的方式逃离尴尬场合。无论是自定义来电联系人、时间、次数,还是设置自定义通话语音、来电震动和铃声,这款解锁了VIP功…...
日志与策略模式
什么是设计模式 IT⾏业 ,为了让 菜鸡们不太拖⼤佬的后腿, 于是⼤佬们针对⼀些经典的常⻅的场景, 给定了⼀些对应的解决⽅案, 这个就是 设计模式 日志认识 计算机中的⽇志是记录系统和软件运⾏中发⽣事件的⽂件,主要作⽤是监控运⾏状态、记录异常信 息ÿ…...
Linux下载与安装
一、YUM 1.1 什么是YUM 在CentOS系统中,软件管理方式通常有三种方式:rpm安装、yum安装以及编译(源码)安装。 编译安装,从过程上来讲比较麻烦,包需要用户自行下载,下载的是源码包,需…...
java18
1.API之时间类 Date类: SimpleDateFormat类: Calendar类:...
向量和矩阵范数
向量和矩阵范数 向量范数 定义 设 x T \boldsymbol{x}^\text{T} xT, y T \boldsymbol{y}^\text{T} yT ∈ K n \in \mathbb{K}^n ∈Kn,数量积定义为: y T x ( 或 y H x ) \boldsymbol{y} ^\text{T} \boldsymbol{x}\left(或\boldsymbol{y}^\text{H}\bo…...
使用 gcloud CLI 自动化管理 Google Cloud 虚拟机
被操作的服务器,一定要开启API完全访问权限,你的电脑安装gcloud CLI前一定要先安装Python3! 操作步骤 下载地址,安装大概需要十分钟:https://cloud.google.com/sdk/docs/install?hlzh-cn#windows 选择你需要的版本&a…...
驱动芯片走线、过孔指导,大电流、散热过孔
参考: 一份大厂PCB布局指南参考! 技巧 使用大面积铺铜 铜是一种极好的导热体。由于 PCB 的基板材料(FR-4 玻璃环氧树脂)是一种不良导热体。因此,从热管理的角度来看,PCB的铺铜区域越多则导热越理想。 走…...
数据结构进阶:AVL树与红黑树
目录 前言 AVL树 定义 结构 插入 AVL树插入的大致过程 更新平衡因子 旋转 右单旋 左单旋 左右双旋 右左双旋 实现 红黑树 定义 性质 结构 插入 实现 总结 前言 在学习了二叉搜索树之后,我们了解到其有个致命缺陷——当树的形状呈现出一边倒…...
AI人工智能在交通物流领域的应用
AI人工智能在交通物流领域的应用 AI人工智能在交通物流领域有着广泛而深入的应用,正推动着该领域的深刻变革,以下是详细介绍: 交通领域 智能驾驶 自动驾驶汽车:依靠深度学习算法、计算机视觉、激光雷达和传感器融合技术&#x…...
牛客网NC22222:超半的数
牛客网NC22222:超半的数 题目描述 输入输出格式 输入格式: 第一行包含一个整数 n (1 ≤ n ≤ 1000)第二行包含 n 个整数 a_i (1 ≤ a_i ≤ 10^9) 输出格式: 输出一个整数,表示出现次数超过一半的那个数 解题思路 这道题目有多种解法&a…...
在服务器上安装AlphaFold2遇到的问题(2)
如何删除已安装的cuDNN 1. 通过包管理器卸载(推荐) RHEL/CentOS (dnf/yum) #查看已安装的 cuDNN 包 sudo dnf list installed | grep cudnn #卸载 cuDNN 运行时和开发包 sudo dnf remove -y libcudnn* libcudnn8* libcudnn-devel* Ubuntu/Debian (ap…...
【2025年软考中级】第一章1.5 输入输出技术(外设)
文章目录 输入输出技术(外设)I/O设备总线结构输入输出控制程序控制方式中断方式直接内存存取(DMAC)方式IO通道方式和外围处理机(IOP)方式 数据传输方式生物特征认证技术 输入输出技术(外设&…...
2025 家用投影新标杆:雷克赛恩 CyberPro1 如何重新定义客厅观影体验
目录 一、家庭影音升级:从 “看得清” 到 “看得精” 的需求之变 (一)传统投影的痛点突围 (二)技术参数背后的用户价值 二、全天候观影无忧:亮度与环境光的博弈艺术 (一)真实亮…...
[基础] HPOP、SGP4与SDP4轨道传播模型深度解析与对比
HPOP、SGP4与SDP4轨道传播模型深度解析与对比 文章目录 HPOP、SGP4与SDP4轨道传播模型深度解析与对比第一章 引言第二章 模型基础理论2.1 历史演进脉络2.2 动力学方程统一框架 第三章 数学推导与摄动机制3.1 SGP4核心推导3.1.1 J₂摄动解析解3.1.2 大气阻力建模改进 3.2 SDP4深…...
12 web 自动化之基于关键字+数据驱动-反射自动化框架搭建
文章目录 一、如何实现一条用例,实现覆盖所有用例的测试1、结合数据驱动:编辑一条用例,外部导入数据实现循环测试2、用例体:实现不同用例的操作步骤对应的断言 二、实战1、项目路径总览2、common 文件夹下的代码文件3、keywords 文…...
学习状态不佳时的有效利用策略
当学习状态不佳时,可以尝试以下策略,将这段时间转化为有意义的活动,既不勉强自己又能为后续高效学习铺路: 1. 整理与规划:低精力高回报任务 整理学习环境:收拾书桌、归类资料、清理电脑文件,减…...
Spring Cloud深度实践:从服务发现到弹性智能API网关全景解析
引言 大家好!继初步搭建了微服务基础架构后,我们进一步深入到服务调用的优化、系统的弹性构建以及API网关的高级应用。本文将全面回顾这一进阶阶段的实践成果,通过更丰富的图解,力求清晰展现各核心组件的工作原理与协同方式。 项…...
第J1周:ResNet-50算法实战与解析
🍨 本文为🔗365天深度学习训练营 中的学习记录博客 🍖 原作者:K同学啊 我的环境 语言环境:Python3.8 编译器:Jupyter Lab 深度学习环境:Pytorchtorch1.12.1cu113 torchvision0.13.1cu113 一、准备工作 二、导入数据 三、划分数据…...
PCL 计算一条射线与二次曲面的交点
文章目录 一、简介二、实现代码三、实现效果一、简介 对于二次曲面而言,其一般方程可以写为: z = a 0 + a 1 x + a 2 y + a...
Executors类详解
Executors类详解 Executors 是Java中用于快速创建线程池的工具类,提供了一系列工厂方法,简化了 ThreadPoolExecutor 和 ScheduledThreadPoolExecutor 的配置。以下是其核心方法、实现原理及使用注意事项: 1. 常用线程池工厂方法 (1) newFixedThreadPool 作用:创建固定大小…...