【目标检测类】YOLOv5网络模型结构基本原理讲解

news2024/11/24 5:17:40

1. 基本概念

YOLOv5模型结构主要包括以下组成部分:‌

  • 输入端:‌YOLOv5的输入端采用了多种技术来增强模型的性能,‌包括Mosaic数据增强、‌自适应锚框计算、‌以及自适应图片缩放。‌这些技术有助于提高模型的泛化能力和适应不同尺寸的输入图像。‌

  • Backbone:‌Backbone部分是YOLOv5模型的核心,‌它采用了CSP-Darknet53结构。‌这种结构结合了CSP(‌Cross Stage Partial Network)‌技术和Darknet架构,‌通过减少计算量和参数数量同时保持高效的特征提取能力。‌此外,‌Focus结构作为一种有效的特征融合技术,‌在Backbone的开始部分被使用,‌以提高模型对小目标的检测能力。‌

  • Neck:‌Neck部分采用了FPN(‌Feature Pyramid Networks)‌+PAN(‌Path Aggregation Network)‌结构,‌这种结构能够在不同的特征图层次上进行检测,‌融合来自不同特征图层次的信息,‌从而提高目标检测的性能。‌

  • Prediction:‌在Prediction部分,‌YOLOv5使用了CIOU_Loss作为损失函数,‌这种损失函数可以缓解目标检测中类别不平衡的问题,‌提高模型的性能。‌此外,‌非极大值抑制(‌NMS)‌技术也在输出端被应用,‌对重叠的目标框进行处理,‌以得到最终的检测结果。‌

2.输入端

‌YOLOv5的输入端采用了多种技术来增强模型的性能,‌包括Mosaic数据增强、‌自适应锚框计算、‌以及自适应图片缩放。

2.1 Mosaic数据增强

Mosaic图像增强是一种数据增强技术,‌通过将多张图片按照一定比例组合成一张图片,‌以增加数据的多样性和丰富性,‌从而提高模型的训练效果和泛化能力。‌

Mosaic图像增强的原理主要涉及以下几个步骤:‌

  • 构建底图:‌首先,‌构建一张较大的底图,‌其尺寸通常大于输入图像的尺寸,‌例如2176*2176,‌并且底图通常为灰色(‌R114,G114,B114)‌。‌
  • 选择拼接点:‌在底图上选择一个拼接点,‌这个点通常位于底图的中心位置,‌例如点A(544,544)和点B(1632,1632)限定的矩形内。‌
  • 图像裁剪与拼接:‌随机选择四张图像,‌根据之前确定的拼接点,‌分别在这四张图像上裁剪出相应的区域,‌并将这些区域拼接到底图上。‌

实战代码模块的YOLOv5s的项目代码中,设置了两种类型,分别是Mosaic4 load和Mosaic9 load,这是两种不同的数据增强方式,它们的区别在于使用的图像数量不同。

  • Mosaic4 load会随机选择4张不同的图像,并将它们拼接在一起,形成一张包含4个不同图像的大图像。然后,将大图像作为训练集中的一张图像,对其进行数据增强操作,如随机裁剪、大小变换等。这样可以增加训练集的多样性和难度,提高目标检测模型的鲁棒性和泛化能力。
  • Mosaic9 load则会随机选择9张不同的图像,并将它们拼接在一起,形成一张包含9个不同图像的大图像。然后,对大图像进行数据增强操作,如随机裁剪、大小变换等。这样可以进一步增加训练集的多样性和难度,提高模型的鲁棒性和泛化能力。

总之,Mosaic4 load和Mosaic9 load都是用于数据增强的方法,它们的区别在于使用的图像数量不同,Mosaic9 load使用的图像数量更多,相应地增加了训练集的多样性和难度,但也增加了计算量和训练时间。

Mosaic图像增强的优点包括:‌

  • 增加数据多样性:‌通过组合多张图片,‌可以生成大量新的、‌具有丰富背景和目标的训练样本,‌从而增加模型的泛化能力。‌
  • 提高batch_size:‌由于四张图片拼接在一起,‌相当于在一个batch中提供了更多的信息,‌这在训练深度学习模型时可以提高训练效率和准确性。‌

