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

目标检测:YOLO 模型详解

目录

一、YOLO(You Only Look Once)模型讲解

YOLOv1

YOLOv2 (YOLO9000)

YOLOv3

YOLOv4

YOLOv5

YOLOv6

YOLOv7

YOLOv8

YOLOv9

YOLOv10

YOLOv11

YOLOv12

其他变体:PP-YOLO

二、YOLO 模型的 Backbone:Focus 结构

三、YOLO 模型的 Neck:FPN 和 PAN 结构

FPN(Feature Pyramid Network)

PAN(Path Aggregation Network)

四、YOLO 模型的实战应用

安装环境

YOLO V5 模型训练和推理

1. 模型训练

2. 模型推理


一、YOLO(You Only Look Once)模型讲解

YOLOv1

  • 发布时间:2015 年。

  • 核心创新:首次提出将目标检测任务转化为回归问题,直接从图像像素预测边界框和类别概率,实现端到端的实时目标检测。这种创新性的思路使得 YOLOv1 能够在保持较高检测速度的同时,获得相对较好的检测精度。

  • 网络架构:采用了 24 个卷积层和 2 个全连接层的结构。卷积层用于特征提取,而全连接层用于预测边界框的位置和类别概率。

  • 损失函数:YOLOv1 设计了一个综合损失函数,该函数同时考虑了边界框的坐标误差、宽度高度误差以及类别置信度误差,通过加权的方式将这些误差项结合起来进行优化,以提高检测的准确性。

  • 应用场景:适用于对实时性要求较高的场景,如实时视频监控等,能够在保证一定检测精度的同时快速地对图像中的目标进行定位和分类。

YOLOv2 (YOLO9000)

  • 发布时间:2016 年。

  • 主要改进

    • Batch Normalization:在卷积层后添加 Batch Normalization 层,加速训练过程并提高模型的稳定性,使模型更容易优化,且在一定程度上防止过拟合。

    • High Resolution Classifier:使用高分辨率图像进行分类训练,使模型能够更好地捕捉图像中的细节信息,从而提高对小目标的检测能力以及目标类别的识别准确性。

    • Anchor Boxes:引入预定义的边界框(Anchor Boxes),提高边界框预测的准确性,解决 YOLOv1 中边界框预测不够准确的问题。

    • Dimension Clusters:通过聚类算法生成 Anchor Boxes,使其更符合数据集中的目标分布,从而提高边界框的匹配度和检测性能。

  • 网络架构:基础网络采用 Darknet-19,该网络包含 19 个卷积层和 5 个最大池化层,能够有效地提取图像特征并减少计算量。

  • 损失函数:在 YOLOv1 的损失函数基础上进行了改进,对边界框的坐标误差和宽度高度误差的计算方式进行了调整,使其更加注重边界框的精确度,并且对类别置信度误差的计算也进行了优化,以提高分类的准确性。

  • 应用场景:除了实时视频监控外,还可以应用于需要较高检测精度的场景,如自动驾驶中的目标检测等,能够在保持较快检测速度的同时提供更准确的检测结果。

YOLOv3

  • 发布时间:2018 年。

  • 主要改进

    • Darknet-53:采用 Darknet-53 作为 Backbone 网络,具有更深的网络结构和更高的特征提取能力,能够更好地捕捉图像中的复杂特征和深层次信息,从而提高对不同类型目标的检测性能。

    • Multi-Scale Prediction:在不同尺度的特征图上进行预测,使模型能够同时检测到大中小不同尺寸的目标,有效解决了 YOLOv1 和 YOLOv2 对小目标检测效果不佳的问题。

    • ** mieuxanchors**:优化 Anchor Boxes 的生成方式,提高边界框预测的精度,使模型能够更准确地定位目标的位置和大小。

  • 网络架构:包括 Darknet-53 作为 Backbone,以及多个上采样和下采样层组成的 Neck 部分,最后通过三个不同尺度的特征图进行目标检测预测。

  • 损失函数:进一步改进了损失函数,采用了不同尺度特征图的损失加权求和的方式,使得模型在不同尺度上的检测结果都能够得到有效的优化,并且对边界框的坐标、宽度高度以及类别置信度的误差计算都进行了精细化的设计,以提高整体检测性能。

  • 应用场景:适用于对检测精度要求较高的场景,如安防监控中的行人、车辆检测以及医疗影像中的病变检测等,能够提供高精度的检测结果,帮助用户更准确地识别和定位目标。

