YOLO-World解读:零基础学习开放世界模型

文章目录

  • 一、摘要
  • 二、引言
  • 相关工作
  • 方法
    • 预训练公式
    • 模型架构
      • 可重新参数化的视觉-语言路径聚合网络(RepVL-PAN)
    • 3.4 预训练方案
  • 实验
    • YOLO-World: 利用多样化数据集进行开放词汇对象检测的预训练方法
    • YOLO-World: LVIS数据集上的零样本性能评估
    • YOLO-World: 预训练数据量对LVIS数据集零样本性能的影响
    • YOLO-World:LVIS数据集开放词汇检测对比
  • 总结

一、摘要

YOLO World是一项突破性的技术,它增强了YOLO探测器在开放词汇检测方面的能力。该技术通过视觉语言建模和在大规模数据集上的深度预训练,引入了先进的RepVL-PAN网络以及区域文本对比损失,从而强化了图像与文本之间的相互作用。在LVIS数据集的评估中,YOLO World实现了35.4的AP值和52.0的FPS,这一成就不仅超越了许多尖端方法,也标志着其在性能上的卓越。此外,YOLO World在对象检测和开放词汇实例分割等任务上也展现了卓越的性能,进一步证明了其在该领域的领先地位。

yoloworld的效果图展示如下:
在这里插入图片描述
可以用语言跟检测模型交互,YOLO-world整合了语言模态信息进去,更加强大了YOLO作为赤裸检测器的性能和作用。

二、引言

对象检测作为计算机视觉领域的一个核心挑战,对于图像理解、机器人技术以及自动驾驶等都具有至关重要的作用。尽管已有进展,但现有方法往往局限于识别预定义的类别,这限制了它们在新场景中的应用范围。YOLO-World通过引入大规模预训练的视觉-语言模型,成功扩展了传统YOLO检测器的能力,使其能够进行开放词汇对象检测。

YOLO-World利用预训练的CLIP文本编码器处理输入文本,并与RepVL-PAN网络相结合,整合文本和图像特征,从而更准确地捕捉视觉-语义信息。在推理阶段,文本编码器可以被移除,将文本嵌入转化为网络权重,实现快速部署。此外,YOLO-World通过区域-文本对比学习在大规模数据集上进行预训练,进一步提升了模型的开放词汇检测能力。

与传统的固定词汇检测器不同,YOLO-World采用了轻量级设计,有效减轻了计算负担,使其更适合于实际应用场景。我们还提出了一种“先提示后检测”的新范式,进一步提高了开放词汇对象检测的效率。总体而言,YOLO-World在保持高推理速度的同时,增强了对未知类别对象的检测能力,为开放场景下的对象检测提供了一个高效有效的解决方案。

相关工作

传统对象检测:
传统的对象检测技术主要聚焦于闭集环境下对固定类别对象的识别。这些技术大致可以划分为三个主要类别:基于区域的方法,例如两阶段的R-CNN系列,它们通过生成区域提案并进行RoI(Region of Interest)分类和回归来检测对象;基于像素的方法,如一阶段的YOLO(You Only Look Once)和SSD(Single Shot MultiBox Detector),它们直接在锚点或像素级别上进行对象的分类和回归;以及基于查询的方法,如DETR(End-to-End Object Detection with Transformers),它利用变换器网络进行端到端的对象检测。在这些方法中,YOLO系列因其简洁的卷积架构而脱颖而出,实现了快速且高效的实时检测能力。

开放词汇对象检测:
开放词汇对象检测(OVD)正在成为计算机视觉领域的一个热点,其核心目标是识别那些不在预定义类别之内的新对象。早期的OVD研究局限于在已知类别上训练检测器,并尝试在未知类别上进行评估,这种方法由于训练数据和词汇范围的限制而效果有限。最新的研究受到视觉-语言预训练技术的启发,将OVD问题重新定义为图像-文本匹配任务,通过利用大规模的图像-文本数据集,有效地拓宽了训练时的词汇范围。
YOLO-World在这一领域中独树一帜,它不仅能够检测预定义类别的对象,还能高效地识别开放词汇中的对象。与依赖重型检测器的方法不同,YOLO-World通过简化的架构实现了实时推理和便捷的下游应用部署,使其在开放词汇对象检测领域具有显著的泛化能力和实用性。

