当前位置: 首页 > news >正文

《MambaLLIE:基于隐式Retinex感知的低光照增强框架与全局-局部状态空间建模》学习笔记

Paper:2405.16105

Github:GitHub - wengjiangwei/MambaLLIE

目录

摘要

一、介绍

二、相关工作

2.1 低光图像增强

2.2 视觉空间状态模型

三、方法

3.1 预备知识

3.2 整体流程

3.3 全局优先-局部次之状态空间块

四、实验

4.1 基准数据集与实施细节

4.2 对比实验

4.3 真实场景实验评估

低光照目标检测

用户感知研究

4.4 消融实验

五、局限性与讨论


摘要

低光照图像增强领域的最新进展主要由基于Retinex理论的学习框架主导,这些框架普遍采用卷积神经网络(CNN)和Transformer架构。然而,经典Retinex理论主要解决全局光照退化问题,却忽视了暗光条件下噪声与模糊等局部退化现象。此外,受限于有限的感受野,CNN与Transformer难以有效捕捉全局退化特征。尽管状态空间模型(SSMs)在长序列建模中展现出潜力,但在视觉数据中融合局部不变性与全局上下文时仍面临挑战。本文提出MambaLLIE——一种基于隐式Retinex感知的低光照增强框架,其核心在于全局优先-局部次之的状态空间设计。我们首先构建局部增强型状态空间模块(LESSM),通过在二维选择性扫描机制中引入增强型局部偏置,有效保留局部二维依赖关系从而优化传统SSMs。进一步提出隐式Retinex感知选择性核模块(IRSK),采用空间变化操作实现特征动态选择,通过自适应核选择过程适应不同输入特征。所设计的全局-局部状态空间块(GLSSB)以LayerNorm为核心整合LESSM与IRSK模块,使MambaLLIE能够实现全面的全局长程建模与灵活的局部特征聚合。大量实验表明,MambaLLIE在多项指标上显著优于当前最先进的CNN与Transformer方法。

一、介绍

低光照图像增强是计算机视觉领域的一项极具挑战性的任务,主要源于光照条件不足与传感器退化问题。此类退化图像通常同时存在全局可见性低下和局部色彩失真、噪声等复合缺陷,不仅影响人类视觉感知,还会对目标检测等高层视觉任务产生负面影响。

传统增强方法如直方图均衡化[1]和伽马校正[5]通过全局映射操作进行图像优化,但往往难以有效处理局部退化问题。近年来,基于卷积神经网络(CNN)与Transformer的方法逐渐占据主导地位[43, 52, 13, 31, 46, 3]。其中,CNN方法[43, 52, 13, 31, 45]通过有效聚合局部信息取得显著进展,但受限于固定感受野与权重共享策略,存在局部归纳偏差问题,导致模型对输入变化的适应性不足。另一方面,Transformer方法[46, 3, 50]借助自注意力机制建立长程依赖关系,获得更大且自适应的感受野,但其原始注意力机制的计算复杂度随输入尺寸呈平方级增长,带来显著计算负担。

近期,Mamba[8, 25, 22]在计算机视觉领域引发广泛关注。这类内部状态空间模型(SSMs)展现出线性复杂度下建模全局信息的潜力。然而,直接将视觉状态空间模型应用于低光图像增强存在明显局限——SSMs专为长程建模设计,缺乏有效捕捉局部信息的灵活性[54]。如图1所示,典型视觉状态空间模型MambaIR[14]虽相比CNN与Transformer方法具有更广的感受野,但在精细局部交互处理方面仍显不足。

本研究提出MambaLLIE创新框架,在全局优先-局部次之的状态空间模型中融合隐式Retinex感知机制。该框架不仅探索了状态空间模型在低光增强中的应用潜力,还通过Retinex感知结构提供显隐双重引导。核心创新包括:首创的全局-局部状态空间块(GLSSB),通过增强型状态空间实现全局长程退化建模与局部特征聚合;引入Retinex感知选择性核机制,借助特定空间操作实现光照强度的自适应调节。

本工作的主要贡献可归纳为三方面:

首先,提出整合局部增强状态空间模块与隐式Retinex感知选择性核模块的新型全局-局部状态空间块,有效捕捉复杂全局-局部依赖关系;

其次,设计隐式Retinex感知选择性核机制指导深层神经表征,无需复杂结构设计即可实现光照组件的自主分离与融合,突破了显式方法的局限性;

最后,在基准数据集与真实场景中的实验验证表明,本方法在各项指标上均显著优于现有最先进方法。

二、相关工作

2.1 低光图像增强

低光照图像增强方法当前主要可分为端到端学习与基于Retinex理论的两大范式[21]。LLNet[27]率先通过监督学习将深度神经网络应用于该任务,开创性地构建了端到端增强框架。LightenNet[2]基于卷积神经网络(CNN)实现单图像对比度增强,而MBLLEN[29]通过多分支CNN架构融合丰富特征。SNR-Net[46]、Restormer[50]、LLFormer[18]及文献[30]等方法则引入自注意力机制,显著提升了模型性能。然而,这类端到端模型主要依赖训练数据分布,忽视了内在的光照先验信息。

相比之下,ZeroDCE[13]、RUAS[24]及其后续改进方法[31,7,41]通过精准建模物理先验实现图像增强,展现出独特优势。但由于缺乏理想参考指导,其性能与监督学习方法仍存在差距。

