一篇文章快速认识YOLO11 | 关键改进点 | 安装使用 | 模型训练和推理

news2024/10/9 7:09:51

前言

本文分享YOLO11的关键改进点、性能对比、安装使用、模型训练和推理等内容。

YOLO11 是 Ultralytics 最新的实时目标检测器,凭借更高的精度、速度和效率重新定义了可能性。

除了传统的目标检测外,YOLO11 还支持目标跟踪、实例分割、姿态估计、OBB定向物体检测(旋转目标检测)等视觉任务。

一、分析YOLO11的关键改进点

YOLO11 相比之前版本,带来了五大关键改进:

  1. 增强特征提取:通过改进骨干网络和颈部架构,提升了目标检测的精度。
  2. 优化效率和速度:重新设计了架构,优化了训练流程,提高了处理速度。
  3. 更高精度与更少参数:YOLO11m 在 COCO 数据集上实现更高 mAP,且参数减少 22%。
  4. 多环境适应性:支持边缘设备、云平台和 NVIDIA GPU。
  5. 广泛任务支持:支持检测、实例分割、分类、姿态估计和旋转目标检测。

深入分析 YOLO11 的几个关键特性:

  • 增强特征提取:YOLO11 通过重新设计主干网络和颈部网络(Backbone 和 Neck),提高了从图像中提取特征的能力。这个改进使得 YOLO11 在复杂任务(如多目标检测、遮挡处理等)中表现得更为出色。特征提取的效率直接影响目标的精确定位和分类,新的架构优化提升了检测的敏感度和准确度。

  • 速度与效率优化:YOLO11 采用了更高效的架构和训练流程,保持高精度的同时提升了处理速度。

  • 更高精度,参数更少:YOLO11 的一个亮点在于它在减少了模型参数的情况下,依然能实现较高的精度。相较于 YOLOv8m,YOLO11m 在 COCO 数据集上的 mAP 提升了,且参数减少了 22%。 即:YOLO11 在减少计算资源消耗的同时,依然能够保持或提高检测性能。特别是在资源受限的设备上,如边缘计算设备或低功耗的嵌入式系统,这种高效性显得尤为重要。

  • 适应性强:YOLO11 支持多种环境,包括边缘设备、云平台,甚至是移动端。结合 NVIDIA GPU 的支持,它能够在不同的硬件环境中无缝运行。

  • 支持多种任务:除了传统的目标检测外,YOLO11 还支持目标跟踪、实例分割、姿态估计、OBB定向物体检测(旋转目标检测)、物体分类等视觉任务。

二、YOLO11性能对比

相比之前版本,它在架构和训练方法上有显著改进,提升了整体性能。(感觉提升并不大)

在下方的图表中,展示了 YOLO11 与其他 YOLO 版本(如 YOLOv10、YOLOv9 等)在延迟与检测精度(mAP)上的对比。

YOLO11 在平衡延迟和精度方面表现更优异,适用于广泛的计算机视觉任务,尤其是需要高效推理的场景。

此外,YOLO11 的改进使其在较低计算资源下也能保持高性能,适合边缘设备或云端推理使用。

三、YOLO11支持种视觉多任务

YOLO11支持种视觉多任务,如下表格所示:

包括目标检测、实例分割、姿态估计、OBB定向物体检测(旋转目标检测)、物体分类。

模型细分权重参数任务名称InferenceValidationTrainingExport
YOLO11

yolo11n.pt、 

yolo11s.pt、

yolo11m.pt 、

yolo11l.pt、

yolo11x.pt

Detection
YOLO11-seg

yolo11n-seg.pt、

 yolo11s-seg.pt、 

yolo11m-seg.pt、

 yolo11l-seg.pt 、

yolo11x-seg.pt

Instance Segmentation
YOLO11-pose

yolo11n-pose.pt 、

yolo11s-pose.pt 、

yolo11m-pose.pt 、

yolo11l-pose.pt 、

yolo11x-pose.pt

Pose/Keypoints
YOLO11-obb

yolo11n-obb.pt 、

yolo11s-obb.pt、

 yolo11m-obb.pt 、

yolo11l-obb.pt、

 yolo11x-obb.pt

Oriented Detection
YOLO11-cls

yolo11n-cls.pt 、

yolo11s-cls.pt

yolo11m-cls.pt 、

yolo11l-cls.pt 、

yolo11x-cls.pt

Classification

