【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 使用命令行方式进行推理
      • 3.3 使用 Python 接口的调用方式
      • 3.4 参数说明


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/YOLOv8
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing 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,参数约 11.2M。下载完成后,将下载的预训练模型文件 yolov8n.pt 放在 YOLOv8 项目的根目录路径下,例如 “C:\Python|PythonProjects\YOLOv8”。


3.2 使用命令行方式进行推理

  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 接口的调用方式。

将命令行推理的命令拆开,相当于 2句 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 参数说明

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

【本节完】


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


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue 3: 通过图片链接获取图片颜色,间接设置背景颜色

在现代Web开发中,动态获取和处理图像数据是一个常见的需求。例如,你可能希望自动提取一张图片的主色调,以便根据这些颜色进行UI主题调整或其他视觉效果的处理。本文将介绍如何在Vue 3项目中,通过一个图片链接获取图片的颜色信息。…

请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配

vs版本升级时,编译时会出现上述问题,如原来在2017下编译的程序,后来改用2019,出现上述问题。需要在解决方案-通用属性-调试源文件下变更相应设置。

FFmpeg第一话:FFmpeg 简介与环境搭建

FFmpeg 探索之旅 一、FFmpeg 简介与环境搭建 二、FFmpeg 解码详解 第一话:FFmpeg 简介与环境搭建 FFmpeg 探索之旅一、前言二、FFmpeg 是什么?三、简单介绍其历史背景四、为什么用 C学习 FFmpeg?(一)高性能优势&#…

【功能安全】软件安全架构

目录 01 软件安全架构介绍 02 软件架构设计模板 03 软件架构设计示例 01 软件安全架构介绍

OpenLinkSaas 2025年1月开发计划

先来看看OpenLinkSaas的大目标 在OpenLinkSaas的产品目标中,让开发人员更加方便的使用云资源是目标之一。通过各大云厂商的API,来可视化云上基础设施的数据是远远不够的。我们准备在2025年1月份增加方便管理和运营研发场景下服务器的能力。 这部分的功能…

【Verilog】实验九 存储器设计与IP调用

一、实验目的 1. 掌握单端口RAM和ROM原理和设计方法。 2. 掌握单端口RAM和ROM的IP生成和调用方法。 2. 掌握ModelSim和VIVADO工具软件。 3. 掌握基本的测试代码编写和FPGA开发板使用方法。 二、实验环境 1. 装有ModelSim和VIVADO的计算机。 2. Sword实验系统。 三、实验…

元力音乐 1.2.2 | 完全免费无广告的无损音乐听歌下载工具

元力音乐是一款音乐听歌和下载工具,提供完全免费且没有任何广告弹窗的用户体验。内置两条线路,用户可以无限次下载无损音质音乐。作者承诺永久免费并长期维护此应用。此外,它还支持导入歌单功能,让用户能够轻松管理和下载喜爱的音…

生产环境迁移——harbor篇

这些年环境迁移干了很多,但是没有总结,想想还是记录一下,以前是下属做,自己统筹就行,现在就剩下孤家寡人了,只好都自己做。还是完整记录下来,供有缘人参考。其实我也是搭了个草台班子。 1 安装…

电脑问题4[非华为电脑安装华为电脑管家华为荣耀手机多屏协助]

非华为电脑安装华为电脑管家华为荣耀手机多屏协助 我是荣耀手机之前一直用的是window的"连接手机"功能,电脑控制手机还蛮好用,但是又不能够没有好的电脑控制手机的功能,后来想了想看了看,竟然安装了华为电脑关键,竟然可以顺利连接上荣耀手机,发现还蛮好用! 本文引用…

KeyFormer:使用注意力分数压缩KV缓存

Keyformer: KV Cache Reduction through Key Tokens Selection for Efficient Generative Inference 202403,发表在Mlsys Introduction 优化KV cache的策略,主要是集中在系统级别的优化上,比如FlashAttention、PagedAttention,它…

