LKD-Net: Large Kernel Convolution Network for Single Image Dehazing

LKD-Net:用于单幅图像去噪的大型核卷积网络

摘要

        基于深度卷积神经网络(CNN)的单幅图像去噪方法已经取得了很大的成功。以往的方法致力于通过增加网络的深度和宽度来提高网络的性能。目前的方法侧重于增加卷积核的大小,以受益于更大的接受野来增强其性能。然而,直接增加卷积核的大小会带来大量的计算开销和参数。为此,本文设计了一种由深度分解大核卷积块(DLKCB)和信道增强型前馈网络(CEFN)组成的大核卷积去雾块(LKD块)。所设计的DLKCB可以在不引入大量参数和计算开销的情况下,将深度大核卷积分解为较小的深度卷积和深度膨胀卷积。同时,设计的CEFN在前馈网络中加入了信道注意机制,以利用重要的信道并增强健壮性。通过组合多个LKD块和上下采样模块,实现了大核卷积去霾网络(LKD-Net)。评估结果证明了所设计的DLKCB和CEFN的有效性,并且我们的LKD-Net的性能优于最先进的LKD-Net。在SOTS室内数据集上,我们的LKD-Net显著优于基于Transformer的方法Dehamer,仅有1.79%的#参数和48.9%的Flop。我们的lkd-net的源代码可以在https://github.com/SWU-CS-MediaLab/LKDNet找到。

引言

单幅图像去模糊是计算机视觉中的一个不适定问题。雾霾会遮挡图像中的对象,这会严重导致信息降级(例如,颜色失真、可见性降低)。这种信息退化在一些场景中可能会导致严重的后果,如自动驾驶和对抗性攻击。因此,如何去除单幅图像中的雾霾成为计算机视觉领域的一个挑战。单幅图像去霾的目的是从观测到的雾霾图像中估计出潜在的无雾霾图像。早期的图像去模糊方法主要基于大气散射模型(Narasimhan和Nayar 2000),和纳亚尔2002),(Narasimhanand Nayar 2002)表述如下:

其中,I(Z)是雾霾图像,J(X)是无霾图像,A是中等全局大气光,t(X)是介质透射图,t(X)的公式可以表示为:

        其中β是大气的散射系数,d(X)是场景深度。根据公式1和公式2,如果我们估计一幅雾霾图像的全球大气光和介质透射图,我们就可以从观测到的雾霾图像中得到潜伏性无霾图像。然而,这种基于先验的模型容易受到不同情景先验的影响,因此稳健性较差,正在逐步被淘汰。

        最近的深度卷积神经网络(Krizevsky,Sutskever和Hinton 2012)(CNN)在单幅图像去杂方面取得了成功,基于深度学习的图像去杂方法可以分为两大类:arxiv:2209.01788v1[cs.cv]2022年9月5日。第一类基于CNN的方法主要集中在增加网络的深度和宽度,或者设计一个大的核卷积来提高图像去哈的性能(Guo等人。2022b)、(秦等人2020)、(吴等人2021)、(董等人。2020a)。将大核函数引入到CNN中,可以扩大CNN的感受野,并在学习的潜伏域空间中捕获更多的结构化信息。然而,扩展卷积核的大小会导致更多的计算开销和参数,这是因为与核大小的二次计算复杂性(Ding等人。2022年)。第二类是基于Vision Transformers(又名,VITS)的方法(Guo等人2022A),(赵等人2021)。VITS中的MHSA机制采用大核操作,能够整合来自大接受野的信息,并能模拟长距离依赖关系。可以看出,基于CNN和基于视觉变换的方法中的大核操作都可以有效地构建一个大的有效接受场来提高性能。然而,大内核操作的计算代价很高,因为内核大小会平方增加参数和浮点运算(Flop)的数量。此外,还发现基于CNN和基于视觉变换的图像去噪方法对前馈网络(FN)中的通道同样重要。然而,FN中的各种信道特征具有附加的加权信息。如果对它们一视同仁,FN会花费大量资源在不重要的信道上进行不必要的计算,从而显著降低网络优化的效率。

        图1:SOTS室内布景不同除杂方法的结果。比较了Maxim、Dehamer、AECR-Net、FFA-Net、PFDN、MSBDN和我们的LKD-Net的性能。网络参数由圆和Flop的半径表示,并以对数轴表示。值得注意的是,我们的LKD-Net在模型复杂度较低的情况下获得了较高的PSNR。

        因此,本文设计了一种新型的大核卷积去雾块(LKD块)来解决上述局限性。具体地说,受卷积分解机制的启发(Guo等人,2022b),(Zamir等人,2021),设计了一种大核卷积块的分解(DLKCB)来取代VITS中的多头自我注意(MHSA)。DLKCB通过将传统的大深度核卷积分解为小的深度卷积和深度膨胀卷积的组合,在不增加更多计算开销和参数的情况下,增加了有效感受野,并在特征之间建立了长距离信息。在此基础上,设计了信道增强型前馈网络(CEFN),将信道注意力机制(HU、SHEN和SUN 2018)集成到传统的FN中,通过利用FN中的重要和关键信道来提高网络优化的效率。通过将DLKCB和CEFN相结合,我们实现了大核卷积去霾块(LKD块),它可以作为一个插件添加到CNN和VITS的深层体系结构中,用于高级和低级计算机视觉任务。本文将LKD块加入到多个U-Net类去杂网络中,以实现高性能的单图像去杂(记为LKD-Net)。

        据我们所知,我们的LKD-Net是第一个将大深度方向的核卷积用于单幅图像去噪任务的方法。图1显示了LKD-Net和SOTS室内布景上比较的最先进的方法。我们可以注意到,我们的LKDNet在SOTS(Li等人2019)室内集合上的性能优于以前的基于Swin Transformer的(Guo等人2022A),而计算开销和参数要少得多。此外,LKD-Net具有与基于变压器的方法相同的放大能力。我们的LKD-Net的主要贡献可以概括如下:

        我们提出了LKD-Net,一种高效的端到端多U-Net式深度结构,用于单幅图像的去雾化。LKD-Net通过使用显著更少的参数和更低的计算开销而优于最先进的方法。

        设计了大核卷积去雾块(LKD Block),它可以作为一个插件模块来增强CNN和Transformers体系结构的性能。同时,对于单幅图像的去除任务,LKD块比基于transformer的方法更高效和有效。

        设计了分解大核卷积块(DLKCB),它将大的深度卷积分解为小的深度卷积和深度扩张卷积,在不增加大量参数和计算开销的情况下增加了有效感受野。

        设计了通道增强型前馈网络(CEFN),能够有效地挖掘和整合FN中具有更多关键信息的通道,进一步提高了网络优化的健壮性和效率.

