[论文阅读]YOLOV1:You Only Look Once:Unified, Real-Time Object Detection

news2024/11/24 22:36:31

摘要

我们提出了YOLO,一种新的目标检测方法。之前的目标检测工作重新使用分类器来执行检测。相反,我们将目标检测表述为空间分离的边界框和相关类概率的回归问题。单个神经网络在一次评估中直接从完整图像中预测边界框和类别概率。由于整个检测管道是一个单一的网络,因此可以直接对检测性能进行端到端的优化。
我们的统一架构非常快。我们的基础的
YOLO模型以每秒45帧的速度实时处理图像。该网络的一个更小版本,Fasr YOLO,每秒处理的图片达到惊人的155帧,同时mAP仍然达到其他实时探测器的两倍。与最先进的检测系统相比,YOLO会产生更多的定位错误,但更少的可能预测背景假阳性。最后,YOLO学习了对象的非常普遍的表示。当从自然图像推广到其他领域(如艺术品)时,它优于包括DPM和R-CNN的其他检测方法。

1.简介

人类瞥一眼图像,立即知道图像中有什么物体,它们在哪里,以及它们是如何相互作用的。人类的视觉系统快速而准确,使我们能够在很低的意识参与的情况下完成复杂的任务,比如开车。快速、准确的目标检测算法将允许计算机在没有专门传感器的情况下驾驶汽车,使辅助设备能够向人类用户传递实时场景信息,并释放通用、响应式机器人系统的潜力。
当前的检测系统重新使用分类器来执行检测。为了检测一个对象,这些系统采用一个分类器来对该对象分类,并在测试图像的不同位置和尺度上对其进行评估。可变形部件模型(DPM)等系统使用滑动窗口方法,其分类器在整个图像上均匀间隔的位置运行。
最近的一些方法例如R-CNN首先使用区域候选方法来在图片中生成潜在的边界框,然后再这些候选框上运行分类器。分类后进行后处理,对边界框进行细化,消除重复检测,并根据场景中其他物体对边界框进行重新定位。这些复杂的过程运行缓慢且难以优化,因为每个单独的组件必须要单独训练。
我们将目标检测重构为一个单一的回归问题,直接从图像像素到边界框坐标和类概率。使用我们的系统,你只需要看一次(YOLO)图像,就可以预测什么物体存在以及它们在哪里。
在这里插入图片描述

YOLO非常简单:如图一所示。单个卷积网络同时预测多个边界框和这些框的类概率。YOLO在完整图像上进行训练,并直接优化检测性能。与传统的目标检测方法相比,这种端到端的模型有几个优点。
首先,YOLO相当快,因为我们把检测作为一个回归问题,我们不需要一个复杂的检测流程。我们只需在测试时在新图像上运行神经网络来预测检测结果。我们的基本网络在Titan X GPU上没有批处理以每秒45帧的速度运行,
再快速版本中运行速度超过150 fps。这意味着我们可以实时处理流媒体视频,延迟不到25毫秒。此外,YOLO的平均精度是其他实时系统的两倍以上。有关我们的系统在网络摄像头上实时运行的演示,请参阅我们的项目网页:http://pjreddie.com/yolo/.
其次,YOLO在进行预测的时候是基于图像全局。与滑动窗口和基于区域候选的技术不同,YOLO在训练和测试期间看到整个图像,因此它隐式地编码有关类及其外观的上下文信息。Fast R-CNN是一种顶部检测方法,由于其无法看到更大的上下文,它会将图像中的背景斑块误认为是物体。与Fast R-CNN相比,YOLO的背景错误不到一半。
第三,YOLO学习对象的一般化表示。当在自然图像上进行训练并在艺术品上进行测试时,YOLO的性能远远超过DPM和R-CNN等顶级检测方法。由于YOLO的高通用性,因此在应用于新领域或未知输入时不太可能出现故障。
YOLO在精度上仍然落后于最先进的探测系统。虽然它可以快速识别图像中的物体,但很难精确定位某些物体,尤其是小物体。我们在实验中进一步考察了这些权衡。
我们所有的培训和测试代码都是开源的。各种预训练的模型也可以下载。

