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

摘要

我们提出了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.rhkb.cn/news/139414.html

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

相关文章

Django之路由分发

1.include方法进行路由分发 在Django中&#xff0c;include函数用于将一个URL模式包含到另一个URL模式中&#xff0c;实现路由的分发。 一般时以includeapp的形式&#xff0c;将功能拆分不到不同的app中。 当使用include函数时&#xff0c;需要指定一个字符串参数&#xff0c;…

#循循渐进学51单片机#UART串口通信#not.10

1、能够理解UART串口通信的基本原理和通信过程。 1&#xff09;串行通信的初步认识 并行通信&#xff1a;通信时数据的各个位同时传送&#xff0c;可以实现字节为单位通信&#xff0c;但是通信线占用资源太多&#xff0c;成本高。 串行通信&#xff1a;一次只能发送一位&…

CTF 全讲解:[SWPUCTF 2021 新生赛]jicao

文章目录 参考环境题目index.phphighlight_file()include()多次调用&#xff0c;多次执行单次调用&#xff0c;单次执行 $_POST超全局变量HackBarHackBar 插件的获取 $_POST打开 HackBar 插件通过 HackBar 插件发起 POST 请求 GET 请求查询字符串超全局变量 $_GET JSONJSON 数据…

Lua学习笔记:词法分析

前言 本篇在讲什么 Lua的词法分析 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全流程的源码内容 ★提高阅读体验★ &#x1f449; ♠ 一级标题…

基于Spring Boot的网上租贸系统

目录 前言 一、技术栈 二、系统功能介绍 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 本课题是根据用户的需要以及网络的优势建立的一个基于Spring Boot的网上租贸系统&#xff0c;来满足用户网络商品租赁的需求。 本网上租贸系统应用Java技术&#xff0…

IP地址欺骗的危害与后果

IP地址欺骗&#xff0c;也被称为IP地址伪装或IP地址欺诈&#xff0c;是一种网络攻击技术&#xff0c;旨在伪装或隐藏攻击者的真实IP地址。尽管这种技术可能有一些合法的用途&#xff0c;例如保护用户的隐私或绕过地理位置限制&#xff0c;但它也经常被恶意黑客用于不法行为。本…

阿里云 linux 的nginx 配置uni-app的H5前端项目vue,后端接口阿里云。

背景 vue项目调用接口是阿里云的&#xff0c;H5网站也要部署到阿里云&#xff0c;2个不同的服务器&#xff0c;需要做nginx部署与api代理。 1.端口配置 首先当然是买个阿里云服务器&#xff0c;这里是配置是linux系统&#xff0c;配置访问的域名 &#xff0c;再接着&#xf…

centos搭建activemq5.16

下载jdk、activemq&#xff08;我这里都放在在/usr/local&#xff09;之后。。。 在/usr/local/activemq/bin/目录下有一个env文件添加JAVA_HOME 注意activemq.xml里面不能出现中文&#xff0c;注释也不行 接下来在/usr/lib/systemd/system/创建activemq.service文件 # 单元节…

华为云云耀云服务器 L 实例评测|配置教程 + 用 Python 简单绘图

文章目录 Part.I IntroductionChap.I 云耀云服务器 L 实例简介Chap.II 参与活动步骤 Part.II 配置Chap.I 初步配置Chap.II 配置安全组 Part.III 简单使用Chap.I VScode 远程连接华为云Chap.II 简单绘图 Reference Part.I Introduction 本篇博文是为了参与华为“【有奖征文】华…

flowable可使用元素介绍

1. 事件 Events 事件描述图标空启动事件空启动事件未指定触发器&#xff0c;由用户调用的启动事件。定时启动事件定时启动事件在指定时间内创建一次或多次的流程实例。消息启动事件消息启动事件使用具名消息启动流程实例。消息名用于定位指定的启动事件。一个流程定义不得包含…

源码:TMS FlexCel Studio for .NET 7.19