在监督式Retinex模型中,主流方法通过将图像分解为光照图与反射图进行优化增强。Retinex-Net[43]开创性地将增强流程划分为分解、调整与重建三个阶段,为后续研究奠定基础。KinD[52]与URetinex-Net[45]分别提出创新性多分支架构与多阶段框架,但在模型复杂度与计算效率间的平衡仍面临挑战。近期,RetinexFormer[3]采用高效Transformer实现单阶段Retinex增强,Diff-Retinex[49]则结合Transformer分解网络与生成扩散模型进行结果重建。尽管这些方法持续推进Retinex理论的应用,但其直接套用经典Retinex框架的做法仍存在固有局限性。

2.2 视觉空间状态模型

视觉状态空间模型。状态空间模型(State Space Models, SSMs)[11,10,9]作为新兴序列建模方法,最初在自然语言处理(NLP)领域取得突破性进展,成功应用于语言理解[35]、内容推理[54]等任务。近年来,该模型在计算机视觉(CV)领域也引发广泛研究。S4ND[32]率先将状态空间机制引入CV任务,通过将传统模型中的Conv2D层与自注意力层替换为S4ND模块实现创新。VMamba[25]通过弥合有序序列与视觉图像的非因果性鸿沟,构建具有全局感受野的视觉选择性状态空间模型。Vim[53]提出具有位置感知能力的双向状态空间建模,实现了全局视觉感知。LocalMamba[15]专注于局部扫描策略以保持上下文依赖关系,而EfficientVMamba[34]通过增加卷积分支设计轻量化SSMs,同步学习全局与局部表征特征。MambaIR[14]则结合卷积与通道注意力机制增强模型能力。然而,现有视觉状态空间模型对局部信息捕捉仍显不足,因其原始SSMs专为长序列设计,未能充分考虑视觉数据固有的局部不变性特征。

三、方法

本研究致力于构建一种融合全局优先-局部次之状态空间架构的隐式Retinex感知低光照增强框架。本节首先对Retinex理论与状态空间模型进行理论溯源与框架概览,继而系统阐述所提出的MambaLLIE方法的技术细节。

3.1 预备知识

Retinex理论。经典Retinex理论[20]将低光照图像建模为反射率图与光照图的乘积分解。如文献[31,37]所述,显式Retinex方法主要遵循两种范式:其一仅估计光照图并将反射率图直接作为增强结果;其二同步估计反射率与光照图并通过优化重建正常光照图像。具体而言,给定低光照图像L\in R^{H\times W\times3}(H、W分别表示图像高度与宽度),其数学表达可形式化为:

L = R \odot I, N = \tilde{R} \odot \tilde{I} 

其中⊙表示逐元素乘法,反射率图R\in R^{H \times W \times3}表征物体的固有属性,光照图I \in R^{H \times W}描述光照条件,N \in R^{H \times W \times3}为重建的正常光照图像,\tilde{R}\tilde{I}分别为估计的反射率与光照图。

第一种范式忽略了传感器退化导致的噪声与伪影,且逐像素光照调整策略存在固有局限性;第二种范式虽能通过双图优化提升增强效果,但需设计复杂的多分支网络架构与约束条件指导模型训练[52]。

状态空间模型。以结构化状态空间序列模型(S4)[10]与 Mamba[8]为代表的状态空间模型(SSMs),本质上是连续线性时不变(LTI)系统[44]的数学抽象。给定一维输入序列x(t)∈R,系统通过隐状态h(t) \in R^m将其映射为输出序列y(t)∈R,其连续形式可表示为线性常微分方程(ODE):

h'(t) = Ah(t) + Bx(t)
y(t) = Ch(t) + Dx(t) 

其中m为状态维度,A \in R^{m \times m} 为状态矩阵,B \in R^{m \times1} 与C \in R^{1\times m}分别为输入/输出投影矩阵,D∈R为直通参数。

由于原始SSMs为连续系统,实际计算需通过零阶保持器(ZOH)将其离散化。具体而言,将连续参数{A,B}转换为离散参数{\overline{A}, \overline{B}}:

\overline{A} = \exp(\Delta A), \overline{B} = (\Delta A)^{-1}(\exp(\Delta A) - I) \cdot \Delta B

其中Δ为步长参数。离散化后系统方程可改写为:

h_t = \overline{A}h_{t-1} + \overline{B}x_t y_t = Ch_t + Dx_t

然而,上述系统对输入变化缺乏动态适应性。为此,Mamba[8]提出选择性状态空间模型,使参数随输入动态调整:

其中f_B(x_t)f_C(x_t)f_A(x_t)为线性投影函数,将输入特征扩展至隐状态维度。虽然SSMs擅长长序列建模,但其在捕捉复杂局部信息方面存在固有局限。针对视觉数据,VMamba[25]与Vim[53]提出位置感知扫描策略以保持图像二维结构完整性,但其定向序列扫描机制仍忽略了像素邻域的空间关联特性。受文献[54]启发,本研究构建全局优先-局部次之状态空间,通过先验全局感知引导局部细节补充,有效弥补现有模型在局部信息建模方面的不足。

3.2 整体流程

MambaLLIE整体架构。如图2(a)所示,本框架采用经典U型编解码结构,主要由卷积下采样层、全局-局部状态空间块(GLSSB)与上采样层构成。编码器通过跳跃连接与对称解码器进行特征融合,其核心创新体现于以下设计:

给定低光照图像L\in R^{H\times W \times 3},首先通过3×3卷积层提取初始特征F \in R^{H \times W \times C}。进一步将图像均值先验L_{mean} \in R^{H \times W}与最大值先验L_{max} \in R^{H \times W}拼接为增强输入L_p \in R^{H \times W \times 5}

L_p = \text{Concat}(L, \text{mean}(L), \text{max}(L))

GLSSB核心模块作为框架基本单元,每个GLSSB包含局部增强型状态空间模块(LESSM)与隐式Retinex感知选择性核模块(IRSK),其间通过LayerNorm层进行特征规整。增强输入L_p 经卷积投影后输入GLSSB,输出特征记为F_g \in R^{H \times W \times C}

通过三级下采样操作(i=0,1,2)逐级提取深层特征,其维度变化遵循F_g \in R^{H/2^i \times W/2^i \times 2^i C}。对称上采样层通过跳跃连接融合编码器-解码器对应尺度特征,最终经3×3卷积输出残差特征F_{out} \in R^{H \times W \times 3}

增强图像通过N = F_{out} + L实现端到端重建,有效保留原始图像低频信息。

3.3 全局优先-局部次之状态空间块

如图2(b)所示,全局-局部状态空间块(GLSSB)遵循"层归一化→LESSM→层归一化→IRSK"的级联结构,其设计灵感源于Transformer[38]与Mamba[8]的基础模块构建范式。给定输入特征F_{g}^{i-1} \in R^{H \times W \times C},其处理流程可形式化描述如下:

通过层归一化(LayerNorm)与局部增强型状态空间模块(LESSM)实现全局依赖建模:

M = \text{LESSM}(\text{LayerNorm}(F_{g}^{i-1})) + F_{g}^{i-1}

再次应用层归一化后,由隐式Retinex感知选择性核模块(IRSK)实现局部特征自适应调节:

F_{g}^{i} = \text{IRSK}(\text{LayerNorm}(M)) + M

局部增强型状态空间模块。现有状态空间模型[6,10,8]擅长捕捉长程依赖中的因果处理特性,但其单向扫描机制难以建模视觉数据的非因果关系。尽管[53,25,34]等研究通过多方向2D扫描策略改进视觉数据处理,但这些方法仍忽视视觉数据的局部不变性——固定扫描模式会扩大邻域数据的空间距离并扰乱因果关联。

如图2(c)所示,我们在传统连续线性时不变系统框架下引入增强型局部偏置项e(L_p),通过保持局部二维依赖性优化状态空间模型。改进后的系统方程可表述为:

h_t = \overline{A}h_{t-1} + \overline{B}x_t ,y_t = Ch_t + Dx_t + e(L_p)

其中e(L_p)为独立于隐状态空间的局部偏置项。具体实现时,给定特征F \in R^{H \times W \times 5}与光照特征L_p \in R^{H \times W \times C},模型通过层归一化与LESSM模块整合空间长程依赖。参照[8]的设计,输入特征被拆分为\tilde{F}_1\tilde{F}2两个分支进行处理。第一分支通过线性层投影后执行深度可分离卷积与SiLU激活函数,随后注入增强型局部偏置并进行层归一化;第二分支则通过线性层投影与SiLU激活函数处理。最终,两分支特征通过逐元素乘积实现交互,并由线性层投影回原始特征空间。该过程可形式化描述为:

F_1 = \text{LayerNorm}(\text{2DSSM}(\text{SiLU}(\text{DWConv}(\text{Linear}(F_1)))) + \text{Conv}(L_p))

F_2 = \text{SiLU}(\text{Linear}(F_2))

F{out} = \text{Linear}(F_1 \odot F_2)

隐式Retinex感知选择性核模块。本研究进一步构建隐式Retinex感知选择性核网络以增强特征整合能力。如图2(d)所示,IRSK模块通过可调卷积核构建多尺度深度卷积序列,基于光照先验实现空间选择性特征筛选。受LSKNet[23]启发,对每个选择性核输出的特征图施加Sigmoid激活函数,从光照先验中提取独立光照图。该过程可形式化描述为:

\tilde{F}_k = \tilde{F}_{out}, \tilde{F}_{k+1} = f^k_{\text{DWconv}}(\tilde{F}_k)

"SK-1"和"SK-2"分别代表 选择性核分支(Selective Kernel Branch 1 和 Branch 2)

通过残差连接将Retinex感知图与输入特征拼接后,依次执行深度卷积、GELU激活函数与标准卷积操作。具体实现流程包含两个关键步骤:

  1. 光照图分离:将光照先验特征经卷积与Sigmoid激活分解为双通道权重图
    \left \{ S_1, S_2 \right \}= \text{Chunk}(\text{Sigmoid}(\text{Conv}(L_p)))

  2. 特征自适应融合:通过加权求和实现多尺度特征选择
     F_g = \text{Conv}(\text{GELU}(\text{DWConv}(\sum_{k=1}^K \tilde{F}_k S_k + F_{out})))

四、实验

4.1 基准数据集与实施细节

数据集。实验采用五个成对低光照数据集进行评估:LOL-V2-real[48]、LOL-v2-syn[48]、SMID[4]、SDSD-indoor[39]与SDSD-outdoor[39]。其中,LOL-V2-real包含689对真实低光-正常光训练样本及100对测试样本;LOL-v2-syn提供900对合成训练样本与100对测试样本;SMID数据集包含15,763对短曝光-长曝光训练图像及其余测试样本;SDSD-indoor与SDSD-outdoor均选自SDSD静态数据集,分别包含62对室内场景与116对室外场景训练样本,以及6对室内与10对室外测试样本。