2.统一的检测

我们将目标检测的独立组件统一到一个单一的神经网络中。我们的网络使用整个图像的特征来预测每个边界框。它还可以同时预测图像的所有类的所有边界框。这意味着我们的网络对整个图像和图像中的所有对象进行全局推理。YOLO的设计在实现端到端训练和实时速度的同时保持高平均精度。
我们的系统将输入图像分成 S × S S \times S S×Sge 网格。如果一个物体的中心落在一个网格单元中,这个网格单元负责检测这个物体。
每个网格单元预测B个边界框和这些框的置信度得分。这些置信度分数反映了模型对边界框中有一个物体有多自信,以及它认为它所预测的盒子有多准确。形式上,我们将置信度定义为 P r ( O b j e c t ) × I O U p r e d t r u t h Pr(Object) \times IOU^{truth}_{pred} Pr(Object)×IOUpredtruth。如果该单元格中不存在对象,则置信度分数应为零。如果存在,置信度分数应该等于预测框与真实框之间的交集。
每个边界框由5个预测值组成:x, y, w, h和置信度。(x, y)坐标表示相对于网格单元边界的框的中心。宽度和高度是相对于整个图像预测的。最后,置信度预测表示预测框与任何真实框之间的IOU。每个网格单元也预测C个条件类概率, P r ( C l a s s i ∣ O b j e c t ) Pr(Class_i|Object) Pr(ClassiObject).这些概率取决于包含对象的网格单元。无论边界框B的数量如何,我们只预测每个网格单元的一组分类概率。
在测试时,我们将条件类概率和单个边界框的置信度预测相乘,

P r ( C l a s s i ∣ O b j e c t ) ∗ P r ( O b j e c t ) ∗ I O U p r e d t r u e = P r ( C l a s s i ) ∗ I O U p r e d t r u t h Pr(Class_i|Object)*Pr(Object)*IOU^{true}_{pred}=Pr(Class_i)*IOU^{truth}_{pred} Pr(ClassiObject)Pr(Object)IOUpredtrue=Pr(Classi)IOUpredtruth(1)

它为我们提供了每个盒子的特定类别的置信度分数。这些分数编码了该类别出现在框中的概率以及预测框与该对象的匹配程度。
在这里插入图片描述
对于PASCAL VOC的YOLO评估,我们使用S = 7,B = 2。PASCAL VOC有20个标签类,所以C = 20。我们最终的预测是一个7 × 7 × 30的张量。

2.1网络设计

我们将该模型实现为卷积神经网络,并在PASCAL VOC检测数据集上对其进行了评估。网络的初始卷积层从图像中提取特征,而全连接层预测输出概率和坐标。我们的网络架构受到了用于图像分类的GoogLeNet模型的启发。我们的网络有24个卷积层,后面是2个全连接层。我们没有使用GoogLeNet使用的inception模块,而是简单地使用1 × 1reduction层,然后是3 × 3卷积层,类似于Lin等人。完整的网络如图3所示。
在这里插入图片描述
我们还训练了一个快速版本的YOLO,旨在推动快速目标检测的界限。快速YOLO使用了一个卷积层更少的神经网络(9层而不是24层),这些层中的过滤器更少。除了网络的大小,YOLO和Fast YOLO的所有训练和测试参数都是相同的。
我们网络的最终输出是7 × 7 × 30的预测张量。

2.2训练

