卷积神经网络之Yolo详解

news2024/11/20 6:41:04

YOLO(You Only Look Once)是一个非常流行的目标检测算法,基于卷积神经网络(CNN)进行目标检测的任务。与传统的目标检测算法(如 R-CNN 系列)不同,YOLO 的核心思想是将目标检测问题转化为回归问题,直接从图像中回归出边界框和类别概率,整个过程可以一次性完成,从而实现非常高效的检测。

YOLO的基本原理

YOLO 的工作原理基于全卷积网络(Fully Convolutional Network,FCN),其主要步骤如下:

  1. 输入图像划分网格: YOLO 将输入图像划分为一个 S × S 的网格(通常是 7x7、13x13 等)。每个网格负责预测图像中某一部分的目标。

  2. 每个网格负责预测: 对于每个网格,YOLO 输出一个固定数量的边界框(通常是 2 或 5 个),以及每个边界框的置信度(confidence)和类别概率(class probabilities)。具体来说,YOLO 会输出每个边界框的四个坐标(x, y, w, h)、置信度(表示该边界框包含目标的概率)和每个类别的概率。

  3. 置信度: 置信度表示该边界框是否包含物体,置信度是通过预测框与实际物体位置的重合度(IoU,交并比)来衡量的。置信度由两个部分组成:

    • 目标是否存在的概率
    • 预测框与真实框的重叠程度
  4. 输出向量: 每个网格的输出通常是一个包含多个信息的向量,通常是 [b, c1, c2, ..., cn, p1, p2, ..., pk],其中:

    • b 表示该框的置信度。
    • c1, c2, ..., cn 是每个类别的概率(类别数目是固定的,通常是物体检测问题的类别)。
    • p1, p2, ..., pk 是该框的坐标参数(x, y, w, h)。
  5. 损失函数: YOLO 使用一个综合的损失函数来衡量预测的误差。这个损失函数包括三部分:

    • 位置误差(Localization loss): 用于评估边界框位置的精度,通常使用均方误差(MSE)。
    • 置信度误差(Confidence loss): 衡量目标检测的置信度和真实目标置信度之间的差异。
    • 类别误差(Class loss): 用于评估每个网格预测的类别与真实类别的差异。
  6. 非极大值抑制(NMS,Non-Maximum Suppression): 在YOLO的输出中,可能会有多个重叠的边界框。NMS 用于去除重复的边界框,只保留置信度最高的框。这是目标检测中一个常见的后处理步骤。

YOLO版本演化

YOLO 在多个版本中进行迭代和优化,主要版本包括:

  1. YOLOv1:

    • YOLO 的初始版本,提出了将目标检测问题转化为回归问题的思想。每个网格预测固定数量的边界框和类别概率。
    • 优点:速度快,适用于实时检测。
    • 缺点:精度相对较低,尤其是在小物体检测上。
  2. YOLOv2(Darknet-19):

    • 引入了更深的网络结构,使用了更高分辨率的输入图像,并进行了大量的训练优化。
    • 引入了多尺度训练,使得模型在不同尺寸下都能进行有效的检测。
  3. YOLOv3:

    • YOLOv3 增强了对小物体的检测能力,采用了更深的网络(Darknet-53),并使用了更精细的特征提取方式。
    • 使用了多层特征图来进行预测,进一步提高了小物体的检测精度。
    • 使用了更好的损失函数,采用了 BCE(Binary Cross Entropy)作为分类损失。
  4. YOLOv4:

    • 引入了 CSPDarknet53 作为 backbone,并采用了多种优化手段,如数据增强、剪枝和混合精度训练等。
    • 提供了更好的准确性和速度平衡,适用于更多的应用场景。
  5. YOLOv5:

    • YOLOv5 是由一个社区团队发布的版本,虽然并非原作者的版本,但在实际应用中获得了广泛的认可。
    • 它使用 PyTorch 实现,易于部署,并且具有高效的性能。相较于 YOLOv4,YOLOv5 的推理速度更快,且对小物体检测表现更好。
  6. YOLOv7:

    • 是在 YOLOv4 和 YOLOv5 基础上进一步优化的版本,引入了更多的技术创新,进一步提升了模型的检测精度。