方法

预训练公式

区域文本对传统的对象检测方法,包括YOLO系列,都是使用实例注释 Ω = { B i , c i } i = 1 N \Omega = \{ B_i, c_i \}_{i=1}^{N} Ω={Bi,ci}i=1N训练的,它由边界框 { B i } \{B_i\} {Bi}和类别标签 { c i } \{c_i\} {ci}组成。在本文中,我们将实例注释重新表述为区域文本对 Ω = { B i , c i } i = 1 N \Omega = \{ B_i, c_i \}_{i=1}^{N} Ω={Bi,ci}i=1N,其中 t i t_i ti是区域 B i B_i Bi的相应文本。具体来说,文本 t i t_i ti可以是类别名称、名词短语或对象描述。此外,YOLO World采用图像I和文本T(一组名词)作为输入,并输出预测框 { B ^ k } \{ \hat{B}_k \} {B^k}和相应的对象嵌入 { e k } ( e k ∈ R D ) \{ e_k \} \quad (e_k \in \mathbb{R}^D) {ek}(ekRD)

模型架构

所提出的YOLO World的总体架构如图3所示,它由YOLO检测器、文本编码器和可重新参数化的视觉语言路径聚合网络(RepVL PAN)组成。给定输入文本,YOLO World中的文本编码器将文本编码为文本嵌入。YOLO检测器中的图像编码器从输入图像中提取多尺度特征。然后,我们利用RepVL PAN通过利用图像特征和文本嵌入之间的跨模态融合来增强文本和图像表示。
在这里插入图片描述
这张图片展示了一个结合视觉和语言处理的深度学习模型的架构,主要用于图像中的对象检测和文本描述。以下是对图中各部分的解读:

  1. 训练阶段(在线词汇表):
    输入文本:例如,“A man and a woman are skiing with a dog”(一个男人和一个女人正在和一只狗一起滑雪)。
    文本编码器:将输入文本编码为词汇嵌入,如“man”(男人)、“woman”(女人)、“dog”(狗)。
    提取名词:从文本中提取名词,作为模型的在线词汇表。
  2. 部署阶段(离线词汇表):
    用户:可以定义自己的词汇表,这些词汇表在模型部署时是离线的。
    用户的词汇表:用户可以根据需要添加或修改词汇。
  3. 输入图像:
    输入图像通过YOLO Backbone进行处理,提取多尺度图像特征。
  4. 视觉-语言路径聚合网络(Vision-Language PAN):
    将多尺度图像特征与词汇嵌入结合,生成图像感知嵌入。
  5. 文本对比头部(Text Contrastive Head):
    用于计算图像区域和文本之间的相似度,实现区域-文本匹配。
  6. 框头部(Box Head):
    负责生成最终的对象检测框。
  7. 输出:
    在输入图像上,模型能够识别并标记出与用户定义的词汇表中词汇相对应的对象,如“man”、“woman”、“dog”。
    整个流程展示了如何通过结合文本描述和图像特征来实现精确的对象检测和识别。模型在训练时使用在线词汇表,而在部署时使用用户定义的离线词汇表,这增加了模型的灵活性和适应性。
    YOLO探测器:YOLO World主要基于YOLOv8开发,其中包含一个作为图像编码器的暗网骨干、一个用于多尺度特征金字塔的路径聚合网络(PAN)以及一个用于边界框回归和对象嵌入的头部
    文本编码器:给定文本T,我们采用CLIP预训练的Trans former文本编码器来提取相应的文本嵌入 W = TextEncoder ( T ) ∈ R C × D W = \text{TextEncoder}(T) \in \mathbb{R}^{C \times D} W=TextEncoder(T)RC×D,其中C是名词的数量,D是嵌入维度。与纯文本语言编码器相比,CLIP文本编码器在将视觉对象与文本连接方面提供了更好的视觉语义能力。当输入文本是字幕或引用表达式时,我们采用简单的n元语法算法提取名词短语,然后将其输入文本编码器。
    文本对比头部:根据之前的工作,我们采用了具有两个3×3卷积的解耦头部来回归边界框 { b k } k = 1 K \{ b_k \}^{K}_{k=1} {bk}k=1K和对象嵌入 { e k } k = 1 K \{ e_k \}^{K}_{k=1} {ek}k=1K,其中 K 表示对象的数量。我们提出了一个文本对比头部来获得对象-文本相似度 s k , j s_{k,j} sk,j ,通过以下方式:
    s k , j = α ⋅ L 2 -Norm ( e k ) ⋅ L 2 -Norm ( w j ) ⊤ + β s_{k,j} = \alpha \cdot L2\text{-Norm}(e_k) \cdot L2\text{-Norm}(w_j)^\top + \beta sk,j=αL2-Norm(ek)L2-Norm(wj)+β

