COD论文笔记 Deep Gradient Learning for Efficient Camouflaged 2022

动机

这篇论文的动机在于解决伪装目标检测(COD)中的一个关键问题:在复杂背景下,伪装目标与背景的边界模糊,使得检测变得极其困难。现有的方法,如基于边界或不确定性的模型,通常仅响应于伪装目标的稀疏边缘,导致在复杂场景中引入噪声特征。为了克服这些挑战,该论文提出了一种新的深度学习框架,利用对象梯度监督来提高伪装目标检测的精度和效率。

贡献

  1. 提出DGNet框架:引入了一种新的基于深度梯度的框架,名为DGNet,专门用于伪装目标检测。这个框架将任务解耦为两个互相关联的分支,即上下文编码器和纹理编码器。

  2. 设计梯度诱导过渡模块:提出了一种梯度诱导过渡模块(GIT),该模块自动根据软分组策略对来自上下文和纹理分支的特征进行分组。

  3. 高效模型DGNet-S:实现了一个高效版本DGNet-S,在保持高检测精度的同时,仅使用了6.82%的参数,并且达到了实时运行速度(80 fps)。

  4. 多种应用场景:在多种任务中展示了出色的性能,包括息肉分割、缺陷检测和透明物体分割。

创新点

  1. 对象梯度监督:不同于以往仅关注边界或不确定区域的模型,DGNet通过对象梯度监督来挖掘伪装目标内部的判别性模式,减少了噪声特征的引入。

  2. 任务解耦:将任务解耦为上下文和纹理两个分支,有助于缓解从单一分支提取的高层次和低层次特征之间的歧义。

  3. 梯度诱导过渡模块:设计了一种灵活的即插即用模块,通过组内和组间的特征聚合来增强多源特征空间的表示能力。

  4. 高效的计算和参数利用:DGNet-S在保持高性能的同时,显著减少了模型参数和计算开销,使其能够在实际应用中表现优异。

这些动机、贡献和创新点共同构成了该论文的核心内容,并展示了DGNet在伪装目标检测任务中的显著优势。

3.1 Context Encoder

输入和编码器选择

  • 输入图像 I ∈ R 3 × H × W I \in \mathbb{R}^{3 \times H \times W} IR3×H×W
  • 使用EfficientNet作为上下文编码器来获取金字塔特征 { X i } i = 1 5 \{X_i\}_{i=1}^{5} {Xi}i=15

特征降维

  • 为了在解码阶段实现高效的逐元素操作,采用以下两个步骤:
    1. 选择特征层:仅选择前三级特征(即当 i = 3 , 4 , 5 i = 3, 4, 5 i=3,4,5),这些特征保留了视觉场景的丰富语义信息。
    2. 卷积层降维:使用两个堆叠的ConvBR层,卷积核大小为 C i × 3 × 3 C_i \times 3 \times 3 Ci×3×3,将每个候选特征的维度减少到 C i C_i Ci,以减轻后续操作的计算负担。

最终输出

  • 上述步骤后的最终输出是三个上下文特征 { X R i } i = 3 5 ∈ R C i × H i × W i \{X_{R_i}\}_{i=3}^{5} \in \mathbb{R}^{C_i \times H_i \times W_i} {XRi}i=35RCi×Hi×Wi,其中 C i C_i Ci H i = H 2 i H_i = \frac{H}{2^i} Hi=2iH W i = W 2 i W_i = \frac{W}{2^i} Wi=2iW 分别表示特征图的通道数、高度和宽度。

核心点

  • EfficientNet作为编码器:选择EfficientNet的原因在于其高效性和强大的特征提取能力。
  • 特征降维策略:通过选择和降维步骤,确保在保持特征表达能力的同时,减轻计算负担。

总结,这部分详细介绍了如何利用EfficientNet对输入图像进行编码,并通过选择和降维策略获取上下文特征,为后续的解码过程提供高效且富有语义的信息。

3.2 Texture Encoder

引入纹理分支

  • 引入一个专门的纹理分支,通过对象级梯度图进行监督,以补偿上下文特征在几何纹理表示上的不足。

对象梯度生成

  • 梯度定义:图像梯度描述了图像强度或颜色在相邻位置之间的方向变化,常用于边缘检测和超分辨率。
  • 生成步骤
    1. 原始图像梯度:通过计算原始图像 I I I 的梯度生成图像梯度图,但包含了不相关的背景噪声。
    2. 对象级梯度图:为解决背景噪声问题,引入对象级梯度图 Z G Z_G ZG,该图同时包含对象边界和内部区域的梯度信息。
    3. 公式
      Z G = F E ( I ( x , y ) ) ⋅ Z C Z_G = F_E(I(x, y)) \cdot Z_C ZG=FE(I(x,y))ZC
      其中, F E F_E FE 表示标准的 Canny 边缘检测器, ⋅ \cdot 表示元素逐次相乘。