YOLO的优缺点

优点:

  • 速度快: YOLO 是一个非常快速的目标检测算法,可以实时处理视频流。
  • 端到端训练: 由于是回归问题,YOLO 不需要像 R-CNN 系列那样依赖多个步骤,训练过程简洁高效。
  • 高效: 在很多应用中,YOLO 可以提供非常高效的性能和较好的精度。

缺点:

  • 对小物体检测差: YOLO 在检测小物体方面相对较弱,因为它将图像分成了较大的网格,每个网格只能预测有限数量的框。
  • 精度较低: 相比一些更精细的目标检测方法(如 RetinaNet、Faster R-CNN 等),YOLO 的精度稍逊。

YOLO应用场景

YOLO 由于其实时性和高效性,广泛应用于很多需要快速检测的场景,如:

  • 视频监控: 实时检测和跟踪目标。
  • 自动驾驶: 对路面上的行人、车辆等进行实时检测。
  • 无人机检测: 在飞行中对目标进行检测和识别。

好的,下面我将详细介绍 YOLO 的工作原理,并结合一些例子来帮助理解它是如何进行目标检测的。

YOLO的工作原理(更详细)

YOLO 算法的核心思想是将图像的目标检测问题转化为一个回归问题。具体来说,YOLO 通过以下几个步骤来处理图像并进行目标检测。

1. 输入图像划分网格

首先,将输入图像划分成一个 S × S 的网格。例如,假设输入图像是 416x416 的尺寸,将其划分为 13x13 的网格。每个网格负责预测图像中某一区域的物体。

假设网格的每个单元格包含以下信息:

  • 每个网格单元预测 B 个边界框(bounding boxes),每个边界框包含 4 个坐标参数(x, y, w, h),分别表示边界框的中心位置、宽度和高度。
  • 每个边界框还会预测一个 置信度(Confidence),表示边界框包含物体的概率以及该边界框与真实框的重叠程度(IoU)。
  • 每个网格还预测每个类别的概率。假设有 C 类物体,每个网格单元输出 C 个概率值,表示该区域是每个类别的可能性。
2. 每个网格的输出

对于每个网格单元,它会输出以下信息:

  • B 个边界框,每个边界框包括:4个坐标 (x, y, w, h)、1个置信度值。
  • C 个类别概率。

假设我们有一个 13x13 的网格,B = 2(每个网格单元预测2个边界框),C = 80(80个类别)。则每个网格单元的输出是一个长度为 (B * 5 + C) 的向量,其中:

  • 每个边界框包含5个元素:x, y, w, h(坐标),置信度。
  • C 个类别的概率。

因此,每个网格单元的输出向量长度为:2 * 5 + 80 = 90。每个网格单元输出的向量长度就是 90,这意味着每个网格单元都要输出 2个边界框 的信息、每个边界框的 5个参数(坐标和置信度)以及 80个类别概率

3. 目标检测输出

YOLO 会对所有网格单元的输出进行合并,得到最终的检测结果。对于每个网格单元,它预测的边界框可能会有很大的重叠,因此需要采用 非极大值抑制(NMS) 进行处理,去掉重复的框,只保留置信度最高的框。

4. 损失函数

YOLO 使用一个复合损失函数来训练模型,包括以下几部分:

  • 位置损失(Localization Loss):用来衡量预测框和真实框之间的差异,通常使用均方误差(MSE)来计算框的位置(x, y, w, h)。
  • 置信度损失(Confidence Loss):衡量预测框的置信度和真实框之间的误差。
  • 类别损失(Class Loss):计算每个网格单元预测的类别概率和真实类别之间的差异,通常使用交叉熵损失(Cross-Entropy)来度量。

