当前位置: 首页 > news >正文

从DINO到DINOv2——自监督视觉Transformer的升级改进之路(基于ViT)

前言

之所以关注到DINOV2,原因在于我解读多个具身机器人模型时——发现他们的视觉基座都用的DINOV2,比如

  • rekep
  • Open-TeleVision
  • OpenVLA
  • CogACT
  • OKAMI

不过,实话讲,DINO论文的可读性是真的不高,使得本次解读不易..总之,本文目前只是个初稿,后面还得花不少时间 反复优化

第一部分 DINO

1.1 提出背景与相关工作

1.1.1 DINO的提出背景

近年来,Transformer [70] 已经成为视觉识别领域中卷积神经网络convnets的替代方案[19,69,83]。它们的采用伴随着一种受NLP启发的训练策略,即在大量数据上进行预训练,然后在目标数据集上进行微调[18,55]

由此产生的视觉Transformer(ViT)[19-详见此文《图像生成发展起源:从VAE、扩散模型DDPM、DDIM到DETR、ViT、Swin transformer》的第4部分] 与卷积网络具有竞争力,但尚未显现出明显的优势:它们在计算上更为苛刻,要求更多的训练数据,并且其特征没有表现出独特的属性

  1. 对此,作者质疑视觉领域中Transformer成功受限是否可以通过其预训练中的监督方式来解释。作者的动机是,Transformer在自然语言处理领域成功的一个主要因素是使用自监督预训练,例如BERT中的close procedure[18]或GPT中的语言建模[55]
  2. 这些自监督预训练目标使用句子中的词语来创建伪任务,比预测每个句子单一标签的监督目标提供了更丰富的学习信号。同样,在图像中,图像级别的监督通常将图像中包含的丰富视觉信息简化为从预定义的几千个类别中选择的单一概念[60]

受以上种种的启发,21年4月,Meta发布了DINO

  • 其对应的paper为:Emerging Properties in Self-Supervised Vision Transformers
  • 其对应的GitHub为:facebookresearch/dino

1.1.2 相关工作:自训练和知识蒸馏

自训练旨在通过将一小部分初始标注传播到大量未标注的实例来提高特征的质量。这种传播可以通过标签的硬分配[41,78,79]或软分配[76]来完成

  • 当使用软标签时,该方法通常被称为知识蒸馏[7,35],其主要设计目的是训练一个小网络以模拟大网络的输出来压缩模型
  • Xie等人[76]表明,蒸馏可以用于在自训练流程中将软伪标签传播到未标注的数据,从而在自训练和知识蒸馏之间建立了一个重要的联系
  • 作者的工作基于这一关系,并将知识蒸馏扩展到无标签的情况。之前的工作也结合了自监督学习和知识蒸馏[25,63,13,47],实现了自监督模型压缩和性能提升。然而,这些工作依赖于预训练的固定教师,而作者的教师是在训练过程中动态构建的。这样,知识蒸馏不是作为自监督预训练的后处理步骤,而是直接作为自监督目标
  • 最后,作者的工作也与协同蒸馏[1]相关,其中学生和教师具有相同的架构,并在训练过程中使用蒸馏。然而,在协同蒸馏中,教师也从学生中蒸馏,而在我们的工作中,教师通过学生的平均值进行更新

1.2 方法

1.2.1 知识蒸馏的自监督学习

本研究中使用的框架DINO,与最近的自监督方法[10-Unsupervised learning of visual features by contrasting cluster assignments,16,12,30,33]共享相同的整体结构

然而,作者的方法也与知识蒸馏[35- Distilling the knowledge in a neural network]有相似之处

下图图2中展示了DINO「模型将输入图像的两种不同随机变换传递给学生和教师网络。两个网络具有相同的架构但参数不同。教师网络的输出以批次计算的均值为中心。每个网络输出一个K维特征,该特征通过特征维度上的温度softmax进行归一化。然后用交叉熵损失测量它们的相似性。作者在教师上应用一个停止梯度(sg)操作符 只通过学生传播梯度——We apply astop-gradient (sg) operator on the teacher to propagate gradientsonly through the student。教师参数通过学生参数的指数移动平均(ema)进行更新