然而,‌Mosaic图像增强也存在潜在的缺点,‌特别是在处理包含小目标的数据集时。‌如果数据集中本身就有很多小目标,‌数据增强之后可能会导致这些小目标在拼接后的图像中变得更小,‌从而影响模型的泛化能力。‌因此,‌在使用Mosaic图像增强时,‌需要权衡其带来的好处与可能带来的问题,‌确保模型训练的效果和泛化能力达到最佳。

补充:
YOLOv5图像增强支持多种模式,包括以下几种:

  • Mosaic模式:将四张不同的图像拼接成一张图像,用于增加数据集的多样性。
  • Random模式:包含多种图像增强方式,如随机缩放、随机裁剪、随机旋转、随机亮度调整、随机对比度调整等,可以随机地选择其中一种或多种方式进行图像增强。
  • MixUp模式:将两张不同的图像进行混合,用于增加数据集的多样性和防止过拟合。
  • CutMix模式:将两张不同的图像进行裁剪混合,用于增加数据集的多样性和防止过拟合。
  • GridMask模式:通过在图像中加入遮罩,可以增加数据集的多样性和防止过拟合。
  • AutoAugment模式:通过搜索最优的数据增强策略来提高模型的性能。

2.2  自适应锚框计算

自适应锚框计算是一种在目标检测模型中,‌特别是YOLO系列模型中,‌用于优化锚框设置的方法。‌这种方法旨在根据训练数据集的特性,‌自动调整锚框的大小和数量,‌以提高模型的检测性能。‌自适应锚框计算的实现通常涉及以下几个步骤:‌

  • 数据预处理:‌在进行锚框计算之前,‌通常需要对训练数据进行预处理,‌包括图像的缩放、‌裁剪、‌归一化等操作,‌以确保输入数据的一致性和标准化。‌

  • 白化操作:‌白化操作旨在去除输入数据的冗余信息,‌通过降低特征之间的相关性并使所有特征的方差相等,‌从而优化数据的分布,‌便于后续的锚框计算。‌

  • 锚框计算:‌根据预处理后的数据,‌使用聚类算法(‌如K-means算法或其改进版K-means++算法)‌对目标框的尺寸进行聚类,‌以找到与数据集最匹配的锚框尺寸。‌这个过程考虑了目标框的大小和形状分布,‌以确保锚框能够覆盖大多数目标的大小和形状变化。‌

  • 遗传算法:‌在某些情况下,‌遗传算法被用来优化锚框的选择,‌通过模拟自然选择和遗传进化的过程,‌搜索到最优的锚框配置。‌

  • 调整与验证:‌根据计算结果调整锚框的设置,‌并在验证集上进行验证,‌以确保新的锚框设置能够提高模型的检测性能。‌

通过自适应锚框计算,‌YOLO系列模型能够更好地适应不同的数据集,‌提高目标检测的准确性和效率。

自适应锚框计算的方法主要有两种:

  • Anchor-free方法:该方法直接回归目标的位置和尺寸,不需要使用锚框。典型的Anchor-free方法包括CenterNet和CornerNet等。
  • Anchor-based方法:该方法使用锚框来检测目标,但是锚框的大小和宽高比等参数是根据输入图像自适应计算的。典型的Anchor-based方法包括RetinaNet和FSAF等。

总之,自适应锚框的方法可以避免手动设置锚框参数的问题,提高目标检测的精度和鲁棒性。同时,自适应锚框的方法也是目标检测领域的一个研究热点。

而 YOLOv5使用的是一种名为ATSS(Adaptive Training Sample Selection)的自适应锚框计算方法。

ATSS是一种基于Anchor-based的目标检测算法,它通过学习的方式自动计算出最适合输入图像的锚框参数,而不需要手动设置。ATSS算法的核心思想是,在训练过程中,根据样本与锚框的匹配度(即交并比IoU),自适应地选择正负样本,从而有效地降低了难样本的影响,并提高了检测精度。ATSS算法在YOLOv5中的应用,使得YOLOv5在目标检测任务中取得了较为出色的性能表现。