我们在ImageNet1000类比赛数据集上预训练卷积层。对于预训练,我们使用图3中的前20个卷积层,然后是平均池化层和全连接层。我们对这个网络进行了大约一周的训练,并在ImageNet 2012验证集上实现了单个批次前5名准确率达到88%,与Caffe的模型动物园中的GoogLeNet模型相当。我们使用DarkNet框架进行所有的训练和推理。
然后我们将模型转换为执行检测。Ren等人表明,在预训练网络中同时添加卷积层和连接层可以提高性能。按照他们的例子,我们添加了四个卷积层和两个随机初始化权重的完全连接层。检测通常需要细粒度的视觉信息,因此我们将网络的输入分辨率从224 × 224提高到448 × 448。
最后一层预测类概率和边界框坐标。我们通过图像的宽度和高度对边界框的宽度和高度进行标准化,使它们落在0和1之间。我们将边界框的x和y坐标参数化为特定网格单元格位置的偏移量,因此它们也被限定在0和1之间。
我们对最后一层使用线性激活函数,所有其他层使用以下漏整流线性激活:
在这里插入图片描述
我们对模型输出中的平方和误差进行了优化。我们使用平方和误差,因为它很容易优化,但它并不完全符合我们最大化平均精度的目标。它将定位误差与分类误差等同地加权,这可能不是理想的。此外,在每张图像中,许多网格单元不包含任何对象。这使得这些单元格的“置信度”得分趋近于零,往往压倒了包含对象的单元格的梯度。这可能导致模型不稳定,导致训练在早期出现分歧。
为了解决这个问题,我们增加了边界框坐标预测的损失,减少了不包含对象的框的置信度预测的损失。我们使用两个参数, λ c o o r d λ_{coord} λcoord λ n o o b j λ_{noobj} λnoobj来实现这一点。设 λ c o o r d = 5 λ_{coord}=5 λcoord=5 λ n o o b j = . 5 λ_{noobj}=.5 λnoobj=.5
平方和误差在大边界框和小边界框中的权重也相等。我们的误差度量应该反映出大盒子里的小偏差比小盒子里的小偏差影响小。为了部分解决这个问题,我们预测边界框宽度和高度的平方根,而不是直接预测宽度和高度。
YOLO预测每个网格单元格有多个边界框。在训练时,我们只希望一个边界框预测器负责一个对象。我们指定一个预测器“负责”预测一个对象,基于哪个预测具有当前的最高IOU。这会导致边界框预测器之间的专门化。每个预测器在预测特定尺寸、长宽比或物体类别方面都做得更好,从而提高了整体召回率。
训练过程中我们优化如下,多部分损失函数:
在这里插入图片描述
其中, 1 i o b j \Bbb {1}^{obj}_i 1iobj表示目标是否出现在cell i i i中, 1 i j o b j \Bbb {1}^{obj}_{ij} 1ijobj表示cell i中的第j个边界框预测器负责这个预测。
请注意,损失函数只在对象出现在该网格单元中时惩罚分类错误(因此前面讨论了条件类概率)。它也只惩罚边界框坐标误差,如果预测器是对真值"负责"。
我们在PASCAL VOC 2007和PASCAL VOC 2012的训练和验证数据集上训练了大约135个epoch。在PASCAL VOC2012数据上测试时,我们还把VOC 2007的测试数据也用于训练。在整个训练过程中,我们使用批大小为64,动量为0.9,衰减为0.0005。
我们的学习率计划如下:对于第一个epoch,我们缓慢地将学习率从 1 0 − 3 10^{−3} 103提高到 1 0 − 2 10^{−2} 102。如果我们从一个高学习率开始,我们的模型经常由于不稳定的梯度而发散。我们继续用 1 0 − 2 10^{−2} 102训练75次,然后用 1 0 − 3 10^{−3} 103训练30次,最后用 1 0 − 4 10^{−4} 104训练30次。
为了避免过拟合,我们使用dropout和广泛的数据增强。在第一个连接层之后,参数为0.5的dropout层阻止了层与层之间的相互适应。对于数据增强,我们引入了最大是原始图像20%的随机缩放和平移。我们还在HSV色彩空间中随机调整图像的曝光和饱和度,最高可达1.5倍。

2.3 推理

就像在训练中一样,预测测试图像的检测只需要一次网络评估。在PASCAL VOC上,该网络预测每张图像的98个边界框和每个框的类概率。YOLO在测试时非常快,因为不像基于分类器的方法,它只需要一次评估。
网格设计在边界框预测中加强了空间多样性。通常情况下,一个对象落在哪个网格单元是很清楚的,网络只预测每个对象的一个框。然而,一些较大的物体或靠近多个单元边界的物体可以被多个单元很好地定位。非极大抑制可以用来修正这些多重检测。虽然不像R-CNN或DPM那样对性能十分挑剔,但非最大抑制会增加2-3%的mAP。

