Local Color Distributions Prior for ImageEnhancement

news2024/12/29 1:05:21

图1:给定同时具有过曝光(背景窗口)和欠曝光(前景人物)的输入图像(a),现有方法不能很好地处理这两个问题。虽然(b)在背景上表现更好,但前景仅略微变亮。尽管(c)在前景上表现更好,但背景仍然被过度曝光。(d) 使前景略微变亮,但使背景进一步过度暴露。相反,我们的方法(e)基于学习局部颜色分布,可以很好地处理这两个问题。窗帘的纹理和衣服的花纹都看得很清楚。

 现有的图像增强方法通常被设计为解决输入图像中曝光过度或曝光不足的问题。当输入图像的照明同时包含曝光过度和曝光不足问题时,这些现有方法可能不能很好地工作。我们从图像统计数据中观察到,患有这两个问题的图像的局部颜色分布(LCD)倾向于在图像的不同区域中变化,这取决于局部照明。基于这一观察结果,我们在本文中建议利用这些LCD作为定位和增强两种类型区域(即曝光过度/曝光不足区域)的先验。首先,我们利用LCD来表示这些区域,并提出了一种新的局部颜色分布嵌入(LCDE)模块,用于在多尺度上形成LCD,以对不同区域之间的相关性进行建模。其次,我们提出了一种双重照明学习机制来增强这两种类型的区域。第三,我们构建了一个新的数据集,通过遵循相机图像信号处理(ISP)管道,从原始数据中渲染曝光不足/过度的标准RGB图像,来促进学习过程。大量实验表明,所提出的方法在数量和质量上都优于现有的先进方法。

code:https://hywang99.github.io/lcdpnet/.

1 Introduction
在拍摄照片时,场景的照明条件可能并不总是理想的,并且照片可能会出现曝光不足(由于低光/背光)或曝光过度(由于图像区域内的一些强光)的情况。通常,由于不平衡的照明条件,在同一图像中可能同时出现曝光过度和曝光不足。照明可能会发生显著变化,将局部图像内容掩埋在曝光过度和曝光不足的区域,如图所示。第1(a)段。虽然摄影专家可能会利用高端单反相机并仔细调整它们(例如光圈、ISO和特殊滤镜)来缓解问题,但这需要摄影专业知识和昂贵的设备。

已经提出了许多方法来提高在较差照明条件下捕获的图像的质量。一系列方法侧重于通过基于Retinex的方法[33]、双边学习[13]、生成对抗性学习[11]、深度参数滤波[23]和自监督[14]或半监督学习[39]来增强在低光场景中捕获的曝光不足的图像。其他作品[4,1]试图增强一个网络中过度曝光或曝光不足的图像。所有这些方法通常假设场景照明通常是均匀的,因此不适当的曝光将导致曝光过度或曝光不足。因此,它们倾向于全局调整图像强度,即增加或减少强度。然而,如果场景的照明是不均匀的,导致输入图像同时受到过度和不足曝光的影响,如图所示。1(a),现有方法可能无法很好地工作。例如,ZeroDCE[14](c)和RUAS[29](d)在试图增强曝光不足的前景人物时,加剧了背景区域的过度曝光问题。另一方面,虽然MSEC[1](b)略微增强了前景,但它在背景窗口周围产生了一些颜色失真。

在本文中,我们的目标是解决出现在单个图像中的曝光过度和曝光不足问题。关键的挑战是如何有效地分离这两种类型的区域,并相应地恢复它们的局部照明。我们观察到,由区域局部直方图向量组成的局部颜色分布(LCD)在解决这一挑战之前是可靠的,原因有两个。首先,我们注意到,在过曝光和欠曝光区域中的这些LCD显示出显著的差异,并偏离了在适当曝光区域中。因此,它们可以用来帮助识别和分离不同类型的区域。

