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

每日文献(十)——Part two

今天从第四部分 级联RCNN开始介绍。

目录

四、级联RCNN

4.1 级联边界框回归

4.2 级联检测

五、实验结果

5.1 实现细节

5.1.1 基准工作

5.2 质量不匹配

5.3 与迭代bbox和积分损失的比较

5.4 消融实验

5.5 与最先进的方法对比

5.6 泛化能力

5.7 PASCAL VOC数据集结果

六、结论


四、级联RCNN

在本节中,我们将介绍如图3 (d)所示的Cascade RCNN目标检测架构。

4.1 级联边界框回归

如图1 (c)所示,很难要求单个回归量在所有质量水平上完全一致地执行。受级联姿态回归[6]和人脸对齐工作的启发,复杂的回归任务可以分解为一系列更简单的步骤[2,35]。在级联R-CNN中,它被框架为级联回归问题,架构如图3 (d)所示。这依赖于一系列专门的回归器

其中为级联的总级数。注意,级联中的每个回归量都是在到达相应阶段的样本分布{b}而不是{b1}的初始分布的基础上进行优化的。这种级联逐渐改善了假设。

它在几个方面不同于图3 (b)的迭代BBox架构。首先,迭代BBox是一种用于改进边界盒的后处理过程,而级联回归是一种重采样过程,它改变了不同阶段要处理的假设的分布。其次,由于它同时用于训练和推理,因此训练分布和推理分布之间没有差异。第三,针对不同阶段的重采样分布,优化多个专门化回归量{,−1,⋅⋅⋅⋅,1}。这与(2)的单一相反,(2)只对初始分布最优。这些差异使定位比迭代BBox更精确,无需进一步的人工工程。

如3.1节所述,(1)中的Δ=(,,,, <e:1>)需要归一化才能有效地进行多任务学习。在每个回归阶段之后,它们的统计数据将依次发展,如图2所示。在训练时,使用相应的统计量在每个阶段对Δ进行规范化。

4.2 级联检测

如图4左侧所示,初始假设(例如RPN建议)的分布严重倾向于低质量。这不可避免地导致了对高质量分类器的无效学习。级联R-CNN通过依赖级联回归作为重采样机制来解决这个问题。这是因为在图1 (c)中,几乎所有的曲线都位于对角线灰色线之上,也就是说,经过训练的边界框回归器倾向于产生更高IoU的边界盒。因此,从一组示例(,b)开始,级联回归依次重新采样一个IoU较高的示例分布(',b ')。通过这种方式,即使检测器质量(IoU阈值)增加,也可以将连续阶段的正例集保持在大致恒定的大小。图4说明了这一点,在每个重采样步骤之后,分布更倾向于高质量的示例。两个后果随之而来。首先,没有过度拟合,因为在各个层面上都有大量的正例。其次,针对更高的IoU阈值,对较深阶段的检测器进行了优化。请注意,通过增加IoU阈值,一些异常值会被依次删除,如图2所示,从而实现经过更好训练的专用检测器序列。

训练样本的IoU直方图。第一阶段的分布是RPN的输出。红色数字表示高于相应IoU阈值的正百分比。

在每个阶段,R-CNN包括一个分类器<e:1>和一个针对IoU阈值优化的回归器,其中>−1。这是通过最小化损失来学习的

其中b =−1(−1,b−1),是真实值目标,=1是权衡系数,[⋅]是指示函数,是由(3)给出的标记。与(4)的积分损失不同,这保证了一系列有效训练的检测器质量不断提高。在推理时,通过应用相同的级联过程,假设的质量依次得到提高,并且只需要高质量的检测器在高质量的假设上运行。这可以实现高质量的目标检测,如图1 (c)和(d)所示。

五、实验结果

Cascade R-CNN主要在MSCOCO 2017[22]上进行评估,其中包含约118k用于训练的图像,5k用于验证(val),约20k用于不提供注释的测试(test-dev)。co -style Average Precision (AP)在IoU阈值范围从0.5到0.95之间平均AP,间隔为0.05。这些度量度量各种质量的检测性能。所有模型在COCO训练集上进行训练,并在val集上进行评估。最后的结果也报告在测试开发集上。在COCO训练集上进行训练,在val集上进行评估。最后的结果也报告在测试开发集上。

5.1 实现细节

