德州网站建设哪家专业/网站流量排名

德州网站建设哪家专业,网站流量排名,logo生成器免费下载,淘宝客网站建站author{Kartik Narayan and Vibashan VS and Vishal M. Patel} 原文链接:[2412.08647] SegFace: Face Segmentation of Long-Tail Classes 摘要 人脸解析是指将人脸语义分割为眼睛、鼻子、头发等关键面部区域。它是各种高级应用程序的先决条件,包括人脸…

author={Kartik Narayan and Vibashan VS and Vishal M. Patel}

原文链接:[2412.08647] SegFace: Face Segmentation of Long-Tail Classes

摘要

        人脸解析是指将人脸语义分割为眼睛、鼻子、头发等关键面部区域。它是各种高级应用程序的先决条件,包括人脸编辑、人脸交换和面部化妆,这些应用程序通常需要对眼镜、帽子、耳环和项链等类别进行分割遮罩。这些不常出现的类称为长尾类,而长尾类被称为头类的频繁出现的类所掩盖。现有的方法,主要是基于CNN的,在训练过程中倾向于由头部类支配,导致长尾类的次优表示。以往的研究大多忽略了长尾类分割性能差的问题。为了解决这个问题,我们提出了一种简单有效的SegFace方法,它使用了一个轻量级的基于转换器的模型,该模型利用了可学习的类特定令牌。Transformer解码器利用类特定的令牌,允许每个令牌集中于其对应的类,从而实现每个类的独立建模。所提出的方法改善了长尾类的性能,从而提高了整体性能。据我们所知,SegFace是第一个使用Transformer模型进行人脸解析的工作。此外,我们的方法可适用于低计算边缘设备,达到95.96 FPS。我们进行了大量的实验,证明SegFace的性能显著优于之前的最先进模型,在CelebAMask-HQ数据集和LaPa数据集上分别获得了88.96(+2.82)和93.03(+0.65)的平均F1分数。

一、介绍

        人脸解析是一项语义分割任务,涉及为人脸图像分配像素级标签以区分关键的面部区域,例如眼睛,鼻子,头发和耳朵。不同面部区域的识别对于各种应用至关重要,包括面部交换(Xu等人,2022),面部编辑(Lee等人,2020 a),面部生成(Zhang,Rao和Agrawala 2023),面部完成(Li等人,2017)和面部化妆(Wan等人,2022)。长尾类是那些在数据集中不经常出现的类。现有的人脸解析数据集(Lee et al. 2020 a)由这些长尾类组成,这些长尾类大多是眼镜、项链、帽子和耳环等配饰,因为并非所有的人脸都具有这些物品。我们不能期望在当前甚至未来的面部解析数据集中,所有类别都有相同的表示,因为某些面部属性,如头发,鼻子和眼睛,自然比耳环和项链等配饰更常见。此外,很难收集不太频繁出现的类的样本。此外,用于人脸分割的详细注释,特别是对于不太常见或较小的人脸特征,是劳动密集型和昂贵的。

        自从语义分割中的深度学习出现以来(Long、Shelhamer和Darrell 2015),许多研究都集中在解决人脸分割问题上。几项工作(Guo et al. 2018; Zhou,Hu,and Zhang 2015; Lin et al. 2021)利用深度卷积神经网络的学习潜力来实现有前途的人脸分割性能。AGRNet(Te et al. 2021)介绍了一种自适应图表示方法,该方法通过将每个组件表示为顶点并将每个顶点关联起来,同时还将图像边缘作为优化解析结果的前提,来学习和推理面部组件。类似地,EAGRNet(Te et al. 2020)通过对非局部区域进行推理来扩展这种方法,以捕获不同面部组件之间的全局依赖性。最近,FaRL(Zheng et al. 2022 b)探索了在大型图像-文本人脸数据集上进行预训练,以提高下游任务的性能,证明其预训练的权重优于基于ImageNet的权重(Deng et al. 2009)。DML-CSR(Zheng et al. 2022 a)利用多任务模型进行人脸解析、边缘检测和类别边缘检测,并结合动态双图卷积网络来解决空间不一致性和噪声标签的循环自我调节。最近的FP-LIIF(Sarkar et al. 2023)利用了人脸的结构一致性,使用了一个轻量级的局部隐式函数网络,具有简单的卷积编码器-像素解码器架构,以其小参数大小和高FPS而闻名,使其成为低计算设备的理想选择。尽管取得了这些进步,但大多数先前的工作都集中在特定的挑战上,例如改善面部组件之间的相关性,增强头发分割,处理噪声标签以及优化推理速度。然而,他们经常忽略长尾类性能的关键问题,导致长尾类的结果不理想(参见图1)。