YOLOv4

  • 发布时间:2020 年。

  • 主要改进

    • Mish Activation Function:采用 Mish 激活函数,提高模型的非线性表达能力,使模型能够更好地拟合复杂的图像数据分布,从而增强对不同类型目标的检测性能。

    • CSPDarknet53:使用 CSPDarknet53 作为 Backbone 网络,减少计算量并提高特征提取效率,通过引入跨阶段部分网络结构,有效地减少了网络的计算冗余,同时增强了特征的传播和利用效率。

    • SPP Block:引入空间金字塔池化(SPP)块,增强模型对不同尺度目标的适应能力,使模型能够更好地处理图像中目标大小变化较大的情况,提高检测的灵活性和准确性。

    • PANet:采用 PANet(Path Aggregation Network)进行特征融合,提高特征传播效率,确保低层次特征图能够充分获取高层次特征图的语义信息,从而提高模型对小目标的检测能力和多尺度目标检测的性能。

  • 网络架构:基于 CSPDarknet53 构建 Backbone,通过 SPP Block 进行特征增强,再利用 PANet 进行特征融合,最后在不同尺度的特征图上进行目标检测预测。

  • 损失函数:在前几代 YOLO 的基础上,对损失函数进行了进一步的优化和完善,使其能够更好地平衡边界框定位误差和类别分类误差之间的关系,并且针对不同尺度特征图的预测结果采用了不同的损失权重,以提高模型在不同尺度上的检测效果。

  • 应用场景:在各种需要高精度目标检测的场景中表现出色,如智能交通中的交通标志识别、无人驾驶车辆的障碍物检测等,能够快速准确地识别出图像中的目标,并为其提供精确的定位信息,为后续的决策和控制提供有力支持。

YOLOv5

  • 发布时间:2020 年。

  • 主要改进

    • Simplified Architecture:简化了网络结构,使其更易于训练和部署,降低了模型的复杂度,提高了训练和推理的效率,同时也便于用户根据实际需求进行定制和优化。

    • AutoAnchor:自动计算 Anchor Boxes,提高边界框预测的准确性,能够根据训练数据自适应地调整 Anchor Boxes 的尺寸和比例,使其更好地匹配数据集中的目标分布,从而提高检测性能。

    • Efficient Training:优化了训练过程,使其在相同硬件条件下能够训练更深的网络,通过采用一些高效的训练技巧和优化策略,如混合精度训练等,提高了模型的训练速度和收敛性能。

  • 网络架构:整体结构相对简洁,主要包括一个 Backbone 网络用于特征提取、一个 Neck 部分用于特征融合以及一个 Head 部分用于目标检测预测。Backbone 网络采用了类似 CSPDarknet 的结构,Neck 部分则通过特征金字塔结构进行特征融合,Head 部分在不同尺度的特征图上进行目标检测预测。

  • 损失函数:继承了 YOLO 系列经典的损失函数设计思路,并根据 YOLOv5 的网络结构和特点进行了适当的调整和优化,以确保模型能够快速稳定地收敛,并且在检测精度和速度之间取得良好的平衡。

  • 应用场景:由于其简洁高效的网络结构和良好的性能表现,YOLOv5 广泛应用于各种目标检测任务中,如工业检测中的产品缺陷检测、无人机航拍图像中的目标识别等,能够快速准确地完成目标检测任务,满足不同用户在不同场景下的需求。

YOLOv6

  • 发布时间:2022 年。

  • 主要改进

    • RepVGG 思想:借鉴 RepVGG 思想设计高效骨干网络,通过将标准卷积和多分支结构在训练时进行联合学习,然后在推理时将多分支结构替换为单个卷积,从而在保持较高精度的同时显著提高推理速度,提高模型的实际应用效率。

    • SimOTA:借鉴 YOLOX 中的 SimOTA 进行正负样本匹配,使得正负样本的匹配更加准确合理,提高了模型的训练效果和检测性能。

    • SIoU Loss:使用 SIoU Loss 更好地回归检测框位置,通过引入边界框的重叠面积、中心点距离以及边界框的长宽比等多因素综合考量,使边界框的回归更加精准,提高了目标定位的准确性。

  • 网络架构:采用了较为轻量化的骨干网络结构,并结合高效的特征融合策略,使得整个模型在保证检测精度的同时具有更快的推理速度,更适合在资源受限的设备上运行。

  • 损失函数:以 SIoU Loss 为核心,对边界框回归损失进行了优化,同时对分类损失也进行了一定的调整和改进,使模型在训练过程中能够更好地平衡边界框回归和类别分类任务,提高整体检测性能。

  • 应用场景:适用于对模型体积和推理速度有较高要求的移动设备或嵌入式设备上的目标检测任务,如手机端的图像识别应用、智能摄像头的目标检测等,能够在有限的计算资源下快速准确地完成目标检测任务。

YOLOv7

  • 发布时间:2022 年。

  • 主要改进

    • 重参数化:引入重参数化技术,通过将多个卷积层和批归一化层融合为一个等价的卷积层,有效地减少了模型的参数数量和计算量,同时提高了模型的推理速度和性能表现。

    • 动态标签分配策略:优化了标签分配过程,使得模型能够更加合理地利用训练数据中的信息,提高了模型的训练效率和检测精度。

  • 网络架构:在保持 YOLO 系列模型简洁高效的特点基础上,通过重参数化等技术对网络结构进行了优化,使得模型结构更加紧凑高效,同时具备较强的特征提取和检测能力。

  • 损失函数:对损失函数进行了进一步的优化和完善,使其能够更好地适应 YOLOv7 的网络结构和训练策略,并且在平衡边界框回归和类别分类任务方面表现出色,有助于提高模型的整体检测性能。

  • 应用场景:广泛应用于各种需要高效目标检测的场景,如智能安防中的行为分析、工业生产中的自动化检测等,能够在保证检测精度的前提下快速地对目标进行识别和定位,满足实时性要求较高的应用需求。