为简单起见,所有回归量都是类不可知论的。cascade - cnn中所有的级联检测阶段都有相同的架构,它是基线检测网络的头部。Cascade R-CNN总共有四个阶段,一个RPN和三个检测阶段={0.5,0.6,0.7},除非另有说明。第一检测阶段的采样如下[13,30]。在接下来的阶段中,重采样是通过简单地使用前一阶段的回归输出来实现的,如第4.2节所示。除标准水平图像翻转外,未使用数据增强。推理是在一个单一的图像尺度上进行的,没有进一步的铃声和口哨。所有基线检测器都使用Caffe[20]重新实现,在相同的代码库上进行公平的比较。

5.1.1 基准工作

为了测试Cascade R-CNN的通用性,实验采用了三种常用的基线检测器:基于VGG-Net[32]的Faster R-CNN、基于ResNet[18]的R-FCN[4]和基于ResNet[18]的FPN[23]。这些基线具有广泛的检测性能。除非特别说明,否则将使用它们的默认设置。采用端到端训练代替多步训练。

Fasrt RCNN

网络头有两个完全连接的层。为了减少参数,我们使用[15]来修剪不太重要的连接。每个完全连接层保留2048个单元,删除掉掉的层。训练以0.002的学习率开始,在60k和90k迭代时减少10倍,并在100k迭代时停止,在2个同步gpu上,每个gpu每次迭代保存4张图像。每张图像使用128个roi。

R-FCN

R-FCN为ResNet增加了一个卷积、一个边界框回归和一个分类层。喀斯喀特R-CNN的所有负责人都有这种结构。未使用在线硬负挖掘[31]。训练以0.003的学习率开始,在160k和240k迭代时学习率降低了10倍,并在280k迭代时停止,在4个同步gpu上,每个gpu每次迭代保存一张图像。每张图像使用256个roi。

FPN

由于FPN没有公开的源代码,我们的实现细节可能会有所不同。使用RoIAlign[16]作为更强的基线。这被标记为FPN+,在所有消融研究中使用。与往常一样,ResNet-50用于消融研究,ResNet-101用于最终检测。训练使用0.005的学习率进行12万次迭代,0.0005的学习率用于接下来的6万次迭代,在8个同步的gpu上,每个gpu每次迭代保存一个图像。每张图像使用256个roi。

5.2 质量不匹配

图5 (a)显示了三个单独训练的检测器的AP曲线,IoU阈值增加={0.5,0.6,0.7}。在低IoU水平下,=0.5的检测器优于=0.6的检测器,但在较高的IoU水平下表现不佳。但是,=0.7的检测器不如其他两个检测器。为了理解为什么会发生这种情况,我们在推理时改变了建议的质量。图5 (b)显示了将真实值边界框添加到建议集时得到的结果。虽然所有检测器都得到了改进,但=0.7的检测器的增益最大,在几乎所有IoU级别上都实现了最佳性能。这些结果提出了两个结论。首先,=0.5不是精确检测的好选择,只是对低质量建议更具鲁棒的。其次,高度精确的检测需要与探测器质量相匹配的假设。接下来,原始检测器建议被更高质量的Cascade R-CNN建议取代(第二阶段和第三阶段建议分别为=0.6和=0.7)。图5 (a)还表明,当测试建议更接近检测器质量时,两个检测器的性能显著提高。

(a)是单独训练的检测器的检测性能,它们有自己的建议(实线曲线)或Cascade R-CNN阶段建议(虚线曲线),(b)是通过向建议集添加真实值来实现的。

在所有级联阶段测试所有Cascade R-CNN探测器产生了类似的观察结果。图6显示,当使用更精确的假设时,每个检测器都得到了改进,而更高质量的检测器具有更大的增益。例如,=0.7的检测器对于第一阶段的低质量建议表现不佳,但对于更深层次的级联阶段中可用的更精确的假设则要好得多。此外,图6中联合训练的检测器优于图5 (a)中单独训练的检测器,即使使用的是相同的建议。这表明检测器在Cascade R-CNN框架内得到了更好的训练。

各级联R-CNN检测器在各级联阶段的检测性能。

5.3 与迭代bbox和积分损失的比较

在本节中,我们将级联R-CNN与迭代BBox和积分损失检测器进行比较。迭代BBox通过三次迭代地应用FPN+基线来实现。积分损失检测器也有三个分类头,分别为U={0.5,0.6,0.7}。