最终的损失函数是位置损失、置信度损失和类别损失的加权和。

举个例子(假设目标检测场景:监控视频中的人物检测)

假设你在监控视频中应用 YOLO 来检测人物目标。你的输入是一个 416x416 的图像(如视频的一帧),YOLO 会将该图像划分为 13x13 的网格。每个网格单元的任务是检测其对应区域是否含有目标(例如行人)。

步骤:
  1. 网格划分:假设图像被划分为 13x13 的网格,每个网格单元大小大约是 32x32 像素。
  2. 边界框预测:每个网格单元预测 2 个边界框,输出每个边界框的坐标(x, y, w, h)和置信度(confidence)。
  3. 类别预测:每个网格单元还会预测该区域内可能含有的类别(如“人物”)。
  4. NMS处理:由于某些边界框可能会有较大的重叠,YOLO 会使用 NMS 去除冗余的边界框,只保留置信度最高的框。

假设某个网格单元检测到有行人并且预测了一个边界框:

  • 预测框的位置为 (x, y) = (0.5, 0.5),宽高为 (w, h) = (0.3, 0.6)(相对于图像大小)。
  • 置信度为 0.9(表示该框包含物体的概率)。
  • 类别概率为:人物(prob = 0.8),车(prob = 0.1),狗(prob = 0.05)等。

最终,YOLO 会通过 NMS 处理去除重复的框,保留置信度较高的框。

YOLO 及其他目标检测算法中,交并比(Intersection over Union,IoU)、置信度(Confidence)、精确率(Precision)和召回率(Recall)是评估模型性能的重要指标。理解这些概念对于提升目标检测模型的效果以及分析检测结果至关重要。

1. 交并比(IoU, Intersection over Union)

交并比(IoU)是衡量预测边界框与真实边界框重叠度的指标。它的计算公式如下:

IoU=预测框∩真实框/预测框∪真实框​

其中:

  • 预测框是模型预测的边界框。
  • 真实框是实际标注的边界框。
  • 交集(Intersection):指预测框和真实框重叠的区域。
  • 并集(Union):指预测框和真实框的总面积,即它们的并集区域。
例子:

假设预测框和真实框分别为:

  • 预测框的坐标为 (x1, y1, w1, h1),真实框的坐标为 (x2, y2, w2, h2)
  • 交集区域是预测框和真实框的重叠部分,计算交集区域的面积。
  • 并集区域是预测框和真实框的联合区域,计算并集区域的面积。

IoU 越大,表示预测框与真实框越接近,检测效果越好。通常,我们会设置一个 IoU 阈值(比如 0.5),如果预测框与真实框的 IoU 大于该阈值,则认为是 正样本(检测成功);如果 IoU 小于阈值,则认为是 负样本(检测失败)。

IoU 的常见应用:
  • 目标检测的评估标准:例如,在 COCO 数据集上进行评估时,通常使用 mAP(mean Average Precision),其计算过程中依赖于 IoU 来判断每个预测框是否为 TP(True Positive)
  • 非极大值抑制(NMS):在 YOLO 中,使用 IoU 来去除重复的边界框,保留最有可能是目标的框。

2. 置信度(Confidence)

置信度模型对其预测框包含物体的程度的信心,它反映了该框的 预测准确度。对于 YOLO 算法来说,置信度由两个部分组成:

  • 物体存在的概率:表示预测框包含目标物体的概率。
  • 预测框与真实框的重叠度:通常是通过 IoU 来衡量。

具体来说,YOLO 的每个预测框都会输出一个置信度值,该值表示框内存在物体的可能性以及预测框和真实框的重叠度。例如,在进行目标检测时,如果模型预测某个框包含物体,并且该框与真实框的 IoU 很高,则置信度值会很高。

置信度公式:

Confidence=P(Object)×IoU