其中 L 2 -Norm ( ⋅ ) L2\text{-Norm}(\cdot) L2-Norm()是L2归一化, w j ∈ W w_j \in W wjW 是第 j j j 个文本嵌入。此外,我们添加了可学习的缩放因子 α \alpha α 和偏移因子 β \beta β。L2范数和仿射变换对于稳定区域-文本训练非常重要。

在线词汇表训练:在训练过程中,我们为每个包含4张图像的拼贴样本构建一个在线词汇表 T T T。具体来说,我们从拼贴图像中涉及的所有正名词中采样,并随机从相应的数据集中采样一些负名词。每个拼贴样本的词汇表最多包含 M M M 个名词,默认设置为80。

离线词汇表推理:在推理阶段,我们提出了一种“提示后检测”策略,使用离线词汇表以提高效率。如图3所示,用户可以定义一系列自定义提示,可能包括标题或类别。然后,我们利用文本编码器对这些提示进行编码,并获得离线词汇表嵌入。离线词汇表允许避免对每个输入进行计算,并根据需要灵活调整词汇表。

可重新参数化的视觉-语言路径聚合网络(RepVL-PAN)

图4展示了所提出的RepVL-PAN的结构,它遵循了[20, 29]中的自顶向下和自底向上路径,以建立特征金字塔 ({P_3, P_4, P_5}) 和多尺度图像特征 ({C_3, C_4, C_5})。此外,我们提出了文本引导的跨阶段部分层(T-CSPLayer)和图像池化注意力(I-Pooling Attention),以进一步增强图像特征和文本特征之间的交互,这可以提高开放词汇表能力的视觉-语义表示。在推理过程中,离线词汇嵌入可以重新参数化为卷积层或线性层的权重以便于部署。

文本引导的CSPLayer:如图4所示,跨阶段部分层(CSPLayer)在自顶向下或自底向上融合后被利用。我们通过将文本引导融入多尺度图像特征来扩展CSPLayer(也称为C2f),形成文本引导的CSPLayer。具体来说,给定文本嵌入 W W W 和图像特征 X I ∈ R H × W × D ( l ∈ { 3 , 4 , 5 } ) X_I \in \mathbb{R}^{H \times W \times D} (l \in \{3, 4, 5\}) XIRH×W×D(l{3,4,5}),我们在最后一个暗瓶颈块之后采用最大-sigmoid注意力来通过以下方式聚合文本特征到图像特征:

X I ′ = X I ⋅ δ ( max ⁡ j ∈ { 1 , . . , C } ( X W j T ) ) ⊤ X'_I = X_I \cdot \delta \left( \max_{j \in \{1,..,C\}} (X W^T_j) \right)^\top XI=XIδ(maxj{1,..,C}(XWjT))

其中更新后的 X l ′ X'_l Xl与跨阶段特征连接作为输出。 δ \delta δ 表示sigmoid函数。
在这里插入图片描述
这张图片展示了一个名为RepVL-PAN(可重新参数化的视觉-语言路径聚合网络)的结构图,它是一个用于图像和文本处理的深度学习模型架构。以下是对图中各部分的解读:

1输入层:

  • 图像特征 (C3, C4, C5):这些是从图像中提取的多尺度特征,通常由卷积神经网络(CNN)的多个层输出。
  • 文本嵌入:这些是输入文本的嵌入表示,用于将文本信息转换为模型可以处理的数值形式。

2.T-CSPLayer(文本引导的CSPLayer):

  • 这是一个扩展的CSPLayer,它结合了文本信息来增强图像特征。图中显示了T-CSPLayer在不同尺度的特征上应用,每个尺度的特征都经过两次T-CSPLayer处理。
  • T-CSPLayer内部包含一个C2f块,它通过文本引导来聚合图像特征。

3.I-Pooling Attention(图像池化注意力):

  • 这是一个用于增强图像-文本嵌入的模块。它通过最大池化操作从多尺度特征中提取3×3区域,然后将这些区域与文本嵌入进行交互,以更新文本嵌入。
  • 图中显示了I-Pooling Attention在不同尺度的特征上应用,每个尺度的特征都经过一次I-Pooling Attention处理。

4.输出层:

  • 图像感知嵌入 (P3, P4, P5):这些是经过T-CSPLayer和I-Pooling Attention处理后的图像特征,它们包含了文本信息,可以用于后续的任务,如对象检测或图像-文本匹配。

5.连接和操作:

  • 图中使用了不同的箭头和符号来表示不同的操作和数据流:
    • 实线箭头表示数据流。
    • 虚线箭头表示从图像到文本或从文本到图像的信息流。
    • “Split”和“Concat”表示特征的分割和连接操作。
    • “Dark Bottleneck”和“Max-Sigmoid”是C2f块中的具体操作,用于处理和聚合特征。

6.颜色编码:

  • 图中使用了不同的颜色来区分不同的操作和模块:
    • 绿色表示T-CSPLayer。
    • 黄色表示I-Pooling Attention。
    • 蓝色和橙色分别表示文本嵌入和图像感知嵌入。

这张图展示了如何通过结合文本信息来增强图像特征,以及如何通过图像池化注意力来更新文本嵌入,从而实现图像和文本之间的有效交互。这种架构可以用于多种视觉-语言任务,如图像标注、视觉问答等。

RepVL-PAN的示意图:提出的RepVL-PAN采用了文本引导的CSPLayer(T-CSPLayer)来将语言信息注入图像特征,以及图像池化注意力(I-Pooling Attention)来增强图像-文本嵌入。
图像池化注意力:为了增强文本嵌入的图像感知信息,我们通过提出图像池化注意力来聚合图像特征以更新文本嵌入。我们不是直接在图像特征上使用交叉注意力,而是利用多尺度特征上的最大池化来获得3×3区域,总共得到27个补丁标 X ~ ∈ R 27 × D \tilde{X} \in \mathbb{R}^{27 \times D} X~R27×D。然后,文本嵌入通过以下方式更新:
W ′ = W + MultiHead-Attention ( W , X ~ , X ~ ) W' = W + \text{MultiHead-Attention}(W, \tilde{X}, \tilde{X}) W=W+MultiHead-Attention(W,X~,X~)

3.4 预训练方案

在本节中,我们介绍了在大规模检测、定位和图像-文本数据集上预训练YOLO-World的训练方案。
从区域-文本对比损失中学习:给定拼贴样本 I 和文本 T,YOLO-World输出 K 个对象预测 { B k , s k } k = 1 K \{ B_k, s_k \}_{k=1}^{K} {Bk,sk}k=1K 以及注释 Ω = { B i , t i } i = 1 N \Omega = \{ B_i, t_i\}_{i=1}^{N} Ω={Bi,ti}i=1N。我们遵循并利用任务对齐的标签分配来匹配预测与真实注释,并将每个正预测分配一个文本索引作为分类标签。基于这个词汇表,我们构建区域-文本对比损失 L con L_{\text{con}} Lcon,通过对象-文本对之间的交叉熵和对象-文本分配之间的对比损失来实现。此外,我们采用IoU损失和分布式焦点损失用于边界框回归,总训练损失定义为: L ( I ) = L con + λ I ⋅ ( L iou + L dfl ) , L(I) = L_{\text{con}} + \lambda_I \cdot (L_{\text{iou}} + L_{\text{dfl}}), L(I)=Lcon+λI(Liou+Ldfl),,其中 λ I \lambda_I λI是指示因子,当输入图像 II 来自检测或定位数据时设置为1,当来自图像-文本数据时设置为0。考虑到图像-文本数据集中存在噪声框,我们仅对具有准确边界框的样本计算回归损失。

