【YOLO 项目实战】(10)YOLO8 环境配置与推理检测

欢迎关注『youcans动手学模型』系列
本专栏内容和资源同步到 GitHub/youcans
【YOLO 项目实战】(1)YOLO5 环境配置与检测
【YOLO 项目实战】(10)YOLO8 环境配置与推理检测


【YOLO5 项目实战】(10)YOLO8 环境配置与检测

    • 1. YOLOv8 简介
      • 1.1 YOLO 家族简史
      • 1.2 YOLOv8 的特点
    • 2. YOLOv8 模型下载与环境配置
      • 2.1 下载 YOLOv8 模型
      • 2.2 虚拟环境配置
      • 2.3 安装 YOLOv8
      • 2.4 配置 PyCharm 编译器
    • 3. 运行 YOLOv5 推理
      • 3.1 下载 YOLOv8 预训练模型
      • 3.2 命令行(CLI)接口的模型推理
      • 3.3 使用 Python 接口的模型推理
      • 3.4 分割任务和分类任务
      • 3.5 参数说明
    • 4. 修改 YOLOv8 程序


1. YOLOv8 简介

1.1 YOLO 家族简史

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的约瑟夫-雷德蒙(Joseph Redmon)和阿里-法哈迪(Ali Farhadi)开发。YOLO 于 2015 年推出,因其高速度和高精确度而迅速受到欢迎。

YOLO 开源网址:GitHub - ultralytics/YOLO
YOLOv8 开源网址:GitHub - ultralytics/YOLOv8

  • 2016 年发布的YOLOv2 通过纳入批量归一化、锚框和维度集群改进了原始模型。
  • 2018 年推出的YOLOv3 使用更高效的骨干网络、多锚和空间金字塔池进一步增强了模型的性能。
  • YOLOv4于 2020 年发布,引入了 Mosaic数据增强、新的无锚检测头和新的损失函数等创新技术。
  • YOLOv5进一步提高了模型的性能,并增加了超参数优化、集成实验跟踪和自动导出为常用导出格式等新功能。
  • YOLOv6于 2022 年由美团开源,目前已用于该公司的许多自主配送机器人。
  • YOLOv7增加了额外的任务,如 COCO 关键点数据集的姿势估计。
  • YOLOv8Ultralytics YOLOv8 引入了新的功能和改进,以提高性能、灵活性和效率,支持全方位的视觉人工智能任务、
  • YOLOv9引入了可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 等创新方法。
  • YOLOv10是由清华大学的研究人员使用该软件包创建的。 UltralyticsPython 软件包创建的。该版本通过引入端到端头(End-to-End head),消除了非最大抑制(NMS)要求,实现了实时目标检测的进步。
  • YOLO11 🚀新功能: ’ 最新的 模型可在Ultralytics YOLO 检测、分割、姿势估计、跟踪和分类等多项任务中提供最先进的 (SOTA) 性能,充分利用各种人工智能应用和领域的能力。

1.2 YOLOv8 的特点

YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,支持图像分类、物体检测和实例分割任务。

YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的基础上,并引入了新的功能和改进。具体创新包括一个新的骨干网络、一个新的 Ancher-Free 检测头和一个新的损失函数,可以在从 CPU 到 GPU 的各种硬件平台上运行。

YOLOv8 算法的主要创新和改进包括:

  1. 提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例分割模型。与 YOLOv5 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型,用于满足不同场景需求。
  2. 骨干网络和 Neck 部分参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数。
  3. Head 部分相比 YOLOv5 改动较大,换成了主流的解耦头结构,将分类头和检测头分离,同时也从 Anchor-Based 换成了 Anchor-Free。
  4. Loss 计算采用了 TaskAlignedAssigner 正样本分配策略,并引入了 Distribution Focal Loss。
  5. 训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度。
    总之,YOLOv8 主要参考了最近提出的诸如 YOLOX、YOLOv6、YOLOv7 和 PPYOLOE 等算法的相关设计,原创的创新点不多,偏重于工程优化。

网络架构:

YOLOv8 官方版的模型结构如下图所示。

在这里插入图片描述

骨干网络和 Neck 的具体变化为:

  • 第一个卷积层的 kernel 从 6x6 变成了 3x3
  • 所有的 C3 模块换成 C2f,结构如下所示,可以发现多了更多的跳层连接和额外的 Split 操作
  • 去掉了 Neck 模块中的 2 个卷积连接层
  • Backbone 中 C2f 的block 数从 3-6-9-3 改成了 3-6-6-3