其次,虽然从曝光过度和曝光不足的图像中直接推断真实场景照明可能不可靠,但颜色是图像中容易获得的重要线索。对LCD进行建模基本上有助于估计适当的局部照明并恢复埋藏的内容物。基于我们的观察,我们提出了一种新的神经网络,用两个新的模块来联合解决这两个问题(即过曝光和欠曝光问题):(1)局部颜色分布嵌入(LCDE)模块,用于在多尺度中形成LCD,以学习过曝光和过曝光区域的表示及其相关性,以及(2)双照明学习机制,用于约束LCDE模块的学习,估计并组合过照明图和欠照明图以增强图像。此外,由于现有的数据集(例如,[1,10,33,5])大多包含曝光过度或曝光不足的图像,我们进一步构建了一个新的图像数据集,其中包含约1700个曝光过度和曝光不足的不同场景,以便于训练和评估。我们遵循相机ISP流水线,通过应用线性变换函数和对输入原始图像的像素强度进行剪裁来渲染sRGB图像。如图6所示,如图1(e)所示,我们提出的基于LCD先验的方法使暴露不足的区域变亮,同时使暴露过度的区域变暗,从而使暴露过度窗帘的纹理以及两人穿着的暴露不足的毛衣的图案变得可见。

我们对这项工作的主要贡献可以总结如下:

–我们建议利用局部颜色分布(LCD)来联合解决输入图像中的曝光过度和曝光不足问题,并利用神经网络来定位和增强图像的曝光过度/曝光不足区域。–我们提出了LCDE模块来制定多尺度LCD,以便学习过度和不足曝光区域的表示以及它们与全局照明的相关性。我们还提出了一种双照明估计器,以组合过照明和欠照明图来增强输入图像我们构建了一个新的配对数据集,由1700多幅不同、不均匀照明场景的图像组成,以促进学习过程大量实验表明,在流行的MSEC[1]和我们的数据集上,所提出的方法在定性和定量上都优于最先进的方法。

2 Related Work
Image-to-Image Translation-Based Methods.
一系列方法通过学习不同的图像到图像的翻译映射来增强曝光不足的图像。直方图均衡[26]和伽玛校正是最具代表性的方法。一些方法提出将全局和局部对比度增强算子与语义区域检测相结合(例如,面部、建筑物和天空)[20],区域模板[16]或沿着图像边界和纹理区域中的对比度统计[30]。最近基于深度学习的方法通常使用高质量的修饰图像或使用高端相机拍摄的图像来学习映射函数,包括双边学习[13]、中间HDR监督[40]、多阶段恢复[42,9]、生成对抗性学习[17,11,19,27]或强化学习[24,41]。蔡等人[4]提出通过从多个曝光图像中分别建模照度层和细节层来增强曝光不足的图像。Moran等人[32]提出学习一组分段线性缩放曲线,并将其应用于不同的颜色空间中,用于曝光不足的图像增强。徐等人[37]提出了基于频率分解的欠曝光图像增强方法。在[23]中,学习了不同类型的局部参数滤波器用于图像增强。Mahmoud等人[1]提出了一种从粗到细的网络来学习颜色和细节增强,以解决过度曝光或曝光不足的问题。

Retinex-Based Methods.
另一系列工作是基于Retinex的图像增强方法[15,12,44,3,33,45]。他们首先将输入图像分解为照明层和反射层,然后增强图像的照明层。传统的基于优化的方法[15,12,3]提出了不同的手工先验来约束照明或反射层。基于深度学习的方法[10,33,45,29]从大量数据中学习这种内在分解。例如,DeepUPE[33]提出通过双边学习从输入的曝光不足图像直接估计适当的照明层[6]。最近,刘等人[29]提出了一种基于架构搜索的方法,以利用协作先验进行曝光不足的图像增强。