使用图像-文本数据进行伪标签:我们提出了一种自动标记方法来生成区域文本对,而不是直接使用图像文本对进行预训练。具体来说,标记方法包含三个步骤:(1)提取名词短语:我们首先利用n-gram算法从文本中提取名词短语;(2) 伪标签:我们采用预训练的开放词汇检测器,例如GLIP,为每个图像的给定名词短语生成伪框,从而提供粗略的区域文本对。(3) 过滤:我们使用预训练的CLIP来评估图像文本对和区域文本对的相关性,并过滤低相关性的伪符号和图像。我们通过结合非最大抑制(NMS)等方法进一步过滤冗余绑定框。我们建议读者参考附录了解详细方法。通过上述方法,我们使用821k个伪注释对来自CC3M的246k个图像进行采样和标记。

实验

YOLO-World: 利用多样化数据集进行开放词汇对象检测的预训练方法

在这里插入图片描述
YOLO-World模型的预训练涉及了多个数据集,包括用于检测的Objects365V1(含365个类别、609k图像、9.621k注释),用于定位的GQA(621k图像、3.681k注释)和Flickr(149k图像、641k注释),以及用于图像-文本匹配的CC3M†(246k图像、821k注释)。这些数据集共同为YOLO-World提供了丰富的训练资源,以增强其在开放词汇对象检测任务中的表现。CC3M†数据集的注释通过伪标签方法生成,进一步扩展了模型的预训练数据。

YOLO-World: LVIS数据集上的零样本性能评估

在这里插入图片描述
在LVIS数据集上的零样本评估中,YOLO-World模型展现了其卓越的性能,尤其是在结合了O365、GoldG和CC3M†数据集进行预训练后。该模型在不同的规模(S、M、L)下均表现出色,其中YOLO-World-L在O365, GoldG, CC3M†数据集上预训练后,达到了35.4的平均精度(AP)、27.6的容易样本平均精度(APe)、34.1的困难样本平均精度(APf),以及52.0的每秒帧数(FPS),这证明了YOLO-World在开放词汇检测任务中的有效性和高效率。此外,CC3M†指的是在该设置中使用的包含246k样本的伪标签CC3M数据集。

YOLO-World: 预训练数据量对LVIS数据集零样本性能的影响

在这里插入图片描述
在LVIS数据集上的消融研究显示,YOLO-World模型的零样本性能随着预训练数据量的增加而提升。当模型仅在O365数据集上预训练时,平均精度(AP)为23.5,而在加入GQA数据集后,AP显著提升至31.9。进一步整合GoldG数据集,AP达到32.5,而添加CC3M†数据集后,AP进一步提高至33.0。这些结果强调了丰富和多样化的预训练数据对于提升YOLO-World在开放词汇检测任务中性能的重要性。CC3M†表示在该设置中使用的伪标签CC3M数据集,包含246k个样本。

YOLO-World:LVIS数据集开放词汇检测对比

在这里插入图片描述
在LVIS数据集上与开放词汇检测器的比较中,YOLO-World模型展现了其优越的性能,尤其是在大型版本(YOLO-World-L)中,其平均精度(AP)达到了34.1,罕见类别的平均精度(APr)为20.4,常见类别的平均精度(APc)为31.1,频繁类别的平均精度(APf)高达43.5,这些指标均超越了其他对比方法。YOLO-World在LVIS-base数据集上训练,包括常见和频繁类别,而YOLOv8则在完整的LVIS数据集上进行训练,涵盖了基础和新颖类别,并采用了类别平衡采样,这进一步证明了YOLO-World在开放词汇检测任务中的有效性和高效率。