定位:图7 (a)比较了级联回归和迭代BBox的定位性能。对于高IoU假设,使用单一回归量会降低定位性能。当迭代地应用回归量时,这种影响会累积,就像在迭代BBox中一样,并且性能实际上会下降。请注意,迭代BBox在3次迭代后的性能非常差。相反,级联回归器在后期具有更好的性能,在几乎所有IoU水平上都优于迭代BBox。

积分损失:积分损失检测器中所有分类器的检测性能,共享一个回归量,如图7 (b)所示。在所有IoU水平上,分类器=0.6是最好的,而分类器=0.7是最差的。所有分类器的集合没有显示出明显的增益。

从表1可以看出,迭代BBox和积分损耗检测器都略微改善了基线检测器。级联R-CNN在所有评估指标中都具有最佳性能。对于较低的IoU阈值,收益是温和的,但对于较高的IoU阈值,收益是显著的。

(a)为定位比较,(b)为积分损失检测器中单个分类器的检测性能。
与迭代BBox和积分损耗的比较。

5.4 消融实验

通过几个消融实验来分析所提出的级联R-CNN。

阶段对比:表2总结了姐u但表现。注意,由于多阶段多任务学习的好处,第一阶段已经优于基线检测器。更深层次的级联阶段更倾向于高质量的本地化,鼓励学习有助于本地化的功能。通过在各个阶段之间共享特性,这有利于早期的级联阶段。第二阶段大大提高了性能,第三阶段与第二阶段相当。这与积分损失检测器不同,在积分损失检测器中,较高的IoU分类器相对较弱。虽然前(后)阶段在低(高)IoU指标下更好,但所有分类器的集合总体上是最好的。

Cascade R-CNN的舞台表演。1 ~ 3表示集合结果,即给定第三阶段建议的三个分类器概率的平均值。

IoU阈值:对所有头部使用相同的IoU阈值=0.5来训练初步级联R-CNN。在这种情况下,各个阶段的不同之处在于它们接受的假设。每个阶段都使用相应的假设进行训练,即考虑图2的分布。表3的第一行显示了在基线检测器上的级联改进。这表明了优化相应样本分布阶段的重要性。第二行显示,通过增加阶段阈值,检测器可以对接近的假阳性更有选择性,并专门用于更精确的假设,从而获得额外的收益。这支持了第4.2节的结论。

消融实验。“IoU↑”意味着增加IoU阈值,“stat”利用顺序回归统计。

回归统计:利用图2中逐步更新的回归统计,有助于有效地进行分类和回归的多任务学习。通过比较表3中有/没有它的模型,可以看出它的好处。学习对这些统计数据不敏感。

阶段数:阶段数的影响总结于表4。添加第二个检测阶段显著改善了基线检测器。三个检测阶段仍然会产生显著的改进,但是添加第四个阶段(=0.75)会导致性能略有下降。然而,请注意,虽然整体AP性能下降,但四级级联在高IoU级别时具有最佳性能。三级级联实现了最好的折衷。

级联数对R-CNN的影响。

5.5 与最先进的方法对比

表5将基于FPN+和ResNet-101主干网的Cascade R-CNN与最先进的单模型目标探测器进行了比较。设置如5.1.1节所述,但总共运行了280k次训练迭代,在160k和240k次迭代时学习率下降。roi的数量也增加到512个。表5中的第一组检测器为一级检测器,第二组为两级检测器,最后一组为多级检测器(Cascade R-CNN为3级+RPN)。所有比较的最先进的探测器都用=0.5进行训练。值得注意的是,我们的FPN+实现比原来的FPN[23]更好,提供了一个非常强大的基线。此外,从FPN+扩展到Cascade R-CNN,性能提高了约4个点。在所有评估指标下,Cascade R-CNN的表现也大大优于所有单模检测器。这包括COCO挑战赛获胜者的单模型参赛作品(Faster rcn++[18]和G-RMI[19]),以及最近的transformable R-FCN [5], RetinaNet[24]和Mask R-CNN[16]。与COCO上最好的多级检测器AttractioNet[11]相比,尽管它使用了许多增强功能,但香草级联R-CNN仍然比它高出7.1分。请注意,与掩码R-CNN不同,级联R-CNN中没有利用分割信息。最后,普通的单模型Cascade R-CNN也超过了2015年和2016年赢得COCO挑战赛的精心设计的集成探测器(AP分别为37.4和41.6)1。

最先进的单模型探测器在COCO测试开发。用“*”表示的条目在推理时使用了铃声和口哨。