2.3 自适应图片缩放

自适应图片缩放是一种常用的技术,可以用于图像识别和目标检测任务,如在YOLO(You Only Look Once)中。在YOLO中,自适应图片缩放是一种基于目标尺度的图像缩放方式,‌旨在自适应地缩放输入图像的尺寸,‌以适应不同尺度目标的检测,‌从而提高检测精度和鲁棒性。‌

以YOLOv5s为例,自适应图片缩放的原理和步骤如下:‌

  • 计算缩放比例:‌首先,‌根据原始图片的大小和输入到网络图片的大小计算缩放比例。‌
  • 计算缩放后的图片大小:‌接着,‌根据原始图片的大小和计算出的缩放比例,‌确定缩放后的图片大小。‌
  • 计算黑边填充数值:‌特别地,‌对于短边进行缩放时,‌还需要计算黑边填充的数值,‌以确保长边被裁剪到特定的尺寸(‌如416像素)‌。‌
  • 仅在模型推理阶段执行:‌需要注意的是,‌这一操作仅在模型推理阶段执行。‌在模型训练阶段,‌仍然采用传统的方法,‌即将原始图片裁剪到固定大小(‌如416x416像素)‌。‌

YOLOv5s采用自适应图片缩放的主要目的是解决目标检测中存在的尺度不一致问题,‌通过这种方式,‌模型能够更好地适应不同大小的目标,‌从而提高检测的准确性和鲁棒性。

3. Backbone层

Backbone部分是YOLOv5模型的核心,主要由Focus结构以及CSP结构组成。

3.1 Focus结构

Focus结构是一种特殊的网络结构,‌用于对输入特征图进行下采样,‌同时减少计算量和参数量,‌同时保留输入特征图中的重要信息,‌以提高模型的特征提取能力。‌这种结构主要应用于YOLOv5的各个卷积块的第一个卷积层,‌以实现对输入特征图的下采样和特征压缩。‌

具体操作:

以YOLOv5s为例,当原始640×640×3的图像输入Focus结构时,具体操作如下:

  • 切片操作:在图像的行和列方向上进行隔像素抽取,组成新的特征层。每幅图像可以重组为4个特征层,每个特征层的尺寸都是原图的一半(即320×320),但通道数增加到原来的4倍(即12个通道)。这是因为每隔一个像素取一个值,相当于将原图的像素信息分散到了4个互补的特征层中,且没有信息丢失。
  • 堆叠与卷积:将这四个特征层进行堆叠,得到一个新的特征图(320×320×12)。然后,对这个堆叠后的特征图进行一次卷积操作,卷积核大小通常为3×3,输出通道数根据需要设定(在YOLOv5s中为32),最终得到320×320×32的特征图。

优点与特点:

  • 高效下采样:Focus结构通过切片和堆叠操作实现了高效的下采样,与传统卷积下采样相比,它在减少计算量的同时保留了更多的信息。
  • 增加通道数:切片操作使得输入通道数增加了4倍,这为后续层提供了更丰富的特征信息。
  • 减少信息丢失:由于采用了切片而非直接的下采样操作,Focus结构在减少图像尺寸的同时避免了信息的丢失。

特别注意:
YOLOv5的代码中有时会将Focus结构替换为卷积层。这是因为Focus结构在实现上比较复杂,需要进行通道分离、卷积、通道拼接等操作,导致计算量较大,不利于模型的训练和推理为了简化网络结构并提高运行效率,YOLOv5的作者采用了一种策略,即将Focus结构替换为标准的卷积层,从而减少计算量和参数量。具体来说,YOLOv5中的卷积层是以步长为2的方式进行下采样的,与Focus结构类似,它可以实现对输入特征图的压缩和下采样。因此,将Focus结构替换为卷积层可以在一定程度上提高模型的训练和推理效率,同时减少代码的复杂度和开发难度。