YOLOv8

  • 发布时间:2023 年。

  • 主要改进

    • BoT(Bottleneck Transformer)注意力机制:融合 Transformer 架构中的注意力机制,增强了模型对图像全局特征的捕捉能力,使模型能够更好地理解图像中目标与背景以及目标之间的相互关系,从而提高检测精度。

    • 改进的 CSP(Cross Stage Partial)结构:进一步优化了 CSP 结构,在减少计算量的同时提高了特征提取的效率和质量,使得模型能够更充分地利用图像信息进行目标检测。

    • 更高效的训练策略:采用了一些先进的训练技巧,如渐进式训练等,提高了模型的训练效率和收敛速度,缩短了模型的训练时间。

  • 网络架构:结合 BoT 注意力机制和改进的 CSP 结构,构建了一个更加高效、强大的目标检测模型。其整体结构仍然延续了 YOLO 系列的风格,包括 Backbone、Neck 和 Head 三个主要部分,通过合理的设计和优化,使得模型在检测精度和速度方面都取得了显著提升。

  • 损失函数:继承并优化了 YOLO 系列的损失函数设计,在处理边界框回归和类别分类任务时更加得心应手,能够有效地引导模型朝着正确的方向进行学习和优化,提高检测结果的质量。

  • 应用场景:除了常见的目标检测任务外,YOLOv8 还在一些对检测精度和速度要求极高的特定领域表现出色,如医疗影像中的细胞检测、航空航天领域的目标识别等,为相关领域的研究和应用提供了有力的技术支持。

YOLOv9

  • 发布时间:2024 年 2 月。

  • 主要改进

    • 可编程梯度信息(PGI):通过引入可编程梯度信息,能够更精准地控制模型训练过程中的梯度更新方向和大小,提高模型的训练效率和稳定性,加速模型的收敛过程。

    • 广义高效层聚合网络(GELAN):提出了一种新的特征融合网络结构,能够更加高效地聚合不同层次的特征信息,充分发挥多尺度特征的优势,提高模型对不同类型和尺度目标的检测能力。

  • 网络架构:以 PGI 和 GELAN 为核心,构建了一个具有创新性的目标检测模型。该架构在保持 YOLO 系列高效性的同时,通过新颖的特征融合和梯度控制机制,进一步提升了模型的性能和适用性。

  • 损失函数:根据 YOLOv9 的特点和改进点,对损失函数进行了相应的优化和调整,使其能够更好地配合 PGI 和 GELAN 的工作,充分挖掘模型的潜力,提高检测精度和速度。

  • 应用场景:适用于各种复杂场景下的目标检测任务,尤其是在目标尺度变化大、背景复杂的情况下,能够发挥其优越的性能,如野生动物保护中的动物监测、智能物流中的物品识别等,为解决实际应用中的难题提供了有效的技术手段。

YOLOv10

  • 发布时间:2024 年 5 月。

  • 主要改进:由清华大学提出,通过引入端到端头,消除了非最大抑制(NMS)要求,实现了实时目标检测的进步。这一改进使得 YOLOv10 能够在保持高精度的同时,进一步提高检测速度和效率,简化了检测流程。

  • 网络架构:采用了先进的网络设计,将端到端的检测思想贯彻到底,通过创新的网络结构和算法优化,实现了对目标的直接检测,无需后续的 NMS 处理,提高了整个检测流程的连贯性和实时性。

  • 损失函数:针对端到端的检测框架,设计了与之匹配的损失函数,能够更好地引导模型学习到准确的目标检测能力,提高检测结果的可靠性和稳定性。

  • 应用场景:在需要实时性极高且检测精度要求不降低的场景中具有很大的应用潜力,如实时的体育赛事分析、智能交通系统的实时目标监测等,能够快速准确地捕捉到目标信息,为相关决策提供及时准确的数据支持。

YOLOv11

  • 发布时间:2024 年 9 月。

  • 主要改进:继承自 YOLOv8,在同等精度下参数量降低 20%,具有出色的性能和灵活性,适用于各种硬件平台。这使得 YOLOv11 能够在资源受限的设备上运行得更加流畅,同时保持较高的检测精度。

  • 网络架构:基于 YOLOv8 的架构进行了优化和精简,在不损失关键检测能力的前提下减少了模型的参数数量和计算量,使得模型更加轻量化和高效。

  • 损失函数:沿用并优化了 YOLOv8 的损失函数,使其更加适应 YOLOv11 的网络结构和应用场景,确保模型在不同硬件平台上都能够稳定地发挥其性能,提供准确的检测结果。

  • 应用场景:广泛适用于各种硬件设备上的目标检测任务,无论是高性能的服务器端应用还是资源受限的移动设备端应用,YOLOv11 都能够以良好的性能表现完成目标检测任务,如移动设备上的增强现实应用、服务器端的大规模图像识别服务等。