Limitation of Existing Works.
所有上述方法通常假设只有曝光过度或曝光不足的问题会出现在单个图像中。因此,它们往往会使曝光不足的图像变亮或使曝光过度的图像变暗,但缺乏处理曝光过度和曝光不足图像的能力。在这份文件中,我们的目标是解决这一常见的短缺问题。我们首先构建了一个新的数据集,并提出了一种LCD先验引导的深度学习方法,用于增强包含过曝光和欠曝光的图像。

3 Proposed Dataset
为了研究我们的问题,我们首先回顾了最近发布的大规模图像增强数据集,即多尺度曝光校正(MSEC)数据集[1]。尽管它包含曝光过度或曝光不足程度不同的图像,但每个图像要么曝光过度,要么曝光不足。我们在图2中可视化输入图像和参考图像之间的亮度强度映射。2。图图2(a)显示了来自MSEC数据集[1]的单个图像的亮度映射的形状是凹的或凸的。这些亮度映射不显示从遭受过度曝光和曝光不足的图像所表现出的任何不均匀照明。统计数据如图所示。2(d)表明,在该数据集上训练的MSEC模型[1]使输入图像变亮或变暗

 (见图2(e,f))。图图2(b)显示了LOL数据集[10]中图像的亮度映射的统计数据,该数据集是一个流行的微光图像增强数据集。我们可以看到,它只允许学习曝光不足增强。这意味着在LOL数据集[10]上训练的方法通常会使输入图像变亮。这表明,需要一个新的数据集,其中包含单个图像中的过度曝光和不足曝光。

我们从MIT Adobe5k数据集[2]中的原始图像构建了我们的数据集,该数据集包含5000个原始和专家修饰的sRGB图像对,用于学习色调映射过程。由于原始图像比sRGB图像具有更高的动态范围来保存场景信息,并且它们的强度与场景辐射成线性比例,因此我们从原始图像生成曝光过度和曝光不足的输入图像。我们使用专家修饰的sRGB图像作为我们的地面实况图像。然而,我们注意到,并非该数据集中的所有原始图像都适合生成曝光过度和曝光不足的图像(例如,从非常暗的图像合成曝光过度可能会产生不现实的图像),并且许多专家修饰的图像包含非常暗/亮的区域,这些区域无法用于形成我们的地面实况图像。

为了生成高质量的学习对,我们将数据集生成管道分为三个步骤:(1)我们手动遍历Adobe5k中的所有图像对,并删除那些专家修饰的图像包含非常暗或非常亮区域的对。(2) 对于(1)中的每个候选原始图像,我们遵循相机ISP管道,通过使用线性变换函数调整曝光水平,渲染具有过曝光和欠曝光的sRGB图像。(3) 对于(2)中的每个渲染sRGB图像,我们请一名志愿者(摄影师)帮助评估其质量。如果志愿者指出渲染的图像不真实或具有明显的伪影(例如,彩色出血),我们将其反馈到步骤(2)以生成另一个sRGB图像用于重新评估。这会迭代,直到我们有一个高质量的图像,或者在五次迭代后,我们简单地丢弃这对。

4 Proposed Method
 
曝光过多和曝光不足的图像增强任务可以公式化为寻求映射函数F,该映射函数F将每通道sRGB图像Ix映射到增强图像Iy,使得Iy=F(Ix)。我们建议通过学习利用多尺度LCD和双照明估计来学习区域感知照明映射模型,而不是直接学习图像到图像的转换模型或基于Retinex的图像到照明映射模型。

4.1 Local Color Distribution (LCD) Pyramid
从单个图像直接推断真实场景照明是一项挑战,尤其是当输入图像同时包含过曝光和欠曝光时。相反,由于颜色是图像中保留的场景照明的关键组成部分,我们可以利用局部颜色信息来帮助构建区域照明的表示。图图4(c)显示了一个例子,其中基于颜色直方图的方法CLAHE[28]在这两个方面都比最新的深度方法MSEC[1]恢复了暴露过度和暴露不足的区域更多的细节。然而,CLAHE[28]由于缺乏全局信息,往往会产生颜色不一致的图像。我们基于CLAHE[28]对LCD进行建模,并将其扩展为神经网络中的多尺度金字塔,以便通过学习局部到全局的照明相关性来解决不一致性。

 Building the LCD Pyramid