5.6 泛化能力

三种基线检测器的三级级联R-CNN比较见表6。所有设置如上所述,仅对FPN+进行了第5.5节的更改。

检测性能:同样,我们的实现比原始检测器更好[30,4,23]。尽管如此,Cascade R-CNN在这些基线上持续提高了2 ~ 4个点,与它们的强度无关。这些收益在val和测试开发上也是一致的。这些结果表明级联R-CNN广泛适用于各种检测器架构。

参数和时序:级联RCNN参数的数量随着级联级数的增加而增加。基线检测器头的参数数呈线性增长。此外,由于与RPN相比,检测头的计算成本通常较小,因此Cascade R-CNN在训练和测试时的计算开销都很小。

5.7 PASCAL VOC数据集结果

在PASCAL VOC数据集[8]上进一步对Cascade R-CNN进行了实验。随后[30,25],对模型进行VOC2007和VOC2012训练,并进行VOC2007测试。更快的R-CNN(与AlexNet和VGG-Net)和R-FCN(与ResNet)进行了测试。训练细节与5.1.1节相似,AlexNet也被修剪。由于本文的目标是探索高质量的检测,我们使用了COCO度量进行评估2。表7的检测结果表明,Cascade R-CNN在PASCAL VOC上也比多种检测架构有了显著的改进。这些增强了我们对Cascade R-CNN的鲁棒性的信念。

PASCAL VOC 2007检测结果。

六、结论

在本文中,我们提出了一个多级目标检测框架,Cascade R-CNN,用于设计高质量的目标检测器。这种结构被证明可以避免训练时的过拟合和推理时的质量不匹配的问题。Cascade R-CNN在具有挑战性的COCO和流行的PASCAL VOC数据集上的可靠和一致的检测改进表明,需要对各种并发因素进行建模和理解,以推进目标检测。层叠RCNN被证明适用于许多目标检测体系结构。我们相信它对许多未来的目标检测研究工作是有用的。

相关文章:

每日文献(十)——Part two

今天从第四部分 级联RCNN开始介绍。 目录 四、级联RCNN 4.1 级联边界框回归 4.2 级联检测 五、实验结果 5.1 实现细节 5.1.1 基准工作 5.2 质量不匹配 5.3 与迭代bbox和积分损失的比较 5.4 消融实验 5.5 与最先进的方法对比 5.6 泛化能力 5.7 PASCAL VOC数据集结果…...

8.3.1 MenuStrip(菜单)控件

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的 MenuStrip控件提供了程序窗体的主菜单&#xff0c;即显示于窗体顶端部分的菜单。 MenuStrip常用属性&#xff1a; ImageScalingSize…...

仿真每日一练 | ABAQUS子程序DLOAD

ABAQUS中用户子程序DLOAD可用于定义分布载荷幅值随坐标、时间、单元编号、积分点编号等的变化&#xff0c;该功能主要应用于定义复杂的载荷工况&#xff0c;今天给大家举一个简单的例子介绍其使用方式&#xff1a; 图1 模型认识 回顾一下ABAQUS的有限元分析流程&#xff1a; 图…...

Kubernetes(k8s)-备份Etcd介绍

作者介绍&#xff1a;简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们上一章介绍了Docker基本情况&#xff0c;目前在规模较大的容器集群基本都是Kubernetes&#xff0c;但是K…...

[leetcode]求最大公约数和最小公倍数(gcd和lcm算法)

求最大公约数和最小公倍数 Coding : 使用C的库 #include<iostream> #include<algorithm> using namespace std; int main() { int a, b; cout << "cin a and b of gcd : "; cin >> a >> b; int res __gcd(a, b);…...

B-tree 的原理源码分析及应用场景等

B-tree&#xff08;B树&#xff09;是一种自平衡的多路搜索树&#xff0c;广泛用于文件系统、数据库索引、键值存储系统等对大规模数据的高效插入、查找和删除有高要求的场景。相比于二叉搜索树&#xff08;BST&#xff09;&#xff0c;B-tree 可以减少磁盘I/O次数&#xff0c;…...

MySQL 中的聚簇索引和非聚簇索引有什么区别?

MySQL 中的聚簇索引和非聚簇索引有什么区别&#xff1f; 1. 从不同存储引擎去考虑 在MySIAM存储引擎中&#xff0c;索引和数据是分开存储的&#xff0c;包括主键索引在内的所有索引都是“非聚簇”的&#xff0c;每个索引的叶子节点存储的是数据记录的物理地址&#xff08;指针…...