每种任务都有专门的模型文件(如 yolo11n.pt, yolo11m-seg.pt 等),支持推理、验证、训练和导出功能。

我们可以根据具体的任务需求,在不同场景中灵活部署 YOLO11,比如检测任务使用 YOLO11,而分割任务则可以使用 YOLO11-seg。

  • YOLO11:用于经典的目标检测任务。
  • YOLO11-seg:用于实例分割,识别和分割图像中的对象。
  • YOLO11-pose:用于姿态估计,即确定人体的关键点(如关节位置)。
  • YOLO11-obb:用于定向检测,可以识别并确定具有方向性物体的边界框(例如倾斜的目标物体)。
  • YOLO11-cls:用于分类,负责对图像中的对象进行类别识别。

四、安装YOLO11

官方默认的安装方式是:通过运行 pip install ultralytics 来快速安装 Ultralytics 包。

Ultralytics包中会有YOLO11,同时也包含了多种模型,很方便调用的:

  • YOLOv10、YOLOv9、YOLOv8、YOLOv7、YOLOv6、YOLOv5、YOLOv4 、YOLOv3
  • YOLO-World、Realtime Detection Transformers (RT-DETR)、YOLO-NAS
  • Fast Segment Anything Model (FastSAM)、Mobile Segment Anything Model (MobileSAM)
  • Segment Anything Model 2 (SAM2)、Segment Anything Model (SAM)

安装要求

  • Python 版本要求:Python 版本需为 3.8 及以上,支持 3.8、3.9、3.10、3.11、3.12 这些版本。
  • PyTorch 版本要求:需要 PyTorch 版本不低于 1.8。

安装命令

  • 安装 Ultralytics 包可以使用 pip 命令
  • 这将会自动安装所有必要的依赖项和包
    pip install ultralytics

成功安装,如下图所示:

  • 推荐使用清华源进行加速安装
    pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple/

使用from ultralytics import YOLO,测试一下ultralytics是否安装成功了

>>> 

>>> from ultralytics import YOLO
Creating new Ultralytics Settings v0.0.6 file ✅ 
View Ultralytics Settings with 'yolo settings' or at '/home/liguopu/.config/Ultralytics/settings.json'
Update Settings with 'yolo settings key=value', i.e. 'yolo settings runs_dir=path/to/dir'. For help see https://docs.ultralytics.com/quickstart/#ultralytics-settings.
>>> 

或在用下面的代码:

from ultralytics import settings
from ultralytics import YOLO

# View all settings
print(settings)

# Return a specific setting
value = settings["runs_dir"]
print(value)

其他的安装方式,可以参考:

  • Conda:使用 Conda 环境来安装。参考这里https://anaconda.org/conda-forge/ultralytics
  • Docker:使用 Docker 容器进行安装。参考这里https://hub.docker.com/r/ultralytics/ultralytics
  • Git:从 Git 仓库克隆进行安装。参考这里https://docs.ultralytics.com/quickstart/#conda-docker-image

五、快速体验YOLO11

示例1:使用Ultralytics YOLO模型对图像进行目标检测

示例代码,如下所示: 

from ultralytics import YOLO

# 加载预训练的YOLOv11n模型
model = YOLO("yolo11n.pt")


# 对'bus.jpg'图像进行推理,并获取结果
results = model.predict("bus.jpg", save=True, imgsz=320, conf=0.5)

# 处理返回的结果
for result in results:
    boxes = result.boxes       # 获取边界框信息
    probs = result.probs       # 获取分类概率
    result.show()              # 显示结果
  • save=True:指定是否保存推理后的结果图像。如果设为True,则推理后的图像会自动保存。
  • imgsz=320:指定推理时图像的尺寸。此处设置为320像素,这影响模型在推理时输入图像的大小。较小的图像尺寸通常会加快推理速度,但可能会影响结果的精度。
  • conf=0.5:设置置信度阈值。只有置信度大于或等于0.5的检测结果才会显示。
  • 通过返回的 results 对象进行进一步的处理,如显示、提取边界框信息或分类概率。

详细参考:Predict - Ultralytics YOLO Docs

 示例2:使用Ultralytics YOLO模型对图像进行推理(多任务)

思路流程

  • 加载模型:预先训练好的YOLOv11n模型通过YOLO('yolo11n.pt')加载。
  • 运行推理:使用model()方法图像进行推理,并返回Results对象的列表(当stream=False时)。
  • 处理推理结果:通过遍历Results对象列表,可以访问每个结果中的边界框、分割掩码、关键点、分类概率等信息。