总之,知识蒸馏是一种学习范式,作者训练一个学生网络g_{\theta_{s}}来匹配给定教师网络g_{\theta_{t}}的输出,分别由\theta_{s}\theta_{t}参数化

给定输入图像x,两个网络输出在K维上的概率分布,分别表示为P_{s}P_{t}。概率P 是通过使用softmax函数对网络g 的输出进行归一化得到的。更准确地说

P_{s}(x)^{(i)}=\frac{\exp \left(g_{\theta_{s}}(x)^{(i)} / \tau_{s}\right)}{\sum_{k=1}^{K} \exp \left(g_{\theta_{s}}(x)^{(k)} / \tau_{s}\right)}

其中\tau_{s}>0是控制的温度参数——输出分布的尖锐度,以及一个类似的公式适用于P_{t},其中温度为\tau_{t}。给定一个固定的教师网络g_{\theta_{t}},作者通过最小化相对于学生网络参数\theta_{s}的交叉熵损失来学习匹配这些分布(定义为方程2)

\min _{\theta_{s}} H\left(P_{t}(x), P_{s}(x)\right)

其中H(a, b)=-a \log b

接下来,作者详细说明如何将方程(2)中的问题适应于自监督学习

  1. 首先,使用多裁剪策略[10] 构建图像的不同失真视图或裁剪。更具体地说,从给定的图像中,生成一组V 的不同视图。该集合包含两个全局视图,xg1 和xg2,以及几个较小分辨率的局部视图。所有裁剪都会通过学生模型,而只有全局视图会通过教师模型,因此鼓励” 局部到全局” 的对应关系
  2. 最小化损失(定义为方程3)
    \min _{\theta_{s}} \sum_{x \in\left\{x_{1}^{g}, x_{2}^{g}\right\}} \sum_{\substack{x^{\prime} \in V \\ x^{\prime} \neq x}} H\left(P_{t}(x), P_{s}\left(x^{\prime}\right)\right)
    这种损失是通用的,可以用于任意数量的视图,甚至只有两个视图。然而,遵循多裁剪的标准设置,使用两个分辨率为224×224的全局视图。覆盖原始图像的大部分(例如大于50%)区域,以及几个分辨率为96×96的局部视图。仅覆盖原始图像的小区域(例如小于50%)。除非另有说明,否则将此设置称为DINO的基本参数化

    两个网络共享相同的架构g,但具有不同的参数集\theta_{s}\theta_{t}。作者通过使用随机梯度下降法最小化方程(3)来学习参数θs

额外说一句,作者还在算法1中提出了一个伪代码实现

对于教师网络

与知识蒸馏不同,作者没有先验给定的教师g_{\theta_{t}},因此作者从学生网络的过去迭代中构建它。作者在原论文的第5.2 节研究了教师的不同更新规则,并展示了在作者的框架中冻结教师网络在一个epoch 内出乎意料地有效,而将学生权重复制给教师则无法收敛

  1. 特别感兴趣的是,在学生权重上使用指数移动平均(EMA),即动量编码器[33],特别适合他们的框架。更新规则为\theta_{t} \leftarrow \lambda \theta_{t}+(1-\lambda) \theta_{s},其中λ 在训练过程中按照余弦调度从0.996 到1 [30]
  2. 最初,动量编码器被引入作为对比学习中队列的替代品[33]。然而,在他们的框架中,其角色有所不同,因为他们没有队列也没有对比损失,可能更接近于自我训练中使用的均值教师的角色[65]
  3. 事实上,作者观察到这个教师执行了一种类似于Polyak-Ruppert 平均的模型集成形式,具有指数衰减[51, 59]。使用Polyak-Ruppert 平均进行模型集成是提高模型性能的标准做法[38]。作者观察到这个教师在整个训练过程中表现优于学生,因此,通过提供更高质量的目标特征来指导学生的训练。这种动态在先前的工作中未被观察到[30, 58]

对于网络架构

神经网络g 由一个主干f(ViT [19] 或ResNet [34])和一个投影头h: g=h \circ f组成

再简要回顾下视觉Transformer(ViT) [19, 70] 的机制