查看 N/S/M/L/X 等不同大小模型,可以发现 N/S 和 L/X 两组模型只是改了缩放系数,但是 S/M/L 等骨干网络的通道数设置不一样,没有遵循同一套缩放系数。如此设计的原因应该是同一套缩放系数下的通道设置不是最优设计,YOLOv7 网络设计时也没有遵循一套缩放系数作用于所有模型

Head 部分变化很大,其结构如下图所示。

  • 从原先的耦合头变成了解耦头,并且从 YOLOv5 的 Anchor-Based 变成了 Anchor-Free。
  • 使用解耦的分类和回归分支,回归分支使用了 Distribution Focal Loss 中提出的积分形式表示法。

在这里插入图片描述


2. YOLOv8 模型下载与环境配置

2.1 下载 YOLOv8 模型

YOLOv8 开源网址:GitHub - ultralytics/YOLOv8

克隆 repo。

git clone https://github.com/ultralytics/ultralytics

或者直接从 GitHub 网页下载压缩文件,如下图所示。

在下载的 YOLOv8 项目中,包括了项目说明文档:英文版 Readme.md 和中文版 Readme.zh-CN.md 。

在这里插入图片描述


2.2 虚拟环境配置

虚拟环境可以将YOLOv8训练所需的依赖包和其他项目的依赖包隔离开来,避免版本冲突,更加便于管理。

推荐使用 miniconda 搭建Python环境,其安装和使用可以参见:【youcans的深度学习 01】安装环境详解之 miniconda。

(1)创建 yoloV8 环境。

创建名称为 yoloV8 的 Python 环境,Python 版本为3.8。

conda env list
conda create -n yoloV8 python=3.8

conda create -n yoloV8 python=3.8

(2)在所选择的 Python 环境下,安装 yoloV8 项目所需的依赖(安装项目所需的库)。

本项目中的 requirements.txt 文件已经详细列出了所需的库及版本。

# Ultralytics requirements
# Usage: pip install -r requirements.txt# Base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.21.6
opencv-python>=4.6.0
Pillow>=7.1.2
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.64.0# Logging -------------------------------------
# tensorboard>=2.4.1
# clearml
# comet# Plottcondaing ------------------------------------
pandas>=1.1.4
seaborn>=0.11.0# Export --------------------------------------
# coremltools>=6.0  # CoreML export
# onnx>=1.12.0  # ONNX export
# onnxsim>=0.4.1  # ONNX simplifier
# nvidia-pyindex  # TensorRT export
# nvidia-tensorrt  # TensorRT export
# scikit-learn==0.19.2  # CoreML quantization
# tensorflow>=2.4.1  # TF exports (-cpu, -aarch64, -macos)
# tflite-support
# tensorflowjs>=3.9.0  # TF.js export
# openvino-dev>=2022.3  # OpenVINO export# Extras --------------------------------------
psutil  # system utilization
thop>=0.1.1  # FLOPs computation
# ipython  # interactive notebook
# albumentations>=1.0.3
# pycocotools>=2.0.6  # COCO mAP
# roboflow

打开 miniconda Prompt,激活刚才创建的 Python 环境 yoloV8,pip 安装所需的库。

conda activate yoloV8
pip install -r requirements.txt

在这里插入图片描述

由于安装 yoloV8 项目所需的第三方库内容很多,如果下载太慢,可以指定下载源,也可以从已有的虚拟环境中复制 Lib\site-package 中的内容,但要检查版本能否满足本项目中的 requirements.txt 的要求。对于未安装的库或版本不满足要求的库,再手动安装,或者接下来在 PyCharm 终端完成(也即:不用担心,详见下文)。


2.3 安装 YOLOv8

  1. 在线安装

YOLOv8 提供了命令行执行方式,但是需要按照要求来进行安装:

pip install ultralytics

这种方式安装方便,但对网络有一定要求,而且不方便对源码的修改(修改后容易出错),因此并不推荐。

  1. 离线安装

将下载的压缩文件(如 ultralytics-8.1.0.zip)解压到 Python 项目文件夹,如"C:\Python|PythonProjects\YOLOv8"。

打开 miniconda Prompt,激活刚才创建的 Python 环境 yoloV8,切换到解压文件夹,pip 安装 YOLOv8。注意安装命令中的 “-e” 和 “.” 之间有一个空格。

conda activate yoloV8
cd C:\Python\PythonProjects\YOLOv8
pip install -e .

在这里插入图片描述