纹理编码器设计

  • 由于高分辨率的低层特征会引入计算负担,设计了一个轻量级的编码器,而不是使用现成的骨干网络。
  • 层次结构
    1. 卷积层和ReLU激活:使用卷积层和ReLU激活函数的组合(ConvBR)对输入进行处理。
    2. 层次细节
    • Layer #01: 卷积核大小为7,输出通道数为64,步幅为2,零填充为3。
    • Layer #02: 卷积核大小为3,输出通道数为64,步幅为2,零填充为1。
    • Layer #03: 卷积核大小为3,输出通道数为 C g C_g Cg,步幅为2,零填充为1。
    • Layer #04: 卷积核大小为1,输出通道数为1,步幅为1,无填充。
  • 生成纹理特征:从 Layer #03 提取纹理特征 X G ∈ R C g × H g × W g X_G \in \mathbb{R}^{C_g \times H_g \times W_g} XGRCg×Hg×Wg,并通过 Layer #04 用对象级梯度图 Z G Z_G ZG 进行监督。

高分辨率保持

  • 保持较大的分辨率(即 H g = H 8 H_g = \frac{H}{8} Hg=8H W g = W 8 W_g = \frac{W}{8} Wg=8W),因为较小分辨率的特征会丢失大部分几何细节。

总结,纹理编码器通过对象级梯度图进行监督,生成高分辨率的纹理特征,补偿上下文特征在几何纹理表示上的不足,从而增强模型对伪装目标的检测能力。

3.3 Gradient-Induced Transition

设计背景

  • 为了实现上下文特征和纹理特征的自适应融合,而不是采用简单的连接或加法操作,设计了一种灵活的即插即用梯度诱导过渡(GIT)模块。

模块组成

  • GIT模块包含三个主要步骤:梯度诱导分组学习、软分组策略和并行残差学习。

梯度诱导分组学习

  • 特征分组:采用梯度诱导分组策略,将三个上下文特征 { X R i } i = 3 5 \{X_{R_i}\}_{i=3}^{5} {XRi}i=35 和一个纹理特征 X G X_G XG 沿通道维度分割为固定的组。
    • 分组公式:
      { X R i , m } m = 1 M ∈ R K i × H i × W i ← X R i ∈ R C i × H i × W i \{X_{R_i,m}\}_{m=1}^{M} \in \mathbb{R}^{K_i \times H_i \times W_i} \leftarrow X_{R_i} \in \mathbb{R}^{C_i \times H_i \times W_i} {XRi,m}m=1MRKi×Hi×WiXRiRCi×Hi×Wi { X G m } m = 1 M ∈ R K g × H g × W g ← X G ∈ R C g × H g × W g \{X_{G_m}\}_{m=1}^{M} \in \mathbb{R}^{K_g \times H_g \times W_g} \leftarrow X_G \in \mathbb{R}^{C_g \times H_g \times W_g} {XGm}m=1MRKg×Hg×WgXGRCg×Hg×Wg其中, ← \leftarrow 表示特征分组操作, K i = C i M K_i = \frac{C_i}{M} Ki=MCi K g = C g M K_g = \frac{C_g}{M} Kg=MCg 分别表示每个特征组的通道数, M M M 是相应的组数。
  • 特征重组:将上下文和纹理特征组定期排列生成重组特征 Q i Q_i Qi
    Q i ∈ R ( C i + C g ) × H i × W i = ⟨ Y 1 i ; … ; Y m i ; … ; Y M i ⟩ Q_i \in \mathbb{R}^{(C_i+C_g) \times H_i \times W_i} = \langle Y_{1_i}; \dots; Y_{m_i}; \dots; Y_{M_i} \rangle QiR(Ci+Cg)×Hi×Wi=Y1i;;Ymi;;YMi
    其中 ⟨ ⋅ ; ⋅ ⟩ \langle \cdot; \cdot \rangle ; 表示通道维度的特征连接, Y m i Y_{m_i} Ymi 由以下公式得出:
    Y m i ∈ R ( K i + K g ) × H i × W i = ⟨ F ↓ ( X G m ) ; X R i , m ⟩ Y_{m_i} \in \mathbb{R}^{(K_i+K_g) \times H_i \times W_i} = \langle F_\downarrow(X_{G_m}); X_{R_i,m} \rangle YmiR(Ki+Kg)×Hi×Wi=F(XGm);XRi,m
    F ↓ ( ⋅ ) F_\downarrow(·) F() 是下采样操作,用于确保 X G m X_{G_m} XGm 的空间分辨率与 X R i , m X_{R_i,m} XRi,m 匹配。