3.2 CSP结构

CSP(Cross Stage Partial)结构是YOLOv5中的一个重要组成部分,用于构建骨干网络(backbone)。CSP结构最初在CVPR 2020中提出,可以有效地减少网络参数和计算量,同时提高特征提取的效率。

CSP结构的核心思想是将输入特征图分成两部分,一部分经过一个小的卷积网络(称为子网络)进行处理,另一部分则直接进行下一层的处理。然后将两部分特征图拼接起来,作为下一层的输入。

具体来说,CSP结构包括以下几个步骤:

  • 将输入特征图分成两部分,一部分进行子网络的处理,另一部分直接进行下一层的处理。
  • 在子网络中,先使用一个卷积层将输入特征图进行压缩,然后进行一系列卷积操作,最后再使用一个卷积层进行扩张。这样可以提取出相对较少的高层次特征。
  • 在下一层中,将经过子网络处理的特征图与直接处理的特征图进行拼接,然后再进行一系列卷积操作。这样可以将低层次的细节特征和高层次的抽象特征结合起来,提高特征提取的效率。

CSP结构在YOLOv5中被广泛应用,包括骨干网络中的多个阶段以及头部网络(head)中的一些模块。它可以显著地减少网络的参数和计算量,同时提高特征提取的效率,从而加快模型的训练和推理速度。

CSP结构的优点和特点:

  • 减少参数量和计算量:通过将输入特征图分为两部分进行处理,可以大幅减少卷积核的数量和参数量,从而降低网络的计算复杂度。
  • 增加网络深度:CSP结构允许网络在保持计算效率的同时,扩展到更深的层次,从而提高网络的表达能力和检测性能。
  • 提高特征表达能力:通过多个分支的卷积操作,CSP结构能够提取到更多样化的特征,有利于更好地捕捉图像中的目标信息。
  • 增强特征的多样性:不同分支的卷积操作可以产生不同尺度和方向的特征图,从而增强特征的多样性,提高模型对不同目标的检测能力

Yolov5中的CSP结构实现:

在YOLOv5中,CSP结构被广泛应用于主干网络(Backbone)和颈部网络(Neck)中。具体来说,YOLOv5采用了两种CSP结构:CSP1_X和CSP2_X。

  • CSP1_X:主要应用于主干网络部分。它将输入特征图分为两个分支,一个分支经过多个残差结构(如BottleneckCSP或C3模块),另一个分支则直接进行卷积操作。两个分支的结果通过拼接和卷积操作进行融合,以生成下一阶段的输入特征图。
  • CSP2_X:主要应用于颈部网络部分。与CSP1_X类似,但可能包含更多的卷积层或残差组件,以适应颈部网络对特征融合和增强的需求。

4. Neck网络

YOLOv5的Neck网络是目标检测模型中的一个关键组成部分,它位于Backbone(主干网络)和Head(头部网络)之间,主要负责进一步提炼Backbone提取的特征,并进行多尺度特征融合,以提升检测性能。

在YOLOv5中,Neck网络主要采用了FPN(Feature Pyramid Networks)和PAN(Path Aggregation Network)结构相结合的方式,以实现多尺度特征的有效融合。

  • FPN结构:FPN通过自顶向下的路径,将高层级的语义特征传递给低层级的特征图,从而增强低层级特征图的语义信息。这种结构有助于模型在检测小目标时能够利用到更多的上下文信息。
  • PAN结构:PAN在FPN的基础上增加了自底向上的路径,将低层级的特征信息传递给高层级的特征图,进一步增强了特征图的表达能力。这种双向融合的方式使得模型能够更全面地捕捉到图像中的目标特征。

4.1 FPN结构

定义与作用:

FPN是一种用于目标检测的特征金字塔网络,它通过自顶向下的路径将高层级的语义特征传递给低层级的特征图,从而增强低层级特征图的语义信息。这种结构有助于模型在检测小目标时能够利用到更多的上下文信息。