(base) C:\Users\Administrator>conda activate yoloV8(yoloV8) C:\Users\Administrator>cd C:\Python\PythonProjects\YOLOv8(yolov8) C:\Python\PythonProjects\YOLOv8>pip install -e .
Obtaining file:///C:/Python/PythonProjects/YOLOv8Installing build dependencies ... doneChecking if build backend supports build_editable ... doneGetting requirements to build editable ... donePreparing editable metadata (pyproject.toml) ... done
...Building wheels for collected packages: ultralytics
...Successfully built ultralytics
Installing collected packages: hub-sdk, thop, ultralytics
Successfully installed hub-sdk-0.0.17 thop-0.1.1.post2209072238 ultralytics-8.1.0

安装 ultralytics-8.1.0 之后,推荐安装 Jupyterlab 和 tensorboard(非必需),以便观察 loss 变化和修改代码。

pip install jupyterlab tensorboard

  1. 安装测试

安装 ultralytics-8.1.0 之后,在该环境下(miniconda Prompt)直接输入 “yolo”:

yolo help

如下图所示,系统给出 YOLOv8 的帮助提示信息,说明安装成功。
在这里插入图片描述


2.4 配置 PyCharm 编译器

(1)使用 PyCharm 编辑器打开下载的 YOLOv8 项目。

(2)在 PyCharm 的菜单 “文件-设置-项目-Python 解释器(python interpreter)” 中,为项目配置 Python 环境。注意要求 Python>=3.8.0 环境。

这个步骤需要用户根据计算机的 Python 环境来选择,但该环境中需要安装 PyTorch 等 Python 库。注意要求 PyTorch>=1.8 。

例如,点击 “add interpreter”,选择刚才创建的虚拟环境 yoloV8 的编译器,默认路径是 C:/Users/Administrator/ .conda/envs/yolov8/python.exe。

在这里插入图片描述

(3)配置 PyCharm 终端(Terminal)。
打开 miniconda Prompt 文件,鼠标右键点击属性,查看目标位置,复制 cmd.exe 及后面的内容。将复制的路径填入 PyCharm 设置中的 “文件-设置-工具-shell 路径”,如下图所示。
在这里插入图片描述

(4)在 Pycharm 终端安装项目依赖(所需的第三方包)。

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install yolo -i https://pypi.tuna.tsinghua.edu.cn/simple

配置完成后,在 PyCharm 的命令行窗口,激活 YOLOv8 虚拟环境,输入 “yolo help” 。如下图所示,系统给出 YOLOv8 的帮助提示信息,说明配置成功。
在这里插入图片描述


3. 运行 YOLOv5 推理

3.1 下载 YOLOv8 预训练模型

使用 YOLOv8 进行推理,首先要下载 YOLOv8 预训练模型。

在 YOLO/GitHub 项目仓,提供了检测(Detection)、分类(Classification)、分割(Segmentation)、姿态估计(Pose)、定向边界框检测(OBB)等任务的预训练模型。YOLOv8 有多个不同规模的模型,从小到大依次是:YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l、YOLOv8x。这些模型与各种操作模式兼容,包括推理、验证、训练和导出,便于在部署和开发的不同阶段使用。

点击所需的即可下载。

在这里插入图片描述

由于 YOLO 更新很快,主页的文档(包括README)经常更新,YOLOv8 预训练模型的入口不容易找,现将下载地址列表如下。

https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-pose.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-pose.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-pose.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-pose.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-pose.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-seg.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-seg.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-seg.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-seg.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-seg.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-cls.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-cls.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-cls.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-cls.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-cls.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-obb.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-obb.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-obb.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-obb.pt
https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-obb.pt

本文选择 YOLOv8n,参数约 6M。下载完成后,将下载的预训练模型文件 yolov8n.pt 放在 YOLOv8 项目的根目录路径下,例如 “C:\Python\PythonProjects\YOLOv8”。


3.2 命令行(CLI)接口的模型推理

YOLOv8 支持使用命令行接口(command line interface, CLI)对模型进行训练、验证或运行推断。

YOLOv8 命令行接口(CLI)方便在各种任务和版本上训练、验证或推断模型,不需要定制或代码,可以使用 yolo 命令从终端运行所有任务。

语法:

yolo task=detect    mode=train    model=yolov8n.yaml      args...classify       predict        yolov8n-cls.yaml  args...segment        val            yolov8n-seg.yaml  args...export         yolov8n.pt        format=onnx  args...