2.4 YOLO的局限性

YOLO对边界框预测施加了很强的空间约束,因为每个网格单元只能预测两个框,并且只能有一个类。这个空间约束限制了我们的模型可以预测相邻物体的数量。我们的模型难以处理成群出现的小物体,比如鸟群。
由于我们的模型学习从数据中预测边界框,它很难推广到新的或不寻常的长宽比或配置的对象。我们的模型还使用相对粗糙的特征来预测边界框,因为我们的架构从输入图像中有多个下采样层。
最后,当我们在近似检测性能的损失函数上进行训练时,我们的损失函数对待小边界框和大边界框的错误是相同的。大边界框里的小错误通常是无关紧要的,但小边界框里的小错误对IOU的影响要大得多。我们的主要错误来源是不正确的定位。

3.与其他检测系统的比较

目标检测是计算机视觉中的一个核心问题。检测管道通常从输入图像中提取一组鲁棒特征开始 (Haar , SIFT ,HOG , convolutional features ).。然后,分类器或定位器被用来识别特征空间中的对象。这些分类器或定位器以滑动窗口的方式要么在整个图像要么在图像中的某些区域子集上运行。我们将YOLO检测系统与几个顶级检测框架进行了比较,突出了关键的相似性和差异性。
**Deformable parts models。**可变形零件模型(DPM)采用滑动窗口方法对目标进行检测。DPM使用一个不连续的管道来提取静态特征,对区域进行分类,预测高分区域的边界框等。我们的系统用一个卷积神经网络取代了所有这些不同的部分。该网络同时执行特征提取、边界框预测、非极大抑制和上下文推理。该网络不是静态特征,而是在线训练特征并针对检测任务对其进行优化。我们的统一架构带来了比DPM更快、更准确的模型。
R-CNN
R-CNN及其变体使用区域建议而不是滑动窗口来查找图像中的对象。用选择性
搜索来生成潜在的边界框,用卷积网络提取特征,用支持向量机对边界框进行评分,用线性模型调整边界框,用非极大抑制消除重复检测。这个复杂管道的每个阶段都必须精确地独立调整,因此生成的系统非常慢,在测试时每个图像需要40多秒。
YOLO与R-CNN有一些相似之处。每个网格单元提出潜在的边界框,并使用卷积特征对这些框进行评分。然而,我们的系统对网格单元候选区施加了空间约束,这有助于减少对同一目标的多次检测。我们的系统提出的边界框也少得多,每张图像只有98个,而选择性搜索大约有2000个。最后,我们的系统将这些单独的组件组合成一个单一的、共同优化的模型。
其他快速检测器
Fast 和Faster R-CNN专注于通过共享计算和使用神经网络提出候选区域而不是选择性搜索来加速R-CNN框架。虽然它们在速度和准确性上都比R-CNN有所提高,但两者的实时性仍然不足。
许多研究工作都集中在加快DPM流程上。它们加速HOG计算,使用级联,并将计算放在gpu上。然而,实际上只有30Hz DPM是实时运行的。YOLO不是试图优化大型检测管道的单个组件,而是完全抛弃之前的管道,并且通过设计使得运行很快。
单个类(如人脸或人)的检测器可以高度优化,因为它们必须处理的变量要少得多。YOLO是一个通用的检测器,学习同时检测各种物体。
Deep MultiBox
与R-CNN不同,Szegedy等人训练卷积神经网络来预测感兴趣区域而不是使用选择性搜索。MultiBox还可以通过用单个类预测代替置信度预测来执行单个对象检测。然而,MultiBox不能进行通用的目标检测,仍然只是更大的检测管道中的一部分,需要进一步的图像块分类。YOLO和MultiBox都使用卷积网络来预测图像中的边界框,但YOLO是一个完整的检测系统。
OverFeat
Sermanet等人训练卷积神经网络来执行定位,并调整该定位器来执行检测。OverFeat可以有效地进行滑动窗口检测,但仍然不是一个连续的系统。OverFeat优化的是定位,而不是检测性能。与DPM一样,定位器在进行预测时只看到局部信息。OverFeat不能对全局环境进行推理,因此需要大量的后处理来产生连贯的检测。
MultiGrasp我们的工作在设计上与Redmon等人的抓取检测工作相似。我们对边界框预测的网格方法是基于MultiGrasp系统对抓点的回归。然而,抓取检测是一个比物体检测简单得多的任务。MultiGrasp只需要为包含一个对象的图像预测单个可抓取区域。它不需要估计物体的大小、位置或边界,也不需要预测物体的类别,只需要找到一个适合抓取的区域。YOLO预测图像中多个类别的多个对象的边界框和类别概率。