这段文本描述了对输入图像Ix进行处理的过程。首先,将图像Ix(尺寸为h × w,像素值范围在[0, 1]之间)分割成N个大小为K × K的局部块。这些局部块中的每一个被定义为LCD(局部颜色直方图)。接着,使用4D的LCD映射MK来表示尺度K的分布。首先构建一个h × w的双边网格Γ,通过在范围维度上进行像素直方图投票来完成这个网格构建的过程。最后,通过下面的公式计算Mk。

 4.2 Proposed Network

图5显示了拟建网络的概况。它有一个编码器-解码器[31]架构,结合了LCDE模块,以利用LCD金字塔来学习曝光过多和曝光不足区域的表示,以及用于自适应增强的双发光机制。

LCDE module. 

为了学习曝光过度和曝光不足区域的自适应表示,我们提出了LCDE模块,以在LCD金字塔的指导下预测自适应卷积核。我们的LCDE模块设计基于DRconv[8](最初提出用于高级图像分类和检测任务)。我们选择DRconv[8]来利用其产生区域核的思想。与根据局部语义学习不同内核的DRconv[8]不同,后者在曝光过度和曝光不足区域是不可靠的,我们根据由局部颜色分布引导的局部照明来学习不同的内核。具体而言,LCDE模块有两个分支,即卷积核生成分支和引导掩码预测分支(图5的右下部分)。第一分支将前驱特征图作为输入,并产生n个核{W1,W2,…Wn}的参数。引导掩模预测分支输入LCD图MK,并使用它来引导多值掩模的预测,用于将空间特征图划分为n个区域,以便在不同区域上应用不同的卷积核。通过在不同的区域上应用不同的卷积核,多尺度LCD金字塔引导网络区分不同曝光的区域,并分别增强它们。

为了处理高分辨率输入,我们在双边上采样方法[6,7]的基础上构建了该模块,以实现快速推理速度。

Dual-illumination Estimation. 

为了约束模型学习Expaureaware掩模,我们在模型中利用了Retinex理论。基于Retinex的方法(例如[33])通常将输入图像Ix分解为照明图L和反射率图R。通过将反射率图R视为增强图像,DeepUPE[33]生成曝光不足增强结果Iu y,Iu y=R=Ix·L−1。由于L中的值落在[0,1]内,因此结果图像中的像素值总是大于输入图像的像素值。因此,这些方法不能抑制过度曝光。为了解决这个问题,我们建议通过在[43]中引入双路径学习,将[33]的照明预测机制扩展到双照明预测机制。这里的主要思想是,Ix中的过度曝光可以被视为Ix的反向图像中的曝光不足。通过首先通过I′x=1−Ix计算反向图像I′x,我们可以计算输入图像Ix的过度照明图L′以及照明不足图L。L和L′是通过带有LCDE模块的编码器-解码器网络来估计的。然后通过我们的融合网络将两个增强的分量融合以生成最终结果。

Fusion Network. 

融合网络f将两个单独增强的图像Iu y和Io y以及原始图像Ix作为输入,以回归最终增强的图像。它包含两个卷积层和两个非局部[34]块。利用非局部块,网络能够捕获像素之间的长程空间相关性。融合网络通过预测3通道权重图来融合三个输入以生成增强的结果Iy。

Why would our model work? 由于LCDE模块在n个区域上应用n个不同的内核,因此可以将每个区域视为分配了一个单独的解码器来学习亮度映射,但不会引入额外的计算成本,而所有区域共享相同的编码器用于特征提取(见图7)。此外,通过推断照明图,它有助于约束LCDE模块中引导掩模的学习,以关注这些区域的曝光水平。

4.3 Loss Function