YOLOv12

  • 发布时间:2025 年 2 月。

  • 主要改进:首次将注意力机制引入单阶段目标检测框架,在速度和性能上取得新的突破,为单阶段目标检测领域开辟了新的方向。这一创新使得 YOLOv12 能够更加关注图像中重要的目标区域,减少背景信息的干扰,提高检测精度。

  • 网络架构:将注意力机制深度融合到 YOLO 的单阶段检测框架中,通过在不同层次的特征图上应用注意力模块,使得模型能够自动学习到图像中不同区域的重要性程度,并据此调整特征提取和检测的策略。

  • 损失函数:结合注意力机制的特点,对损失函数进行了相应的调整和优化,使其能够更好地引导模型关注重要目标区域的检测任务,进一步提高检测性能。

  • 应用场景:对于需要高精度检测且目标与背景差异不明显的复杂场景,如医学影像中的病变检测、遥感图像中的目标识别等,YOLOv12 能够发挥其独特的优势,提供更精准的检测结果,助力相关领域的研究和应用发展。

其他变体:PP-YOLO

  • 发布时间:由 PaddlePaddle 团队开发并持续更新。

  • 主要改进:PP-YOLO 系列通过深度结合 PaddlePaddle 深度学习平台的特性,对网络结构、训练策略以及优化方法等方面进行了全面优化。例如,在网络结构上进行了剪枝和量化等操作,以适应不同硬件平台的部署需求;在训练策略上采用了更先进的数据增强和正则化方法,提高模型的泛化能力。

  • 网络架构:PP-YOLO 的架构在借鉴 YOLO 系列经典设计的基础上,根据 PaddlePaddle 的平台优势进行了定制化开发,使其在 PaddlePaddle 生态系统中能够高效运行,并且易于与其他 PaddlePaddle 工具和组件进行集成。

  • 损失函数:根据 PP-YOLO 的具体改进点和应用场景,设计了与之相匹配的损失函数,充分利用 PaddlePaddle 的优化能力,提高模型的训练效率和检测性能。

  • 应用场景:紧密围绕 PaddlePaddle 的用户群体和应用场景,广泛应用于智能安防、智能交通、工业质检等领域,尤其在国产化 AI 生态建设和行业定制化解决方案方面发挥着重要作用,为国内企业和开发者提供了高效易用的目标检测工具。

二、YOLO 模型的 Backbone:Focus 结构

Focus 结构是 YOLO V4 中引入的一种新型 Backbone 结构,旨在提高特征提取效率。它通过将图像分割成多个 patches 并进行堆叠,实现对图像的高效特征提取。Focus 结构的具体操作如下:

  1. 图像分割:将图像分割成多个非重叠的 patches。

  2. 通道堆叠:将这些 patches 在通道维度上进行堆叠,形成一个新的特征图。

  3. 卷积操作:对堆叠后的特征图进行卷积操作,提取高级特征。

这种结构能够在不增加过多计算量的情况下,提取到更丰富的特征信息。

三、YOLO 模型的 Neck:FPN 和 PAN 结构

FPN(Feature Pyramid Network)

FPN 是一种用于多尺度目标检测的特征金字塔结构。它通过将不同层次的特征图进行融合,能够有效检测不同大小的目标。FPN 的主要特点包括:

  1. 自底向上构建特征金字塔:通过卷积层和池化层逐步提取图像的高层次特征。

  2. 自顶向下融合多尺度特征:将高层次特征图上采样并与低层次特征图进行融合,增强低层次特征图的语义信息。

  3. 侧向连接:在融合过程中,使用侧向连接来结合不同层次的特征图。

FPN 的引入显著提高了 YOLO 模型对不同尺度目标的检测能力。

PAN(Path Aggregation Network)

PAN 是另一种用于特征融合的结构,旨在提高特征传播效率。它通过自底向上的路径聚合低层次特征图的高分辨率信息,增强模型对小目标的检测能力。PAN 的主要特点包括:

  1. 自底向上特征传播:将低层次特征图的高分辨率信息传播到高层次特征图中。

  2. 多尺度特征融合:结合不同尺度的特征图,提高模型对多尺度目标的检测能力。

PAN 结构在 YOLO V4 中与 FPN 结合使用,进一步提升了模型的检测性能。

四、YOLO 模型的实战应用

安装环境

在开始实战之前,确保已经安装了以下 Python 库:

pip install torch torchvision

YOLO V5 模型训练和推理

以下是使用 YOLO V5 进行目标检测的示例代码:

1. 模型训练
import torch# 加载预训练模型
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)# 设置训练参数
model.train(data='data.yaml', epochs=100, imgsz=640)
2. 模型推理
# 加载训练好的模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path='best.pt')# 推理图像
results = model('image.jpg')# 显示结果
results.show()

YOLO 模型凭借其高效的端到端检测能力,在实时目标检测领域取得了显著的成果。从 YOLO V1 到 YOLO V5,每个版本都在不断地改进和优化,以提高检测精度和速度。希望这篇博客能够帮助你深入理解 YOLO 模型的原理和实现,为进一步探索目标检测技术提供坚实的基础。

相关文章:

目标检测:YOLO 模型详解

目录 一、YOLO(You Only Look Once)模型讲解 YOLOv1 YOLOv2 (YOLO9000) YOLOv3 YOLOv4 YOLOv5 YOLOv6 YOLOv7 YOLOv8 YOLOv9 YOLOv10 YOLOv11 YOLOv12 其他变体:PP-YOLO 二、YOLO 模型的 Backbone:Focus 结构 三、…...

85本适合AI入门的人工智能书籍合集免费资源

宝藏资源!分享85本适合AI初学者入门人工智能的书籍合集给大家下载,都是epub格式的,方便大家阅读,文末给大家提供免费下载方式,主要包括如下电子书: Julia机器学习核心编程:人人可用的高性能科学…...

Zabbix开源监控的全面详解!

一、zabbix的基本概述 zabbix,这款企业级监控软件,能全方位监控各类网络参数,确保企业服务架构的安全稳定运行。它提供了灵活多样的告警机制,帮助运维人员迅速发现并解决问题。此外,zabbix还具备分布式监控功能&#…...

[杂学笔记]浏览器多进程与多线程架构、wstring类型、哈希表、红黑树与哈希表的对比、C++标准库Random类

目录 1. 浏览器多进程与多线程架构 2. wstring类型 3. 哈希表 4. 红黑树与哈希表的对比 5. C标准库Random类 1. 浏览器多进程与多线程架构 现代的浏览器(如Chrome)采用的是多进程与多线程结合的架构设计的。 多进程机制:Browser主进程用…...

AI+MCP 自动发布小红书笔记

分享一个超赞的效率工具—小红书MCP发布器(xhs-mcp-server),让你轻松实现AI内容一键发布到小红书! Cursor配置 在 Cursor 的 Cursor Settings 中找到 MCP,点击右侧上方的 Add new global MCP server 按钮&#xff0c…...

02_redis分布式锁原理

文章目录 一、redis如何实现分布式锁1. 使用 SETNX 命令2. 设置过期时间3. 释放锁4. 注意事项5. 示例代码 二、Java中分布式锁如何设置超时时间1. Redis分布式锁2. 基于Zookeeper的分布式锁3. 基于数据库的分布式锁注意事项 一、redis如何实现分布式锁 Redis 实现分布式锁是一…...

07SpringMVC底层形象解析

目录 一、基于餐厅比喻的代码示例 ,帮助你理解各组件间的协作关系 1. DispatcherServlet 配置(服务员) 2. HandlerMapping 配置(菜单索引) 3. Controller 实现(厨师) 4. Service 层&#x…...

jvm调优以及常见jvm问题解决等

1、通过top命令查询异常的进程 top 2、通过 使用top -Hp<PID>命令查看该进程内各个线程的CPU占用情况&#xff1a; top -Hp PID 记录下占用CPU较高的线程ID。 3、转换线程ID为十六进制 使用printf命令将线程ID 19664 转换为十六进制&#xff0c;结果为 0x4cd0&#xff1…...

深入理解万维网:URL、HTTP与HTML

深入理解万维网&#xff1a;URL、HTTP与HTML 统一资源定位符&#xff08;URL&#xff09; 1.1 什么是URL&#xff1f; 统一资源定位符URL&#xff08;Uniform Resource Locator&#xff09;是万维网上用于标识和定位各种文档的标准方法&#xff0c;它使每个资源在互联网范围内…...

RPC 协议详解、案例分析与应用场景

一、RPC 协议原理详解 RPC 协议的核心目标是让开发者像调用本地函数一样调用远程服务&#xff0c;其实现过程涉及多个关键组件与流程。 &#xff08;一&#xff09;核心组件 客户端&#xff08;Client&#xff09;&#xff1a;发起远程过程调用的一方&#xff0c;它并不关心调…...

唯创安全优化纸业车间安全环境:门口盲区预警报警器的应用与成效

一、客户现场 客户主要从事于卷烟纸、成型纸、烟草制造业用纸及其他特定用途纸类制品的加工、生产与销售。在其厂区内&#xff0c;叉车频繁作业&#xff0c;车间环境复杂。经实地查看&#xff0c;发现几大安全隐患&#xff1a; 门口拐角隐患&#xff1a;门口拐角处因卷帘门阻…...

解决dedecms织梦系统{dede:arclist keyword=‘动态获取关键词‘}只生效一次