实施细节。基于PyTorch[33]框架在NVIDIA 4090 GPU服务器上实现MambaLLIE。训练阶段将图像对随机裁剪为128×128图像块作为输入,采用旋转与翻转等数据增强策略,批次大小设为8。优化过程采用Adam[19]优化器(β₁=0.9,β₂=0.999),总迭代次数为1.5×10⁵。初始学习率设为2×10⁻⁴,并通过余弦退火策略逐步衰减。损失函数选用平均绝对误差(MAE),评估指标采用峰值信噪比(PSNR)与结构相似性(SSIM)[42]。

4.2 对比实验

定量对比分析。如表1所示,本研究将MambaLLIE与11种最先进的图像增强方法进行性能对比,包括RetinexNet[43]、DeepUPE[40]、SID[4]、KinD[52]、MIRNet[51]、EnGan[17]、Restormer[50]、SNR-Net[46]、QuadPrior[41]、MambaIR[14]及RetinexFormer[3]。实验结果表明:

MambaLLIE在PSNR(峰值信噪比)与SSIM(结构相似性)指标上全面超越现有方法。在LOL-V2-real与SDSD-outdoor数据集上,其SSIM指标与最优方法持平。

参数量相近的情况下,MambaLLIE较基于Transformer的最优方法RetinexFormer平均提升0.2 dB,较早期Transformer方法SNR-Net在全数据集平均提升1 dB。

MambaLLIE在五个基准数据集上的PSNR提升分别为:1.70 dB(LOL-V2-real)、0.32 dB(LOL-V2-syn)、2.19 dB(SMID)、1.15 dB(SDSD-indoor)与0.25 dB(SDSD-outdoor)。

相较RetinexNet、DeepUPE及KinD等传统Retinex模型,MambaLLIE在所有数据集上的PSNR提升均超过7 dB,验证了深度学习框架的显著优势。

定性对比分析。图3-4展示了MambaLLIE与最新方法的视觉对比结果:

现有方法普遍存在光照补偿不足问题(图3),无法有效恢复暗部细节。例如,RetinexNet在极低光区域产生色块伪影,而SNR-Net则出现局部过曝。图4所示,传统方法易引发色彩失真(如KinD的绿色偏移)与细节模糊(如MambaIR的纹理丢失)。MambaLLIE则通过隐式Retinex感知机制,在提升整体亮度的同时,忠实保持颜色真实性(与Ground Truth色彩分布一致),并精细恢复毛发纹理、建筑边缘等高频细节。对于传感器噪声与运动模糊共存的场景(如SMID数据集),MambaLLIE展现出更强的退化解耦能力,相较Diff-Retinex的扩散模型方案,其重建结果噪声抑制更彻底且细节更锐利。

4.3 真实场景实验评估

低光照图像增强在真实场景中面临双重挑战:需同时提升下游任务(如暗光目标检测)性能并满足人类视觉感知需求。本节通过两项实验验证MambaLLIE的实际应用价值。

低光照目标检测

采用ExDark数据集[26]评估增强算法对高层视觉任务的增益。该数据集包含7,363张标注12类边界框的低光图像(5,890张训练/1,473张测试)。所有监督方法均在LOL-V2-syn数据集预训练后,通过不同增强方法处理低光图像,并以YOLOv3[36]作为目标检测器进行微调。

如表2所示,MambaLLIE在平均精度(mAP)上优于所有对比方法,尤其在车辆(Car)、椅子(Chair)、杯子(Cup)与桌子(Table)类别中表现最佳。图5(a)的视觉对比表明:相较于次优方法SCI,MambaLLIE增强后的图像使检测器能在极暗区域(如两人与椅子的场景)成功定位目标,而其他方法均失效。

用户感知研究

为评估增强结果的人类视觉感知质量,本研究开展用户调研。从基准数据集与ExDark数据集中随机选取7张不同光照条件的低光图像,使用各方法预训练模型进行增强。70名参与者从以下维度进行1(最差)至5(最优)评分:

  1. 整体视觉效果(光照均衡性、自然度)

  2. 局部细节保留(纹理清晰度、边缘锐度)

  3. 色彩失真与噪声(颜色保真度、伪影抑制)

如表3所示,MambaLLIE在所有评分维度均获最高分。图5(b)展示典型样例对比:相较于其他算法,MambaLLIE增强结果在保持色彩自然的同时,显著提升暗部细节(如树叶纹理、建筑窗格结构),且无过曝或色偏现象。

4.4 消融实验

隐式Retinex感知框架对比。本研究通过对比端到端模型、显式Retinex模型与隐式Retinex框架验证方法有效性。具体而言:

  • Baseline-1:移除Retinex感知引导机制,直接通过输入估计增强结果

  • Baseline-2:显式估计光照图并通过逐元素乘法调整亮度

如表4所示,隐式Retinex框架较Baseline-1在PSNR指标上提升1.25 dB,较Baseline-2提升1.00 dB,验证隐式引导机制在退化建模中的优势。

全局-局部状态空间消融分析。针对GLSSB核心组件LESSM与IRSK进行模块级验证:

  • LESSM效果:相比使用原始状态空间块的Baseline-1与Baseline-2,LESSM分别带来0.33 dB与0.08 dB的PSNR提升,证明局部增强偏置对空间建模的有效性

  • IRSK效果:IRSK模块相较原始SSM提升0.96 dB(Baseline-1)、0.74 dB(Baseline-2)与0.63 dB(单LESSM配置),表明选择性核机制对特征融合的关键作用

  • 联合效能:当LESSM与IRSK协同工作时,MambaLLIE取得最高PSNR(28.45 dB)与SSIM(0.923),验证全局-局部协同设计的必要性