相关工作

        单幅图像去噪方法可以分为基于先验知识的方法、基于神经网络的方法和基于变压器的方法。

        基于先验的图像去模糊方法。这些方法主要依赖于大气散射模型和人工先验。DCP(He,Sun,and Tang,2009)建议在估计介质传输图之前使用暗通道。(朱,Mai和Shao 2014)提出了通过使用线性模型对模糊图像的场景深度进行建模来预先进行颜色衰减的建议。(Berman,Treibitz和Avidan 2016)提出了一种使用非局部先验的去雾化算法,该算法使用数百个不同的颜色簇很好地近似RGB空间中无雾霾图像的颜色。然而,这些基于先验的方法都存在易受不同场景影响的缺点,导致健壮性较差。

        基于CNN的图像去模糊方法。由于CNN(Krizevsky,Sutskever,and Hinton 2017)具有较高的语义抽象能力,DehazeNet(Cai Et Al 2016)将CNN用于单幅图像的去混,方法是使用CNN估计介质传输图,并通过大气散射模型恢复雾霾图像。FFA-Net(Qin Et Al 2020)利用神经网络构建了一种特征融合注意机制,以灵活地处理不同的通道信息和像素信息。AECR-NET(Wu等人。2021)通过使用下采样和对比学习提高了FFA-Net的性能。然而,这些基于CNN的方法只关注于增加网络的深度和宽度,而不是核的大小。这一点主要是因为直接扩展卷积核的大小会导致引入更多的计算开销和参数,考虑到核的大小的二次计算复杂性。

        基于变压器的图像去模糊方法。自从(Dosovitski Et Al 2021)将Transformer引入计算机视觉以来,VITS在各种任务上都超过了传统的基于CNN的方法,包括单一图像任务。例如,(Song等人2022)提出了Dehazeformer,它使用Swin Transfmer作为主干,在SOTS(Li等人2019)数据集上大大超过了所有以前基于CNN的方法。一些方法(Liu Et Al 2022)、Ding et al 2022(Ding Et Al 2022)将CNN转化为类似变压器的CNN结构,并在各个领域取得了可喜的结果。然而,这些方法通常在处理令牌上花费大量资源,并且忽略了不同信道在FN中具有完全不同的信息权重,从而导致网络效率较低。

        方法

        总体架构

        我们的主要目标是开发一种高效的深度模型,将模糊的观测图像恢复为无雾霾的图像。如图2(A)所示,LKD-Net是一种类似UNET的体系结构,是一种包含多个LKD块的多尺度分层框架,具有在不保持额外计算成本的情况下提高性能的显著优势。下采样层使用不相交的卷积将图像分割成不相交的小块,并增加通道数。上采样层使用PixelunShuffle(LeDig等人,2017)来聚集相应的下采样层补丁,并减少通道数量。SK Fusion(Song等人,2022)被用来取代级联融合层,它使用通道注意机制来融合不同分支的特征。软重构(Song Et Al 2022)层被用来取代全局残差学习,在全局残差学习之前引入弱约束,从而获得更好的网络性能。

        将一个模糊图像I2RH×W×3送入LKD网络,恢复其对应的无模糊图像^J2RH×W×3。具体地,模糊输入图像I首先经过3×3卷积得到嵌入F1 2 R H×W×C的低层特征;其中H是图像的高度,W是图像的宽度,C是通道数。然后,将浅层特征F1送入三层对称编解码器结构进行深度特征提取,最终得到F52RH×W×C输出。SK融合用于通过融合来自相同编码层和解码层的特征来帮助网络更好地恢复图像。此外,对于得到的F5,使用软重建进行3×3卷积,以获得无模糊图像^J。

        图2:(A)大型核心卷积网络(LKD-NET)体系结构。(B)LKD Block的架构。

        大核卷积去雾块

        如图2(B)所示,我们的LKD块主要包含两个模块,设计的DLKCB和CEFN。DLKCB用于空间维度信息的处理,通过增加有效感受野,有利于网络保留更多的空间结构信息。CEFN用于处理不同信道的信息。与传统的前馈网络(FN)相比,CEFN通过利用信道关注度提高了网络优化的效率(Hu,Shenin,and Sun 2018)。CEFN可以不平等地对待不同的频道,使网络更加关注关键信息较多的频道。此外,我们的LKD块可以被认为是一个类似于Transformer的CNNS插件,它使用设计的DLKCB来取代Transformer中的MHSA来提高性能,并使用CEFN来取代CNN中的FN来提高效率。因此,LKD块可以用作CNN和VITS中的插件模块,用于高级和低级计算机视觉任务。此外,我们的DLKCB架构具有与基于Transformer的架构相同的纵向扩展能力(Liu等人2021b),(Dosovitski等人。2021)方法,使我们的网络能够更好地适应与传统CNN相比具有不同计算性能的设备。详细的实验结果将证明我们的LKD块相对于其他体系结构的效率。

        分解大核卷积块

        大的感受场增加了深层模型在特征域空间中捕获更多结构化信息的能力(Wu等人2021),这对图像去混至关重要。最流行的方法是通过堆叠几个小卷积来增加网络的深度(Qin等人。2020)、(Wu等人2021)、(董等人2020a)(例如,3×3卷曲)以增加感受野。然而,这种方法可以增加理论接受场,但在增加有效接受场(ERF)方面受到限制(Luo等人,2016)。大量的作品(Long,Shelhamer和Darrell 2015),(Peng等人2017),(Yu,Koltun和Funkhoer 2017)已经证明了ERF在视觉任务执行中的关键作用。最近的工作(Ding Et Al 2022)表明,大的深度卷积可以有效地增加ERF。然而,直接使用大的深度方向卷积会带来大量的计算开销和参数。为了缓解这个问题,我们建议分解大核卷积块,如图2(B)所示。大核卷积的分解细节如图3所示,而常规的大核卷积沿深度方向的分解卷积被分解为沿深度较小的卷积和沿深度膨胀的卷积。参数P(K;d)和触点F(K;d)的大深度卷积的分解方程表示如下:

        其中K表示核大小,d表示膨胀率。

        如图4所示,我们比较了直接使用大深度卷积和分解ConvNeXt上大深度卷积的参数数量(Liu等人2022)。我们可以观察到参数差距随着网络和内核的大小而变得更加显著,因此我们认为我们的DLKCB在大型网络中将更加有效。如图5所示,我们还发现,在实践中,大核深度卷积的分解可以获得更大的ERF。细节可以在消融研究中看到。