结尾,感谢课题组成员嘉政和国庆的参与!

总结

我们成功开发了YOLO-World,这是一个创新的实时开放词汇检测器,旨在提升现实世界应用的效率和处理未知类别对象的能力。通过改进经典的YOLO架构,我们引入了视觉-语言YOLO架构和RepVL-PAN网络,后者不仅整合了视觉与语言信息,还能通过重参数化实现快速部署。结合检测、定位和图像-文本数据的有效预训练策略,赋予了YOLO-World强大的开放词汇检测性能。实验结果证实了YOLO-World在速度和开放词汇检测性能上的优势,并证明了视觉-语言预训练在小型模型上的有效性,为未来研究提供了宝贵的参考。我们期待YOLO-World能成为现实世界开放词汇检测的新标准。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入理解下oracle 11g block组成

深层次说,oracle数据库的最少组成单位应该是块,一般默认情况下,oracle数据库的块大小是8kb,其中存储着我们平常所需的数据。我们在使用过程中,难免会疑问道:“oracle数据块中到底是怎样组成的,平…

《智慧教育实时数据分析推荐项目》详细分析

一、项目介绍 1、背景介绍 在互联网、移动互联网的带动下,教育逐渐从线下走向线上,在线教育近几年一直处于行业的风口浪尖,那随着基础设施的不断完善,用户需求也发生不少变化,因此传统教育机构、新兴互联网企业都在探…

stable-diffusion-webui 安装

一、安装 Python 3.11.8 (略) 二、下载stable-diffusion-webui cd E:\AITOOLS git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui 下载完成后: cd E:\AITOOLS\stable-diffusion-webui #运行 webui-user.bat 我们会发现要下载一下&#xff1a…

【Seed-Labs 2.0】The Kaminsky Attack Lab

说在前面 本实验属为Seed-Labs 的DNS LAB 中的第二个实验,是第一个实验的延伸,从攻击者和受害者同一个LAN中变成不在同一个LAN中,该系列一共有五个实验: Local DNS Attack LabThe Kaminsky Attack LabDNS Rebinding Attack LabDNS Infrastr…

类的实例化

文章目录 一、实例化2.1 实例化概念 一、实例化 2.1 实例化概念 用类类型在物理内存中创建对象的过程,称为类实例化出对象。 类是对象进行⼀种抽象描述,是⼀个模型⼀样的东西,限定了类有哪些成员变量,这些成员变量只是声明&…

《图像梯度与常见算子全解析:原理、用法及效果展示》

简介:本文深入探讨图像梯度相关知识,详细介绍图像梯度是像素灰度值在不同方向的变化速度,并以 “pig.JPG” 图像为例,通过代码展示如何选取图像部分区域并分析其像素值以论证图像梯度与边缘信息的关联。接着全面阐述了 Sobel 算子&#xff0c…

解决IDEA报包不存在,但实际存在的问题

前言 最近在把一个亿老项目交割给同事,同事在导入项目运行时遇到IDEA报包不存在,但实际存在的问题,最终通过以下方式解决 现象 在IDEA里启动运行项目,报某个类有问题,引入的包不存在。 点击这个引入的包,可…

C++(进阶) 第1章 继承

C(进阶) 第1章 继承 文章目录 前言一、继承1.什么是继承2.继承的使用 二、继承方式1.private成员变量的(3种继承方式)继承2. private继承方式3.继承基类成员访问⽅式的变化 三、基类和派生类间的转换1.切片 四、 继承中的作⽤域1.隐藏规则&am…

resnet50,clip,Faiss+Flask简易图文搜索服务

一、实现 文件夹目录结构&#xff1a; templates -----upload.html faiss_app.py 前端代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widt…

SFP+光模块介绍

SFP光模块介绍 1 SFP光模块简介(Small Form -Factor Pluggable)2 光模块管脚定义 1 SFP光模块简介(Small Form -Factor Pluggable) 光模块&#xff08;Optical Module&#xff09;由光电子器件、功能电路和光接口等组成&#xff0c;光电子器件包括激光发射器(Laser Transmitte…