当我们通过{dede:arclist keyword关键词}来调用文章列表时&#xff0c;你会发现只在其中一个栏目里生效&#xff0c;在其他栏目&#xff0c;仍然显示上一次的关键词。 原因是由于arclist的缓存导致的。 只需修改/include/taglib/arclist.lib.php文件&#xff0c;大概在384行&a…...

高级学习算法(神经网络 决策树)

目录 神经网络 (Neural networks)神经网络的介绍需求预测 (Demand Prediction)例子&#xff1a;图像识别人脸识别&#xff08;Face recognition&#xff09;汽车分类&#xff08;Car classification&#xff09; 神经网络中的层更复杂的神经网络推理&#xff1a;前向传播 (Forw…...

labview硬件部分——温度测量

硬件连接&#xff1a; &#xff08;1&#xff09;温度测量的电压采集&#xff1a;&#xff08;电压的单位为V&#xff09; 温度采集程序图&#xff1a; 运行结果&#xff1a; 我们可以在显示控件中&#xff0c;看到温度采集的电压值 &#xff08;2&#xff09;温度采集的电压…...

labview——控制继电器模块

高电平——5V 超过一定的电压值&#xff0c;LED打开、继电器打开。&#xff08;结合模拟电压采集与LED控制&#xff09; 控制继电器是数字信号控制。程序与LED控制一致。 &#xff08;1&#xff09;我们先来看看继电器的控制 使用布尔按键&#xff0c;按键按下时&#xff0…...

ArcGIS Pro 3.4 二次开发 - 核心主机

环境&#xff1a;ArcGIS Pro SDK 3.4 .NET 8 文章目录 核心主机1 核心主机1.1 初始化核心主机 核心主机 1 核心主机 1.1 初始化核心主机 using ArcGIS.Core.Data; //必须引用 ArcGIS.CoreHost.dll using ArcGIS.Core.Hosting; class Program { //应用程序入口点必须包含 [S…...

IntelliJ IDEA 接入 DeepSeek帮助你更好编码

适配 IDEA 版本为了更好的使用插件&#xff0c;这里推荐使用一个代理插件——CodeGPT&#xff0c;CodeGPT是一个AI驱动的代码助手&#xff0c;旨在帮助开发者进行各种编程活动&#xff0c;它是GitHub Copilot、AI Assistant、Codiumate和其他JetBrains插件的强大替代品。安装之…...

如何使用Java生成pdf报告

文章目录 一、环境准备与Maven依赖说明二、核心代码解析1. 基础文档创建2. 中文字体处理3. 复杂表格创建4. 图片插入 三、完整代码示例四、最终效果 这篇主要说一下如何使用Java生成pdf&#xff0c;包括标题&#xff0c;文字&#xff0c;图片&#xff0c;表格的插入和调整等相关…...

Memory模块是agent的一个关键组件

Memory 2.6.1 简介 在Agent系统中&#xff0c;Memory模块是一个关键的组件&#xff0c;其主要功能是存储和检索信息&#xff0c;以支持agent的学习和决策过程。该模块模拟人类记忆的某些特征&#xff0c;能够动态地保存和更新信息&#xff0c;使agent能够利用过去的经验进行推…...

初级社会工作者考试难点总结

初级社会工作者考试难点总结 初级社会工作者&#xff08;助理社会工作师&#xff09;考试是进入社会工作行业的入门级资格认证&#xff0c;考试内容涵盖社会工作理论、实务技能及相关法规政策。虽然考试难度相对适中&#xff0c;但部分知识点和题型仍让考生感到棘手。本文总结…...

mapbox进阶,手写放大镜功能

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.1 ☘️mapboxgl.Map style属性二、🍀手写放大镜功能1. ☘️实现思路2. ☘️…...

EasyRTC嵌入式音视频通信SDK一对一音视频通信,打造远程办公/医疗/教育等场景解决方案

一、方案概述​ 数字技术发展促使在线教育、远程医疗等行业对一对一实时音视频通信需求激增。传统方式存在低延迟、高画质及多场景适配不足等问题&#xff0c;而EasyRTC凭借音视频处理、高效信令交互与智能网络适配技术&#xff0c;打造稳定低延迟通信&#xff0c;满足基础通信…...

微信小程序中,解决lottie动画在真机不显示的问题

api部分 export function getRainInfo() {return onlineRequest({url: /ball/recruit/getRainInfo,method: get}); }data存储json数据 data&#xff1a;{rainJson:{} }onLoad方法获取json数据 onLoad(options) {let that thisgetRainInfo().then((res)>{that.setData({r…...

基于Flink的数据中台管理平台

基于Flink做的数据中台工程项目。数据从source到clickhouse全流程的验证。集成元数据管、数据资产、数据发现功能&#xff0c;自主管理元数据变更&#xff0c;集成元数据版本管理。 同时&#xff0c;对整个大数据集群使用到的组件或者是工具进行管理。比如nacos、kafka、zookee…...

Flink-Yarn运行模式