TMS FlexCel Studio for .NET 是100% 托管代码 Excel 文件操作引擎以及 Excel 和 PDF 报告生成&#xff0c;适用于 .NET、Xamarin.iOS、Xamarin.Android、Xamarin.Mac、Windows Phone 和 Windows Store 功能概述 使用 FlexCel Studio for .NET 创建可动态快速读写 Excel 文件的…

星际争霸之小霸王之小蜜蜂(十四)--资本家的眼泪

系列文章目录 星际争霸之小霸王之小蜜蜂&#xff08;十三&#xff09;--接着奏乐接着舞 星际争霸之小霸王之小蜜蜂&#xff08;十二&#xff09;--猫有九条命 星际争霸之小霸王之小蜜蜂&#xff08;十一&#xff09;--杀杀杀 星际争霸之小霸王之小蜜蜂&#xff08;十&#xf…

2023华为杯数学建模D题第三问——区域双碳目标情景设计样例

在第二问建立好预测模型的基础上&#xff0c;如何设计第三问所说的区域双碳路径&#xff0c;以对宏观政策进行指导&#xff01; 采用STIRPA的基本模型对中国碳达峰时间进行预测&#xff0c;对该模型公式两边取对数得到&#xff1a; 其中&#xff1a;P为人口&#xff0c;A为GDP…

01_docker镜像管理:80分钟一口气学完docker+k8s!带你掌握docker+k8s所有核心知识点,全程干货,无废话!

docker镜像的实际使用学习 开发过程中&#xff0c;需要安装很多三方工具&#xff0c;比如etcd、kafka、mysql、nginx等等 1、下载安装Docker工具。 2、获取该软件的Docker镜像&#xff08;基本上&#xff0c;都能搜索到核实的镜像&#xff09;&#xff0c;下载镜像nginx镜像…

研究生选控制嵌入式还是机器视觉好?

研究生选控制嵌入式还是机器视觉好&#xff1f; 我是嵌入式/硬件方向转的算法&#xff0c;现在是公司的算法负责人&#xff0c;如果再让我选一次&#xff0c;我是不会再选嵌入式方 向&#xff0c;嵌入式如果只做技术是没前途的。 你要是有一定自学能力&#xff0c;能自己在学校…

以太坊代币标准ERC20、ERC721

两个概念 ERC(Ethereum Request for Comment) 以太坊意见征集稿EIP(Ethereum Improvement Proposals)以太坊改进提案 ERC和EIP用于使得以太坊更加完善&#xff1b;在ERC中提出了很多标准&#xff0c;用的最多的标准就是它的Token标准; 有哪些标准详细见https://eips.ethereum…

Ant Design分页组件中实现禁止点击当前页按钮的方法

这里需要使用到Ant Design分页组件pagination的一个回调函数onChange onChange函数用来监听鼠标点击事件&#xff0c; 它有两个入参》1. 点击分页按钮时获取到的页码 2. 每页最大显示条数 所以&#xff0c;禁止点击当前分页按钮的核心逻辑是&#xff1a; if {当前页的页…

HBuilder X 未检测到手机或模拟器(安卓端)

解决办法 1、找到HBuilderX安装目录下的D:\HBuilderX\plugins\launcher\tools\adbs。 2、应用程序和应用程序扩展删除掉 3、然后把1.0.31目录下的文件拷贝到D:\HBuilderX\plugins\launcher\tools\adbs里&#xff0c;直接覆盖即可。 4、重启HBuilderX就可以检测到手机了。 注意…

InputAction的使用

感觉Unity中InputAction的使用&#xff0c;步步都是坑。 需求点介绍 当用户长按0.5s 键盘X或者VR left controller primaryButton (即X键)时&#xff0c;显示下一个图片。 步骤总览 创建InputAction资产将该InputAction资产绑定到某个GameObject上在对应的script中&#xf…

Redis延迟双删-架构案例2021(三十二)

数据库设计 某医药销售企业因业务发展&#xff0c;需要建立线上药品销售系统&#xff0c;为用户提供便捷的互联网药品销售服务、该系统除了常规药品展示、订单、用户交流与反馈功能外&#xff0c;还需要提供当前热销产品排名、评价分类管理等功能。 通过对需求的分析&#xf…