linux ibus rime 中文输入法,快速设置为:默认简体 (****)

本文环境: ubuntu 22.04 直接 apt install ibus-rime 输入法的安全性,人们应该关注吧!!?? 云输入法?将用户的输入信息传输到云端吗? Rime 等的一些输入法,是本地的&…

【python从入门到精通】-- 第七战:字典

🌈 个人主页:白子寰 🔥 分类专栏:重生之我在学Linux,C打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~ 💡 坚持…

海外本地化呼叫中心有哪些独特优势?

随着全球化的深入推进,企业越来越注重拓展海外市场,而海外本地化呼叫中心作为企业海外拓展的重要工具,其独特优势逐渐凸显。沃丰科技呼叫中心系统凭借其先进的功能和卓越的服务质量,为众多企业提供了完美的解决方案。 语言与文化…

优选算法——分治(归并)

1. 归并排序 题目链接&#xff1a;912. 排序数组 - 力扣&#xff08;LeetCode&#xff09; 题目展示&#xff1a; 题目分析&#xff1a;这里我们直接来实现归并排序即可&#xff1b; 代码实现&#xff1a; class Solution {vector<int> tmp;//在全局创建辅助数组&…

Java从入门到工作1 - 语法

1.1、注解 注解困扰了我很长时间&#xff0c;看了一堆概念。要理解注解&#xff0c;首先得理解两个概念元数据和反射机制 元数据是关于数据的数据。它提供了关于其他数据的信息或描述。例如&#xff0c;在数据库中&#xff0c;记录的结构&#xff08;字段类型、字段名称等&am…

MySQL其五,索引详解,逻辑架构,SQL优化等概念

目录 一、索引 1、索引的概念 2、索引的优缺点 3、添加索引的原则 4、索引的分类 5、索引如何使用 6、存储过程讲解 7、测试索引的效率 7、索引的数据结构 8、覆盖索引&#xff08;SQL优化的点&#xff09; 9、最佳左前缀法则&#xff08;SQL优化的点&#xff09; 二…

简单的go写的websocket协议 im 聊天 服务,流程简单清晰,采用golang编写,flutter im客户端。免费开源哈,随意用

mini-im 1、说明&#xff1a; 项目地址&#xff1a;https://github.com/haomiao33/minim 1.1、项目介绍&#xff1a; 简单的go写的im服务&#xff0c;流程简单清晰,大部分接口使用的是http&#xff0c;方便流程控制。login服务目前只是用来做服务端推送消息通知到客户端。本…

多音轨视频使用FFmpeg删除不要音轨方法

近期给孩子找宫崎骏动画&#xff0c;但是有很多是多音轨视频但是默认的都是日语&#xff0c;电视上看没办法所以只能下载后删除音轨文件只保留中文。 方法分两步&#xff0c;先安装FFmpeg在转文件即可。 第一步FFmpeg安装 FFmpeg是一个开源项目&#xff0c;包含了处理视频的…

GitHub企业版:AWS CodeCommit迁移的最佳路径与技术优势

此前&#xff0c;亚马逊网路服务&#xff08;AWS&#xff09;宣布&#xff0c;自2024年7月25日起&#xff0c;AWS CodeCommit不再接受新客户。虽然现有客户可以继续使用该服务&#xff0c;且其安全性、可用性和性能将得到维护&#xff0c;但AWS将不再推出新功能或接受新用户。 …

龙旗科技社招入职测评:言语理解材料计算图形推理真题北森题库考什么?

龙旗科技社招入职测评北森题库主要考察以下几个方面&#xff1a; 1. **言语逻辑**&#xff1a;这部分的考试时间是10分钟&#xff0c;需要完成10道题目。每题的作答时间被限定为60秒&#xff0c;一旦提交后无法返回修改。题目类型包括总结中心思想、选词填空和推理文章意思。考…