选择性核行为分析。如图6所示,隐式Retinex感知机制通过互补特征学习正负光照分量:

  • 核选择模式:IRSK在浅层优先使用小核(3×3)聚焦局部细节,深层采用大核(5×5)实现跨区域特征融合,避免传统检测任务中大核引发的边缘填充问题

  • 与LSKNet对比:LSKNet[23]采用递增核尺寸策略以适应检测任务的大感受野需求,但图像增强任务中连续填充会加剧边缘伪影。MambaLLIE的逆向核尺寸设计(小→大)既可快速捕获局部信息,又能通过深层大核实现全局特征整合

五、局限性与讨论

本研究通过隐式Retinex感知引导与全局-局部状态空间框架,有效解决了低光增强中的全局光照不足与局部退化问题,但仍存在以下局限性:

  1. 先验依赖性:相较于端到端方法,本框架需设计合理的光照先验(如均值/最大值先验),其性能部分依赖于先验经验。在极端场景(如全黑区域占比超过80%),先验估计可能失效,需结合语义信息优化。

  2. 评估指标偏差:现有增强模型(包括本工作)多以均方误差(MSE)为损失函数,依赖PSNR/SSIM作为评价指标。然而,这些指标与人类视觉感知存在固有偏差。为此,我们通过真实场景实验(目标检测任务与用户调研)补充验证方法的实用性,缓解指标局限性。

未来工作将探索:

  • 自监督先验学习:通过对比学习框架自动提取场景自适应光照先验,降低人工设计依赖性

  • 感知驱动优化:引入无参考图像质量评估指标(如NIQE)联合训练,增强模型对人类视觉偏好的适应性

相关文章:

《MambaLLIE:基于隐式Retinex感知的低光照增强框架与全局-局部状态空间建模》学习笔记

Paper:2405.16105 Github:GitHub - wengjiangwei/MambaLLIE 目录 摘要 一、介绍 二、相关工作 2.1 低光图像增强 2.2 视觉空间状态模型 三、方法 3.1 预备知识 3.2 整体流程 3.3 全局优先-局部次之状态空间块 四、实验 4.1 基准数据集与实施细节 4.2 对比实验 4…...

计算机图形学Games101笔记--几何

第二部分:几何 几何介绍 光栅化解决如何渲染,几何研究模型如何存储在GPU的内存中。几何主要分为两种:隐式几何和显式几何。 **隐士几何:**用点之间的关系存储,如球的计算公式。更一般的可以用f(x,y,z)。我们可以令f…...

Web开发-Python应用Flask框架Jinja模版绑定路由参数传递页面解析SSTI注入

知识点&#xff1a; 1、安全开发-Python-Flask&Jinja2 2、安全开发-Python-路由传参&SSTI注入 演示案例-WEB开发-Python-Flask框架&Jinja2模版&路由传参&SSTI注入 0、Pycharm 配置Python解析 新建Flask项目 1、路由传参 app.route(/) app.route(/<id…...

聚焦开放智能,抢占技术高地 | 2025 高通边缘智能创新应用大赛第五场公开课来袭!

随着2025高通边缘智能创新应用大赛的推进&#xff0c;越来越多的参赛者关注如何借助高性能硬件突破技术瓶颈、打造差异化作品。 5月27日晚8点&#xff0c;大赛将开启初赛阶段的第五场专题公开课——由美格软件研究院院长李书杰领衔&#xff0c;深入解析高通平台的底层架构与参…...

NMOS和PMOS的区别

1 区分NMOS和PMOS&#xff1a;衬底箭头指向G级的是NMOS&#xff0c;衬底箭头背向G级的是PMOS 2 区分D和S级&#xff1a;针对NMOS&#xff0c;体二极管的正方向为S级&#xff1b;针对PMOS&#xff0c;体二极管正的方向为D级 3 区分电流方向&#xff1a;针对NMOS&#xff0c;电…...

Paillier加密方案的原理、实现与应用(vs)

一、实验目的 1、掌握NTL的基本配置和方法&#xff08;以下是以visualstudio为例&#xff09; 2、掌握Paillier加密方案的原理与实现 ①钥匙生成&#xff1a;首先&#xff0c;生成一把钥匙&#xff0c;包括钥匙和私钥匙。钥匙由两个大素数(p,q)的乘积n和一个整数g组成&#…...

Metal入门,使用Metal绘制3D图形

这次是使用Metal绘制一个立方体&#xff0c;并且添加旋转效果&#xff0c;绘制正方形的步骤很简单&#xff0c;我们绘制一个正方形就相当于绘制两个三角形&#xff0c;那么绘制一个正方体&#xff0c;我们很容易想到需要绘制他六个面&#xff0c;很显然&#xff0c;我们也需要把…...

Java 04 API

API 简介 一些已经写好的应用程序编程接口Object toString 默认返回的是当前对象在堆内存中的地址值信息&#xff1a;类的全类名十六进制哈希值返回该对象的返回值 class A{ } //返回的是地址哦 String sA.toString(); //细节&#xff1a;使用打印语句&#xff0c;打印对象…...

基于Gitee 的开发分支版本管理规范