作者遵循DeiT [69-Training data-efficient image transformers & distillation through attention] 中使用的实现。且在下表1 中总结了本文中使用的不同网络的配置

其中,ViT 架构以分辨率为N ×N 的非重叠连续图像块网格作为输入

  1. 在本文中,作者通常使用N = 16(”/16”) 或N = 8 (”/8”)
  2. 然后将这些图像块通过一个线性层以形成一组嵌入
  3. 在序列中添加一个额外的可学习token [18, 19],这个token的作用是聚合整个序列的信息——为了与之前的研究保持一致,将此token称为分类token[CLS],且在其输出处附加投影头h

    patch token集和[CLS] token被输入到一个带有” 预归一化” 层归一化的标准Transformer 网络[11, 39]。「The set of patch tokens and [CLS] token are fed to a standard Transformer network with a “pre-norm” layer normalization [11, 39].

    Transformer 是由自注意力和前馈层组成的序列,并与跳跃连接并行。自注意力层通过注意力机制[4] 查看其他token表示来更新token表示
    TheTransformer is a sequence of self-attention and feed-forwardlayers, paralleled with skip connections. The self-attentionlayers update the token representations by looking at the other token representations with an attention mechanism [4].

下游任务中使用的特征是主干f 的输出。投影头由一个3 层多层感知器(MLP)组成,隐藏维度为2048,后接\ell_{2}归一化和一个权重归一化的全连接层[61],具有K 维度,这与SwAV [10- Unsupervised learning of visual features by contrasting cluster assignments] 的设计相似

  1. 作者测试了其他投影头,这种特定设计似乎对DINO 效果最佳(附录C)。作者没有使用预测器[30,16],导致学生和教师网络中的架构完全相同
  2. 特别值得注意的是,与标准卷积神经网络不同,ViT架构默认不使用批量归一化(BN)。因此,当将DINO应用于ViT时,作者在投影头中也不使用任何BN,使系统完全不含BN

// 待更

第二部分 DINOV2

// 待更

相关文章:

从DINO到DINOv2——自监督视觉Transformer的升级改进之路(基于ViT)

前言 之所以关注到DINOV2,原因在于我解读多个具身机器人模型时——发现他们的视觉基座都用的DINOV2,比如 rekepOpen-TeleVisionOpenVLACogACTOKAMI 不过,实话讲,DINO论文的可读性是真的不高,使得本次解读不易..总之…...

CCF-GESP 等级考试 2024年12月认证C++七级真题解析

2024年12月真题 一、单选题(每题2分,共30分) 正确答案:D 解析:考察字符类型和ASCII码值。 字符类型参与运算,是它所对应的ASCII码值在参与运算,运算结果为整数值。小写字母 b 的ASCII码为98&am…...

Qt之串口设计-线程实现(十二)

Qt开发 系列文章 - Serial-port(十二) 目录 前言 一、SerialPort 二、实现方式 1.创建类 2.相关功能函数 3.用户使用 4.效果演示 5.拓展应用-实时刷新 总结 前言 Qt作为一个跨平台的应用程序开发框架,在串口编程方面提供了方便易用…...

20241217使用M6000显卡在WIN10下跑whisper来识别中英文字幕

20241217使用M6000显卡在WIN10下跑whisper来识别中英文字幕 2024/12/17 17:21 缘起,最近需要识别法国电影《地下铁》的法语字幕,使用 字幕小工具V1.2【whisper套壳/GUI封装了】 无效。 那就是直接使用最原始的whisper来干了。 当你重装WIN10的时候&#…...

基于 uniapp 开发 android 播放 webrtc 流

一、播放rtsp协议流 如果 webrtc 流以 rtsp 协议返回&#xff0c;流地址如&#xff1a;rtsp://127.0.0.1:5115/session.mpg&#xff0c;uniapp的 <video> 编译到android上直接就能播放&#xff0c;但通常会有2-3秒的延迟。 二、播放webrtc协议流 如果 webrtc 流以 webrt…...

Java反射学习(3)(“反射“机制获取成员变量及详细信息(Field类))

目录 一、基本引言。 &#xff08;1&#xff09;基本内容回顾。 &#xff08;2&#xff09;本篇博客的核心内容-基本介绍。 二、Java中使用"反射"机制获取成员变量及内部的详细信息。 &#xff08;1&#xff09;"反射"机制获取成员变量及详细信息的基本概念…...