其中:

  • P(Object) 是该框包含目标的概率。
  • IoU 是预测框与真实框的交并比。

置信度较高的预测框会被认为更加可信,并且模型会优先选择这些框用于最终检测。

3. 精确率(Precision)

精确率是衡量模型检测结果中有多少是正确的,即 正确预测的正样本占所有预测为正样本的比例。它的计算公式为:

Precision=TP/(TP+FP)

其中:

  • TP(True Positive):真正例,指模型正确预测为目标的边界框。
  • FP(False Positive)假正例,指模型错误地预测为目标的边界框(即实际上没有目标的地方被预测为有目标)。

精确率的提高意味着模型能够更好地减少误报,确保模型预测为目标的框是真正的目标。

精确率举例:
  • 假设模型预测了 10 个框,其中 7 个框是正确的(TP),3 个框是错误的(FP)。
  • 那么,精确率就是 7/(7+3)=0.7,即 70% 的预测为正样本的框是正确的。

4. 召回率(Recall)

召回率是衡量模型检测出的目标的 完整性,即 正确检测出的正样本占所有真实正样本的比例。它的计算公式为:

Recall=TP/(TP+FN)

其中:

  • TP(True Positive):真正例,指模型正确预测为目标的边界框。
  • FN(False Negative):假负例,指模型没有检测到的实际目标(即实际上有目标的地方被预测为没有目标)。

召回率的提高意味着模型能检测到更多的目标,减少漏检。

召回率举例:
  • 假设有 10 个真实目标,其中模型正确检测到了 6 个目标(TP),漏检了 4 个目标(FN)。
  • 那么,召回率就是 6/6+4=0.6,即模型检测到了 60% 的目标。

5. 精确率与召回率的权衡

精确率和召回率通常是 相互对立的

  • 提高精确率通常会降低召回率,因为当我们更加严格地判断框是否为正样本时,可能会漏掉一些真实的目标(增加 FN)。
  • 提高召回率通常会降低精确率,因为当我们降低判断标准,预测框变得更加宽松时,可能会增加误报(增加 FP)。

6. F1-Score

为了综合考虑精确率和召回率,通常会使用 F1-Score,它是精确率和召回率的调和平均数,公式如下:

F1-Score=2×Precision×Recall/Precision+Recall

F1-Score 是平衡精确率和召回率的一种方式,尤其在数据集存在类不平衡时,F1-Score 比单独考虑精确率或召回率更加重要。

7. 实际应用示例

假设你正在使用 YOLO 进行目标检测,评估一个图像上的目标检测结果。假设检测结果如下:

  • 真实目标:有 5 个目标(例如 5 个行人)。
  • 预测结果:模型预测了 6 个框,其中 3 个框正确地检测到了行人(TP),2 个框是误报(FP),1 个行人被漏检(FN)。

计算:

  • 精确率 = TP/TP+FP=33+2=0.6
  • 召回率 = TP/TP+FN=33+1=0.75
  • F1-Score = 2×0.6×0.750.6+0.75=0.67

总结

  • IoU 用于衡量预测框与真实框的重叠程度,是目标检测中的基础评估指标。
  • 置信度 反映了模型对于其预测框包含物体的信心。
  • 精确率 衡量了预测为目标的框中,实际是目标的比例。
  • 召回率 衡量了模型能够找到的真实目标的比例。
  • 精确率召回率 之间通常存在权衡,需要根据实际需求选择合适的指标。

读到这里大家可能对tp tn fp fn仍有疑问,不要着急下面更详细的来了:

在机器学习和目标检测中,TPFPTNFN 是用来衡量模型性能的四个基本概念,它们主要用于评估分类任务的准确性。理解这些概念有助于我们评估模型的效果,特别是在二分类任务(如物体检测)中。

1. TP(True Positive)——真正例

真正例(True Positive)表示 模型正确地预测了正类(即预测结果为正类,且实际也为正类)。