我们采用四个损失项来训练我们的模型。我们应用广泛使用的MSE项Lmse来测量强度重建误差。为了校正曝光过度和曝光不足区域中的颜色失真,我们应用余弦相似性项Lcos[33,35,36],该项测量重建图像的颜色相似性及其在sRGB颜色空间中的基本事实。此外,为了引导网络估计照明图,我们将局部平滑项[33,38]应用于我们的双照明估计过程,表示为Ltv1,和Ltv2。局部平滑项旨在通过最小化图像照明的梯度变化来保持图像照明的局部平滑特性。整体功能可以写成

5 Experiments
5.1 Implementation Details 

我们使用PyTorch[25]实现了我们的模型。我们所有的实验都是在单个NVIDIA GTX3080 GPU上进行的。网络的参数由ADAM优化器[21]进行优化,β1=0.9,β2=0.999,学习率为1e−4。所需的区域编号设置为n=2,表示曝光过多和曝光不足的区域。方程4中损失函数项的权重λ1 = 1.0, λ2 = 0.5, λ3 = λ4 = 0.01。在我们的实验中,我们使用了一个4尺度的LCD金字塔和一个4尺度的编码器-解码器网络。我们在方程式2中利用[22]中的软直方图投票实现了Γ中的splatting操作。在训练过程中,我们将输入图像调整大小为512×512,并对输入数据进行随机水平和垂直翻转来增广数据。实验报告中的模型是基于一个具有218K参数的简单编码器-解码器网络实现的。

5.2 Comparisons with State-of-the-art Methods 

为了验证我们的方法的有效性,我们将我们的模型与现有的曝光校正和图像增强方法进行了比较。我们选择了三种传统的增强方法,包括直方图均衡(HE)、CLAHE[28]和LIME[15],以及七种基于深度学习的方法:ZeroDCE[14]、RetinexNet[10]、MSEC[1]、DSLR[18]、HDRnet[13]、DeepUPE[33]和RUAS[29]。我们采用常用的峰值信噪比(PSNR)和结构相似性(SSIM)作为评估指标

Quantitative Comparison.

表1报告了对MSEC[1]测试集的性能评估。MSEC[1]和我们的都是在MSEC[1]训练集上训练的,而其他数字是从MSEC[1]复制的。从表中可以看出,我们的方法在很大程度上优于第二好的方法(即MSEC[1])。表2进一步显示了对我们提出的测试数据集的比较。为了进行公平的比较,我们使用现有的基于深度学习的方法的预训练模型以及在我们的训练集中重新训练的模型来报告它们的性能。结果表明,我们的方法在PSNR和SSIM指标上都优于所有现有方法。

Visual Comparisons.

我们将我们的方法的结果与现有方法的结果进行了直观的比较。请注意,本实验中使用的所有模型都在我们的数据集上进行了重新训练,以便进行公平的比较。图8显示了两个例子,其中包含我们数据集中暴露过度和暴露不足的区域,以及现有方法和我们的结果。我们可以看到,我们的方法可以同时纠正这两个问题过度和不足暴露的区域,并产生更视觉上令人愉悦的细节和颜色。我们进一步展示了对具有大量过度曝光像素的图像的比较(图9)或曝光不足像素的图像(图10),来自我们的数据集,来自MSEC[1]数据集的一张图像(图11),以及来自互联网的两张图像(图图12)。这些比较通常表明,我们的方法很好地适用于不同的曝光水平和不同的照明条件。有关更直观的比较,请参阅补充资料

 

5.3 Internal Analysis 

Ablation study 

为了分析我们提出的模块和流程的有效性,我们对网络结构进行了消融实验。具体来说,我们训练了四种不同的模型:(1)一个简单的编码器-解码器(Oursplain),(2)在(1)的解码器中添加了LCDE模块(Ourssingle),(3)在(1)的解码器中添加了DR-conv块[8](OursDRconv),(4)在(2)中添加了双光照估计(Ours)。