Flutter组件————AppBar

AppBar 是 Flutter 中用于创建应用程序顶部栏的组件&#xff0c;它遵循 Material Design 规范。 参数&#xff1a; 参数名称类型描述titleWidget设置 AppBar 中的标题文本或自定义标题小部件。automaticallyImplyLeadingbool决定是否自动添加返回按钮&#xff08;如果页面不是…...

LabVIEW在电液比例控制与伺服控制中的应用

LabVIEW作为一种图形化编程环境&#xff0c;广泛应用于各类控制系统中&#xff0c;包括电液比例控制和伺服控制领域。在这些高精度、高动态要求的控制系统中&#xff0c;LabVIEW的优势尤为突出。以下从多个角度探讨其应用与优势&#xff1a; ​ 1. 灵活的控制架构 LabVIEW为电…...

Jenkins

1.安装 需要先安装jdk11 yum install -y java-11 yum localinstall -y jenkins-2.361.4-1.1.noarch.rpm 启动服务 systemctl enable --now jenkins.service 开始安装 进入下一步&#xff0c;关掉即可 下一步&#xff0c;点击开始使用Jenkins 2.插件的安装 1.方式一&…...

Sigrity System Explorer Snip Via Pattern From Layout模式从其它设计中截取过孔模型和仿真分析操作指导

Sigrity System Explorer Snip Via Pattern From Layout模式从其它设计中截取过孔模型和仿真分析操作指导 Sigrity System Explorer Snip Via Pattern From Layout模式支持从其它设计中截取过孔模型用于仿真分析,同样以差分模板为例 具体操作如下 双击打开System Explorer软件…...

Redux使用教程

Redux使用教程 一、安装依赖 安装ReduxToolkit、react-redux&#xff0c;命令行输入 npm i reduxjs/toolkit react-redux二、创建目录结构 创建标准的store目录结构&#xff0c;当然这一步不是必须的 ​ ① 在src下创建store文件夹 ​ ② 在store文件夹中创建一个modules文…...

gpu硬件架构

1.简介 NVIDIA在视觉计算和人工智能&#xff08;AI&#xff09;领域处于领先地位&#xff1b;其旗舰GPU已成为解决包括高性能计算和人工智能在内的各个领域复杂计算挑战所不可或缺的。虽然它们的规格经常被讨论&#xff0c;但很难掌握各种组件的清晰完整的图景。 这些GPU的高性…...

volatility2工具的使用vol2工具篇

vol2工具 命令格式&#xff1a;vol.py -f [image] --profile[profile] [plugin] 1、查看系统的操作版本&#xff0c;系统镜像信息 2.查看用户名密码信息&#xff0c;当前操作系统中的password hash&#xff0c;例如SAM文件内容 3.从注册表提取LSA密钥信息&#xff08;已解密&…...

LeetCode:104.二叉树的最大深度

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;104.二叉树的最大深度 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节…...

【游戏设计原理】19 - 得益

一、学习与分析 核心概念总结&#xff1a; 得益&#xff08;Payoff&#xff09;&#xff1a;玩家在游戏中通过决策获得的产出&#xff0c;包括正面和负面。它可以以分数、等级、货币等形式体现。玩家差异&#xff1a;不同玩家追求不同类型的回报&#xff0c;有些人重视分数或…...

简单配置,全面保护:HZERO审计服务让安全触手可及

HZERO技术平台&#xff0c;凭借多年企业资源管理实施经验&#xff0c;深入理解企业痛点&#xff0c;为您提供了一套高效易用的审计解决方案。这套方案旨在帮助您轻松应对企业开发中的审计挑战&#xff0c;确保业务流程的合规性和透明度。 接下来&#xff0c;我将为大家详细介绍…...

day5,数据结构,单向,双向,循环链表

1】思维导图 2】完成单向循环链表的所有操作 【创建、判空、尾插、遍历、尾删、销毁】 创建&#xff1a; LooplinkPtr caerte() {LooplinkPtr h(LooplinkPtr)malloc(sizeof(Looplink));if(NULLh){printf("创建失败\n");return NULL;}h->len0;h->data0;h->…...