重构居家养老安全网:从 “被动响应” 到 “主动守护”

随着全球老龄化加剧&#xff0c;居家养老安全成为社会关注的核心议题。 传统养老模式依赖人工巡检或单一传感器&#xff0c;存在响应滞后、隐私泄露、场景覆盖不足等问题。 由此智绅科技应运而生&#xff0c;七彩喜智慧养老系统构筑居家养老安全网。 而物联网&#xff08;Io…...

从静态绑定驱动模型到现代设备模型 —— 一次驱动架构的进化之旅

&#x1f50d; B站相应的视屏教程&#xff1a; &#x1f4cc; 内核&#xff1a;博文视频 - 从静态绑定驱动模型到现代设备模型 在 Linux 内核的发展历程中&#xff0c;设备驱动结构经历了从"硬编码 手动注册"的早期实现方式&#xff0c;到"设备模型统一管理&qu…...

MySQL学习笔记十五

第十七章组合查询 17.1组合查询 MySQL允许执行多个查询&#xff08;多条SELECT语句&#xff09;&#xff0c;并将结果作为单个查询结果集返回。这些组合查询通常称为并&#xff08;union&#xff09;或复合查询&#xff08;compound query&#xff09;。 以下几种情况需要使…...

NLP基础知识 与 词向量的转化方法 发展

目录 1.NLP 基础知识点 为什么需要自然语言处理? 自然语言处理有哪些分类? 自然语言处理有哪些实际应用? 为什么需要自然语言处理? 自然语言处理有哪些分类? 自然语言处理有哪些实际应用? 自然语言处理的技术/工作原理是什么? 2.NLP文本转化为词向量的方法 2…...

VectorBT量化入门系列:第四章 高级策略开发与优化

VectorBT量化入门系列&#xff1a;第四章 高级策略开发与优化 本教程专为中高级开发者设计&#xff0c;系统讲解VectorBT技术在量化交易中的应用。通过结合Tushare数据源和TA-Lib技术指标&#xff0c;深度探索策略开发、回测优化与风险评估的核心方法。从数据获取到策略部署&am…...

JVM虚拟机篇(七):JVM垃圾回收器全面解析与G1深度探秘及四种引用详解

JVM垃圾回收器全面解析与G1深度探秘及四种引用详解 JVM虚拟机&#xff08;七&#xff09;&#xff1a;JVM垃圾回收器全面解析与G1深度探秘及四种引用详解一、JVM有哪些垃圾回收器1. Serial回收器2. ParNew回收器3. Parallel Scavenge回收器4. Serial Old回收器5. Parallel Old回…...

【蓝桥杯】15届JAVA研究生组F回文字符串

一、思路 1.这题去年考的时候想的是使用全排列进行尝试&#xff0c;实际不用这么麻烦&#xff0c;只用找到第一个和最后一个非特殊字符串的位置&#xff0c;然后分别向内检查是否对称&#xff0c;向外检查是否对称直到左指针小于0(可以通过添加使其对称) 2.至于如何找到第一个…...

TDengine 语言连接器(Python )

简介 taospy 是 TDengine 数据库面向 Python 语言提供的官方连接器&#xff0c;连接器对外提供对数据库写入、查询、订阅等多种访问接口。 安装连接器命令如下&#xff1a; # 原生连接和 REST 连接 pip3 install taospy# WebSocket 连接&#xff0c;可选装 pip3 install tao…...

Android compose源码浅析——Modifier