例子:
  • 在目标检测中,如果某个图像中实际存在一个行人,且模型正确地识别出了该行人并且预测框与真实框的IoU大于阈值,则该检测为 TP
  • 在二分类问题中,假设我们要预测邮件是否为垃圾邮件,若模型预测该邮件为垃圾邮件,并且该邮件确实是垃圾邮件,那么这就是一个 TP

2. FP(False Positive)——假正例

假正例(False Positive)表示 模型错误地预测为正类(即模型将负类预测为正类)。

例子:
  • 在目标检测中,如果图像中并没有行人,但模型仍然预测出一个边界框,并且错误地标记为行人,则该检测为 FP
  • 在二分类任务中,如果模型将非垃圾邮件错误地预测为垃圾邮件,则为 FP

3. TN(True Negative)——真负例

真负例(True Negative)表示 模型正确地预测了负类(即模型预测结果为负类,且实际也是负类)。

例子:
  • 在目标检测中,如果图像中没有任何目标(例如没有行人),并且模型正确地没有预测任何目标,那么这就是 TN
  • 在二分类任务中,如果模型正确地预测邮件不是垃圾邮件(即负类),则为 TN

4. FN(False Negative)——假负例

假负例(False Negative)表示 模型错误地预测为负类(即模型将正类预测为负类)。

例子:
  • 在目标检测中,如果图像中有行人,但模型没有检测到任何目标,或者检测到了一个错误的框而没有覆盖行人,这就是 FN
  • 在二分类任务中,如果模型将垃圾邮件错误地预测为非垃圾邮件,则为 FN

总结表格

类别预测结果实际类别说明
TP正类正类模型正确预测为正类(真正例)。
FP正类负类模型错误预测为正类(假正例)。
TN负类负类模型正确预测为负类(真负例)。
FN负类正类模型错误预测为负类(假负例)。

评估指标

基于 TP、FP、TN、FN,我们可以计算多种评估模型性能的指标,以下是几个常见的:

  1. 精确率(Precision)
    精确率是模型预测为正类的样本中,实际为正类的比例。
    公式:

    Precision=TP/TP+FP

    精确率衡量的是模型的预测结果是否可靠。

  2. 召回率(Recall)
    召回率是实际为正类的样本中,模型成功预测为正类的比例。
    公式:

    Recall=TP/TP+FN​

    召回率衡量的是模型是否能够识别出所有的正类。

  3. 准确率(Accuracy)
    准确率是模型正确预测的比例,即真正例和真负例占所有预测的比例。
    公式:

    Accuracy=TP+TN/TP+FP+TN+FN​

    准确率是最直观的指标,但在类不平衡问题中可能不太可靠。

  4. F1-Score
    F1-Score 是精确率和召回率的调和平均数,用于综合评估模型的性能。
    公式:

    F1-Score=2×Precision×Recall/Precision+Recall

    F1-Score 是在精确率和召回率之间找到一个平衡,特别适用于需要平衡两者的任务。

举个例子