构建高性能异步任务引擎:FastAPI + Celery + Redis

在现代应用开发中&#xff0c;异步任务处理是一个常见的需求。无论是数据处理、图像生成&#xff0c;还是复杂的计算任务&#xff0c;异步执行都能显著提升系统的响应速度和吞吐量。今天&#xff0c;我们将通过一个实际项目&#xff0c;探索如何使用 FastAPI、Celery 和 Redis …...

Linux 中检查 Apache Web Server (httpd) 正常运行时间的 4 种方法

注&#xff1a;机翻&#xff0c;未校。 4 Ways To Check Uptime of Apache Web Server (httpd) on Linux November 28, 2019 by Magesh Maruthamuthu We all know about the purpose of uptime command in Linux. 我们都知道 Linux 中 uptime 命令的目的。 It is used to c…...

简易CPU设计入门:内存初始化文件(三)

项目代码下载 请大家首先准备好本项目所用的源代码。如果已经下载了&#xff0c;那就不用重复下载了。如果还没有下载&#xff0c;那么&#xff0c;请大家点击下方链接&#xff0c;来了解下载本项目的CPU源代码的方法。 下载本项目代码 准备好了项目源代码以后&#xff0c;我…...

深度解析Meta最新发布的虚拟试穿技术:一键试衣的革命性进展

随着电子商务的发展,消费者对在线购物体验的要求越来越高。为了满足这一需求,Meta最近发布了一款面向电商人群的一键试衣工具,它不仅能够实现精确控制人物的外观(虚拟试衣)和姿态(姿态迁移),还能保持参考图像中的细节纹理特征,避免失真。这项技术通过引入基于注意力机…...

Apache Solr RCE(CVE-2017-12629)--vulhub

Apache Solr 远程命令执行漏洞&#xff08;CVE-2017-12629&#xff09; Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发&#xff0c;主要基于 HTTP 和 Apache Lucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个…...

使用二分查找法找出给定点距离给定点集合距离最近的点

1、场景描述 给定点Point A &#xff08;x,y&#xff09;和 直线点集合 Points [(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)......],计算出集合中距离点A最近的一个点 &#xff08;如果集合中的两个点距离A点最近且相等&#xff0c;则只取其中一个&#xff09; 2、代码&#x…...

凯酷全科技抖音电商服务的卓越践行者

在数字经济蓬勃发展的今天&#xff0c;电子商务已成为企业增长的新引擎。随着短视频平台的崛起&#xff0c;抖音作为全球领先的短视频社交平台&#xff0c;不仅改变了人们的娱乐方式&#xff0c;也为品牌和商家提供了全新的营销渠道。厦门凯酷全科技有限公司&#xff08;以下简…...

复盘:“辩论赛”复盘

这个小活动整个下来&#xff0c;我是按照“策划-执行-总结-复盘“这个顺序来过的&#xff1b; 在策划上&#xff1a; 首先&#xff0c;针对这个论题&#xff0c;我其实很清楚有很多问题&#xff0c;比如引起逆反心理&#xff0c;没想到还有不少人参与。 其次&#xff0c;针对这…...

SSD目标检测算法

SSD&#xff08;Single Shot MultiBox Detector&#xff09;是一种基于深度学习的目标检测算法&#xff0c;它结合了高效的检测策略和准确的检测结果。相比于传统的目标检测算法&#xff0c;SSD能够在保持较高准确性的同时快速地进行目标检测。 SSD算法的主要特点包括以下几个…...

MyBatis通过注解配置执行SQL语句原理源码分析

文章目录 前置准备流程简要分析配置文件解析加载 Mapper 接口MapperAnnotationBuilder解析接口方法注解parseStatement 方法详解MapperBuilderAssistant 前置准备 创建一个mybatis-config.xml文件&#xff0c;配置mapper接口 <mappers><!--注解配置--><mapper…...

12_HTML5 Video(视频) --[HTML5 API 学习之旅]