具体操作步骤如下:

  1. 使用 miniconda Prompt 命令行,激活 YOLOv8 虚拟环境,输入如下命令对指定图片进行检测。检测结果默认保存在 “.\runs\detect\predict” 目录下。

  2. 在 PyCharm 的命令行窗口,激活 YOLOv8 虚拟环境,输入如下命令对指定图片进行检测。检测结果默认保存在 “.\runs\detect\predict” 目录下。

conda activate yoloV8
yolo predict model=yolov8n.pt source=‘ultralytics/assets/bus.jpg’

注意:
(1)必须先激活 YOLOv8 虚拟环境。
(2)当前路径必须是 YOLOv8 项目所在的目录,例如 “C:\Python\PythonProjects\YOLOv8”。
(3)预训练模型 yolov8n.pt 必须保存在模型配置参数 “model” 指定的路径。例如,如果预训练模型保存在 “C:\Python|PythonProjects\YOLOv8\model\yolov8n.pt”,则将模型配置参数修改为 “model=.\model\yolov8n.pt”。
(4)待检测的图片必须保存在 “source” 指定的路径,可以是图像路径、视频文件、目录、URL 或用于摄像头设备 ID。例如,可以指定网络地址,读取待检测图片。

yolo predict model=yolov8n.pt source=‘https://ultralytics.com/images/bus.jpg’

(5)检测结果默认保存在 “.\runs\detect\predict” 目录下,也可以在命令中使用 “project” 参数,指定保存预测结果的项目目录名称。
(6)完整的写法是:

yolo task=detect mode=predict model=yolov8n.pt source=‘ultralytics/assets/bus.jpg’

在这里插入图片描述


3.3 使用 Python 接口的模型推理

YOLOv8 也提供了 Python 接口的调用方式。它提供了加载和运行模型以及处理模型输出的函数。该界面设计易于使用,以便用户可以在他们的项目中快速实现目标检测。

使用预训练模型 yolov8n.pt 进行推理的 Python 程序如下。

from ultralytics import YOLO# 加载预训练的YOLO模型
model = YOLO("./yolov8n.pt",task = "detect")# 使用模型对图像执行对象检测
result = model(source="./ultralytics/assets/Mask01.jpg", save=True)

运行程序,就实现对指定图像文件的检测,并将检测结果保存到文件夹 “./runs/detect/predict”。

在这里插入图片描述
运行结果与 命令行接口的调用 是相同的。


3.4 分割任务和分类任务

YOLOv8 默认执行检测任务,也可以提供指定参数 TASK 实现分割、分类、姿势、定位任务。注意需要下载或使用对应任务的预训练模型,例如:分割任务模型 yolov8n-seg.pt,分类任务模型 yolov8n-cls.pt。

yolo TASK MODE ARGSWhere   TASK (optional) is one of ('detect', 'segment', 'classify', 'pose', 'obb')MODE (required) is one of ('train', 'val', 'predict', 'export', 'track', 'benchmark')ARGS (optional) are any number of custom 'arg=value' pairs like 'imgsz=320' that override defaults.See all ARGS at https://docs.ultralytics.com/usage/cfg or with 'yolo cfg'
  1. 分割任务(“segment)
from ultralytics import YOLO# 加载预训练的YOLO模型,分割任务
model = YOLO("./yolov8n-seg.pt",task = "segment")# 使用模型对图像执行对象检测
result = model(task="segment", source="./ultralytics/assets/Mask01.jpg", save=True)
  1. 分类任务(“classify”)
from ultralytics import YOLO# 加载预训练的YOLO模型,分类任务
model = YOLO("./yolov8n-cls.pt",task = "classify")# 使用模型对图像执行对象检测
result = model(task="classify", source="./ultralytics/assets/Mask01.jpg", save=True)

分割任务和分类任务的运行结果如下。

在这里插入图片描述


3.5 参数说明