返回结果

  • 结果类型:返回的Results对象包含了各种类型的输出,如检测边界框(boxes)、分割掩码(masks)、关键点(keypoints)、分类概率(probs)等。
  • 图像展示与保存:可以直接显示结果图像(result.show()),也可以将其保存为文件(result.save())。

示例代码,如下所示: 

from ultralytics import YOLO

# 加载模型
model = YOLO('yolo11n.pt')  # 加载预训练的YOLOv11n模型

# 对单张图像进行推理
result = model("image1.jpg")  # 返回单个Results对象

# 处理结果
boxes = result.boxes       # 边界框结果
masks = result.masks       # 分割掩码结果
keypoints = result.keypoints  # 关键点检测结果
probs = result.probs       # 分类概率结果
obb = result.obb           # 方向边界框结果(OBB)

result.show()              # 显示结果
result.save(filename="result.jpg")  # 保存结果到磁盘

示例3:在COCO8数据集上训练YOLOv11n模型

YOLO模型加载方式:(三种方法可选择)

  • 可以通过yaml文件(如yolo11n.yaml)从头构建一个新模型。
  • 也可以加载预训练的模型(如yolo11n.pt)。
  • 或者先构建模型再加载预训练的权重。

训练设置

  • 使用model.train()方法进行训练,指定数据集、训练轮数(epochs)为100,图像大小为640。
  • device参数可以指定是否使用GPU或CPU进行训练,如果没有指定,将自动选择可用的GPU,否则使用CPU。 

示例代码,如下所示: 

from ultralytics import YOLO

# 加载模型
# model = YOLO('yolo11n.yaml')  # 从YAML文件构建一个新模型
# model = YOLO('yolo11n.pt')    # 加载预训练模型(推荐用于训练)
model = YOLO('yolo11n.yaml').load('yolo11n.pt')  # 从YAML文件构建模型并加载预训练权重

# 训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)  # 指定数据集、训练轮数为100,图像大小为640

 

示例4:在多GPU环境下进行训练

多GPU训练

  • 通过指定多个GPU设备的ID来分配训练任务。例如,device=[0, 1] 表示使用第0和第1号GPU进行训练。
  • 这可以有效利用硬件资源,将训练任务分布到多个GPU上,从而提高训练效率。

示例代码,如下所示: 

from ultralytics import YOLO

# 加载模型
model = YOLO('yolo11n.pt')  # 加载预训练模型(推荐用于训练)

# 使用2个GPU进行训练
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

详细参考:https://docs.ultralytics.com/modes/train/#train-settings

六、YOLO不同版本总结

1. YOLOv3:

  • 核心改进:YOLOv3 是 YOLO 系列的第三代,由 Joseph Redmon 于 2018 年发布,标志着 YOLO 从原始的单尺度检测进化到多尺度检测。YOLOv3 通过引入多个特征层来改善对小物体的检测能力,使用了具有残差连接的 Darknet-53 作为主干网络。
  • 性能提升:相较于 YOLOv2,YOLOv3 的召回率和精度显著提升,特别是在检测小物体时表现更好。通过多尺度特征融合技术,YOLOv3 在保持实时检测速度的同时,提升了对多种物体大小的检测能力。

2. YOLOv4:

  • 优化技术:YOLOv4 由 Alexey Bochkovskiy 于 2020 年发布。它在 YOLOv3 的基础上引入了多项改进,包括 CSPDarknet53 作为主干网络,使用了 Mosaic 数据增强、CIoU 损失函数、SPP(Spatial Pyramid Pooling)等技术。
  • 适应性增强:YOLOv4 在速度和精度之间找到了更好的平衡,通过引入改进的训练策略,使其更适合在低计算资源环境中运行(例如嵌入式设备)。它能够在各种 GPU 上更高效地工作,而无需过度依赖昂贵的硬件。

3. YOLOv5

  • 开发背景:YOLOv5 由 Ultralytics 团队发布,尽管命名延续了 YOLOv4,但它并未基于 Darknet 框架,而是完全重写为 PyTorch 实现。与前代不同,YOLOv5 大幅提升了易用性和跨平台兼容性,并进一步降低了部署复杂度。
  • 模型规模:YOLOv5 提供了多个规模的模型(small、medium、large 等),用户可以根据需求在速度与精度之间做出权衡。Ultralytics 还加入了自动化数据增强和超参数优化,进一步提高了训练的效率和模型性能。