频道增强型前馈网络的一些研究(Qin Et Al 2020),(Hu,Shenin,and Sun 2018)已经表明,不同的频道特征具有完全不同的权重信息。换句话说,一些通道特性在网络优化中并不是特别重要。因此,如果我们平等对待这些渠道,我们将把资源放在不那么关键的信息上,并影响网络的性能。为此,我们提出了CEFN,如图2(B)所示。我们将信道关注度引入到传统的前馈网络中,允许传统的前馈网络对不同的信道特征进行重新加权。此外,在(Guo等人,2022b),(Li等人,2021)的基础上,我们在传统的FN中加入了3×3的深度卷积,使其能够编码相邻像素在特征空间上的位置信息。CEFN的公式表示如下:

其中表示逐个元素的乘法。X2RH×W×C和^X2RH×W×C是输入和输出特征映射。Norm是批量归一化。α是一个可学习的缩放参数。F_N是前馈网络。CA表示通灵注意力,其公式如下所示:

        其中σ是Sigmoid函数,GAP表示全局平均池操作。详细的实验表明,我们的CEFN比应用于变压器(Liu等人2021B)、(Song等人2022)、(Dosovitski等人2021)和MLP(Liu等人2021A)的FN更有效。

        图3:大深度卷积的分解图。原来的大深度卷积分为较小的深度卷积和深度膨胀卷积。蓝色网格表示卷积核的位置,黄色网格表示卷积中心。该图表明,13×13深度卷积可以与5×5深度卷积和5×5深度膨胀率为3的深度卷积相结合。

        图4:对于不同的核大小,ConvNeXt上的深度卷积和深度卷积的分解之间存在参数差异。

实验

实现细节

        我们将LKD-T、LKD-S、LKD-B和LKD-L按照它们的参数数量和计算开销分为四类,分别对应于极小、小、基本和大。表2列出了这些变体的配置详细信息。所有型号都在两个NVIDIA Titan XP图形处理器上使用PyTorch 1.10.1实现。利用AdamW(Loshchiov And Hutter 2019)优化器对LKD网络进行了优化,其指数衰减率β1和β2分别等于0.9%和0.999。将初始学习率设置为0.0002,并使用余弦退火法调整学习率。批次大小设置为16,面片大小设置为256×256,并随机裁剪。我们只使用L1损耗来优化我们的LKD网络。我们在默认情况下对21×21卷积进行分解,这在工作中被证明具有最佳的参数性能折衷(Guo等人2022b)。

数据集和评估度量

        我们的实验是在驻留数据集上进行评估的(Li等人。2019年)。Reside是单幅图像去噪任务中最常用的数据集之一,它包含五个子集:室内训练集(ITS)、室外训练集(OTS)、合成目标测试集(SOTS)、真实世界任务驱动测试集(RTTS)和混合主观测试集(HSTS)。ITS子集包含13,990个图像对,而OTS子集包含313,950个图像对。SOTS包含500对室内和500对室外测试图像。遵循客观评价协议(Qin Et Al 2020),(Wu Et Al 2021),(Song Et Al 2022),我们的LKD-Net分别在300个时期的ITS和30个时期的OTS上进行训练,并在SOTS子集上进行评估。同时,使用峰值信噪比(PSNR)和结构相似性指数(SSIM)来评估LKDNet和比较现有方法的性能。

