yolov8,yolo11,yolo12 服务器训练到部署全流程 笔记

正在进行中,随时更新

一. Anaconda配置

1.安装anaconda

(1)下载.sh文件

Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

(2)scp到服务器后,运行安装包

复制代码
bash Anaconda3-2020.07-Linux-x86_64.sh 

(3)安装anaconda

1.回车进入注册界面(q键跳过阅读)

2.yes

3.设置安装路径,选择默认就直接回车

4.Do you wish the installer to initialize Anaconda3 by running conda init ?

您是否希望安装程序通过运行 conda init 来初始化 Anaconda3?--yes

(4)修改环境变量,并验证安装

复制代码
vim ~/.bashrc

export PATH="/home/username/anaconda3/bin:$PATH"

source ~/.bashrc

conda --version

常用conda指令

复制代码
#创建
conda create -n your_env_name python=3.8
 
#激活
source activate your_env_name
 
#退出
source deactivate your_env_name
 
#删除
conda remove -n your_env_name --all
 
 
#安装包
conda install package_name(包名)
conda install scrapy==1.3 # 安装指定版本的包
conda install -n 环境名 包名 # 在conda指定的某个环境中安装包
 
#查看当前存在哪些虚拟环境
conda env list 

二. yolov8、yolo11、yolo12 区别

YOLO11与YOLOv8差异可以由图中得

横坐标:处理一张图像的速度快慢(Latency),单位ms

纵坐标:COCO数据集上的平均精度(mAP),范围从0.50到0.95,越高表示模型的检测精度越好

曲线越靠右上,表示模型在保持较低Latency的同时,能够达到更高的mAP,性能越好。

1.YOLO11 改进及优劣

1.针对现代 GPU 优化训练和推理,训练速度提升 25%,延迟降低(如 Nano 模型延迟从 1.84ms 降至 1.55ms)

2.新增旋转边界框(OBB)、姿态估计等专用模型(后缀如 -obb-pose

3.通过架构优化减少参数数量,保持精度同时提升效率

优势

  • 高推理效率,尤其在 GPU 上表现出色,适合实时高负载场景
  • 模型压缩技术成熟,适合资源受限的嵌入式设备

劣势

  • 超大模型(如 YOLOv11x)的延迟反而增加(11.31ms vs YOLOv10x 的 10.70ms)
  • 对自定义数据集的迁移学习效果略逊于 YOLOv8(mAP 差距约 0.5)
  • YOLOv8:追求高精度和复杂任务(如实例分割、姿态估计),硬件资源充足

  • YOLOv11:需要低延迟、高吞吐量的实时应用(如工业检测、移动端部署),或需处理旋转目标

三. yolov8n-seg

官方文档:YOLOv8 -Ultralytics YOLO 文档

1. yolov8环境配置

创建yolov8 conda 虚拟环境,在虚拟环境中

复制代码
# 安装YOLOv8,直接使用命令安装
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

# 或者通过拉取仓库然后安装
git clone https://github.com/ultralytics/ultralytics
cd ultralytics
pip install -e .

2. 训练

参考官方说明文档

https://docs.ultralytics.com/modes/train/#arguments

四. yolo11

1. yolo11 介绍

Ultralytics YOLO11 是新一代计算机视觉模型, 在目标检测、实例分割、图像分类、姿势估计、定向物体检测和对象跟踪等计算机视觉任务上展现了卓越的性能和准确性。

整体上yolo11相较于yolov8变化不大, 主要的改变有加入多头注意力机制,分类检测头加入深度可分离卷积等等,在性能和准确度上相对于yolov8有显著提升。

官方文档:YOLO11 🚀 新 -Ultralytics YOLO 文档

2. yolo11 模型训练

2.1 yolov11 工程及环境配置

复制代码
conda create -n yolo11 python=3.8
conda activate yolo11

# 配置pip源(可选)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/

# 安装
pip install ultralytics

# 或者
git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -e .

# 检测版本
(yolo11) yolo version
8.3.29

安装完成后,为了转onnx模型和更好的训练,建议再配置如下几个库,可以参考官方项目中的requirement.txt文件。

复制代码
pip install tensorboard==2.13.0 onnx==1.12.0 onnxsim==0.4.1 pycocotools==2.0.6 -i https://pypi.tuna.tsinghua.edu.cn/simple/

2.2 训练yolo11

进行模型推理测试:

复制代码
yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'

会自动下载模型权重及测试图片。结果保存在runs/detect/predict目录下。

训练自己的数据集需要分别配置以下内容:

1)yaml模型文件