一、版本管理规范概述 目的&#xff1a;规范代码分支管理和版本发布流程&#xff0c;提高团队协作效率&#xff0c;确保代码质量和版本可追溯性。适用范围&#xff1a;基于 Gitee 平台开发的所有项目。分支策略&#xff1a;采用 Git Flow 模型的变体&#xff0c;主要分支包括 …...

HOW - 结合 AI 进行 Tailwind 样式开发

文章目录 情况 1&#xff1a;使用 Tailwind CSS 与手写传统 CSS 的开发效率对比情况 2&#xff1a;AI Tailwind 自动生成 UI 的效率如何&#xff1f;总结 在 WHAT - Tailwind 样式方案&#xff08;不写任何自定义样式&#xff09; 中我们已经简单介绍过 Tailwind。今天主要认识…...

系统数据对接-从获取到处理的全流程

在后端架构的复杂生态中&#xff0c;子系统间或与外部系统的对接是常态&#xff0c;其核心要义在于实现数据的精准传输。本文聚焦于数据传输后的运算逻辑与异常处理机制&#xff0c;旨在为后端开发者提供深度见解。 一、数据获取机制&#xff1a;触发式与定时任务的权衡 &…...

Java 09Stream流与File类

Stream流与File类 Stream流 简化集合和数组的操作&#xff0c;startWith(“张”) 第一个为这个返回true String1.获取Stream对象 单列集合 双列集合 先获得键值对 在遍历数组 零散的数据 Stream<Integer> arrStream.of(1,2,34,3); stream.forEach(sss); 即可2.中间…...

《光与影:33号远征队》栩栩如生的角色动画是如何创建的?

《光与影&#xff1a;33号远征队》是一款由Sandfall Interactive公司开发的回合制RPG游戏&#xff0c;背景是一个黑暗的幻想世界。游戏因其独特的艺术风格和引人注目的叙事赢得了无数赞誉&#xff0c;成为今年大热游戏中的一匹黑马。 在该游戏制作中Sandfall依靠包括Xsens在内的…...

GESP2024年12月认证C++二级( 第三部分编程题(1)寻找数字)

参考程序&#xff08;枚举&#xff09;&#xff1a; #include <iostream> //#include <cmath> using namespace std;int main() {int t;cin >> t;while (t--) {long long a;cin >> a;bool found false;// 枚举 b for (long long b 1; b * b * b * b…...

《探索具身智能机器人视觉-运动映射模型的创新训练路径》

视觉 - 运动映射模型作为实现智能交互与精准行动的核心&#xff0c;吸引着全球科研人员与技术爱好者的目光。这一模型就像机器人的 “神经中枢”&#xff0c;连接着视觉感知与肢体运动&#xff0c;使机器人能够在复杂的现实环境中灵活应对各种任务。 传统的视觉 - 运动映射模型…...

Python打卡DAY31

今日的示例代码包含2个部分 notebook文件夹内的ipynb文件&#xff0c;介绍下今天的思路项目文件夹中其他部分&#xff1a;拆分后的信贷项目&#xff0c;学习下如何拆分的&#xff0c;未来你看到的很多大项目都是类似的拆分方法 知识点回顾 规范的文件命名规范的文件夹管理机器学…...

【SPIN】PROMELA远程引用与控制流验证(SPIN学习系列--5)

PROMELA语言提供了两种强大的机制用于验证并发系统&#xff1a;远程引用(remote references)和进程变量引用。这些机制使得在不引入额外状态变量的情况下&#xff0c;能够精确描述系统状态和属性。 远程引用(Remote References) 远程引用允许你直接引用进程中的控制位置(labe…...

GMSL:汽车里的音视频传输

参考链接&#xff1a; blog.csdn.net/weixin_50875614/article/details/119995651 blog.csdn.net/syjie19900426/article/details/145269782 SerDes 应用场景 WHAT GMSL是什么 GMSL(Gigabit Multimedia Serial Links),中文名称为千兆多媒体串行链路,是Maxim公司推出的一种…...

Java并发进阶系列:深度讨论jdk1.8 ConcurrentHashMap并发环境下transfer方法桶位分配过程

在前面有多篇关于jdk1.8的ConcurrentHashMap研究是基于源代码给出的深度分析&#xff0c;要知道多线程环境下的ConcurrentHashMap内部运行机制是相对复杂的&#xff0c;好在IDEA提供的相关断点和Debug功能确实好用&#xff0c;使得多线程调试起来直观&#xff0c;通过这种方式能…...

【深度学习-Day 14】从零搭建你的第一个神经网络:多层感知器(MLP)详解

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

fdisk和parted的区别

在Linux系统中&#xff0c;fdisk和parted是两种常用的分区工具。虽然它们都可以对硬盘进行分区&#xff0c;但在功能和适用范围上有显著的区别。 fdisk fdisk主要用于MBR&#xff08;主引导记录&#xff09;分区表的管理。MBR分区表有以下特点&#xff1a; 支持小于2TB的硬盘…...

springMVC拦截器,拦截器拦截策略设置

目录 1、MyInterceptor1 2、UserController 3、MvcConfig&#xff0c;拦截器4种拦截方法策略 做请求的校验&#xff0c;如果校验没有通过&#xff0c;直接返回&#xff0c;原来下面的处理&#xff0c;就不用处理了 将request进行拦截校验 将response进行拦截校验 preHandle…...

如何测试北斗卫星通讯终端的性能?