软分组策略

  • 多尺度非线性投影:启发自并行设计,设置三个并行子分支(即 { N 1 , N 2 , N 3 } \{N_1, N_2, N_3\} {N1,N2,N3})进行软分组。
    • 投影公式:
      A N i = ⟨ F N 1 ( Q i 1 ) ; … ; F N n ( Q i n ) … F N N ( Q i N ) ⟩ A_{N_i} = \langle F^1_N(Q^1_i); \dots; F^n_N(Q^n_i) \dots F^N_N(Q^N_i) \rangle ANi=FN1(Qi1);;FNn(Qin)FNN(QiN)⟩其中, F N n ( Q i n ) ∈ R C i N × H i × W i = f n ( Q i n , ω n ) F^n_N(Q^n_i) \in \mathbb{R}^{\frac{C_i}{N} \times H_i \times W_i} = f_n(Q^n_i, \omega_n) FNn(Qin)RNCi×Hi×Wi=fn(Qin,ωn) 引入了软非线性,投影函数 f n f_n fn 由具有 C i C_i Ci 个形状为 ( C i + C g ) N × 1 × 1 \frac{(C_i+C_g)}{N} \times 1 \times 1 N(Ci+Cg)×1×1 的卷积层实现,由可学习的权重 ω n \omega_n ωn 参数化。

并行残差学习

  • 残差连接:在不同的分组感知尺度上引入残差学习。
    • GIT函数 T i ( ⋅ , ⋅ ) T_i(\cdot, \cdot) Ti(,) 定义如下: Z i T = T i ( X R i , X G ) = X R i ⊕ ∑ N A N i Z^T_i = T_i(X_{R_i}, X_G) = X_{R_i} \oplus \sum_N A_{N_i} ZiT=Ti(XRi,XG)=XRiNANi其中, N ∈ { N 1 , N 2 , N 3 } N \in \{N_1, N_2, N_3\} N{N1,N2,N3} 表示不同组的缩放因子集, ⊕ \oplus 表示元素逐次相加, ∑ \sum 表示多个项的和。最终输出为 { Z i T } i = 3 5 ∈ R C i × H i × W i \{Z^T_i\}_{i=3}^{5} \in \mathbb{R}^{C_i \times H_i \times W_i} {ZiT}i=35RCi×Hi×Wi

关键点总结

  • 特征分组与重组:通过分组和重组策略,将上下文和纹理特征有效结合。
  • 软分组策略:通过多尺度的非线性投影,增强特征表示能力。
  • 并行残差学习:在不同尺度上进行残差学习,进一步提升特征融合效果。

综上所述,梯度诱导过渡模块(GIT)通过灵活的特征分组、软分组策略和并行残差学习,实现了上下文特征和纹理特征的高效融合,从而提高了伪装目标检测的性能。

3.4 Learning Details

解码器

  • 给定上下文特征 { X R i } i = 3 5 \{X_{R_i}\}_{i=3}^{5} {XRi}i=35,首先应用梯度诱导过渡(GIT)函数 T i ( ⋅ , ⋅ ) T_i(\cdot, \cdot) Ti(,) 得到输出特征 { Z i T } i = 3 5 \{Z^T_i\}_{i=3}^{5} {ZiT}i=35
  • 为了高效地利用上述梯度诱导特征 Z i T Z^T_i ZiT,采用邻居连接解码器(NCD)生成最终预测 P C P_C PC
    P C ∈ R 1 × H × W = NCD ( Z 3 T , Z 4 T , Z 5 T ) P_C \in \mathbb{R}^{1 \times H \times W} = \text{NCD}(Z^T_3, Z^T_4, Z^T_5) PCR1×H×W=NCD(Z3T,Z4T,Z5T)