4. YOLOv6

  • 行业应用:YOLOv6 是由美团发布的目标检测模型,特别针对自动化场景进行了优化。它的开发目的是在无人配送机器人等场景中使用,因此它对计算效率和内存占用的优化极为关键。
  • 技术特点:YOLOv6 在速度和精度上比 YOLOv5 提升显著,尤其是在美团的实际场景中,展示了良好的表现。它结合了轻量级的模型设计和针对推理优化的架构,使得在嵌入式设备上运行更加高效。

5. YOLOv7:

  • 创新突破:YOLOv7 是 YOLOv4 作者团队在 2022 年发布的更新版本,它引入了更为高效的网络结构设计,进一步降低了推理的延迟时间。YOLOv7 采用了跨阶段部分连接 (CSP) 技术,能够更好地平衡模型计算量和准确度。
  • 广泛适应性:该模型适用于从服务器到边缘设备的多种硬件配置,并在 COCO 数据集上的性能超越了其他大多数目标检测模型,尤其在轻量级模型场景中表现优异。

6. YOLOv8:

  • 功能扩展:YOLOv8 是 YOLO 系列中功能最为丰富的版本,具备实例分割、姿态估计和分类等多种能力。相比于之前的 YOLO 版本,它的任务范围更加广泛,进一步提升了模型的可用性。
  • 多任务支持:YOLOv8 提供了丰富的任务支持,包括实例分割(即不仅检测物体的边界框,还要对物体进行精确的像素级分割)、关键点检测和姿态估计。这使其在复杂场景下具有更强的应用潜力。

7. YOLOv9:

  • 实验性特性:YOLOv9 是基于 YOLOv5 代码库的实验性模型,主要引入了可编程梯度信息(PGI)优化技术。PGI 通过对模型训练过程中梯度的灵活控制,提升了训练效率,减少了模型过拟合的风险。
  • 未来方向:虽然 YOLOv9 目前仍处于实验阶段,但其在研究领域内显示了进一步提升 YOLO 模型训练速度和精度的潜力,尤其是在快速动态场景下的检测任务。

8. YOLOv10:

  • NMS-Free 设计:YOLOv10 由清华大学发布,它的最大特色是引入了无 NMS(Non-Maximum Suppression)训练策略,能够有效消除冗余检测框的影响,从而提高检测精度。
  • 性能优化:该版本专注于提高推理速度,减少了传统 NMS 在后处理阶段的计算开销。YOLOv10 的高效架构设计进一步优化了检测模型的效率与准确率之间的平衡。

9. YOLOv11:

  • 最新进展:YOLOv11 是 Ultralytics 最新发布的版本,被设计为跨多个任务实现最先进性能(SOTA)的检测模型。该版本对之前模型的架构进行了优化,使得其在不同任务(如目标检测、分割、姿态估计等)中达到了最前沿的水平。
  • 多任务处理能力:YOLOv11 能够处理从目标检测到多模态任务的广泛应用场景,特别针对现实场景中的复杂检测需求进行了进一步优化,使得其成为当前最具前瞻性的模型之一。

 

六、YOLO11代码浅析

首先看看YOLO11在目标检测任务的配置文件,yolo11.yaml

能看到模型的架构、关键组件和配置参数。

# Ultralytics YOLO 🚀, AGPL-3.0 license
# YOLO11 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect

# Parameters
nc: 80 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolo11n.yaml' will call yolo11.yaml with scale 'n'
  # [depth, width, max_channels]
  n: [0.50, 0.25, 1024] # summary: 319 layers, 2624080 parameters, 2624064 gradients, 6.6 GFLOPs
  s: [0.50, 0.50, 1024] # summary: 319 layers, 9458752 parameters, 9458736 gradients, 21.7 GFLOPs
  m: [0.50, 1.00, 512] # summary: 409 layers, 20114688 parameters, 20114672 gradients, 68.5 GFLOPs
  l: [1.00, 1.00, 512] # summary: 631 layers, 25372160 parameters, 25372144 gradients, 87.6 GFLOPs
  x: [1.00, 1.50, 512] # summary: 631 layers, 56966176 parameters, 56966160 gradients, 196.0 GFLOPs