工作原理:

  • 特征图金字塔:FPN首先构建了一个特征图金字塔,其中每个层级都对应不同尺度的特征图。
  • 上采样与融合:高层级的特征图通过上采样(如双线性插值)来增大其空间分辨率,然后与相邻的低层级特征图进行融合(如元素相加或拼接)。
  • 卷积操作:融合后的特征图通常会经过一个卷积层来减少特征图的通道数,并进一步整合特征信息。

优点:

  • FPN能够有效地利用高层级特征图的语义信息来增强低层级特征图的表达能力。
  • 通过构建特征图金字塔,FPN能够同时处理不同尺度的目标,提高检测精度。

4.2 PAN结构

定义与作用:

PAN是一种路径聚合网络,它在FPN的基础上增加了自底向上的路径,将低层级的特征信息传递给高层级的特征图。这种双向融合的方式使得模型能够更全面地捕捉到图像中的目标特征。

工作原理:

  • 自底向上路径:低层级的特征图通过一系列卷积层和上采样操作逐渐增大其空间分辨率,并与高层级的特征图进行融合。
  • 特征融合:与FPN类似,PAN也采用了特征融合的方式,但不同的是,PAN在融合过程中既考虑了自顶向下的语义信息,又考虑了自底向上的细节信息。
  • 增强特征表示:通过双向融合,PAN能够生成更具表达力的特征图,为后续的目标检测和定位提供有力的支持。

优点:

  • PAN通过双向融合的方式实现了多尺度特征的有效整合和传递。
  • 它能够同时利用高层级的语义信息和低层级的细节信息,提高模型的检测性能。

5.Prediction

YOLOv5的输出端主要是预测框,每个预测框由以下信息组成:

  • 置信度(confidence score):表示该框内是否存在目标的概率,取值范围为0到1。
  • 类别概率(class probabilities):表示该框内目标属于各个类别的概率,一般是预先定义好的类别数量。
  • 边界框位置(bounding box coordinates):表示目标的位置和大小,一般用矩形框来表示。

YOLOv5中的输出层一般包括三个不同尺度的特征图,每个特征图对应不同尺度的预测框,每个预测框包含的信息如上述所述。具体地,YOLOv5在输出层通过使用anchor box来预测目标的边界框位置和大小,同时对每个anchor box对应的预测结果使用softmax函数来计算类别概率。

总之,YOLOv5的输出端可以输出图像中目标的位置、大小和类别等信息,以便后续的目标识别和跟踪等任务进行处理。

5.1 Bounding box损失函数

YOLOv5中的Bounding box损失函数采用IoU loss函数,主要用于衡量预测的边界框与真实边界框之间的差异。

IoU loss是Intersection over Union(IoU)的一种变形,它是一种用于测量预测边界框与真实边界框之间重叠程度的指标。在目标检测中,IoU通常被用来评估预测框和真实框的重叠情况,以确定预测框是否正确。

具体而言,对于每个预测边界框,我们计算其与所有真实边界框的IoU值,然后选择IoU最大的那个真实边界框作为其对应的匹配目标,从而计算出其IoU loss。

回归损失函数近些年的发展过程是:
Smooth L1 Loss → IoU Loss(2016)→ GIoU Loss(2019)→ DIoU Loss(2020)→ CIoU Loss(2020)
IOU_Loss:主要考虑检测框和目标框重叠面积。
GIOU_Loss:在IOU的基础上,解决边界框不重合时的问题。
DIOU_Loss:在IOU和GIOU的基础上,考虑边界框中心点距离的信息。
CIOU_Loss:在DIOU的基础上,考虑边界框宽高比的尺度信息。

5.2 NMS非极大值抑制

在目标检测任务中,一个物体可能被多个预测框检测出来,为了避免对同一个物体进行多次检测,需要对重复的预测框进行过滤,这个过程就是非极大值抑制(Non-maximum suppression,简称NMS)。