损失函数

  • 整体优化目标定义为:
    L = L C ( P C , Z C ) + L G ( P G , Z G ) L = L_C(P_C, Z_C) + L_G(P_G, Z_G) L=LC(PC,ZC)+LG(PG,ZG)
    其中, L C L_C LC L G L_G LG 分别代表分割损失和对象梯度损失函数。
  • 分割损失 L C L_C LC:由加权交并比损失 L wIoU L_{\text{wIoU}} LwIoU 和加权二值交叉熵损失 L wBCE L_{\text{wBCE}} LwBCE 组成。它们根据像素的难度分配自适应权重,以关注全局结构和难度较大的像素。
  • 对象梯度损失 L G L_G LG:采用标准的均方误差损失函数。

训练设置

  • 模型在PyTorch/Jittor工具箱中实现,并在单个NVIDIA RTX TITAN GPU上进行训练和推理。
  • 初始化:模型参数初始化采用 [50] 的策略,骨干网络使用在ImageNet上预训练的权重进行初始化,以防止过拟合。
  • 骨干网络特征提取:从EfficientNet骨干网络的前三个侧输出(包括stage-4 (X_3),stage-6 (X_4),和stage-8 (X_5))提取特征,舍弃最后的Conv1×1、池化和全连接层。
  • 变体实例:考虑性能与效率的权衡,实例化了两个变体以适应不同的计算开销需求(见表2)。

训练过程

  • 优化器:使用Adam优化器,学习率调整采用SGDR策略的余弦退火部分,最小/最大学习率设置为 (10{-5}/10{-4}),最大调整迭代次数为20。
  • 批量大小:设置为12,最大训练轮数为100。
  • 数据增强:在训练过程中,每张图像调整为352×352,并使用四种数据增强技术:颜色增强、随机翻转、随机裁剪和随机旋转。
  • 训练时间:DGNet和DGNet-S分别需要8.8和7.9小时达到网络收敛。

测试设置

  • 输入调整:将输入图像调整为352×352,并在三个未见测试数据集上测试DGNet-S和DGNet。
  • 预测输出:取最终输出 P C P_C PC 作为预测图,不使用任何启发式后处理技术,如DenseCRF。

关键点总结

  • 解码器设计:通过NCD解码器实现上下文特征的有效利用,生成高质量的分割预测。
  • 损失函数:组合加权交并比损失和加权二值交叉熵损失,增强模型对全局结构和难度较大像素的关注;采用均方误差损失进行对象梯度监督。
  • 训练与优化:采用有效的初始化和优化策略,结合数据增强技术,确保模型的收敛和泛化性能。
  • 测试流程:调整输入图像尺寸并直接使用预测输出,不进行额外的后处理,简化推理过程。

综上所述,这部分详细描述了DGNet的学习过程,包括解码器设计、损失函数定义、训练设置和测试流程,确保了模型的高效训练和精确推理。

在这里插入图片描述

图3的详细解释

图3展示了所提出的DGNet的整体流程。该网络由两个相互关联的学习分支组成,即上下文编码器和纹理编码器。以下是图中各部分的详细说明:

  1. 输入图像 (a) Image

    • 输入图像 I I I 进入上下文编码器和纹理编码器。
  2. 上下文编码器 (Context Encoder)

    • 该编码器从输入图像中提取上下文特征 { X i R } i = 3 5 \{X^R_i\}_{i=3}^{5} {XiR}i=35
    • 上下文编码器的输出特征 X 3 R , X 4 R , X 5 R X^R_3, X^R_4, X^R_5 X3R,X4R,X5R 进入梯度诱导过渡模块(GIT)。
  3. 纹理编码器 (Texture Encoder)

    • 纹理编码器从输入图像中提取纹理特征 X G X^G XG
    • 纹理编码器的输出特征 X G X^G XG 也进入梯度诱导过渡模块(GIT)。
  4. 梯度诱导过渡模块 (Gradient-Induced Transition, GIT)

    • GIT模块将上下文特征和纹理特征进行融合,生成过渡特征 { Z i T } i = 3 5 \{Z^T_i\}_{i=3}^{5} {ZiT}i=35
    • GIT模块包括三个子模块 T 3 , T 4 , T 5 T_3, T_4, T_5 T3,T4,T5,分别对 X 3 R , X 4 R , X 5 R X^R_3, X^R_4, X^R_5 X3R,X4R,X5R X G X^G XG 进行处理和融合。
  5. 邻居连接解码器 (Neighbor Connected Decoder, NCD)

    • GIT的输出特征 { Z i T } i = 3 5 \{Z^T_i\}_{i=3}^{5} {ZiT}i=35 通过NCD解码器生成最终的预测图 P C P^C PC
    • 解码器将多层特征进行整合,生成伪装目标的分割结果。
  6. 监督信号 (Supervision Signals)

    • Ground-Truth (b):真实的分割标签 Z C Z^C ZC,用于计算分割损失 L C L_C LC
    • Object Boundary ©:对象边界,作为对比,说明了仅使用边界监督时的不足。
    • Image Gradient (e):图像梯度,通过计算原始图像的梯度生成,但包含了不相关的背景噪声。
    • Object Gradient (d):对象梯度图 Z G Z^G ZG,通过对原始图像 I I I 和真实标签 Z C Z^C ZC 进行元素逐次相乘生成,包含了对象边界和内部区域的梯度信息,作为纹理编码器的监督信号,用于计算梯度损失 L G L_G LG