假设我们有一个二分类问题(例如判断邮件是否是垃圾邮件):

  • 实际情况:
  • 共有 100 封邮件,其中 30 封是 垃圾邮件(positive),70 封是 正常邮件(negative)。
  • 模型预测:
  • 模型预测了 40 封邮件为垃圾邮件,其中 25 封是正确的垃圾邮件(True Positive (TP)),15 封是错误预测为垃圾邮件的正常邮件(False Positive (FP))。
  • 模型还预测了 60 封邮件为正常邮件,其中 5 封是漏掉的垃圾邮件(False Negative (FN)),55 封是正常邮件(True Negative (TN)

我们可以根据这些信息计算 TP、FP、TN、FN,以及精确率、召回率和 F1-Score。

计算:
  • TP = 25(正确识别的垃圾邮件)

  • FP = 15(错误识别为垃圾邮件的正常邮件)

  • TN = 55(正确识别的正常邮件)

  • FN = 5(漏掉的垃圾邮件)

  • 精确率 = 25/25+15​=0.625

  • 召回率 = 25/25+5=0.833

  • 准确率 = 25+65/25+15+55+5=0.8

  • F1-Score = 2×0.625×0.8330.625+0.833=0.7142 

从这些指标中,我们可以了解到模型在识别垃圾邮件方面的表现,并根据这些信息对模型进行优化。

结论

  • TP、FP、TN 和 FN 是用于评估分类任务中模型表现的基本概念,它们分别代表正确预测正类、错误预测为正类、正确预测负类和错误预测为负类。
  • 通过这些量,可以计算出多个评估指标,如精确率、召回率、准确率和 F1-Score,帮助我们更全面地了解模型的性能,尤其是在类不平衡的情况下,精确率和召回率往往更能反映模型的实际效果。

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

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

相关文章

学习笔记022——Ubuntu 安装 MySQL8.0版本踩坑记录

目录 1、查看可安装 MySQL 版本 2、Ubuntu安装 MySQL8.0 3、MySQL8.0 区分大小写问题 4、MySQL8.0 设置sql_mode 5、MySQL8.0 改端口33060(个人遇到问题) 1、查看可安装 MySQL 版本 ## 列出可用的MySQL版本(列出所有可用的MySQL版本以…

【WRF-Urban】URBPARM.TBL参数解释及内容

【WRF-Urban】URBPARM.TBL参数解释及内容 URBPARM.TBL参数解释URBPARM.TBL参考 参考WRF-Urban教程-Urban Canopy Model URBPARM.TBL参数解释 各个城市相应的城市参数差异很大(例如,有些城市的道路可能很宽但建筑物很矮,而其他城市的道路可…

ASP.NET MVC宠物商城系统

该系统采用B/S架构,使用C#编程语言进行开发,以ASP.NET MVC框架为基础,以Visual Studio 2019为开发工具,数据库采用SQL Server进行保存数据。系统主要功能包括登录注册、宠物展示、个人中心、我的订单、购物车、用户管理、宠物类别…

HBase 开发:使用Java操作HBase

1、实战简介 HBase和Hadoop一样,都是用Java进行开发的,本次实训我们就来学习如何使用Java编写代码来操作HBase数据库。 实验环境: hadoop-2.7 JDK8.0 HBase2.1.1 2、任务 1、第1关:创建表 package step1; import java.io.IOE…

IDEA 开发工具常用快捷键有哪些?

‌在IDEA中,输出System.out.println()的快捷键是sout,输入后按回车(或Tab键)即可自动补全为System.out.println()‌‌。 此外,IDEA中还有一些其他常用的快捷键: 创建main方法的快捷键是psvm,代…

基于Lora通讯加STM32空气质量检测WIFI通讯

目录 目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 1.电路图采用Altium Designer进行设计: 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 随着环境污染问题的日益严重,空气质量的监测与管理已经…

【C++】list使用详解

本篇介绍一下list链表的使用,后续也是会对list进行模拟实现的。list是链表里面的双向链表。 1.文档介绍 list - C Referencehttps://legacy.cplusplus.com/reference/list/list/ list中的接口比较多,此处类似,只需要掌握如何正确的使用&am…

([LeetCode仓颉解题报告] 661. 图片平滑器

[LeetCode仓颉解题报告] 661. 图片平滑器 一、 题目1. 题目描述2. 原题链接 二、 解题报告1. 思路分析2. 复杂度分析3. 代码实现 三、 本题小结四、 参考链接 一、 题目 1. 题目描述 2. 原题链接 链接: 661. 图片平滑器 二、 解题报告 1. 思路分析 由于只需要3*39个格子&am…

算法-二叉树(从理论知识到力扣题,递归、迭代。)

二叉树 一、二叉树理论知识1、种类a.满二叉树b.完全二叉树c.二叉搜索树d.平衡二叉搜索树 2、java对于树的理解3、存储a.链式存储(常用)b.数组存储 4、遍历方式a.深度优先搜索b.广度优先搜索 5、树的定义(链式) 二、力扣题解写题思…

数字后端零基础入门系列 | Innovus零基础LAB学习Day11(Function ECO流程)

###LAB 20 Engineering Change Orders (ECO) 这个章节的学习目标是学习数字IC后端实现innovus中的一种做function eco的flow。对于初学者,如果前面的lab还没掌握好的,可以直接跳过这节内容。有时间的同学,可以熟悉掌握下这个flow。 数字后端…

打开AI的黑盒子——机器学习可解释性!

2024深度学习发论文&模型涨点之——机器学习可解释性 现在以深度学习为主的方法在各个领域都已经next level了,但是如何解释我们的模型仍然是个难题。为什么得到这样的结果往往和结果本身一样重要。因此,个人觉得Explainable AI (XAI)依然会是近些年…

白蚁自动化监测系统的装置和优势

一、背景 在当今社会,随着科技的飞速发展,智能化、自动化技术在各个领域的应用日益广泛,白蚁自动化监测系统作为一种高效、精准的白蚁防控手段,正逐步成为行业内的主流趋势,既是文物古建水利堤坝等预防性保护的要求&a…

HarmonyOs鸿蒙开发实战(10)=>状态管理-对象数组的属性数据变更刷新UI,基于@Observed 和@ObjectLink装饰器

1.条件:基于HarmonyOs5.0.0版本. 2.功能要求:横向列表中每个景点的名称(eg: 第二项 “灵隐寺” ), 在通过天气接口拿到对应天气后,拼接到名称后面 > 变成(“灵隐寺” 天气)) 3.老规矩先看…

详细描述一下Elasticsearch搜索的过程?

大家好,我是锋哥。今天分享关于【详细描述一下Elasticsearch搜索的过程?】面试题。希望对大家有帮助; 详细描述一下Elasticsearch搜索的过程? Elasticsearch 的搜索过程是其核心功能之一,允许用户对存储在 Elasticsea…

FPGA理论基础1一一一简单的硬件知识

FPGA理论基础一一一简单的硬件知识 文章目录 FPGA理论基础一一一简单的硬件知识一、BANK1.1、BANK01.2、BANK141.3、MGTBANK二、上电时序三 认识命名规则 一、BANK 7系列的FPGA中,BANK分为HPBank、HRBank、HDBank;但并不是一个FPGA中会同时包含HP/HR/HDBank HP(Hi…

【Mysql】函数---控制流函数

1、if逻辑判断语句 格式 解释 if(expr,v1,v2) 如果表达式expr成立,返回结果v1,否则返回v2 ifnull(v…

【Java企业级开发技术】【MyBatis入门程序】上机实验

Java企业级开发技术-MyBatis入门程序-上机实验 1 实验目的 掌握Mybatis环境配置熟悉Mybatis基本开发流程能够开发简单的入门程序 2 实验内容 创建1个学生(student)表,包括学号(num),姓名(name),年龄(age),通过Mybatis框架实现如下数据库访…

python之sklearn--鸢尾花数据集之数据降维(PCA主成分分析)

python之sklearn–鸢尾花数据集之数据降维(PCA主成分分析) sklearn库:Scikit - learn(sklearn)是一个用于机器学习的开源 Python 库。它建立在 NumPy、SciPy 和 matplotlib 等其他科学计算库之上,为机器学习的常见任务提供了简单…

已解决-idea创建Maven项目卡死,一动不动

先说原因: idea创建maven项目时要从中央仓库下载archetype-catalog.xml(文件较大,14.8M)导致卡住 所以一种解决方案是,手动将这个文件下载到本地的仓库目录下即可解决 文件下载地址: 链接:https://pan.baidu.com/s/1…

vulhub之log4j

Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645) 漏洞简介 Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。 Apache Log4j 在应用程序中添加日志记录最…