图1:建议的SegFace利用了一个轻量级的Transformer解码器,具有可学习的类特定令牌。每个类与令牌的关联使得每个类能够独立建模,这提高了长尾类的分割性能,而长尾类在现有方法中通常表现不佳。蓝线表示从CelebAMask-HQ训练集中随机选择的图像中存在类的概率。SegFace显著提升了长尾类的分割性能(+7.9,+21.2),从而在人脸解析性能方面建立了新的最先进水平。

        为了克服这个问题,我们提出了SegFace,这是一种系统的方法,可以提高长尾类的分割性能。这些类别在数据集中通常代表性不足,通常包括耳环和项链等配饰,而头部类别更常见,包括面部和头发等区域。在面部图像中,像眼睛、嘴巴和配饰(长尾类)这样的区域自然小于整体面部和头发区域(头部类)。仅使用模型的最终单尺度特征进行面部分割可能会导致细节丢失,因为面部特征出现在不同的尺度上。我们的方法利用Swin Transformer主干来提取多个尺度的特征,有助于减轻不同人脸区域之间的尺度差异。多尺度特征提取可以有效地捕捉细节和更大的结构,帮助模型捕捉面部的全局背景。我们使用MLP融合多尺度特征以获得融合特征,然后将其输入到SegFace解码器。轻量级的Transformer解码器利用可学习的类特定标记,每个标记与特定的类相关联。我们采用融合的功能和可学习的令牌之间的交叉注意,使每个令牌提取类特定的信息融合的功能。这种设计允许令牌专门关注其相应的类,促进所有类的独立建模,并缓解训练期间主导头部类掩盖长尾类的问题。

我们的工作的主要贡献如下:

·我们引入了一个轻量级的Transformer解码器,具有可学习的类特定令牌,确保每个令牌专用于特定的类,从而实现类的独立建模。该设计有效地解决了现有方法中普遍存在的长尾类分割性能差的挑战。

·我们的多尺度特征提取和MLP融合策略,结合利用可学习的类特定令牌的Transformer解码器,减轻了训练期间头类的主导地位,并增强了长尾类的特征表示。

·SegFace在LaPa数据集(平均F1得分为93.03)和CelebAMask-HQ数据集(平均F1得分为88.96)上建立了最先进的性能。此外,我们的模型可以通过简单地交换与MobileNetV 3骨干的骨干快速推理。移动的版本在CelebAMask-HQ数据集上的平均F1得分为87.91,FPS为95.96。

二、相关工作

2.1面部解析

        早期的人脸解析方法采用了诸如范例(Smith et al. 2013),概率索引图(Scheffler and Odobez 2011),Gabor滤波器(Hernanal-Matamoros et al. 2015)和低秩分解(Guo and Qi 2015)等技术。自从深度学习兴起以来,已经提出了许多基于深度卷积网络的方法用于人脸分割(Warrell和Prince 2009; Khan,Mauro和Leonardi 2015; Liang et al. 2015; Lin et al. 2019; Liu et al. 2017)。最近,AGRNet(Te et al. 2021)和EAGRNet(Te et al. 2020)提出了基于图形表示的方法,这些方法将不同的面部组件关联起来,并利用边缘信息进行解析。DML-CSR(Zheng et al. 2022 a)探索了多任务学习,并引入了动态双图卷积网络来解决空间不一致性和循环自我调节问题,以解决噪声标签的存在。基于局部的方法与我们的工作最相似,旨在通过为不同的面部区域训练单独的模型来单独预测每个面部部分。(Luo,Wang和Tang 2012)利用分层方法分别解析每个组件,而(Zhou,Hu和Zhang 2015)建议使用多个CNN,这些CNN以不同的尺度获取输入,通过有效整合本地和上下文信息的互连层融合它们。然而,现有的基于本地的方法未能受益于共享骨干网和联合优化,导致次优性能。SegFace通过使用可学习的类特定令牌独立地建模所有类来解决这个问题,同时仍然受益于从共享骨干中提取的多尺度融合特征。