如表3所示,双照明估计或LCDE模块显著提高了性能,验证了双照明学习和局部颜色分布先验的有效性。(2)和(3)之间的比较表明,我们的模型的性能增益主要是将(2)和(3)进行比较显示出,我们模型的性能提升主要是由于LCD金字塔先验而不是区域动态卷积。我们还对损失函数项进行了消融研究,见表3。通过比较最后三列,我们可以看到逐渐引入局部平滑项Ltv和余弦相似性项Lcos能够持续提高增强性能。

Visualization and interpretation.

我们将网络的中间结果可视化,以检查网络是否具有区域感知能力。图13示出了由LCDE模块预测的多尺度引导掩模特征。我们期望在LCD金字塔的引导下,输入图像和特征图可以根据曝光水平通过引导掩模划分为不同的区域。如图13所示,当n = 2时,LCDE模块的中间引导掩模通常将像素划分为亮区域和暗区域。这表明在LCDE模块的指导下,网络确实学习了输入图像的区域感知自适应增强。

Limitations. 

图14展示了我们的方法可能无法增强的两种具有挑战性的情况。如果一幅图像包含大面积曝光不足的区域(图14(a))或大面积曝光过度的区域(图14(A)),对我们的模型来说,增强这些区域可能会很困难。作为未来的工作,我们希望探索语义场景布局以及图像修补技术来处理这种情况。

6 Conclusion 

在本文中,我们解决了校正具有过曝光和欠曝光区域的图像的图像增强问题。我们提出了一个新的数据集,并设计了一个全新的端到端模型来解决这个问题。我们提出了LCDE模块,用于在局部颜色分布的指导下检测曝光过多和曝光不足的区域。我们通过提出双照明估计器来更好地重建细节,从而扩展了基于Retinex理论的照明。大量实验表明,与最先进的方法相比,我们的方法表现良好

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

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

相关文章

高项备考葵花宝典-项目进度管理核心方法加强理解-关键路径法

关键路径法(Critical Path Method,CPM)是一种基于数学计算的项目计划管理方法,是网络图计划方法的一种,属于肯定型的网络图。关键路径法将项目分解成为多个独立的活动并确定每个活动的工期,然后用逻辑关系&…

基于SSM的小儿肺炎知识管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

数据库设计规范编制文档

本文的目的是提出针对Oracle数据库的设计规范,使利用Oracle数据库进行设计开发的系统严格遵守本规范的相关约定,建立统一规范、稳定、优化的数据模型。 参照以下原则进行数据库设计: 1) 方便业务功能实现、业务功能扩展; 2) 方便设…

深度优先搜素

part1. part2. 深度优先搜索(Depth-First Search,DFS)是一种用于图和树等数据结构的遍历算法。在DFS中,从起始点开始,尽可能深地访问每一个相邻节点,直到到达最深的节点,然后再回溯到上一层&…

Odoo:行业领先的免费开源供应链管理系统

先进且开源的供应链管理系统和全球供应链协作优化方案 为满足复杂的供应链和库存管理要求,如今绝大多数企业都不得不部署多个供应链管理软件和库存管理系统软件。如何利用一个库存管理与供应链管理软件,跨地区、跨时区地管理现代供应链?Odoo…

三招教孩子不玩手机

在现代社会,手机已经成为我们生活中不可或缺的一部分。然而,对于孩子们来说,过度使用手机却可能对他们的身心健康产生负面影响。那么,如何才能让孩子们远离手机呢?以下三招或许能帮到你。 第一招:设定规矩 …

如何使用CFImagehost结合内网穿透搭建简洁易用的私人图床并远程访问

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

MySQL笔记-第10章_创建和管理表

视频链接:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】 文章目录 第10章_创建和管理表1. 基础知识1.1 一条数据存储的过程1.2 标识符命名规则1.3 MySQL中的数据类型 2. 创建和管理数据库2.1 创建数据库2.2 使…

亚马逊鲲鹏系统智能AI一款先进的一键养号工具