4.实验

首先,我们将YOLO与其他基于PASCAL VOC 2007的实时检测系统进行了比较。为了理解YOLO和R-CNN变体之间的差异,我们探讨了YOLO和Fast R-CNN在VOC 2007上的错误,Fast R-CNN是R-CNN表现最好的版本之一。基于不同的误差分布,我们表明YOLO可以用于Fast R-CNN检测的重打分,并减少背景假阳性的误差,从而显着提高性能。我们还展示了VOC 2012的结果,并将mAP与当前最先进的方法进行了比较。最后,我们在两个艺术品数据集上证明了YOLO比其他检测器更好地泛化到新的领域。

4.1 与其他实时系统的比较

许多目标检测的研究工作都集中在使标准检测管道更加快速。然而,只有Sadeghi等人真正做出了实时运行的检测系统(每秒30帧或更好)。我们将YOLO与运行在30Hz或100Hz的DPM的GPU实现进行比较。虽然其他的工作没有达到实时里程碑,但我们也比较了它们的相对mAP和速度,以检查目标检测系统中可用的准确性和性能权衡。
Fast YOLO是Pascal上最快的目标检测方法
;据我们所知,它是现存最快的目标检测器。mAP为52.7%,比之前的实时检测工作的精度提高了两倍多。YOLO将mAP提高到63.4%,同时仍然保持实时性能。
我们还使用VGG-16训练了YOLO。这个模型更准确,但也比YOLO慢得多。它在用于与其他依赖VGG-16的检测系统的比较中是有用的,但由于它比实时慢,本文的其余部分集中在我们更快的模型上。
Fastest DPM在不牺牲太多mAP的情况下有效地加快了DPM的速度,但它与实时性能相比u仍然慢了2倍。与神经网络方法相比,DPM的检测精度相对较低,这也限制了它。
R- cnn - R用静态候选边界框替代选择性搜索,虽然它比R-CNN快很多,但是它依然达不到实时的效果,同时由于候选区较差,其准确率有明显的影响。
Fast R-CNN加快了R-CNN的分类阶段,但它仍然依赖于选择性搜索,而这种方法给每张图像生成边界框候选大约会花费2秒。因此,它具有很高的mAP,但是其速度只达到了0.5 fps离实时很远。
最近的Faster R-CNN用类似于Szegedy等人的神经网络代替选择性搜索来提出边界框候选。
在我们的测试中,他们最精确的模型达到了每秒7帧,而一个更小、更不精确的模型运行以18 fps运行。VGG-16版本的Fast R-CNN比YOLO高10 mAP,但速度也比YOLO慢6倍。ZeilerFergus Faster R-CNN只比YOLO慢2.5倍,但精度也不如YOLO。

4.2 VOC 2007错误分析

为了进一步研究YOLO和最先进的检测器之间的区别,我们将详细分析VOC 2007的结果。我们将YOLO与Fast RCNN进行比较,因为Fast R-CNN是PASCAL上性能最高的检测器之一,而且它的检测是公开可用的。
我们使用Hoiem等人的方法和工具。对于测试时的每个类别,我们查看该类别的前N个预测。每个预测要么是正确的,要么根据如下错误类型进行分类:

  • 正确:正确的类且IOU >0 .5
  • 定位:正确的类,0.1 < IOU < 0.5
  • 相似:类相似,IOU > 0.1
  • 其他:类错误,IOU >0 .1
  • 背景:与任何对象的IOU < 0.1
    图4显示了在所有20个类中平均的每种错误类型的细分。
    在这里插入图片描述
    YOLO很难正确定位对象。定位错误在YOLO错误中所占的比重超过了所有其他类型的总和。Fast R-CNN的定位错误要少得多,但背景错误要多得多。13.6%的最高检测结果是假阳性,不包含任何对象。Fast R-CNN更倾向预测背景累检测,可能性几乎是YOLO的3倍。