2.2Transformers

        基于变换器的模型,如ViT(Dosovitskiy et al. 2020)和DETR(Carion et al. 2020),通过利用注意力机制来捕获图像中的长期依赖性和全局上下文,已经证明了它们在分割任务中的有效性。Segformer(Xie et al. 2021)和SETR(Zheng et al. 2021)是值得注意的工作,它们表明transformer在一般分割任务中的表现优于传统的CNN。然而,变压器在人脸分割中的应用仍然相对欠探索,尽管他们的潜在优势。面部分割提出了独特的挑战,例如需要精确的边界检测和对面部特征细微变化的敏感性,而传统CNN已经有效地解决了这些问题。然而,最近基于transformer的分割网络,如Mask2Former(Cheng,Schwing和Kirillov 2022)和SAM(Kirillov et al. 2023),在捕获全局和细粒度上下文方面显示出有希望的结果,从而实现更准确的分割。这些模型利用了自注意和交叉注意机制,这些机制可以被视为计算所有输入的加权平均值的非局部均值运算。因此,每个类别的输入都是独立计算和平均的,允许模型选择性地关注相关特征,而不受空间限制。这导致了一个更丰富的,上下文化的表示,这可以显着有利于长尾视觉关系的理解。

三、 Proposed Work

图二:所提出的架构,SegFace,通过基于transformer的方法增强长尾类的性能,解决了人脸分割问题。具体而言,多尺度特征首先从图像编码器中提取,然后使用MLP融合模块进行融合以形成人脸令牌。这些标记,沿着类特定标记,经历自我注意、脸对标记和标记对脸交叉注意操作,精炼类和脸标记以增强类特定特征。最后,将放大的面部标记和学习的类标记相结合,以产生每个面部区域的分割图。

        人脸由不同的区域组成,包括鼻子、眼睛、嘴巴以及耳环和项链等配饰。在人脸分割中,这些区域被视为不同的类别,其在规模和出现频率上有所不同。诸如头发和鼻子之类的类自然地更频繁地出现在面部图像中,并且被称为头部类。相比之下,可能不存在于每个人脸图像中的附件被称为长尾类,并且在人脸分割数据集中代表性不足。我们计算数据集中每个类的频率,并确定类出现在CelebAMask-HQ数据集的人脸图像中的概率。如图1所示,头类出现在图像中的概率约为1.0,而长尾类的概率为0.26和0.05。在分析当前的人脸分割方法时,我们观察到它们在长尾类上的表现往往很差。我们的目标是提高长尾类的分割性能,从而提高整体人脸分割性能。

        给定一批人脸图像I ∈ RB×H×W×3,由N个类别组成,其中B是批量大小,而H和W分别表示图像的高度和宽度。SegFace提取多尺度特征G = {Gi| 1 ≤ i ≤ 4}从图像编码器Eθ的中间层。然后,使用MLP融合模块f * 融合这些特征以获得面部标记F。脸部标记连同它们对应的位置编码沿着和可学习的类特定标记T = {Ti| 1 ≤ i ≤ N},由轻量级SegFace解码器g通过自注意和交叉注意操作进行处理,从而产生学习的类标记F T和更新的面部标记F′。更新的面部标记然后使用放大模块hα被放大,并且在标记已经通过MLP之后与学习的类标记WST逐元素相乘,以获得最终分割图S = {Si| 1 ≤ i ≤ N},其中Si ∈ RB×1×H×W,表示每个类别的分割图。整个过程如下:

这里,Si是第i类的输出分割图。我们利用这些分割图来计算损失。我们使用交叉熵损失沿着和骰子损失来训练完整的流水线,如图2所示。最终损失函数可以给出为:

3.1多尺度特征提取

        我们进行多尺度特征提取,以解决不同的人脸区域之间的规模差异的问题。这种方法有效地捕捉了精细的细节和较大的结构,有助于获得面部的全面全局背景,并更好地处理面部组件的不同大小和形状。从图像编码器Eθ中提取多尺度特征。设输入图像的批次为I ∈ RB×H×W×3,其中B是批次大小,H和W是图像的高度和宽度。编码器从多个层中提取特征:

        这里,Gi表示从编码器的第i层提取的特征图,Ci是第i个特征图中的通道的数量,Hi和Wi分别表示第i个特征图的高度和宽度。从编码器中提取的分层特征有助于捕获粗粒度到细粒度的表示,使其适用于分割较小的类,这些类通常是长尾类。

3.2 MLP融合