在YOLOv5中,NMS主要是通过以下几个步骤实现的:

  • 首先,对所有预测框按照置信度从高到低进行排序。
  • 然后,从置信度最高的预测框开始,依次遍历每个预测框,判断该预测框与后面所有预测框之间的IOU值是否大于一定的阈值(一般为0.5或0.6)。
  • 如果IOU值大于阈值,则将该预测框从候选框列表中剔除,否则保留该预测框。
  • (剔除的是相对于当前框(即置信度高的框)的预测框,这些框被认为可能是冗余的(因为它们与当前框重叠较多,且置信度较低))
  • 继续遍历下一个预测框,重复上述步骤,直到所有预测框都被遍历一遍。
  • 最终,保留下来的预测框就是经过NMS处理后的结果,即每个物体只对应一个预测框。

NMS算法的核心是通过比较重复预测框之间的IOU值,去除冗余的预测框,保留最优的结果。在YOLOv5中,NMS可以避免同一个物体被重复检测的问题,提高了检测的精度和效率。

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

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

相关文章

springboot+vue+mybatis汽车租赁管理+PPT+论文+讲解+售后

汽车租赁系统是针对目前汽车租赁管理的实际需求,从实际工作出发,对过去的汽车租赁管理系统存在的问题进行分析,完善客户的使用体会。采用计算机系统来管理信息,取代人工管理模式,查询便利,信息准确率高&…

Unity补完计划 之 SpriteRender

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 1.SpriteRenderer是什么 渲染精灵用的,是渲染的核心组件,有许多重要参数所以要详细讲一讲 Spri…

大语言模型VRAM估算指南和工具介绍

为了有效地执行大型语言模型(LLM)推理,了解GPU VRAM需求至关重要。VRAM对于存储模型参数、激活、处理批量大小和精度设置至关重要。估算VRAM使用情况的基本公式是:参数数(精度/ 8) 1.2。现代优化技术和框架可以进一步减少VRAM的需求。像VRAM Estimator, Hugging Fac…

Harbor 仓库一键安装

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

H5页面返回时提示用户返回将丢失信息

效果图 代码&#xff0c;组件封装弹窗 <template><div><van-popup v-model"show" :close-on-click-overlay"false" class"popup"><div class"content"><div class"title">提示:</div>…

QT学生管理系统 开发文档

目录 第一章 UI界面设计与开发 登录界面 主界面 UI美化 第二章 数据库设计与开发 数据库设计 连接数据库 数据库功能设计 sql语句设计 查询所有学生数量 查询第几页学生数据 删除学生 修改学生信息 清空学生表 添加单个用户 删除单个用户 修改用户权限 查询所有用户…

常用API_2:应用程序编程接口:ArrayList

文章目录 ArrayList常用方法 案例 &#xff1a;上菜 ArrayList 常用方法 来自黑马程序员学习视频 案例 &#xff1a;上菜 待完善

只有ip没有域名怎么申请证书?

当只有IP地址而没有域名时&#xff0c;仍然可以申请SSL证书以确保通过该IP地址访问的网站或服务的安全性。以下是为IP地址申请SSL证书的一般步骤&#xff1a; 一、确认前提条件 拥有公网IP地址&#xff1a;确保你拥有的是一个公网IP地址&#xff0c;因为内网IP地址不支持签发…

强化学习之Double DQN算法与DQN算法对比学习——以倒立摆(Inverted Pendulum)环境为例

0.简介 DQN算法敲开深度强化学习大门&#xff0c;但是其存在着一些问题&#xff0c;有进一步改进的空间。因此在DQN后出现大量改进算法。在此介绍DQN算法改进算法之一Double DQN&#xff0c;其在DQN算法基础上稍加修改实现在一定程度上改善DQN效果。 普通DQN算法会导致对Q值的过…

Leetcode75-5 反转字符串的元音字母

本质上来说就是反转字符串 一部分需要反转 一部分不动 思路: 1.用String字符串倒序拼接 就是过滤掉不是元音字符 然后把所有的字符&#xff08;非元音的直接复制过来 元音字母直接从反转的字符串里边复制即可&#xff09; 2.看了题解发现自己写的啰嗦了 就是一个双指针问题用…

螺旋矩阵