4.3 结合Fast R-CNN和YOLO

YOLO比Fast R-CNN所犯的背景错误少得多。通过使用YOLO来消除Fast R-CNN的背景检测,我们可以显著提高性能。对于R-CNN预测的每个边界框,我们检查YOLO是否预测了一个类似的框。如果是,我们根据YOLO预测的概率和两个框之间的重叠度来提高预测。
最好的Fast R-CNN模型在VOC 2007测试集上实现了71.8%的mAP。当与YOLO结合在一起时,它的mAP增长了3.2%到75.0%。我们还尝试将这个最佳的Fast R-CNN模型与其他几个版本的Fast R-CNN。这些组合在mAP中产生了0.3%到0.6%之间的小幅增长,详见表2。
在这里插入图片描述
YOLO的提升并不仅仅是模型整合的副产品,因为不同版本的Fast R-CNN组合在一起几乎没有什么好处。更确切地说,正是因为YOLO在测试时犯了不同类型的错误,它才如此有效地提高了Fast R-CNN的表现。
不幸的是,这种组合并没有从YOLO的速度中受益,因为我们分别运行每个模型,然后再组合结果。然而,由于YOLO与fast R-CNN相比是如此之快,因此它不会增加任何显著的计算时间。

4.4 VOC 2012结果

在VOC 2012测试集中,YOLO的mAP得分为57.9%。这比目前的最先进工作的水平低,更接近于使用VGG-16的原始R-CNN,见表3。与最接近的竞争对手相比,我们的系统在处理小物体方面遇到了困难。在瓶子、羊和电视或监视器等类别上,YOLO的得分比R-CNN或Feature Edit低8-10%。然而,在猫和火车等其他类别上,YOLO的表现更好。
我们的组合Fast R-CNN + YOLO模型是性能最高的检测方法之一。Fast R-CNN与YOLO的结合使得表现提高了2.3%,在公共排行榜上上升了5个名次。
在这里插入图片描述

4.5 普遍性:艺术品中的人物检测

用于目标检测的学术数据集从相同的分布中提取训练和测试数据。在真实的应用程序中,很难预测所有可能的用例,并且测试数据可能与系统之前看到的不同。我们将YOLO与两个用于测试艺术品上的人物检测的数据集——毕加索数据集和人-艺术数据集上的其他检测系统进行了比较。
图5显示了YOLO与其他检测方法之间的性能比较。作为参考,我们给出了VOC 2007上
人这一类别的检测AP,其中所有模型都是用
VOC 2007的数据进行训练的。在毕加索模型上,它们在VOC 2012上训练,而在人物艺术上,它们在VOC 2010上训练。
R-CNN 在VOC 2007上的AP很高。然而,当应用于艺术品时,R-CNN下降相当大。R-CNN使用选择性搜索来搜索针对自然图像进行调整的边界框候选。R-CNN的分类器步骤只看到小区域而且需要好的候选区。
当DPM应用于艺术作品时,它能很好地保持AP。先前的工作理论认为,DPM之所以表现良好,是因为它具有很强的物体形状和布局的空间建模。虽然DPM不像R-CNN那样退化,但是它的AP一开始就较低。
YOLO在VOC 2007有良好的性能,同时在应用于艺术品时,其AP的退化率也低于其他方法。与DPM一样,YOLO对物体的大小和形状,以及物体之间的关系和物体通常出现的位置建模。艺术品和自然图像在像素水平上非常不同,但它们在物体的大小和形状方面是相似的,因此YOLO仍然可以预测良好的边界框和检测。

5.自然场景下的实时检测