model:传入的 model.yaml 文件或者 model.pt 文件,只传 yaml 文件则参数随机初始化
data:训练数据集的配置yaml文件
epochs:训练轮次,默认100
patience:早停训练观察的轮次,默认50
batch:训练批次,默认16
imgsz:训练图片大小,默认640
save:保存训练过程和训练权重,默认开启
save_period:训练过程中每x个轮次保存一次训练模型,默认-1(不开启)
cache:是否采用 ram 进行数据载入,设置True会加快训练速度
device:运行的设备,device=0 为 CUDA,device = cpu 为 CPU
workers:载入数据的线程数,默认为8,一般设为4 以免线程报错
project:项目文件夹的名,默认为 runs 且依次累加
name:用于保存训练文件夹名,默认为 exp 且依次累加
exist_ok:是否覆盖现有保存文件夹,默认 False
pretrained:是否加载预训练权重,默认 False
optimizer:优化器选择,默认 SGD,可选[SGD, Adam, AdamW,RMSProP]
verbose:是否打印详细输出
seed:随机种子,用于复现模型,默认 0
deterministic:设为 True,保证实验的可复现性
single_cls:将多类数据训练为单类,把所有数据当作单类训练,默认 False
image_weights:使用加权图像选择进行训练,默认 False
rect:使用矩形训练,默认 False
cos_lr:使用余弦学习率调度,默认 False
close_mosaic:最后x个轮次禁用马赛克增强,默认10
resume:断点训练,默认 False
lr0:初始化学习率,默认 0.01
lrf:最终学习率,默认 0.01
label_smoothing:标签平滑参数,默认 0.0
dropout:使用dropout正则化(仅对训练进行分类),默认 0.0

4. 修改 YOLOv8 程序

YOLOv8 的源程序位于项目路径 “./ultralytics/engine/” 目录中。

  1. 从 PyCharm 打开 model.py 文件,该文件定义了 YOLOv8 的模型类,作为 YOLOv8 模型的统一接口。

在这里插入图片描述

  1. 在 predict() 函数中添加一行测试代码 (Line274:print(“— Test code —”))并保存。

  2. 在 PyCharm 的终端输入命令执行推理任务,或通过 Python 程序调用模型进行推理。

yolo predict model=yolov8n.pt source=‘https://ultralytics.com/images/bus.jpg’

则此时在终端会打印输出 “— Test code —” 内容,说明该程序已被修改。

在这里插入图片描述


【本节完】


版权声明:
欢迎关注『youcans动手学模型』系列
转发请注明原文链接:
【YOLO 项目实战】(10)YOLO8 环境配置与推理检测
Copyright 2024 youcans
Crated:2024-12-16


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

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

相关文章

【蓝桥杯】43699-四平方和

四平方和 题目描述 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。 比如: 502021222 712121222; 对于一个给定的正整数,可…

【5G】5G 无线协议 Radio Protocols(一)

长期演进(LTE)无线电协议主要设计用于通过扁平架构提供PS服务,相比之前的代际,这代表了一个重大改进,它消除了支持电路交换(CS)服务和复杂架构中固有的复杂性。许多原始的LTE原则自第8版以来一直…

VMware ubuntu虚拟机网络配置