Yarn的部署过程 Yarn上部署的过程是&#xff1a;客户端把Flink应用提交给Yarn的ResourceManager,Yarn的ResourceManager会向Yarn的NodeManager申请容器&#xff0c;在这些容器上&#xff0c;Flink会部署JobManager和TaskManager的实例&#xff0c;从而启动集群&#xff0c;Flin…...

Java---斐波那契那数列

一、斐波那契数列的定义与起源 1. 数学定义 斐波那契数列&#xff08;Fibonacci Sequence&#xff09;又称黄金分割数列&#xff0c;其定义为&#xff1a; 初始项&#xff1a; F(0)0F(1)1 递推公式&#xff1a; 当 n≥2 时&#xff0c;F(n)F(n−1)F(n−2) 前 10 项数列&…...

通过AIoTedge或ThingsKit物联网平台内置的Node-RED读取OPC-UA

《通过AIoTedge或ThingsKit物联网平台内置的Node-RED读取OPC-UA》 一、引言 随着工业物联网&#xff08;IIoT&#xff09;的快速发展&#xff0c;设备之间的互联互通变得至关重要。OPC-UA&#xff08;Open Platform Communications Unified Architecture&#xff09;作为一种…...

《大模型开源与闭源的深度博弈:科技新生态下的权衡与抉择》

开源智能体大模型的核心魅力&#xff0c;在于它构建起了一个全球开发者共同参与的超级协作网络。想象一下&#xff0c;来自世界各个角落的开发者、研究者&#xff0c;无论身处繁华都市还是偏远小镇&#xff0c;只要心怀对技术的热爱与追求&#xff0c;就能加入到这场技术狂欢中…...

genicamtl_lmi_gocator_objectmodel3d

目录 一、在halcon中找不到genicamtl_lmi_gocator_objectmodel3d例程二、在halcon中运行genicamtl_lmi_gocator_objectmodel3d&#xff0c;该如何配置三、代码分段详解&#xff08;一&#xff09;传感器连接四、代码分段详解&#xff08;二&#xff09;采集图像并显示五、代码分…...

Node.js 24发布:性能与安全双提升

在科技的迅速发展中&#xff0c;Node.js作为一个备受青睐的开源跨平台Java运行环境&#xff0c;近日迎来了其24.0版本的正式发布。此次更新不仅承诺提升性能和安全性&#xff0c;还为开发者提供了更为顺畅的开发体验&#xff0c;值得我们深入探讨。 Node.js 24.0的最大亮点之一…...

是德科技 | 单通道448G未来之路:PAM4? PAM6? PAM8?

内容来源&#xff1a;是德科技 随着数据中心规模的不断扩大以及AI大模型等技术的兴起&#xff0c;市场对高速、大容量数据传输的需求日益增长。例如&#xff0c;AI训练集群中GPU等设备之间的互联需要更高的传输速率来提升效率。在技术升级方面&#xff0c;SerDes技术的不断进步…...

Dify智能体开发实践

1.聊天助⼿&#xff1a;创建技术⽀持问答机器⼈&#xff0c;通过提示词约束回答范围并引导追问澄清。 1.提示词 &#xff08;1&#xff09;技术支持机器人提示词 你是一位专业的技术支持机器人&#xff0c;专门为公司的各类技术产品和服务提供支持。你的回答范围严格限制在以下…...

网络安全之APP渗透测试总结

1、脱壳 360免费版加固&#xff0c;frida-dexdump、blackdex都可以脱掉。这里就不演示了 GitHub - hluwa/frida-dexdump: A frida tool to dump dex in memory to support security engineers analyzing malware. 2、密码泄露 经过对app登录界面&#xff0c;有对密码强度进行…...

笔记:NAT

一、NAT 的基本概念 NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09; 是一种在 IP 网络中重新映射 IP 地址的技术&#xff0c;主要用于解决 IPv4 地址短缺问题&#xff0c;同时提供一定的网络安全防护作用。 功能&#xff1a; 将内部网络&am…...

民锋视角下的多因子金融分析模型实践

在当前金融市场环境中&#xff0c;数据粒度与因子建模逐渐成为提升交易系统稳定性的重要方式。民锋长期专注于模型优化与策略深度挖掘&#xff0c;提出了一套适用于中短周期的数据判断体系&#xff0c;核心在于“多因子融合动态调权”。 具体而言&#xff0c;民锋的分析框架常…...

ThinkPHP 根据路由文件获取路由列表

定义一个路由变量 比如我们要获取admin的路由 $routeFile "admin.php"; 清除路由 调用 Route::clear() 方法&#xff0c;清除当前已定义的所有路由。 Route::clear();设置路由懒加载 调用 Route::lazy(false) 方法&#xff0c;禁用路由的懒加载功能,选择立即加…...

算法打卡第三天

10.长度最小的子数组 &#xff08;力扣209题&#xff09; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度**。**如果不存在符合条件的子…...

04_spring容器管理单例多例