我们使用MLP融合模块fθ执行多尺度特征聚合,以获得将被传递到SegFace解码器的面部令牌。在该模块中,多尺度特征G = {Gi| 1 ≤ i ≤ 4}由单独的MLP处理,每个MLP对应于不同的尺度,以使通道尺寸对于融合一致。每个MLP将其对应的Gi变换为具有均匀通道数C′的特征映射G′ i,如下:G′ i = MLPi(Gi),其中G′ i ∈ RB×C′×Hi×Wi。然后使用双线性插值对所得到的特征图G′ i进行上采样以匹配第一特征图G′ 1的空间分辨率,表示为G′ i = Interp(G′ i),其中G′ i ∈ RB×C′×H1×W1,H1 ∈ {1,2,3,4}。这些上采样的多尺度特征G "i沿通道维度沿着连接以形成统一的特征图。最后,这个连接的特征映射通过单个卷积层,将信道维度降低到C′。

该融合特征图F表示最终的多尺度面部标记,其作为SegFace解码器的输入给出。

3.3 SegFace解码器

        SegFace解码器旨在独立地对每个类进行建模,同时使用可学习的类特定令牌实现它们之间的交互。设T = Ti ∈ R1×D| 1 ≤ i ≤ N表示这些标记,其中N是类的数量,D是嵌入维数(这里,D = 256)。这些标记附加有位置编码,并对应于各种面部组件,例如背景,面部,眼睛,鼻子和其他特征。解码器包括三个主要组件:1)类-标记自注意,2)类-标记到面部-标记交叉注意,以及3)面部-标记到类-标记交叉注意。通过Transformer解码器中的自注意和交叉注意操作,引导令牌关注特定于类的特征,并促进不同面部区域之间的交互。

类令牌自我注意力:该组件通过允许每个类别令牌Ti关注所有其他类别令牌来促进面部的不同区域之间的交互。对于每个类令牌Ti,操作被定义为:

其中SelfAttention表示多头自注意操作,Q、K和V分别表示查询、键和值。每个类令牌对应于一个特定的类,SelfAttention操作使模型能够学习不同面部区域的结构和位置之间的相关性。

类令牌到面部令牌的交叉自注意:在该组件中,每个类令牌T′ i关注融合的面部令牌F,便于提取类特定信息并实现类的独立建模。更新后的类令牌RNTTi计算如下:

其中CrossAttention表示交叉注意操作。这种机制确保了长尾类在训练过程中不会被掩盖,因为每个类都与一个令牌相关联,该令牌提取专门用于分割长尾类的相关特征。

面令牌到类令牌交叉注意:在这个组件中,融合的面部标记会返回到学习的类标记,用类特定信息来细化面部表示。精细化的面部标记F '计算如下:

该组件通过调整特征提取和融合模块的训练来指导它们,以确保提取的特征富含特定于类的信息。

3.4 Output Head

输出头的作用是从学习的类特定标记和更新的面部标记生成最终的分割图。使用包括转置卷积操作的小网络hα来放大面部令牌F′。放大增加了面部标记的分辨率以匹配原始图像大小。形式上,这可以定义为U = hα(F′),其中U ∈ RB×C′×H×W是放大后的人脸标记嵌入,C′是放大后的降低的嵌入维数。最后,学习到的类特定令牌是|1 ≤ i ≤ N}通过MLP,然后与放大的面部标记逐元素相乘,以产生最终的分割图:

其中,⊙表示逐元素相乘,Si ∈ RB×1×H×W表示第i个类的分割图。最后的输出是一组分割图S = {Si| 1 ≤ i ≤ N},其中每个Si对应于特定的面部分量,有效地将输入面部图像分割成其相应的区域。

四、实验

我们通过改变主干(Swin,Swin V2,ResNet 101,MobileNetV 3,EfficientNet)和输入分辨率(64,96,128,192,224,256,448,512)来训练SegFace。这些模型使用AdamW优化器优化了300个epoch,初始学习率为1 e −4,权重衰减为1 e −5。我们采用了gamma值为0.1的步长LR调度器,这将学习速率在epoch 80和200处降低了0.1倍。在LaPa和CelebAMask-HQ数据集上使用32个批次大小进行训练,在Helen数据集上使用16个批次大小。我们没有对CelebAMask-HQ和Helen数据集进行任何增强。对于LaPa数据集,我们应用了随机旋转[-30,30],随机缩放[0.5,3]和随机平移[-20px,20 px],沿着RoI tanh扭曲(Lin et al. 2019),以确保网络专注于面部区域。对于骰子损失和交叉熵损失,λ1和λ2值分别设定为0.5。我们的方法使用类的F1得分,平均F1得分和平均IoU与其他基线进行了评估,所有指标都排除了背景类。