关于驻留数据集的结果

        我们定量地比较了我们的LKD-Net和最先进的图像去污方法的性能,包括DCP(He,Sun,and Tang 2009),DehazeNet(Cai et al。2016)、AOD-Net(董等人2020a)、GFN(Ren等人2018)、GridDehazeNet(Liu等人2019)、MSBDN(董等人。2020b)、人阵(DONG和PAN 2020)、FFA-NET(Qin等人。2020)、AECR-Net(Wu等人2021)、UDN(Hong等人2022)、Dehamer(Guo等人2022a)、Maxim(Tu等人2022)。对比结果如表1所示。可以看出,我们的LKD-L算法在SOTS室内数据集上的性能优于所有方法。在仅用56%的参数个数的情况下,它在PSNR评估度量上比以前最好的方法UDN提高了0.86dB。特别是,与基于变形金刚的方法Dehamer相比,LKD-L在峰值信噪比评价指标上比Dehamer高3.08分贝,仅有1.79%的参数个数和48.9%的FLOP,这表明基于变形金刚的方法可能不是低级别计算机视觉任务的最佳选择。此外,得益于LKD-Block奇妙的体系结构,LKD-Net的所有变体都取得了良好的性能,因此我们相信LKD-Net是一种可扩展的方法,使其能够适应广泛的不同性能的设备。在SOTS室外数据集上,我们的LKD-L的性能不如UDN和Dehamer,但差异并不是特别显著(最大差异仅为0.36dB)。然而,它们的参数数量是LKD-L的几倍,我们认为我们的网络实现了更好的参数性能权衡。

        我们还将我们的LKD-Net与最先进的图像去浊方法进行了定性的比较,可视化结果如图6所示。我们可以看到GridDehzeNet和FFA-Net不能成功地去除图像中的模糊。Dehamer在户外场景中表现得很好。然而,它在室内场景中也受到颜色失真的影响(例如,第二行字符的背景颜色发生变化)。相比之下,Maxim在室内场景中表现得很好。然而,颜色过饱和发生在室外场景中(例如,第三列中的列车灯光过饱和)。与它们相比,从我们的LKD-Net中恢复的图像明显更接近地面真相。

        通过烧蚀实验验证了LKD网络中各部件的有效性,并使用最小模型LKD-T进行了烧蚀分析。我们首先构建一个基本网络作为我们的基线,它是通过将深度卷积的21×21分解替换为7×7深度卷积来实现的。将CEFN放入常规前馈网络(FN),用级联取代SK Fusion,用全局残差学习取代SR。随后,我们将不同的模块替换到基本网络中,构造了四种不同的变体:(1)Base+SF:用SK Fusion替换Base中的级联。(2)Base+SF+SR:用软重构代替Base+SF中的全局残差学习。(3)Base+SF+SR+DLK:用21×21的深度卷积分解代替Base+SF+SR中的7×7深度卷积。(4)Base+SF+SR+CEFN:将Base+SF+SR中的常规前馈网络(FN)替换为CEFN。(5)我们的:用深度卷积的21×21分解代替Base+Sf+SR+CeFn中的7×7深度卷积。这些模型在其数据集上进行训练,并在SOTS室内集上进行评估。表3总结了这些模型的性能。

        DLK的有效性。与BASE+SF+SR相比,DLK可以显著提高PSNR 1.95dB和SSIM增加了0.007,而只引入了0.022M#参数和0.33G Flopps。此外,我们还用其他常规的大深度卷积进行了烧蚀实验,以展示我们的DLK的优势。表4显示,与9×9深度卷积和21×21深度卷积相比,我们的DLK使用更少的计算开销和参数获得了更好的性能。我们认为,DLK的高效率的主要原因是与传统的大深度卷积相比,它可以捕获更大的ERF。为了支持我们的观点,我们使用公共工具(代码可在(Ding等人2022)处获得)来可视化LKDNet L3输出的要素地图质心的ERF。如图5所示,我们可以观察到DLK 21×21中的红点分布比LK 9×9和LK 21×21中的红点分布更大、更广,这表明DLK 21×21确实获得了更大的电流变液。我们还在表5中提供了定量分析,其中t代表一个阈值。例如,如果t=20%且r=4:4%,则意味着20%的像素贡献位于4.4%的总像素区域中。我们可以看到,DLK 21×21比LK 9×9和LK 21×21具有更平滑的高贡献像素分布,这证明了我们的观点,即DLK高效的主要原因是它可以有效地捕获更大的ERF。

        CEFN的有效性。与Base+SF+SR相比,CEFN显著提高了性能,峰值信噪比提高了1.55db,SSIM提高了0.005,仅引入了0.019M#参数和0.2G Flop。我们认为,CEFN有效性高的主要原因是渠道关注机制(胡、沈、孙2018)让CEFN更专注于拥有重要信息的渠道。

        表1:在ITS和OTS数据集上培训的各种除杂方法在PSNR、SSIM、参数数目(#Param)和浮点运算(Flop)方面的定量比较。我们使用粗体和下划线分别表示最高和第二高的结果。符号“-”表示该号码不可用。注意:Flop是在256×256大小的图像上测量的.

        表2:LKD-Net配置详情。

表3:不同结构LKD-T的烧蚀研究

        图6:定性地比较SOTS集上的图像消除方法(放大以获得更好的视图)。前两行是SOTS室内图像,后两行是室外图像。第一列是模糊的输入图像,最后一列是对应的地面事实。

        表4:不同核大小的常规深度卷积的比较。

表5:高贡献面积比r的ERF的定量分析。r越大,高贡献像素的分布越平滑,因此ERF越大。

结论

        提出了一种适用于高性能单幅图像去噪的LKD-Net。所设计的DLKCB能够有效地捕获ERF并对远程信息进行建模,而所设计的CEFN能够有效地增强FN中的信道维度特征。评估结果表明,LKDNet的性能优于最先进的方法,并显著优于基于变压器的Dehamer方法。因此,我们认为我们的LKD-Net是一种有效和通用的端到端图像恢复方法,可以用于视频去噪和其他低层计算机视觉任务,如图像去噪、去雨、去模糊、超分辨率等。此外,DLKCB中深度卷积的分解可用于CNN和VITS,以提高低级别和高级视觉任务的性能。

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

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

相关文章

昇思25天学习打卡营第1天|新手上路

这里写自定义目录标题 打卡昇思MindSpore扫盲快速入门 打卡 昇思MindSpore扫盲 第一节基本是一个mindspore的科普扫盲。大概介绍一通mindspore的一些架构,feature,以及其对比于其他同类框架的优势。简单扫读了一遍大概有点印象直接跳过。 快速入门 这…

Vue 3 中处理文件上传和响应式更新

Vue 3 中处理文件上传和响应式更新 一、前言1.创建文件上传组件2.解释代码3.在主应用中使用文件上传组件4.总结 一、前言 在现代 web 开发中,文件上传是一个常见需求。本文将详细介绍如何在 Vue 3 中处理文件上传,并确保上传后的文件列表能够响应式更新…

如何把图片转换成pdf格式?图片转PDF方法分享

如何把图片转换成pdf格式?图片转换为PDF格式的重要性不言而喻。PDF文件不仅能够在各种操作系统和设备上保持一致的显示效果,还能确保图片内容的清晰度和质量不受损害。此外,PDF格式支持加密和权限设置,可以保护图片内容不被轻易篡…

FireFox 编译指南2024 Windows10篇-环境准备(一)

1. 引言 在开源浏览器项目中,Firefox因其高性能和灵活性而备受开发者青睐。为了在本地环境中编译和定制Firefox,开发者需要做好充分的环境准备工作。这不仅是编译成功的基础,也是后续调试、优化和二次开发的关键步骤。 编译Firefox是一个复…

深入剖析Tomcat(十二) 详解StandardContext

StandardContext是Context容器的一个标准实现,一般情况下,Tomcat都是使用StandardContext类来创建Context容器。前面讲过,Context容器代表了一个Web应用,Tomcat本身支持部署多个应用,相应的每个应用都会有一个Standard…

实用软件下载:ABBYY Finereader 15最新安装包及详细安装教程

数据表明FineReader PDF提供实用、简易的工具,将纸质文档和PDF结合起来,提高了数字工作场所的效率。我们都知道 即时背景识别:使不可搜索的PDF能够在工作中立即使用。值得一提的是文档转换更精准:OCR技术,它提高了PDF转换、布局保…

基于STM32的简易计算器proteus仿真设计(仿真+程序+设计报告+讲解视频)

基于STM32的简易计算器proteus仿真设计 讲解视频1.主要功能2. 仿真3. 程序4. 设计报告5. 资料清单&下载链接 基于STM32的简易计算器proteus仿真设计(仿真程序设计报告讲解视频) 仿真图proteus 8.9 程序编译器:keil 5 编程语言:C语言 …

深入JVM:详解JIT即时编译器

文章目录 深入JVM:详解JIT即时编译器一、序言二、基础概念1、何为JIT即时编译2、热点代码 三、HotSpot内置的即时编译器1、C1编译器2、C2编译器3、分层编译3.1 协作流程 四、常见JIT优化技术1、方法内联2、逃逸分析(1)同步锁消除(…

数据结构:栈和队列详解

栈 栈的概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守先进后出LIFO(Last In First Out)的原则。大家可以理解为…

Day60 代码随想录打卡|回溯算法篇---组合

题目(leecode T77): 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 方法:本题最直观的解法是使用暴力for循环遍历法,根据k的大小定for循环的嵌套次数&…

Posix消息队列使用总结

Posix在线文档: The Single UNIX Specification, Version 2 (opengroup.org) Linux系统中提供了两种不同接口的消息队列: POSIX消息队列。POSIX为可移植的操作系统接口。System V消息队列。System V 是 AT&T 的第一个商业UNIX版本(UNIX System III)的…

[Python人工智能] 四十六.PyTorch入门 (1)环境搭建、神经网络普及和Torch基础知识

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解合如何利用keras和tensorflow构建基于注意力机制的CNN-BiLSTM-ATT-CRF模型,并实现中文实体识别研究。这篇文章将介绍PyTorch入门知识。前面我们的Python人工智能主要以TensorFlow和Keras为主,…

【Linux】进程间通信_4

文章目录 七、进程间通信1. 进程间通信分类systeam V共享内存消息队列信号量 未完待续 七、进程间通信 1. 进程间通信分类 systeam V共享内存 进程间通信的本质就是让不同进程看到同一份资源。而systeam V是通过让不同的进程经过页表映射到同一块内存空间(操作系…

LED显示屏中什么是静态驱动?什么是扫描驱动?两者的区别是什么?

随着科技的飞速发展,LED显示屏作为现代信息显示技术的重要组成部分,正以其独特的优势引领着显示行业的革新。近日,LED显示屏市场呈现出蓬勃的发展态势,技术创新不断推动行业向前发展,让LED显示屏无论是在商场的广告牌、…

苏东坡传-读书笔记一

太守的官衙位于杭州中心,但是苏东坡却喜欢在较为富有诗意的地方办公。他往往在葛岭下面有十三间房子的寿星院办公,因为那里风光如画。看公文不在寒碧轩,就在雨奇堂。我们记得雨奇堂是从苏东坡西湖诗“山色空濛雨亦奇”而得名的。在这里&#…

04-Shell编程之正则表达式与文本处理器

4.1 正则表达式 4.1.1正则表达式概述 1.正则表达式的定义 正则表达式又称正规表达式,常规表达式。在代码中常简写为regex,regexp,或RE。正则表达式是使用一个字符来描述,匹配一系列符合某个句法规则的字符串,简单的…

【现代操作系统】什么是操作系统

1.前言 现代计算机系统由一个或多个处理器、主存、磁盘、打印机、键盘、鼠标、显示器、网络接口以及各种其他输入/输出设备组成。一般而言,现代计算机系统是一个复杂的系统。如果每位应用程序员都不得不掌握系统的所有细节,那就不可能再编写代码了。而且…

音视频入门基础:H.264专题(5)——FFmpeg源码中 解析NALU Header的函数分析

音视频入门基础:H.264专题系列文章: 音视频入门基础:H.264专题(1)——H.264官方文档下载 音视频入门基础:H.264专题(2)——使用FFmpeg命令生成H.264裸流文件 音视频入门基础&…

SpringBoot-在配置文件中使用Profile

Profile,译为“配置文件” 在这里的Spring Boot也是一样,我们可以配置很多个Profile,每个Profile都对应一整个完整的全局配置,激活哪个,那个对应的全局配置就生效,具体的配置: 1、properties格…

漏洞挖掘 | 记一次edusrc--轻松拿下中危信息泄露

1.前言 也是一次漏洞挖掘的思路分享 上次我们讲过了关于小程序方面的一些小思路,即关于抓包更改id号造成的一个信息泄露,但是在小程序上的信息泄露很难涉及到公民三要素这是一个痛点,今天就来分享一下一次edu挖掘时挖到的一个涉及公民三要素…