# YOLO11n backbone
backbone:
  # [from, repeats, module, args]
  - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
  - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
  - [-1, 2, C3k2, [256, False, 0.25]]
  - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
  - [-1, 2, C3k2, [512, False, 0.25]]
  - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
  - [-1, 2, C3k2, [512, True]]
  - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
  - [-1, 2, C3k2, [1024, True]]
  - [-1, 1, SPPF, [1024, 5]] # 9
  - [-1, 2, C2PSA, [1024]] # 10

# YOLO11n head
head:
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
  - [-1, 2, C3k2, [512, False]] # 13

  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 4], 1, Concat, [1]] # cat backbone P3
  - [-1, 2, C3k2, [256, False]] # 16 (P3/8-small)

  - [-1, 1, Conv, [256, 3, 2]]
  - [[-1, 13], 1, Concat, [1]] # cat head P4
  - [-1, 2, C3k2, [512, False]] # 19 (P4/16-medium)

  - [-1, 1, Conv, [512, 3, 2]]
  - [[-1, 10], 1, Concat, [1]] # cat head P5
  - [-1, 2, C3k2, [1024, True]] # 22 (P5/32-large)

  - [[16, 19, 22], 1, Detect, [nc]] # Detect(P3, P4, P5)

再看看其他任务,比如实例分割 yolo11-seg.yaml

其实主干网络和特征融合部分都是一样的,只是检测头部分有区别

目标检测用Detect,实例分割用Segment

这里也有YOLOv10、YOLOv9、YOLOv8、YOLOv7、YOLOv6、YOLOv5、YOLOv4 、YOLOv3版本的,可以看看对比一下

不得不说,Ultralytics 的工程很方便我们进行开发

分享完成~

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

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

相关文章

ACM介绍

ACM介绍 1. ACM简介 ACM(Association for Computing Machinery,国际计算机学会)是世界上最大的计算机领域专业性学术组织,汇集了国际计算机领域教育家、研究人员、工业界人士及学生。ACM致力于提高在中国的活动的规格与影响力&a…

【微服务】—SpringBoot入门

⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记仓库👉https://github.com/A-BigTree/tree-learning-notes 个人主页👉https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 文章目录 1 SpringBoot快速入门1.1 SpringBoot简介1.1.1 简介1.1.2…

新电脑 Windows 系统初始配置

文章目录 前言1 前置配置2 安装软件2.1 通讯工具2.2 后端开发工具2.3 硬件开发工具2.4 前端开发工具2.4 其它工具 3 Windows 11 优化4 写在最后 前言 分区(个人习惯):1TB SSD 分为 2 个分区,一个 256GB 分区为系统盘,剩…

网络受限情况下安装openpyxl模块提示缺少Jdcal,et_xmlfile

1.工作需要处理关于Excel文件内容的东西 2.用公司提供的openpyxl模块总是提示缺少jdcal文件,因为网络管控,又没办法直接使用命令下载,所以网上找了资源,下载好后上传到个人资源里了 资源路径 openpyxl jdcal et_xmlfile 以上模块来源于:Py…

[已解决]Mac使用更改idea.vmoptions文件导致idea打不开

直接在访达中全局搜索 idea.vmoptions 文件,然后根据报错信息更改成默认的或者更改成默认的格式即可。

陪伴系统,会成为女性向游戏的下一个争夺点吗?

乙游提供给女性玩家的只有恋爱感吗? 一般来说,对于乙女游戏的概括常常以为玩家提供“恋爱陪伴感”为主,恋爱很好理解,通过与多位男主角的剧情互动来模拟在真实恋爱中的情感交互,当下乙游都将重点放在了营造恋爱感上。…

武汉正向科技|无人值守起重机,采用格雷母线定位系统,扎根智能制造工业

武汉正向科技开发的无人值守起重机系统在原起重机系统的基础上,利用格雷母线位置检测技术,信息技术,网络技术及传感器技术为起重机系统添加管理层,控制层和基础层。实现起重机智能化,无人化作业的库区综合管理系统。 正…

用AI构建小程序需要多久?效果如何?

随着移动互联网的快速发展,多端应用的需求日益增长。为了提高开发效率、降低成本并保证用户体验的一致性,前端跨端技术在如今的开发界使用已经非常普遍了,技术界较为常用的跨端技术有小程序技术、HTML5技术两大类。 2023年以来,伴…

antd-tree的半选回显,不联动父类节点,非严格模式下也可以