螺旋矩阵 思路&#xff1a; 这题是一个模拟的题目。 可以观察出一些性质&#xff1a;每次需要换方向的时候都是到达了边界&#xff08;长度和宽度的边界&#xff09;。 不知道怎么转化为代码&#xff01; 哭了 看看题解吧&#xff1a;真不会 看到一个太妙的方法了&#x…

《变形金刚》战斗力排名分析

Top1 天火擎天柱 作为博派的领袖&#xff0c;擎天柱本身实力不凡。然而&#xff0c;胜败乃兵家常事。在《变形金刚2》中&#xff0c;他虽然成功击败了破坏者、碾碎器和红蜘蛛&#xff0c;却不幸被威震天一炮穿心&#xff0c;阵亡。 不过&#xff0c;擎天柱是《变形金刚》系列…

Zero123 论文学习

论文链接&#xff1a;https://arxiv.org/abs/2303.11328 代码链接&#xff1a;https://github.com/cvlab-columbia/zero123 解决了什么问题&#xff1f; 人类通常能够仅凭一个相机视角来想象物体的三维形状和外观。这种能力对于日常任务非常重要&#xff0c;例如物体操纵和在…

快速掌握Vue:基础命令详解

目录 1. Vue概述 2. 快速入门 3. Vue指令 3.1 v-bind 3.2 v-model 3.3 v-on 3.4 v-if 3.5 v-show 3.6 v-for 3.7 案例 4. 生命周期 1. Vue概述 Vue.js&#xff08;读音 /vjuː/, 类似于 「view」&#xff09; 是一套构建用户界面的 「渐进式框架」。与其他重量级框…

【EI会议征稿通知】第六届光电科学与材料国际学术会议 (ICOSM 2024)

会议主要围绕“光电技术应用”“光电科学材料”“光电信号处理”“低温等离子体技术与应用” “激光技术与应用”“材料科学”等研究领域展开讨论。旨在为光电学、电子工程学等专家学者、工程技术人员、技术研发人员提供一个交流平台。拓展国内外光电科学与材料技术方面的研究范…

科普文:微服务之全文检索ElasticSearch忝删改查详细操作说明

一、Restful简介 RESTFul&#xff1a;Representational State Transfer&#xff0c;中文意思&#xff1a;表现层状态转化。变现层指的是资源的表现层&#xff0c;这里的资源是指网络上的信息&#xff0c;比如一张图片&#xff0c;一段文本&#xff0c;一步电影&#xff0c;那么…

数据结构(学习)2024.8.6

今天开始学习数据结构的相关知识&#xff0c;大概分为了解数据结构、算法&#xff1b;学习线性表&#xff1a;顺序表、链表、栈、队列的相关知识和树&#xff1a;二叉树、遍历、创建&#xff0c;查询方法、排序方式等。 目录 一、数据结构 数据 逻辑结构 1.线性结构 2.树…

JavaEE: wait(等待) / notify (通知)

文章目录 wait(等待) / notify (通知)总结 wait(等待) / notify (通知) 线程在操作系统上的调度是随机的~ 那么我们想要控制线程之间执行某个逻辑的先后顺序,那该咋办呢? 可以让后执行的逻辑,使用wait, 先执行的线程,在完成某些逻辑之后,通过notify来唤醒对应的wait. 另外,通…

谈谈如何优雅地封装 el-table

效果 像这样的表格我们可以这样划分一下区域&#xff1a; 1区域的渲染是通过取反插槽的条件 2区域的渲染是写在 slot 插槽的内部的&#xff0c;直接显示行数据3区域的渲染是通过具名插槽 bind 渲染 直接上代码&#xff1a; 子组件&#xff1a; <template><el-tabl…

为什么要用分布式锁

单应用中,如果要确保多线程修改同一个资源的安全性 加synchronized就可以了 但是性能不高 而mybatis-plus的乐观锁就可以很好的解决这类问题 但是这样的锁机制,只在单应用中有效 试想,在分布式下,有没有可能出现多个应用中的线程同时去修改同一个数据资源的并发问题 例如A …