Redis——Raft算法

Raft使用较为广泛的强一致性、去中心化、高可用的分布式协议&#xff0c;即使在网络、节点故障等情况下&#xff0c;多个节点依然能达到一致性。 其中redis、etcd等都用到了这种算法 在Redis集群中&#xff0c;采取的主从复制结构&#xff0c;当主节点宕机后&#xff0c;哨兵会…

【网络系统管理】2023年全国职业院校技能大赛:组策略--10套题组合--3

11、阻止Microsoft账户登录 (1)计算机配置\策略\Windows设置\安全设置\本地策略\安全选项 12、允许更改系统时间 (1)计算机配置\策略\Windows设置\安全设置\本地策略\用户权限分配 13、可以登录本机的用户 (1)计算机配置\策略\Windows设置\安全设置\本地策略\用户权限…

Glide源码学习

前言 开始 基本使用非常简单&#xff0c;链式调用把context对象传入&#xff0c;设置要加载的URL&#xff0c;设置要填充的ImageView控件&#xff0c;方法很简洁&#xff0c;每次都是传入的最核心的参数&#xff0c;底层加载的缓存逻辑&#xff0c;加载的引擎&#xff0c;加载…

基于RFSOC实现LFMCW雷达测距测速

雷达原理可以参考以下文章 https://zhuanlan.zhihu.com/p/508764579 一般情况下&#xff0c;雷达发射信号的模型可采用线性调频连续波&#xff08;LFMCW&#xff09; &#xff0c;发射波形的信号形式为调频连续锯齿波。线性调频的含义即调制信号频率随时间线性变化&#xff0c…

VELO SkyOW+坐垫,一起Cityride温暖你的上海之旅

随着冬季的到来&#xff0c;上海的街头巷尾弥漫着一种独特的浪漫气息&#xff0c;当金黄的落叶从空中飘落&#xff0c;铺满路边&#xff0c;只是路过就仿佛骑进了一幅世界名画。无论是沿着外滩漫游&#xff0c;还是穿行在浦东的高楼间&#xff0c;骑行的方式总能让你充分体验到…

基于lora的llama2二次预训练

基于lora的llama2二次预训练 一、为什么需要对llama2做基于lora的二次预训练? 加入中文训练语料进行llama2的二次预训练&#xff0c;这样模型就可以增加支持中文输出的能力。 二、基于lora的llama2二次预训练的目标是什么&#xff1f; 在保持预训练模型权重不变的情况下&a…

探索 Python 任务自动化的新境界:Invoke 库揭秘

文章目录 探索 Python 任务自动化的新境界&#xff1a;Invoke 库揭秘背景&#xff1a;为何选择 Invoke&#xff1f;什么是 Invoke&#xff1f;如何安装 Invoke&#xff1f;5个简单的库函数使用方法1. 定义任务2. 带参数的任务3. 运行 Shell 命令4. 任务参数化5. 列出任务 场景应…

利用Prompt工程为LLM提升推理能力

利用Prompt工程为LLM提升推理能力 基于策略的推理详解ReAct: 推理与行动思维链&#xff1a;逐步解决问题反思&#xff1a;深入分析和自我审查与代理架构的集成实际应用代码附录 众所周知&#xff0c;一个精心设计的Prompt能够显著增强大型语言模型&#xff08;LLMs&#xff09;…

C#开发合集

用C#轻松搞定m3u8视频下载与合并 嘿&#xff0c;程序员们&#xff01;今天咱们来聊聊如何用C#写个小程序&#xff0c;轻松下载和合并m3u8视频文件。没错&#xff0c;就是那种分段的流媒体视频。准备好了吗&#xff1f;让我们开始吧&#xff01; 准备工作 在动手之前&#xf…

java框架Netty网络编程——问鼎篇

Netty进阶 粘包现象 案例 服务端代码 public static void main(String[] args) {NioEventLoopGroup bossGroupnew NioEventLoopGroup(1);NioEventLoopGroup workerGroupnew NioEventLoopGroup(2);try {ServerBootstrap serverBootstrap new ServerBootstrap();serverBootstr…