测试北斗卫星通讯终端的性能需从功能、性能、环境适应性、可靠性等多维度展开&#xff0c;以下是具体测试内容与方法&#xff1a; 一、基础功能测试 验证终端是否满足北斗系统的核心通讯功能。 &#xff08;1&#xff09;通信模式测试 短报文通信 测试终端发送 / 接收短报…...

基于MakeReal3D的虚拟预装系统:飞机装配效率与精度的双重突破

在航空制造领域&#xff0c;飞机部件的对接装配是飞机制造过程中的关键环节。传统的部件装配方式高度依赖操作人员的经验和反复调整&#xff0c;调姿过程耗时较长&#xff0c;且难以保证每次装配都能达到最优状态。随着虚拟现实技术的成熟&#xff0c;虚拟装配技术作为一种新兴…...

IP54是什么?

IP54是什么 定义 IP54是一种国际标准&#xff0c;用来指示设备的防护等级&#xff0c;该标准由国际电工委员会&#xff08;IEC&#xff09;制定&#xff0c;并在许多领域广泛使用13。IP是Ingress Protection的缩写&#xff0c;IP等级是针对电气设备外壳对异物侵入的防护等级。…...

Python异步编程详解

Python异步编程详解 引言 异步编程是Python中处理并发操作的重要方式&#xff0c;它允许程序在等待I/O操作时执行其他任务&#xff0c;从而提高程序的整体效率。本文将详细介绍Python异步编程的概念、实现方式以及实际应用场景。 1. 异步编程基础 1.1 什么是异步编程&#x…...

AUC与Accuracy的区别

下面分别解释下这两句话的含义及其原因&#xff0c;并说明 AUC 与 Accuracy&#xff08;准确率&#xff09;的区别&#xff1a; AUC 是阈值无关的指标   • 含义&#xff1a;在二分类问题中&#xff0c;模型通常会输出一个概率值或打分&#xff0c;需要设定一个阈值来将这些概…...

差分数组:原理与应用

一、什么是差分数组 差分数组是一种高效处理区间更新操作的数据结构技巧&#xff0c;特别适用于需要对数组的某个区间进行频繁增减操作的场景。差分数组的核心思想是通过存储相邻元素的差值而非元素本身&#xff0c;将区间操作转化为端点操作&#xff0c;从而将时间复杂度从O(…...

一些C++入门基础

关键字 图引自 C 关键词 - cppreference.com 命名空间 命名空间解决了C没办法解决的各类命名冲突问题 C的标准命名空间&#xff1a;std 命名空间中可以定义变量、函数、类型&#xff1a; namespace CS {//变量char cs408[] "DS,OS,JW,JZ";int cs 408;//函数vo…...

免费插件集-illustrator插件-Ai插件-路径尖角圆角化

文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.总结 1.介绍 本文介绍一款免费插件&#xff0c;加强illustrator使用人员工作效率&#xff0c;实现图形编辑中路径尖角圆角化。首先从下载网址下载这款插件https://download.csdn.net/download/m0_67316550/87…...

数据分析_商务运营考核指标体系搭建

以抖音电商中的小学教辅书籍业务为例&#xff0c;搭建对接达人的商务运营团队能力考核指标体系&#xff0c;涵盖达人筛选、合作管理、效果追踪和长期价值维护等核心环节&#xff0c;结合教育产品特性和商务运营目标&#xff0c;设计分层量化指标&#xff1a; 一、考核目标 围绕…...

基于Java的校运会管理系统【附源码】

湄洲湾职业技术学院 毕业设计&#xff08;论文&#xff09; 课题名称&#xff1a; 系 别&#xff1a; 专 业&#xff1a; 年 级&#xff1a; 姓 名&#xff1a; 学 号&#xff1a; 指导教师&#xff1a; 摘 要 用传统的方式来管理信息&#xff0c;一是耗时较长&#xff0c;二是…...

保证数据库 + redis在读写分离场景中事务的一致性

在 Spring Boot 中实现数据库与 Redis 的一致性&#xff0c;特别是处理读写分离时&#xff0c;确保数据修改的事务一致性是一个常见的挑战。因为 Redis 是一个内存数据库&#xff0c;通常用于缓存&#xff0c;而关系型数据库是持久化存储&#xff0c;两者之间的数据同步和一致性…...

【Redis】跳表结构

目录 1、背景2、跳表【1】底层结构【2】关键操作【3】redis使用跳表原因【4】特性 1、背景 redis中的跳表是一种有序数据结构&#xff0c;主要用于实现有序集合&#xff08;zset&#xff09;。跳表通过多级索引实现高效查找&#xff08;平均O(logN)时间复杂度&#xff09;&…...

Semaphore解决高并发场景下的有限资源的并发访问问题

在高并发编程的领域中&#xff0c;我们常常面临着对有限资源的激烈抢夺问题。而 Java 的 java.util.concurrent 包提供的 Semaphore &#xff0c;为我们提供了精准控制对有限资源并发访问的强大能力。 一、Semaphore&#xff1f; Semaphore&#xff0c;直译为 “信号量”&#…...

医学影像辅助诊断系统开发教程-基于tensorflow实现

源码下载地址: https://download.csdn.net/download/shangjg03/90873910 1. 简介 医学影像辅助诊断系统是利用计算机视觉和深度学习技术,帮助医生分析医学影像(如X光、CT、MRI等)并提供诊断建议的系统。本教程将指导你开发一个基于深度学习的胸部X光肺炎检测系统。 2. 准备…...