图3:定性比较突出了我们的方法SegFace与DML-CSR相比的上级性能。在(a)中,SegFace有效地分割了耳环和项链等长尾类以及头发和脖子等头部类。在(B)中,它在涉及多个面部、类似人类的特征、光线不足和遮挡的具有挑战性的场景中也表现出色,其中DML-CSR很难做到。

定性结果:我们在图3中说明了我们提出的方法与其他基线的定性比较。从图3(a)[列1,2,3]中,我们验证了SegFace能够分割长尾类,如耳环和项链,与现有的最先进的方法DML-CSR相比要好得多。这证明了所提出的Transformer解码器与可学习的特定于任务的查询的有效性。它通过将每个标记与特定的类相关联,实现了对所有类的独立建模。在这种设计中,令牌可以专门关注该类,并学习利用融合的特征进行分割。此外,从图3(a)[第4,5列]中,我们观察到所提出的方法在头发和颈部等头部类别上也表现得更好。如图3(B)[列1,2]所示,LaPa数据集上的结果表明,在附近存在多个人脸或类似人类的特征的情况下,DML-CSR难以进行人脸分割。我们通过结合RoI Tanh Warping(Lin et al. 2019)来缓解这个问题,以确保模型在执行分割时专注于面部区域。从图3(B)[第3、4列]可以看出,DML-CSR在具有挑战性的光照条件下表现不佳,而在图3(B)[第5列]中,它与遮挡作斗争。SegFace的性能优于DML-CSR,即使在这些复杂的场景中也能够准确地分割面部区域。

图4:(a)特定于类的标记分割了它们对应的类,展示了每个类的独立建模。(b)噪声地面实况与SegFace预测的比较

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

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

相关文章

基于POI的Excel下拉框自动搜索,包括数据验证的单列删除

目录 目标 例子 1.搜索下拉框页 2.数据源页 3.效果 代码以及注意事项 1.代码 2.注意事项 1.基于Excel的话,相当于加入了一个【数据验证】 2.代码中的一些方法说明 目标 期望在Excel利用代码创建具备自动搜索功能的下拉框 例子 1.搜索下拉框页 2.数据源…

UWB人员定位:精准、高效、安全的智能管理解决方案

在现代企业管理、工业生产、安全监测等领域,UWB(超宽带)人员定位系统正逐步成为高精度定位技术的首选。相较于传统的GPS、Wi-Fi、蓝牙等定位方式,UWB具备厘米级高精度、低延迟、高安全性、抗干扰强等突出优势,能够实现…

如何在Apple不再支持的MacOS上安装Homebrew

手头有一台2012年产的Macbook Pro,系统版本停留在了10.15.7(2020年9月24日发布的)。MacOS 11及后续的版本都无法安装到这台老旧的电脑上。想通过pkg安装Homebrew,发现Homebrew releases里最新的pkg安装包不支持MacOS 10.15.7&…

【线性代数的理解】 为什么说线性代数研究的是空间变换?旋转矩阵坐标转换矩阵

注: 在线性代数中 ,常常不把点看成是点,而是看成是一个由原点出发的向量。所以,点的坐标相当于是向量的坐标。正方形(图中灰色图形)可以看成是由一大堆向量组成的图形,对这一堆向量进行A变换&a…

Cursor+pycharm接入Codeuim(免费版),Tab自动补全功能平替

如题,笔者在Cursor中使用pycharm写python程序,试用期到了Tab自动补全功能就不能用了,安装Codeuim插件可以代替这个功能。步骤如下: 1. 在应用商店中搜索扩展Codeuim,下载安装 2. 安装完成后左下角会弹出提示框&#x…

STM32学习——RTC实时时钟(BKP与RTC外设)

RTC实时时钟 RTC实时时钟 想记录或读取日期和事件,就可以通过操作RTC实现 RTC与BKP和PWR经常同时出现 一般情况下,VBTA是电池供电口,需要接备用电池 在BKP备份寄存器写入两个数据,然后再读出之后显示,BKP的数据&a…

C# Unity 唐老狮 No.2 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: Unity课程 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体…