YOLO是一种快速,准确的目标检测器,使其成为计算机视觉应用的理想选择。我们将YOLO连接到一个网络摄像头,并验证了它包括从相机获取图像和显示检测结果的时间下同样保持实时性能。
由此产生的系统具有互动性和吸引力。YOLO单独处理图像,当连接到网络摄像头时,它就像一个跟踪系统,检测物体的移动和外观变化。一个该系统的演示和源代码可以在我们的项目网站获取:http://pjreddie.com/yolo/.
在这里插入图片描述
在这里插入图片描述

6.结论

介绍了目标检测的统一模型YOLO。我们的模型构造简单,可以直接在完整的图像上进行训练。与基于分类器的方法不同,YOLO是在直接对应于检测性能的损失函数上进行训练的,整个模型是联合训练的。
Fast YOLO是本文中最快的通用对象检测器,YOLO推动了最先进的实时目标检测。YOLO还可以很好地推广到新的领域,使其成为依赖于快速、健壮的目标检测的应用程序的理想选择。

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

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

相关文章

reduce the indexing time and cpu load with pre-build jdk shared indexes

在idea2022.3.3版本中打开项目 遇到问题 提示&#xff1a; Idea突然不停indexing reduce the indexing time and cpu load with pre-build jdk shared indexes解决方法 找到设置&#xff0c;设置成如图效果&#xff1a; 然后再找到如图位置&#xff1a; 勾选清理&#xff…

Android Version、MinSDK(API)和https的对应关系

这边主要是对Android开发过程中的各个版本对应的API Levl做个总结&#xff0c;同时分析一下Https在哪个Android版本上面做强制要求。对于Android的开发也有一定的帮助。

瑞云科技联合华为云推出云渲染AI加速模式,助力CG行业渲染效率再升级

如今&#xff0c;无论是在工业设计、建筑设计等设计行业&#xff0c;还是在影视、动画等娱乐行业&#xff0c;越来越多企业开始将目光转向云技术&#xff0c;以提升数字内容生产效率。而在数字内容制作过程中&#xff0c;渲染起着至关重要的作用&#xff0c;因此&#xff0c;提…

Qt测量屏幕的分辨率

Qt 入门实战教程&#xff08;目录&#xff09; 什么是屏幕分辨率 我们手机&#xff0c;平板&#xff0c;个人台式机显示器&#xff0c;笔记本显示器家里的液晶电视显示器在显示画面的时候&#xff0c;都是由一个一个的像素点组成的。 不同的像素点显示不同的颜色&#xff0c…

Windows和VMware中的Ubuntu互传文件

1、方法一&#xff1a;创建共享文件夹 1.1、创建环境 (1)VMware: V17.0.0 (2)Ununtu: Ubuntu 22.04.3 LTS (3)Windows: Windows10 (4)需要在Ubuntu开机状态下进行配置。 1.2、创建步骤 (1)打开VMware&#xff0c;依次点击“虚拟机”→“设置”。 (2)依次点击“选项”→“…

使用transformers进行端到端的目标检测

目录 目标检测的旧方法 使用transformers进行端到端的目标检测 抛去了目标检测旧的方法 网络架构 Transformer encoder Transformers and Parallel Decoding 注意力起到的作用 使用Hungarian algorithm算法完成匹配 在使用transformers的端到端目标检测中&#xff0c;匈…

正确理解redux Toolkits中createSlice的action.payload

使用redux Toolkits中的createSlice编写extraReducers经常看到使用action.payload来更新state状态值&#xff1a; 那么action.payload指的到底是什么&#xff1f; 让我们看看action的定义部分&#xff1a; 注意&#xff1a; action.payload不是上面ajax请求的返回内容&#x…

C#求100-999之间的水仙花数,你知道多少个?让我们一起来探索!

目录 背景: 扩展: 水仙花数例子: 效果展示:​ 总结: 背景: 水仙花数&#xff08;Narcissistic number&#xff09;也被称为超完全数字不变数&#xff08;pluperfect digital invariant, PPDI&#xff09;、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数&#xff08;Armstrong…

335. 路径交叉-数学归纳法(力扣目前c语言)

335. 路径交叉-数学归纳法 给你一个整数数组 distance 。 从 X-Y 平面上的点 (0,0) 开始&#xff0c;先向北移动 distance[0] 米&#xff0c;然后向西移动 distance[1] 米&#xff0c;向南移动 distance[2] 米&#xff0c;向东移动 distance[3] 米&#xff0c;持续移动。也就…