文章目录 1. 单例&#xff08;Singleton&#xff09;2. 多例&#xff08;Prototype&#xff09;3. 使用场景4. 注意事项 在Spring框架中&#xff0c;Spring容器负责创建、配置和管理应用程序中的bean。关于单例&#xff08;Singleton&#xff09;和多例&#xff08;Prototype&a…...

算法C++最大公约数

原理 代码实现 #include <stdio.h>// 递归版本 int gcd_recursive(int a, int b) {if (b 0) return a; // 终止条件&#xff1a;余数为0时&#xff0c;除数即为GCDreturn gcd_recursive(b, a % b); // 递归调用&#xff0c;更新为(b, a%b) }// 迭代版本 int gcd_iterat…...

在 Ubuntu 下通过 C APP程序实现串口发送数据并接收返回数据

一、前言 使用 C 应用进行串口调用需要手动配置串口的各项参数&#xff0c;并且 Ubuntu 下的串口是通过读写文件实现的&#xff0c;所以还需要设置权限。 二、源码分析 serial.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <…...

ubuntu24.04+RTX5090D 显卡驱动安装

初步准备 Ubuntu默认内核太旧&#xff0c;用mainline工具安装新版&#xff1a; sudo add-apt-repository ppa:cappelikan/ppa sudo apt update && sudo apt full-upgrade sudo apt install -y mainline mainline list # 查看可用内核列表 mainline install 6.13 # 安装…...

ubuntu22.04上运行opentcs6.4版本

1、下载github上的源码&#xff1a; openTCS - Downloads 2、安装java21 我的版本是&#xff1a;java --version java 21.0.6 2025-01-21 LTS Java(TM) SE Runtime Environment (build 21.0.68-LTS-188) Java HotSpot(TM) 64-Bit Server VM (build 21.0.68-LTS-188, mixed mo…...

labelme进行关键点标注并转换为yolo格式

目录 1、labelme安装和打开2、边界框和关键点标注3、将lamelme的json格式转成yolo可以使用的txt格式4、将数据和标签按照9比1分为训练集和测试集 1、labelme安装和打开 在python3.9及以上环境中安装labelme&#xff0c;labelme要用到pyqt&#xff0c;所以在使用labelme之前要安…...

每日算法-250521

每日算法学习 大家好&#xff01;这是我今天的算法练习记录&#xff0c;分享四道 LeetCode 题目的解题思路和代码。希望能对大家有所帮助&#xff01; 219. 存在重复元素 II 题目 思路 哈希表 利用哈希表来存储数组中元素及其最近出现的索引。 解题过程 当我们遍历数组 num…...

正大模型视角下的高频交易因子构建策略研究

正大模型视角下的高频交易因子构建策略研究 在金融衍生品交易体系中&#xff0c;数据主导型模型逐渐成为核心竞争力。以正大为代表的量化团队&#xff0c;通过大量历史数据研究&#xff0c;构建出一套基于高频因子的模型框架&#xff0c;从成交节奏、盘口行为、价格波动等维度动…...

Babylon.js学习之路《八、动画基础:关键帧动画与缓动效果》

文章目录 1. 引言&#xff1a;动画在3D场景中的核心作用2. 关键帧动画基础2.1 键帧动画原理2.2 创建简单关键帧动画 3. 缓动函数&#xff08;Easing Functions&#xff09;3.1 缓动函数的作用3.2 应用缓动函数 4. 复杂动画&#xff1a;多属性联动与序列控制4.1 同时控制位置、旋…...

小满未满,是成长的序章

节气小满&#xff0c;昭示着奋斗正当时&#xff0c;Codigger 怀揣热忱&#xff0c;在代码的天地里披荆斩棘&#xff0c;向着圆满目标大步迈进 。...

JavaWeb 开发流程

项目建立 SpringBoot框架构建 Spring Boot 是基于 Spring 框架的开源 Java 基础框架&#xff0c;用于创建独立、生产级的基于 Spring Framework 的应用程序。 我们可以使用IDEA建立SpringBoot框架。 语言选择Java&#xff0c;类型选择Maven&#xff0c;JDK和Java要保持一致&…...

Cmake 使用教程

介绍 CMake 是一个开源、跨平台的构建系统&#xff0c;主要用于软件的构建、测试和打包。CMake 使用平台无关的配置文件 CMakeLists.txt 来控制软件的编译过程&#xff0c;并生成适用于不同编译器环境的项目文件。例如&#xff0c;它可以生成 Unix 系统的 Makefile 、 Win…...

CLIP、ViLT 与 LLaVA:多模态模型是如何看图说话的?

一、前言&#xff1a;我们已经讲了 MLLM 能力&#xff0c;但它到底是怎么实现“看图说话”的&#xff1f; 在之前文章中&#xff0c;我们已经提到了MLLM可以看图说话以及文生图等能力&#xff0c;ViT统一图文多模态架构。那模型是如何处理图文信息以及不同处理所带来的能力是怎…...