关键流程总结

  • 输入图像 I I I 被并行输入到上下文编码器和纹理编码器中。
  • 上下文编码器提取高层次的语义特征 X i R X^R_i XiR(如 X 3 R , X 4 R , X 5 R X^R_3, X^R_4, X^R_5 X3R,X4R,X5R)。
  • 纹理编码器提取对象内部的几何纹理特征 X G X^G XG
  • GIT模块将这些上下文特征和纹理特征进行融合,生成更具判别力的过渡特征 Z i T Z^T_i ZiT
  • 最终,NCD解码器对融合后的特征进行解码,生成分割预测 P C P^C PC
  • 使用真实标签 Z C Z^C ZC 和对象梯度图 Z G Z^G ZG 作为监督信号,分别计算分割损失 L C L_C LC 和梯度损失 L G L_G LG

通过这种设计,DGNet能够在复杂背景中有效地检测和分割伪装目标。

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

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

相关文章

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-21 VTC视频时序控制器设计

软件版本:Anlogic -TD5.9.1-DR1_ES1.1 操作系统:WIN10 64bit 硬件平台:适用安路(Anlogic)FPGA 实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…

ACM中国图灵大会专题 | 图灵奖得主Manuel Blum教授与仓颉团队交流 | 华为论坛:面向全场景应用编程语言精彩回顾

ACM 中国图灵大会(ACM Turing Award Celebration Conference TURC 2024)于2024年7月5日至7日在长沙举行。本届大会由ACM主办,in cooperation with CCF,互联网之父Vinton Cerf、中国计算机学会前理事长梅宏院士和廖湘科院士担任学术…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【26】【内网穿透】cpolar

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【27】【内网穿透】cpolar 内网穿透cpolar内网穿透联调配置练习—使用公网地址访问gulimall.com参考 内网穿透 正常的外网需要访问我们项目的流程是: 买服务器并且有公网固定…

系统架构设计师教程 第3章 信息系统基础知识-3.7 企业资源规划(ERP)-解读

系统架构设计师教程 第3章 信息系统基础知识-3.7 企业资源规划(ERP) 3.7.1 企业资源规划的概念3.7.2 企业资源规划的结构3.7.2.1 生产预测3.7.2.2 销售管理(计划)3.7.2.3 经营计划(生产计划大纲)3.7.2.4 …

小白新手搭建个人网盘

小白新手搭建个人网盘 序云服务器ECS重置密码远程连接ECS实例 安装OwnCloud安装Apache服务PHP运行环境NAS挂载挂载验证操作体验 序 阿里云文件存储NAS(Apsara File Storage NAS)是一个可大规模共享访问,弹性扩展的分布式文件系统。本文主要是…

好玩的调度技术-场景编辑器

好玩的调度技术-场景编辑器 文章目录 好玩的调度技术-场景编辑器前言一、演示一、代码总结好玩系列 前言 这两天写前端写上瘾了,顺手做了个好玩的东西,好玩系列也好久没更新,正好作为素材写一篇文章,我真的觉得蛮好玩的&#xff…

免费视频批量横转竖

简介 视频处理器 v1.3 是一款由是貔貅呀开发的视频编辑和处理工具,提供高效便捷的视频批量横转竖,主要功能: 导入与删除文件:轻松导入多个视频文件,删除不必要的文件。暂停与继续处理:随时暂停和继续处理。…

【JavaEE进阶】——Spring AOP

目录 🚩Spring AOP概述 🚩Spring AOP快速⼊⻔ 🎓引入AOP依赖 🎓编写AOP程序 🚩Spring AOP 详解 🎓Spring AOP核⼼概念 🎓通知类型 🎓PointCut 🎓切⾯优先级 Ord…

泰迪科技2024年高校(本科/职业院校)大数据实验室建设及大数据实训平台整体解决方案