位于:./yolo11/ultralytics/ultralytics/cfg/models/11。

需要创建一个根据自己需要的yaml文件:yolo11-seg_1class.yaml

将类别修改为1。便于部署。

2)预训练模型(可以用默认文件,自动下载)

默认model=yolo11n.pt

3)训练数据和参数

在./yolo11/ultralytics/ultralytics/cfg/datasets路径下,参考coco128.yaml文件,制作一个单一类别的参数文件。需要更改类别名和训练数据路径。

复制代码
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO128 dataset https://www.kaggle.com/datasets/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco/
# Example usage: yolo train data=coco128.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco128  ← downloads here (7 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: /home/username/datase
train: images/train  # train images (relative to 'path') 128 images
val: images/val  # val images (relative to 'path') 128 images
test: # test images (optional)

# Classes
names:
  0: qrcode

在./yolo11/ultralytics/ultralytics路径下新建一个mytrain_1c_detect.py文件。

设置输入模型的图像大小

python 复制代码
from ultralytics import YOLO

model = YOLO('./ultralytics/cfg/models/11/yolo11-seg_1class.yaml').load('./yolo11n.pt')  # build from YAML and transfer weights
results = model.train(data='./ultralytics/cfg/datasets/charge-seg.yaml', epochs=200, batch=128, imgsz=512, device=0, project='grassDetect')

在终端中运行:

python 复制代码
python mytrain_1c_detect.py 

2.3 模型转换

导出为onnx格式模型

模型导出使用专门针对rknn优化的 ultralytics_yolo11 。 该工程在基于不影响输出结果, 不需要重新训练模型的条件下, 有以下改动:

  • 修改输出结构, 移除后处理结构(后处理结果对于量化不友好);

  • dfl 结构在 NPU 处理上性能不佳,移至模型外部的后处理阶段,此操作大部分情况下可提升推理性能;

  • 模型输出分支新增置信度的总和,用于后处理阶段加速阈值筛选。

    git clone https://github.com/airockchip/ultralytics_yolo11.git

    修改 ./ultralytics/cfg/default.yaml中model文件路径,默认为yolo11n.pt

    导出onnx模型

    export PYTHONPATH=./
    python ./ultralytics/engine/exporter.py

导出的onnx模型会在同目录下,使用 netron 查看其模型输入输出。

相关推荐
海棠蚀omo13 分钟前
C++笔记-list
开发语言·c++·笔记
stockmasterx33 分钟前
什么是ETF跟踪误差?场内基金佣金最低是多少?
经验分享·笔记·其他
zhuyixiangyyds1 小时前
day30图像处理OpenCV
图像处理·笔记·学习
jackson凌1 小时前
【Java学习笔记】键盘录入方法
java·笔记·学习
郭涤生2 小时前
Linux 常用命令总结
linux·笔记
小咖拉眯2 小时前
L2-033 简单计算器满分笔记
笔记·算法
睡了吃-2 小时前
spark- SQL简介
笔记
孞㐑¥2 小时前
C++之哈希
开发语言·c++·经验分享·笔记
勇敢牛牛_2 小时前
【Rust基础】crossbeam带来的阻塞问题
开发语言·笔记·rust
yuweififi3 小时前
随手笔记-python-opencv 读取图像的顺序 与pytorch处理图像的顺序
pytorch·笔记·python·opencv