出现的问题,树节点在非严格模式下,如果回显,会自动选中父节点以下的所有节点 方案1 在请求回来前设置 check-strictly 为true,请求完成后,设置为 false,没生效 方案2 在请求回来回显的接口时,取没有childr…

[C++ 核心编程]笔记 1 内存分区模型

内存分区模型 C程序在执行时,将内存大方向划分为4个区域: 代码区: 存放函数体的二进制代码,由操作系统进行管理的。 全局区: 存放全局变量和静态变量以及常量。 栈区: 由编译器自动分配释放,存放函数的参数值、局部变量等。 堆…

Linux 之 Linux应用编程概念、文件IO、标准IO

Linux应用编程概念、文件IO、标准IO 学习任务: 1、 学习Linux 应用开发概念,什么是系统调用,什么是库函数 2、 学习文件IO:包括 read、write、open、close、lseek 3、 深入文件IO:错误处理、exit 等 4、 学习标准IO&a…

wsl环境下安装Ubuntu,并下载MySQL5.7

安装操作需root权限,切换root用户有两种方式: 1-通过 sudo su - ,切换到root用户(登录后长期有效)。 2-在每一个命令前加上sudo,临时提升权限(仅对一条命令有效)。 1、下载apt仓库…

【网络安全】利用XSS、OAuth配置错误实现token窃取及账户接管 (ATO)

未经许可,不得转载。 文章目录 正文正文 目标:target.com 在子域sub1.target.com上,我发现了一个XSS漏洞。由于针对该子域的漏洞悬赏较低,我希望通过此漏洞将攻击升级至app.target.com,因为该子域的悬赏更高。 分析认证机制后,我发现: sub1.target.com:使用基于Cook…

解决雪花ID在前端精度丢失问题

解决雪花ID在前端精度丢失问题 在现代分布式系统中,雪花算法(Snowflake)被广泛用于生成唯一的ID。这些ID通常是Long类型的整数。然而,当这些ID从后端传递到前端时,JavaScript的精度限制可能会导致精度丢失&#xff0c…

记录:Vscode 安装插件报:提取扩展出错 phpstudy中下载服务报网络异常

昨天出现了两个莫名其妙的问题: 一个是在phpstudy中下载服务的时候突然报了这个错误:当前网络不稳定,下载失败 不知道什么原因,从来也没见过 在网上找了一圈,没有解决,就放弃了 然后在刚刚,像用…

Photo Sphere Viewer:探索360°全景图的JavaScript库,轻松实现360°全景展示,探索360°全景世界的神奇之旅

嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 你是否曾想过将360全景图嵌入到你的网站或应用中,为用户带来沉浸式的体验?Photo Sphere Viewer可以帮助你实现这个目标&#x…

打卡第六天 P10287 [GESP样题 七级] 最长不下降子序列

今天是我打卡第六天,做个普及/提高−题吧(#^.^#) 原题链接:[GESP样题 七级] 最长不下降子序列 - 洛谷 题目描述 输入格式 输出格式 输出一行一个整数表示答案。 输入输出样例 输入 #1 5 4 2 10 6 3 1 5 2 2 3 3 1 1 4 输出 #1 3 输入 #2 6 11 …

IvorySQL 西安站活动回顾|一键了解IvorySQL新兼容性

9月7日,IvorySQL社区携手中国开源软件联盟PostgreSQL分会,在古都西安成功举办PostgreSQL技术峰会及IvorySQL西安用户组成立仪式,现场吸引了众多西安PG圈技术爱好者和资深开发小伙伴们的热情参与!👏👏&#…

计算机的错误计算(一百一十七)

摘要 算式“(5^25*(1/25)^(1/5)*3^25(1/25)^(1/5)*5^25*3^(251/5)-(9/25)^(1/5)*3^25*5^25-(1/25)^(1/5)*3^25*5.0^25*(13^(1/5)-3^(2/5.0)))” 的准确值是0. 但是,Python 与 Excel 均输出了错误结果:一个含有15位整数,一个含有14位整数。 …

HeidiSQL 数据库密码如何恢复

有时候我们会把数据库的连接密码保存在 HeidiSQL 中,但随着时间的流逝,我们可能希望重新找回保存在 HeidiSQL 中的密码,但 HeidiSQL 中保存的密码是无法被复制的。 这时候,我们需要想办法找到原始的密码。 加密算法 HeidiSQL 中…