高校大数据应用人才培养目标 大数据专业是面向信息技术行业,培养德智体美劳全面发展的大数据领域的高素质管理型专门人才,毕业生具备扎实的管理学、经济学、自然科学、技术应用、人文社科的基本理论, 系统深入的大数据管理专业知识和实践能力&#xff0c…

如何学习Spark:糙快猛的大数据之旅

作为一名大数据开发者,我深知学习Spark的重要性。今天,我想和大家分享一下我的Spark学习心得,希望能够帮助到正在学习或准备学习Spark的朋友们。 目录 Spark是什么?学习Spark的"糙快猛"之道1. 不要追求完美,在实践中学习2. 利用大模型作为24小时助教3. 根据自己的节…

宠物空气净化器哪款品牌好?口碑好的猫用空气净化器排名

猫咪每年掉毛两次,一次掉半年的现象真让人头疼。作为一位5年资深铲屎官,特别是在掉毛季节,猫毛无处不在,对此深有体会。宠物空气净化器已成为铲屎官们的救星,能迅速清理家中的宠物毛发和异味,是养猫家庭的必…

四个节点即可实现的ComfyUI批量抠图工作流

原文链接:ComfyUI面部修复完全指南 (chinaz.com) 下图就是批量抠图的工作流 虽然工作流很简单,但是我们前提还是需要安装好我们的节点 首先安装我们的抠图节点 安装 BiRefNet 所需依赖:timm,如已安装无需运行 requirements.txt…

【最新发布】生成式人工智能全球研究报告

7月10日,美国著名的大数据分析平台和全球最大的数据分析公司之一SAS在其官网发布了一份关于生成式人工智能(AIGC)深度应用的调查报告。 本次的报告主要对以美国、中国、英国、法国、巴西、日本等为主的北美、拉美、欧洲、亚太地区主要国家的1…

云计算实训09——rsync远程同步、自动化推取文件、对rsyncd服务进行加密操作、远程监控脚本

一、rsync远程同步 1.rsync基本概述 (1)sync同步 (2)async异步 (3)rsync远程同步 2.rsync的特点 可以镜像保存整个目录树和文件系统 可以保留原有权限,owner,group,时间,软硬链…

vue3 + antd vue 纯前端 基于xlsx 实现导入excel 转 json,将json数据转换XLSX并下载(下载模版)

一、导入 0、关键代码 // 安装插件 npm i xlsx/yarn add xlsx // 导入xlsx import * as XLSX from xlsx; 点击提交的时候才整理数据。上传的时候文件保存在 state.form.file[0] 中的 // 定义字段映射关系 const fieldMap {sheet2json: {技能名称: skill_name,技能等级: …

AI 绘画|Midjourney设计Logo提示词

你是否已经看过许多别人分享的 MJ 咒语,却仍无法按照自己的想法画图?通过学习 MJ 的提示词逻辑后,你将能够更好地理解并创作自己的“咒语”。本文将详细拆解使用 MJ 设计 Logo 的逻辑,让你在阅读后即可轻松上手,制作出…

机器学习-18-统计学与机器学习中回归的区别以及统计学基础知识

参考通透!一万字的统计学知识大梳理 参考3万字长文!手把手教你学会用Python实现统计学 参考统计学的回归和机器学习中的回归有什么差别? 1 研究对象 一维:就是当前摆在我们面前的“一组”,“一批数据。这里我们会用到统计学的知识去研究这类对象。 二维:就是研究某个“事…

【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿

切换效果 页面结构变化 1.需求背景 项目首页存有一个小的轮播模块,保密原因大概只能这么展示,左侧图片右侧文字,后端一次性返回几百条数据(开发环境下,生产环境只会更多).无法使用分页解决,前端需要懒加载防止页面卡顿 写个小demo演示,如下 2.解决思路 获取到数据后,取第一…

【electron6】浏览器实时播放PCM数据

pcm介绍:PCM(Puls Code Modulation)全称脉码调制录音,PCM录音就是将声音的模拟信号表示成0,1标识的数字信号,未经任何编码和压缩处理,所以可以认为PCM是未经压缩的音频原始格式。PCM格式文件中不包含头部信…

【Langchain大语言模型开发教程】模型、提示和解析

🔗 LangChain for LLM Application Development - DeepLearning.AI 学习目标 1、使用Langchain实例化一个LLM的接口 2、 使用Langchain的模板功能,将需要改动的部分抽象成变量,在具体的情况下替换成需要的内容,来达到模板复用效…