HTML5 引入了 <video> 标签&#xff0c;使得在网页中嵌入和控制视频变得非常简单。<video> 元素允许你直接在 HTML 中指定视频文件&#xff0c;并提供了多种属性和方法来控制视频的播放、暂停、音量等。 基本用法 HTML5 的 <video> 标签让嵌入和控制视频变…...

JaxaFx学习(三)

目录&#xff1a; &#xff08;1&#xff09;JavaFx MVVM架构实现 &#xff08;2&#xff09;javaFX知识点 &#xff08;3&#xff09;JavaFx的MVC架构 &#xff08;4&#xff09;JavaFx事件处理机制 &#xff08;5&#xff09;多窗体编程 &#xff08;6&#xff09;数据…...

视频点播系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…...

Springboot 学习 之 logback-spring.xml 日志压缩 .tmp 临时文件问题

文章目录 前言功能简述1. 自定义日志文件名2. 归档规则 && 压缩2.1. 归档配置2.2. 归档压缩2.3. 日志格式 && 编码 现象原因解决办法 前言 在 Springboot 应用中&#xff0c;默认使用 logback-spring.xml 配置日志相关 功能简述 1. 自定义日志文件名 <fi…...

智慧工地整体解决方案

智慧工地背景与需求 智慧工地解决方案的提出&#xff0c;源于建筑行业面临的诸多挑战。安全事故频发、环保体系不健全、建筑信息化水平低以及施工现场管理难度大等问题&#xff0c;迫切需要通过智能化手段来提升工地管理的效率与安全性。智慧工地利用现代信息技术&#xff0c…...

【读书打卡版】【读书笔记】半小时漫画中国地理3

一 如果全中国是个班级&#xff0c;江南五省各不同 继续跟随长江的脚步&#xff0c;认识坐在长江中下游平原上的省份&#xff1a;安徽、江苏、江西、浙江、上海。他们同属于一个美丽又富饶的大区——江南。 那么问题来了&#xff0c;一提到江南&#xff0c;你会想到什么&#…...

harmony UI组件学习(1)

Image 图片组件 string格式&#xff0c;通常用来加载网络图片&#xff0c;需要申请网络访问权限:ohos.permission.INTERNET Image(https://xxx.png) PixelMap格式&#xff0c;可以加载像素图&#xff0c;常用在图片编辑中 Image(pixelMapobject) Resource格式&#xff0c;加…...

ECharts热力图-笛卡尔坐标系上的热力图,附视频讲解与代码下载

引言&#xff1a; 热力图&#xff08;Heatmap&#xff09;是一种数据可视化技术&#xff0c;它通过颜色的深浅变化来表示数据在不同区域的分布密集程度。在二维平面上&#xff0c;热力图将数据值映射为颜色&#xff0c;通常颜色越深表示数据值越大&#xff0c;颜色越浅表示数…...

React状态管理常见面试题目(一)

1. Redux 如何实现多个组件之间的通信?多个组件使用相同状态时如何进行管理? Redux 实现组件通信 Redux 是一个集中式的状态管理工具&#xff0c;通过共享一个全局 store 来实现多个组件之间的通信。 通信机制&#xff1a; 所有状态保存在 Redux 的全局 store 中。使用 ma…...

.NET周刊【12月第2期 2024-12-08】

国内文章 终于解决了.net在线客服系统总是被360误报的问题&#xff08;对软件进行数字签名&#xff09; https://www.cnblogs.com/sheng_chao/p/18581139 升讯威在线客服与营销系统由.net core和WPF开发&#xff0c;旨在开放、开源、共享。开发者为解决360与其他国产管家的误…...

YOLOv8目标检测(七)_AB压力测试

YOLOv8目标检测(一)_检测流程梳理&#xff1a;YOLOv8目标检测(一)_检测流程梳理_yolo检测流程-CSDN博客 YOLOv8目标检测(二)_准备数据集&#xff1a;YOLOv8目标检测(二)_准备数据集_yolov8 数据集准备-CSDN博客 YOLOv8目标检测(三)_训练模型&#xff1a;YOLOv8目标检测(三)_训…...

多个图片转换为PDF文件

将多个图片转换为PDF文件在Python中可以通过多个库来实现&#xff0c;其中最常用的库之一是Pillow&#xff08;用于图像处理&#xff09;和reportlab&#xff08;用于生成PDF&#xff09;。不过&#xff0c;对于直接图片转PDF的操作&#xff0c;更推荐使用Pillow配合PyMuPDF&am…...