亚马逊鲲鹏系统智能AI作为一款先进的一键养号工具,以其独特的特点成为创业者和卖家们迅速提升业务的利器。该系统不仅能够实现一键养号,而且通过智能算法为账户随机设置年龄、职业、爱好等信息,为用户创造了更加真实的多样性,从而…

笔记 - 现代嵌入式芯片封装识读

0.引用: 配图、资料并非一处采集,我不太容易找到图片的原始链接。这里的图片仅作示例,无商业用途。如果涉及侵权,请随时联系。谢谢! PCB封装欣赏了解之旅(下篇)—— 常用集成电路_ufqfpn封装…

免费且好用的 MySQL 客户端

DBeaver 支持 Mac、Windows、Linux,提供 Eclipse 插件。社区版免费,支持主流的关系型数据库 官网地址:DBeaver Community | Free Universal Database Tool MySQL WorkBench MySQL WorkBench 是官方出品的客户端,支持 Mac、Windo…

Proxmox VE 安装 OpenWrt 配置旁路由教程

话不多说,本篇文章将记录如何在 Proxmox VE 环境通过虚拟机安装 OpenWrt 配置旁路由的过程,仅做参考。 PVE 创建虚拟机 名称随意,GuestOS 选择 Linux,不使用任何 iso 镜像。(记住你的 VMID) 清空将要创建…

docker-compose单机容器编排

Dockerfile:先配置好文件,然后build,镜像-------->容器。 docker-conpose 既可以基于dockerfile,也可以基于镜像,一键式拉起镜像和容器。 docker-compose核心就是yml文件,可以定义容器的一切。通过yml配置,直接运行…

C# OpenCvSharp DNN 部署yolov5不规则四边形目标检测

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN 部署yolov5不规则四边形目标检测 效果 模型信息 Inputs ------------------------- name:images tensor:Float[1, 3, 1024, 1024] -----------------------------------------------------…

MYSQL练题笔记-子查询-部门工资前三高的所有员工

这个系列的最后一个,也是所有的50题的第一个困难题,看着就有点吓人啧啧啧。 一、题目相关内容 1)相关的表和题目 2)帮助理解题目的示例,提供返回结果的格式 二、自己初步的理解 将每个部门分组,然后用ra…

【C 剑指offer】有序整型矩阵元素查找 {杨氏矩阵}

目录 题目内容: 思路: 图形演示: 复杂度分析 C源码: /** *************************************************************************** ******************** ********************* ******…

STM32读取EEPROM存储芯片AT24C512故障然后排坑记录

背景: 有一个项目用到STM32F091芯片去读取 AT24C512C-SSHD EEPROM 芯片,我直接移植了之前项目的IIC库,结果程序运行后,读不出EEPROM里面的数据。 摘要: 本文主要介绍一个基于STM32F091芯片和AT24C512C-SSHD EEPROM芯片…

2、LLVM 函数名称加密 及3种PASS的实现

sudo usermod -a -G vboxsf nowind nowind是你的虚拟机登录的用户名解决virtualbox 虚拟机共享文件夹不能使用的问题 第一种:源码内实现pass: 实现EncodeFunctionName 的pass,核心代码如下 相关文件的修改: 因为后面同样用到…

【征稿倒计时十天】第三届高性能计算与通信工程国际学术会议(HPCCE 2023)

【有ISSN、ISBN号!!往届均已完成EI检索】 第三届高性能计算与通信工程国际学术会议(HPCCE 2023) 2023 3rd International Conference on High Performance Computing and Communication Engineering (HPCCE 2023) 2023年12月22-24日 | 中国哈尔滨 第三…

由浅入深分析c++多态原理

多态 背景多态构成多态的两个条件虚函数虚函数重写虚函数重写的两个例外 c11的override和final重载、覆盖(重写)、隐藏(重定义的对比) 抽象类接口继承和实现继承 多态底层原理虚函数表易错问题: 多态原理 动态绑定和静…