Denoising Diffusion Implicit Models (DDIM)

因为扩散模型的正向过程可以实现跳步,其马尔科夫性并不重要,因此DDIM尝试在反向过程中也舍弃马尔科夫性的约束。在引入一个可控参数 σ t \sigma_t σt​后,反向过程的迭代被整理为预测 x 0 x_0 x0​后重新进行正向扩散的过程,扩散…

LearnOpenGL之Shader编程用算法绘画

———————————————————— 前序 ——————————————————— AndroidLearnOpenGL是本博主自己实现的LearnOpenGL练习集合: Github地址:GitHub - wangyongyao1989/AndroidLearnOpenGL: OpenGL基础及运用 系列文章&#xff…

第5章_管理策略

管理策略 如前所述,策略定义了在授予对对象的访问权限之前必须满足的条件。 单击 Policy (策略) 选项卡可查看与资源服务器关联的所有策略。 在此选项卡上,您可以查看以前创建的策略列表,以及创建和编辑策略。 要创…

Chromium_src源码

Chromium_src源码 码云上有一个OpenHarmony-TPC/chromium_src项目,目前已经停止维护了,迁移到GitCode上了,源代码项目地址为:openharmony-tpc/chromium_chrome 特此记录一下老的项目的相关软件架构 Chromium 简介 软件架构 软…

Android ObjectBox数据库使用与集成指南

ObjectBox其核心特点ObjectBox与 SQLite 和 Realm 的对比Android集成ObjectBox创建ObjectBox实体对象创建ObjectBox操作管理类OBManager在Application初始化ObjectBox插入或更新数据查询数据统计数据分页数据查询删除数据总结今天分享一套Android另一个数据库ObjectBox。Object…

013作用域

一、基本概念 C语言中,标识符都有一定的可见范围,这些可见范围保证了标识符只能在一个有限的区域内使用,这个可见范围,被称为作用域(scope)。 软件开发中,尽量缩小标识符的作用域是一项基本原…

AH表情捕捉设备:虚拟人动态表情捕捉

在虚拟人应用里,除了关注虚拟人能否展现流畅的肢体动作,其表情是否自然流畅同样关键。虚拟人作为新兴技术产物,广泛应用于娱乐直播、影视动画等领域。自然的表情能让虚拟人更具亲和力与真实感,大幅提升用户体验。 而广州虚拟动力…

pikachu

暴力破解 基于表单的暴力破解 【2024版】最新BurpSuit的使用教程(非常详细)零基础入门到精通,看一篇就够了!让你挖洞事半功倍!_burpsuite使用教程-CSDN博客 登录页面,随意输入抓包,发送到攻击…

C++预编译、编译、汇编、链接详解

一、准备阶段 g编译环境&#xff0c;配置好环境变量 新建一个helloworld.cpp #include <iostream> using namespace std; int main() {cout << "Hello, world!" << endl;return 0; }命令查看 g --help 二、预编译 预处理阶段对自定义和预定义…

docker使用代理的简单配置

1准备代理服务器 准备代理服务器&#xff0c;例如192.168.120.168:52209 配置docker.service文件 查看service文件的位置 systemctl status docker 编辑service文件 vim /usr/lib/systemd/system/docker.service 添加代理配置 ... [Service] Environment"HTTP_PROXY…

【FL0090】基于SSM和微信小程序的球馆预约系统

&#x1f9d1;‍&#x1f4bb;博主介绍&#x1f9d1;‍&#x1f4bb; 全网粉丝10W,CSDN全栈领域优质创作者&#xff0c;博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战&#xff0c;以及程序定制化开发…

使用esp32接入大模型(http请求)

本示例适用于所有乐鑫的esp32模组及开发板。使用串口通信和http协议。实现简单的和大模型对话要求。 话不多说直接上代码 #include <WiFi.h> #include <HTTPClient.h> #include <ArduinoJson.h>#define DEBUG 1// 替换为你的Wi-Fi网络凭据 #define WLAN_SSI…

GitHub高效搜索工具

[GitHub项目搜索工具] 一款开发者专属的星矿探测仪&#xff01; 你是否还在用stars:>1000手动筛选GitHub项目&#xff1f; 你是否经常为了找一个合适的开源库翻遍搜索结果&#xff1f; 这个工具或许能改变你的代码资源发掘方式… &#x1f31f; 痛点洞察 在GitHub的3.28亿个…