【递归,搜索与回溯算法 综合练习】深入理解暴搜决策树:递归,搜索与回溯算法综合小专题(一)

找出所有子集的异或总和再求和 题目解析 算法原理 解法 决策树 这种决策使得每一次递归都是有效的递归&#xff0c;每一个节点都是最终的结果&#xff0c;所以这棵决策树是不用剪枝的&#xff0c;也没有递归出口的&#xff1b; 注意 决策树执行添加元素…...

对 MYSQL 架构的了解

MySQL 是一种广泛使用的关系型数据库管理系统&#xff0c;其架构主要包括以下几个关键部分&#xff1a; 一、连接层 客户端连接管理&#xff1a;MySQL 服务器可以同时处理多个客户端的连接请求。当客户端应用程序&#xff08;如使用 Java、Python 等语言编写的程序&#xff09;…...

深入解析 StarRocks 物化视图:全方位的查询改写机制

小编导读&#xff1a; 本文将重点介绍如何利用物化视图进行查询改写。文章将全面介绍物化视图的基本原理、关键特性、应用案例、使用场景、代码细节以及主流大数据产品的物化视图改写能力对比。 物化视图在 StarRocks 中扮演着至关重要的角色&#xff0c;它是进行数据建模和加速…...

k8s常见问题及debug

ERROR1 ErrImagePull pod pending 外网无法方位集群服务 kubectl 命令失败 Pod Error 进入容器失败 pod重启 Running not ready CrashLoopBackOff PV/PVC helm install...

Winnows基础(2)

Target 了解常见端口及服务&#xff0c;熟练cmd命令&#xff0c;编写简单的 .bat 病毒程序。 Trail 常见服务及端口 80 web 80-89 可能是web 443 ssl心脏滴血漏洞以及一些web漏洞测试 445 smb 1433 mssql 1521 oracle 2082/2083 cpanel主机管理系统登陆&#xff08;国外用的…...

(14)D-FINE网络,爆锤yolo系列

yolo过时了&#xff1f;传统的yolo算法在小目标检测方面总是不行&#xff0c;最新算法DEIM爆锤yolo&#xff0c;已经替yolo解决。 一、创新点 ​ 这个算法名为DEIM&#xff0c;全称是DETR with Improved Matching for Fast Convergence&#xff0c;其主要创新点在于提出了一…...

关于数据流图绘制和使用上的一些个人经验

假设我们需要开发一个项目进度管理系统&#xff0c;在这个项目进度管理系统之中&#xff0c;我们需要开发一个功能&#xff1a;项目成员的列表。我们具有这样的业务需求&#xff1a; 在项目进度管理系统中&#xff0c;我们需要知道参与项目的人员到底有哪些&#xff0c;并且项目…...

Leetcode Hot 100 【二叉树】104. 二叉树的最大深度

104. 二叉树的最大深度 已解答 简单 相关标签 相关企业 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3…...

雅思真题短语梳理(八)

126员工流动率高 high staff turnover 127(多)负担一些工作任务 cover some duties / an increased workload 128不满 feel upset and resentful 129偏向性待遇 preferential treatment 130介入帮忙 step in and help 131切实的好处 tangible benefits 132挽留 staff retention…...

Codeforces Round 993 (Div. 4)个人训练记录

Codeforces Round 993 (Div. 4) 只选择对我有价值的题目记录 E. Insane Problem 题目描述 给定五个整数 k k k&#xff0c; l 1 l_1 l1​&#xff0c; r 1 r_1 r1​&#xff0c; l 2 l_2 l2​ 和 r 2 r_2 r2​&#xff0c;Wave 希望你帮助她计算满足以下所有条件的有序对 …...

java-io流

根据流的方向&#xff1a; 输入流&#xff08;InputStream/Reader&#xff09;&#xff1a;从数据源读取数据到程序中。输出流&#xff08;OutputStream/Writer&#xff09;&#xff1a;将数据从程序写入到目的地。 根据流处理信息的大小&#xff1a; 字节流&#xff08;Byte S…...