首先分清2个情况: 1、在使用笔记本时,WiFi联网使用时,使用的是无线网卡设备上网的。 2、无论是笔记本还是台式机,当接插网线上网时,使用的是以太网卡设备上网的。 以Windows11为例: (1&#x…

Y3编辑器教程7:界面编辑器

文章目录 一、简介1.1 导航栏1.2 画板1.3 场景界面1.4 控件1.4.1 空节点1.4.2 按钮1.4.3 图片1.4.4 模型1.4.5 文本1.4.6 输入框1.4.7 进度条1.4.8 列表 1.5 元件1.5.1 简介1.5.2 差异说明1.5.3 元件实例的覆盖、还原与禁止操作1.5.4 迷雾控件 1.6 属性1.7 事件(动画…

分享一个把表格类型的数据转换成字符串,以表格样式输出,方便控制台和日志记录时更直观

调用实例&#xff1a; Console.WriteLine("Hello, World!");List<string[]> tabLog new List<string[]>(); tabLog.Add(new string[] { "编号", "姓名", "性别", "年龄","备注" }); tabLog.Add(new…

如何有效修复ffmpeg.dll错误:一站式解决方案指南

当您遇到提示“ffmpeg.dll文件丢失”的错误时&#xff0c;这可能导致相关的应用程序无法启动或运行异常。本文将详细介绍如何有效地解决ffmpeg.dll文件丢失的问题&#xff0c;确保您的应用程序能够恢复正常运行。 ffmpeg.dll是什么&#xff1f;有哪些功能&#xff1f; ffmpeg.…

精通Redis(一)

目录 1.NoSQL 非关系型数据库 2.Redis 3.Redis的java客户端 4.Jedis 4.1Jedis快速入门 4.2Jedis连接池及使用 5.SpringDataRedis和RedisTemplate 1.NoSQL 非关系型数据库 基础篇-02.初始Redis-认识NoSQL_哔哩哔哩_bilibili NoSQL与SQL的区别就在于SQL是结构化的、关联…

Arm Cortex-M处理器对比表

Arm Cortex-M处理器对比表 当前MCU处理器上主要流行RISC-V和ARM处理器&#xff0c;其他的内核相对比较少&#xff1b;在这两种内核中&#xff0c;又以Arm Cortex-M生态环境相对健全&#xff0c;大部分的厂家都在使用ARM的处理器。本文主要介绍Arm Cortex-M各个不同系列的参数对…

前端TypeScript学习day03-TS高级类型

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 TypeScript 高级类型 class 类 class继承? extends implements? 类成员可见性? public? protect…

pyQt5基本需求v1.0

TOC(需求界面) 1.主界面介绍 首先展示项目名称&#xff0c;几个文件上传按钮&#xff0c;滑动条&#xff0c;页面切换按钮&#xff0c;系统时间展示。 2.具体页面demo 2.下期预告 视频页面的各种逻辑展示&#xff0c;大家可以先思考一下

2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程

2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程 产品介绍 仿东郊到家约玩系统是一种新兴的线上预约&#xff0c;线下社交、陪伴、助娱、助攻、分享、解答、指导等服务模式&#xff0c;范围涉及电竞、运动、音乐…

Android Stduio 2024版本设置前进和后退按钮显示在主界面

Android Studio 2024&#xff08;Ladybug&#xff09;安装后发现前进和后退按钮不显示在主界面的工具栏&#xff0c;且以前在View中设置的办法无效&#xff1a; Android Studio 2024&#xff08;Ladybug&#xff09;的设置方式&#xff1a; File->Settings->Appearance&…

Chapter 02 Python基础-1

1.Python语法 1.变量 从实例看Python代码&#xff1a; 输入圆的半径&#xff0c;计算圆面积&#xff0c;若面积大于等于10&#xff0c;则输出具体数值&#xff0c;若面积小于10&#xff0c;则只输出整数值。 分析&#xff1a; 1.圆面积计算需要用到PI&#xff0c;取什么样的…

vue预览和下载 pdf、ppt、word、excel文档,文件类型为链接或者base64格式或者文件流,

** 方法1&#xff1a;word、xls、ppt、pdf 这些文件&#xff0c; 如果预览的文件是链接可以直接打开&#xff0c;可用微软官方的预览地址 ** <iframe width"100%" :src"textVisibleURl " id"myFramePPT" style"border: none;backgroun…

OB删除1.5亿数据耗费2小时

目录 回顾&#xff1a;mysql是怎么删除数据的&#xff1f; 删除方案 代码实现 执行结果 结论 本篇是实际操作 批量处理数据以及线程池线程数设置 记录学习 背景&#xff1a;有一张用户标签表&#xff0c;存储数据量达4个亿&#xff0c;使用OceanBase存储&#xff0c;由于…

【2025最新计算机毕业设计】基于SSM框架的宠物领养系统【提供源码+答辩PPT+文档+项目部署】

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

【专题】2024抖音电商母婴行业分析报告汇总PDF洞察(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p38651 在数字化浪潮的席卷下&#xff0c;抖音电商母婴行业正经历着深刻变革。当下&#xff0c;年轻一代父母崛起&#xff0c;特别是 24 至 30 岁以及 18 至 23 岁的群体成为抖音母婴行业兴趣人群的主力军。他们带来全新育儿理念&…

免费开源!推荐一款网页版数据库管理工具!

免费开源&#xff01;推荐一款网页版数据库管理工具&#xff01; DBGate 是一个开源的数据库管理工具&#xff0c;DBGate 的最大特点是可以 Web 访问&#xff01;&#xff0c;轻松实现一台机器部署&#xff0c;所有人使用&#xff01; 无论是 MySQL、PostgreSQL、SQLite 还是…

使用 UniApp 在微信小程序中实现 SSE 流式响应

概述 服务端发送事件(Server-Sent Events, SSE)是一种允许服务器向客户端推送实时更新的技术。SSE 提供了一种单向的通信通道,服务器可以持续地向客户端发送数据,而不需要客户端频繁发起请求。这对于需要实时更新的应用场景非常有用。 流式传输的特点是将数据逐步传输给客…

【Java项目】基于SpringBoot的【旅游管理系统 】

【Java项目】基于SpringBoot的【旅游管理系统 】 技术简介&#xff1a;本系统使用JAVA语言开发&#xff0c;采用B/S架构、Spring Boot框架、MYSQL数据库进行开发设计。 系统简介&#xff1a;&#xff08;1&#xff09;管理员功能&#xff1a;可以管理个人中心、用户管理、景区分…