手动导出Docker进行并自动执行脚本命令的操作方法

若你已在 Docker 镜像里手动封装好文件,想让容器启动时自动执行 start.sh 脚本,可按以下步骤操作将镜像导出,同时确保启动时能自动执行脚本。 1. 提交当前容器为新镜像 假设你是在某个运行中的容器里进行文件封装操作的,要先把这个容器的当前状态提交为一个新的 Docker 镜…...

Mysql 中的日期时间函数汇总

前言 在 MySQL 中&#xff0c;处理日期和时间是非常常见的需求&#xff0c;MySQL中内置了大量的日期和时间函数&#xff0c;能够灵活、方便地处理日期和时间数据&#xff0c;本节就简单介绍一下 MySQL中内置的日期和时间函数&#xff0c;以便更好地利用这些函数来处理日期和时间…...

RabbitMQ Topic RPC

Topics(通配符模式) Topics 和Routing模式的区别是: topics 模式使⽤的交换机类型为topic(Routing模式使⽤的交换机类型为direct)topic 类型的交换机在匹配规则上进⾏了扩展, Binding Key⽀持通配符匹配(direct类型的交换机路 由规则是BindingKey和RoutingKey完全匹配) 在top…...

Conda环境管理:确保Python项目精准复现

探讨如何使用 Conda 有效地管理项目依赖&#xff0c;确保你的 Python 环境可以被精确复制和轻松共享 为什么依赖管理如此重要&#xff1f; 在开始具体操作之前&#xff0c;我们先来理解一下为什么环境依赖管理至关重要&#xff1a; 可复现性 (Reproducibility)&#xff1a;无…...

基于PyTorch的医学影像辅助诊断系统开发教程

本文源码地址: https://download.csdn.net/download/shangjg03/90873921 1. 简介 本教程将指导你使用PyTorch开发一个完整的医学影像辅助诊断系统,专注于胸部X光片的肺炎检测。我们将从环境搭建开始,逐步介绍数据处理、模型构建、训练、评估以及最终的系统部署。...

Vue3——Pinia

目录 什么是 Pinia&#xff1f; 为什么选择 Pinia&#xff1f; 基本使用 安装pinia 配置pinia 定义store 使用 持久化插件 什么是 Pinia&#xff1f; Pinia 是一个轻量级的状态管理库&#xff0c;专为 Vue 3 设计。它提供了类似 Vuex 的功能&#xff0c;但 API 更加简…...

Java中Collections工具类中常用方法详解

文章从工具类的概述、常用方法的作用、实现原理到使用注意事项&#xff0c;都进行了详细说明&#xff0c;供你参考。 Java中Collections工具类中常用方法详解 在Java开发中&#xff0c;集合是存储和处理数据的重要容器&#xff0c;而java.util.Collections工具类则提供了一组静…...

面经总目录——持续更新中

说明 本面经总结了校招时我面试各个公司的面试题目&#xff0c;每场面试后我都及时进行了总结&#xff0c;同时后期补充扩展了同类型的相近面试题&#xff0c;校招时从两个方向进行投递&#xff0c;视觉算法工程师和软件开发工程师&#xff08;C方向&#xff09;&#xff0c;所…...

电力设备智能化方案复盘

本文针对公司在售的一款电力设备智能化方案的运营情况进行复盘分析&#xff0c;提出一些基于研发人员角度的看法及建议&#xff0c;欢迎大家交流&#xff0c;因本人经验有限&#xff0c;多多包涵。具体的产品用途和公司名称不方便透露。 1.背景 本方案是针对电网配电侧中某关键…...

Rocketmq刷盘机制和复制机制区别及关系

在RocketMQ中&#xff0c;刷盘机制和复制机制是两种不同但相互协作的机制&#xff0c;分别解决数据持久化和数据高可用的问题。它们的核心区别与关系如下&#xff1a; 一、刷盘机制&#xff08;Flush Disk&#xff09; 目标&#xff1a;解决单机数据持久化问题&#xff0c;确保…...

HTB 赛季8靶场 - Puppy

nmap扫描全端口 Nmap scan report for 10.129.243.117 Host is up, received echo-reply ttl 127 (0.47s latency). Scanned at 2025-05-18 21:12:56 EDT for 551s Not shown: 65512 filtered tcp ports (no-response) Bug in iscsi-info: no string output. PORT STATE …...

频分复用信号在信道中的状态

频分复用是一种将信道总带宽划分为多个互不重叠的子频带&#xff0c;每路信号占用一个子频带以实现多路信号并行传输的复用技术。 1、基本概念和原理 频分复用&#xff08;Frequency Division Multiplexing, FDM&#xff09;的核心思想是通过频率划分实现多路信号共享同一物理…...

CSS之box-sizing、图片模糊、计算盒子宽度clac、(重点含小米、进度条案例)过渡

一、Box-sizing 在使用盒子模型时往往会出现由于border\ padding设置过大&#xff0c;从而导致的盒子被撑大的情况。 此时可以设置box-sizing: border-box (padding和boeder加起来设置的值不可超出width) 此时不会撑大盒子。可在初始化时一起设置 * { padding:0; maigin:…...

AliSQL:阿里巴巴开源数据库的技术革新与应用实践

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 引言 在数据驱动的互联网时代&#xff0c;高性能、高可靠的数据库系统是支撑企业核心业务的关键。AliSQL作为阿里巴巴集团基于MySQL深度定制的开源分支&…...