Modifier浅析 Modifier的使用foldOutfoldInanyall总结Modifier的使用 先来一段代码1: @Preview(showBackground = true) @Composable fun GreetingPreview() {ComposeTestTheme {Box(modifier = Modifier.size(DpSize(Dp(100f),Dp(100f))).padding(Dp(10f)).background(Colo…...

基于机器视觉的多孔零件边缘缺陷检测(源码C++、opencv、凸包、凸缺陷检测)

&#x1f451;主页&#xff1a;吾名招财 &#x1f453;简介&#xff1a;工科学硕&#xff0c;研究方向机器视觉&#xff0c;爱好较广泛… ​&#x1f4ab;签名&#xff1a;面朝大海&#xff0c;春暖花开&#xff01; 基于机器视觉的多孔零件边缘缺陷检测&#xff08;源码C、ope…...

JAVAWeb_Servlet:前置准备与理论简易介绍

要写JAVA_Web&#xff1a;首先就得建个项目——如何在Eclipse新建一个Web项目-CSDN博客 然后我们考虑具体的代码细节&#xff08;接下来就是我们的前置准备&#xff09; 一、导包&#xff1a; 在 Eclipse 中&#xff0c;如果需要快速导入缺失的包&#xff08;例如&#xff0…...

反射 tcp

反射 临时越过权限 获取成员变量1并进行修改 成员方法 TCP客户端...

UML综合实验四

1. 计算机包含内存(RAM)、CPU等硬件设备&#xff0c;根据下面的“产品等级结构-产品族”示意图&#xff0c;使用抽象工厂模式实现计算机设备创建过程并绘制相应的类图。 2. 电脑组装工厂可以将CPU、内存、硬盘、主机、显示器等硬件设备组装在一起构成一台完整的电脑&#xff0c…...

<《AI大模型应知应会100篇》第8篇:大模型的知识获取方式及其局限性

第8篇&#xff1a;大模型的知识获取方式及其局限性 摘要 大模型&#xff08;如GPT、BERT、Qwen、DeepSeek等&#xff09;凭借其卓越的自然语言处理能力&#xff0c;已经成为人工智能领域的明星。然而&#xff0c;这些模型“知道”什么&#xff1f;它们如何获取知识&#xff1f…...

【回眸】Linux 内核 (十六) 之 多线程编程 下

前言 前面介绍了互斥锁&#xff0c;本篇博文介绍死锁及其他多线程遇到的情况。 什么情况会造成死锁 死锁指的是两个或两个以上的运算单元&#xff08;进程、线程或协程&#xff09;&#xff0c;互相持有对方所需的资源&#xff0c;导致它们都无法向前推进&#xff0c;从而导…...

学习笔记083——Java Stream API

文章目录 1、过滤数据 filter()2、转换元素 map()3、排序 sorted()3.1、自定义排序规则 4、去重 distinct()5、限制元素数量 limit()6、收集结果 collect()6.1、收集为List6.2、收集为Set6.3、转为Map6.4、基本用法&#xff08;注意键冲突会抛异常&#xff09;6.5、处理键冲突&…...

逍遥模拟器ARM过检测技术全解析

逍遥模拟器ARM框架安装magisk和修改设备型号隐藏应用隐藏root过检测 逍遥模拟器ARMmagisk改设备型号隐藏应用隐藏root 引言 逍遥模拟器以其出色的性能和丰富的功能&#xff0c;深受广大用户喜爱&#xff0c;让用户能在电脑上轻松运行各类安卓应用和游戏。然而&#xff0c;为保…...

Easysearch VS Opensearch 数据写入与存储性能对比

本文记录 Easysearch 和 Opensearch 数据写入和数据存储方面的性能对比。 准备 压测工具&#xff1a;INFINI Loadgen 对比版本&#xff1a; Easysearch 1.11.1&#xff08;lucene 8.11.4&#xff09;Opensearch 2.19.1&#xff08;lucene 9.12.1&#xff09; 节点 JVM 配置…...

C++中STL学习(一)——向量、栈、堆、集合

#include “bits/stdc.h” using namespace std; int main() { // -------------------- 1、向量vector&#xff1a;可以替换数组&#xff0c;不需要事先指定长度 // ------------------------- vector arr; // 构建int数组 vector arr1(100); // 构建初始长度100的int向量 ve…...

柑橘病虫害图像分类数据集OrangeFruitDataset-8600

文章目录 1. 前言2. 数据类别介绍3. 数据集地址 1. 前言 柑橘&#xff0c;作为水果界的 “宠儿”&#xff0c;不仅以其酸甜可口的味道深受大众喜爱&#xff0c;更是在全球水果产业中占据着举足轻重的地位。无论是早餐中的一杯橙汁&#xff0c;还是下午茶里的柑橘甜点&#xff…...

leetcode刷题-单调栈

代码随想录单调栈|739. 每日温度、496.下一个更大元素 I、503.下一个更大元素II、42. 接雨水、84.柱状图中最大的矩形 739. 每日温度496.下一个更大元素 I503.下一个更大元素II42. 接雨水 -- 面试常考题84.柱状图中最大的矩形 739. 每日温度 leetcode题目链接 代码随想录文档讲…...

【设计模式】访问者模式

**简介 假设你有一个购物车&#xff08;对象结构&#xff09;&#xff0c;里面有多种商品&#xff08;元素&#xff09;&#xff0c;如苹果、牛奶、书籍。每个商品的计价规则不同&#xff1a; 水果按重量计价牛奶按数量计价书籍按固定价格计价 现在需要实现两种功能&#xff1…...

【ISP】ISP pipeline(AI)

ISP Pipeline 全流程概览 ISP&#xff08;Image Signal Processing&#xff0c;图像信号处理&#xff09;流程通常从原始 Bayer 数据出发&#xff0c;经过一系列模块处理&#xff0c;逐步完成图像校正和增强&#xff0c;最终生成用于显示或编码的标准图像。常见处理模块包括&a…...

【设计模式】模板模式

简介 假设你要冲泡咖啡和茶&#xff0c;两者的流程相似但部分步骤不同&#xff1a; 烧水&#xff08;公共步骤&#xff09;加入主材料&#xff08;咖啡粉/茶叶&#xff09;添加调料&#xff08;糖/牛奶&#xff09;→ 可选步骤倒进杯子&#xff08;公共步骤&#xff09; 模板…...

GDB调试程序的基本命令和用法(Qt程序为例)

1. 引言 GDB&#xff08;GNU Debugger&#xff09;是一个强大的命令行调试工具&#xff0c;它可以帮助开发者在程序运行时查找和修复错误。当调试Qt程序时&#xff0c;GDB同样适用&#xff0c;并且能够帮助开发者定位诸如数组越界挂死等复杂问题。 2. 基本命令 2.1 启动GDB …...

vue3腾讯云直播 前端推流

1、在index.html文件中引入&#xff08;在body体中&#xff09; <script src"https://video.sdk.qcloudecdn.com/web/TXLivePusher-2.1.1.min.js" charset"utf-8"></script> 2、vue文件中&#xff0c;添加video推流&#xff08;我用的推流地…...

DP_AUX辅助通道介绍

DisplayPort&#xff08;简称DP&#xff09;是一个由PC及芯片制造商联盟开发&#xff0c;视频电子标准协会&#xff08;VESA&#xff09;标准化的数字式视频接口标准。该接口免认证、免授权金&#xff0c;主要用于视频源与显示器等设备的连接&#xff0c;并也支持携带音频、USB…...

【微机及接口技术】- 第九章 串行通信与串行接口(下)

文章目录 第二节 串行通信协议一、异步串行通信协议二、同步串行通信协议 第三节 串行接口标准RS-232C一、RS-232C信号线定义二、电气特性 第四节 可编程串行接口芯片8251A一、基本性能二、内部结构三、外部引脚功能1. 同CPU的连接信号2. MODEM控制信号&#xff08;4个&#xf…...

人形机器人制造—3D打印推动微型化与轻量化设计

在人形机器人仿生架构的构建中&#xff0c;多模态传感器集群与仿生关节矩阵的拓扑融合&#xff0c;正催生第三代具身智能的力学革命。通过分布式触觉薄膜、双目视觉惯性测量单元&#xff08;200Hz采样率&#xff09;与肌电模拟传感器的三重耦合&#xff0c;机器人获得了超越人类…...

前端性能优化高频面试题解析与实战指南(2025版)

一、前端性能优化核心面试题汇总 1. 浏览器加载优化相关问题 Q1&#xff1a;浏览器从输入URL到页面渲染的完整流程中&#xff0c;有哪些关键性能节点&#xff1f; 核心流程&#xff1a;DNS解析 → TCP连接&#xff08;TLS握手&#xff09;→ HTTP请求 → 资源下载 → 解析HT…...

【教程】xrdp修改远程桌面环境为xfce4

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 xfce4 vs GNOME对比 配置教程 1. 安装 xfce4 桌面环境 2. 安装 xrdp 3. 配置 xrdp 使用 xfce4 4. 重启 xrdp 服务 5. 配置防火墙&#xff…...

递增子序列

递增子序列 难点&#xff1a; 结果集如何加&#xff1a;每次进入递归都判断是否sub中的个数>2&#xff1b;不允许对数组排序&#xff0c;如何在每层去重&#xff1a;不可以再用nums[i] nums[i-1]&#xff08;没有意义&#xff0c;重复的元素不一定挨着&#xff09;&#x…...

Linux磁盘管理双雄:lsblk与df深度解析

在Linux系统管理的日常工作里&#xff0c;磁盘管理占据着极为重要的地位&#xff0c;这里重点介绍lsblk和df这两个命令。 一、lsblk命令&#xff1a;呈现磁盘物理架构 lsblk是用于罗列块设备信息的实用命令&#xff0c;它以直观的树状结构呈现系统中的块设备&#xff0c;帮助…...

C#里设计Modbus-RTU(Remote Terminal Unit)协议

Modbus-RTU(Remote Terminal Unit)是一种串行通信协议,广泛用于工业自动化领域,支持主从式(Master-Slave)通信架构。它是Modbus协议的两种传输模式之一(另一种是ASCII模式),具有高效、简洁、可靠性强的特点,常用于RS-485或RS-232物理层通信。 核心特性 物理层 通常基…...

spark学习内容总结

Spark运行架构总结 一、核心结构 Spark框架的核心是一个计算引擎&#xff0c;整体采用标准的master-slave结构。其中&#xff0c;Driver作为master&#xff0c;负责管理整个集群中的作业任务调度&#xff1b;Executor作为slave&#xff0c;负责实际执行任务。 二、核心组件 ‌…...

MySQL多表查询、事务与索引的实践与应用

摘要&#xff1a;本文围绕MySQL数据库操作展开&#xff0c;通过构建部门与员工管理、餐饮业务相关的数据库表&#xff0c;并填充测试数据&#xff0c;系统地阐述了多表查询的多种方式&#xff0c;包括内连接、外连接和不同类型的子查询&#xff0c;同时介绍了事务的处理以及索引…...

MySQL【8.0.41版】安装详细教程--无需手动配置环境

一、MySQL 介绍 1. 概述 MySQL 是一个开源的关系型数据库管理系统&#xff0c;由瑞典公司 MySQL AB 开发&#xff0c;现属于 Oracle 旗下。它基于 SQL&#xff08;结构化查询语言&#xff09;进行数据管理&#xff0c;支持多用户、多线程操作&#xff0c;广泛应用于 Web 应用、…...

FRP练手:hello,world实现

方案一&#xff1a;使用 Flask&#xff08;推荐&#xff09; from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return "你好啊世界"if __name__ __main__:# 监听所有网络接口&#xff08;0.0.0.0&#xff09;&#xff0c;端口 3344app.…...

Mysql | 主从复制的工作机制

主从复制的工作机制 Mysql的主从复制 从库主要是读取主库的binlog日志来完成数据同步的, binlog中存储了对数据库所有修改SQL的语句。 首先Master开启BinLog二进制的写入。Slave从库通过ip、port、账号、密码链接到Master主数据库&#xff0c;链接成功后从库会向主数据库获取B…...

清明之后叙

经历了漫长的冬季&#xff0c;春天的脚步近了&#xff0c;要说讲这一年的开始&#xff0c;绝大数人说是从春季&#xff0c;但是我说应该是从冬季开始&#xff0c;中国传统讲冬至是一阳生&#xff0c;冬季收藏好了&#xff0c;开始收敛精气&#xff0c;养精蓄锐&#xff0c;好好…...

Docker新型容器镜像构建技术,如何正确高效的编写Dockerfile

一、容器与容器镜像之间的关系 说到Docker管理的容器不得不说容器镜像&#xff0c;主要因为容器镜像是容器模板&#xff0c;通过容器镜像我们才能快速创建容器。 如下图所示&#xff1a; Docker Daemon通过容器镜像创建容器。 二、容器镜像分类 操作系统类 CentOSUbuntu在do…...

Starrocks的Bitmap索引和Bloom filter索引以及全局字典

写这个的主要作用是梳理一下Starrocks的索引效率以及使用场景。 Starrocks Bitmap索引 原理&#xff1a; Bitmap 索引是一种使用 bitmap 的特殊数据库索引。bitmap 即为一个 bit 数组&#xff0c;一个 bit 的取值有两种&#xff1a;0 或 1。 每一个 bit 对应数据表中的一行&…...

从 0 到上线:Java 项目打包 Docker 镜像全流程实战

&#x1f4d6; 摘要 本文是一份超详细的Java项目Docker化实战手册&#xff0c;从环境准备到最终上线&#xff0c;手把手带你完成整个容器化部署流程。你将学会&#xff1a; Docker基础概念与核心原理如何为Java项目编写高效的Dockerfile多阶段构建优化镜像体积镜像推送与容器…...