移动端H5封装一个 ScrollList 横向滚动列表组件,实现向左滑动

效果&#xff1a; 1.封装组件&#xff1a; <template><div class"scroll-list"><divclass"scroll-list-content":style"{ background, color, fontSize: size }"ref"scrollListContent"><div class"scroll…

子序列问题集合

子序列问题 最长公共子序列&#xff1a;最长上升子序列&#xff08;要输出序列&#xff0c;和最大长度&#xff09;1.dp2.贪心二分 导弹拦截 &#xff08;最长上升/下降子序列长度&#xff09; 最长公共子序列&#xff1a; class Solution { public://dfs(i,j)代表s串i前字符和…

C语言自定义类型详解(1)结构体知识汇总

本篇概要 本篇主要讲述C语言结构体的相关知识&#xff0c;包括结构体的基本声明&#xff0c;结构体的匿名结构&#xff0c;结构体的自引用&#xff0c;结构体变量的定义和初始化以及结构体的内存对齐等相关知识。 文章目录 本篇概要1.结构体1.1结构体的基本声明1.2结构体的特殊…

应用程序转换工具Unite mac中文版软件特点

Unite mac是一款Mac平台上的应用程序转换工具&#xff0c;它可以将任何网站或Web应用程序转换成本地应用程序&#xff0c;以便更方便地访问和使用。 Unite mac软件特点 网站转应用程序&#xff1a;该软件可以将任何网站或Web应用程序转换成本地应用程序&#xff0c;方便用户更…

AI创作工具-AI创作工具技术解读

创作是广告、文章、小说、社交媒体内容等各个领域的关键&#xff0c;但它通常需要创作者花费大量时间和精力&#xff0c;思考、编写和编辑内容。有时候&#xff0c;创作者可能面临写作灵感枯竭、时间紧迫或需要大量内容的情况。 添加图片注释&#xff0c;不超过 140 字&#xf…

Java集合--Collection、Map、List、Set、Iterator、Collections工具类

文章目录 一、Java集合框架概述二、Collection接口方法2.1、Collection子接口一&#xff1a;List2.1.1、ArrayLIst的源码分析2.1.2、LinkedList的源码分析2.1.3、List接口中的常用方法 2.2、Collection子接口二&#xff1a;Set2.2.1、Set接口的无序性2.2.2、添加元素的过程&…

Leetcode---363周赛

题目列表 2859. 计算 K 置位下标对应元素的和 2860. 让所有学生保持开心的分组方法数 2861. 最大合金数 2862. 完全子集的最大元素和 一、计算k置为下标对应元素的和 简单题&#xff0c;直接暴力模拟&#xff0c;代码如下 class Solution { public:int sumIndicesWithKS…

从零开始学习CTF,看完不信你学不会!

一、CTF简介 简介 中文一般译作夺旗赛&#xff08;对大部分新手也可以叫签到赛&#xff09;&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式 CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术…

Linux——文件系统

✅<1>主页&#xff1a;&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;Linux——文件系统 ☂️<3>开发环境&#xff1a;Centos7 &#x1f4ac;<4>前言&#xff1a;上期我们了解了文件在内存中得组织方式&#xff0c;那么文件在磁盘中…

ElasticSerach+MongoDB:实现文章检索历史功能

实现目标&#xff1a; 展示用户的搜索记录10条&#xff0c;按照搜索关键词的时间倒序可以删除搜索记录保存历史记录&#xff0c;保存10条&#xff0c;多余的则删除最久的历史记录 数据库的选择&#xff1a; 用户的搜索记录&#xff0c;需要给每一个用户都保存一份&#xff0c;数…

第3讲:vue路由安装配置,带参路由,子路由配置及应用

路由的安装与基本使用 vue-router是Vue官方的路由插件,它和Vue是深度集成,适用于构建单页面应用 vue-router的安装 //vue2路由配置npm install vue-router@3.0.2 或 cnpm install vue-router@3.0.2在具体应用的开发中我们一般会在src目录下新建一个名为router的目录,并在r…