基于海鸥派Yolov8 模型训练与部署教程

基于海鸥派Yolov8 模型训练与部署教程 易百纳技术社区 2026-04-14 14:49:09 25

目录

1. YOlOv8环境搭建

1.1创建虚拟环境

1.2 环境搭建

2.训练数据集制作

2.1数据集格式介绍

2.1 数据集标注

3. YOLOv8训练

3.1 查看显卡

3.2 上传数据集到服务器上

3.3 修改yaml文件

3.4 训练

3.5 预测

3.6 onnx模型导出

4. onnx模型转换

4.1 安装atc相关环境

4.2 安装atc相关依赖

4.3 安装atc软件

4.4 YOLOV8转换模型

4.5 op.cfg文件

5. 板端推理


1. YOlOv8环境搭建

1.1创建虚拟环境

通过conda,为YOLOV8安装创建一个干净的环境。

(1)安装Miniconda

conda允许用户设置独立的环境来运行不同版本的 Python 或其他语言,而无需切换到其他环境管理器。Miniconda和Anaconda均是conda工具,但Miniconda是Anaconda最小安装程序,内存占用较小,YOLOv8的训练环境搭建将使用conda工具创建一个独立的python环境。

执行下面命令安装Miniconda3

易百纳社区

(2)conda命令创建虚拟环境

下面命令为conda环境的基本命令,请根据前5条命令创建并切换到虚拟环境内。

易百纳社区

1.2 环境搭建

(1)安装依赖、补丁

下载yolov8代码。

mkdir yolov8 && cd yolov8 
git clone https://github.com/ultralytics/ultralytics.git

在源码路径中运行命令,加载指定版本。

git reset --hard d3f097314f9478de7f995d4e4b4ccb0c6fbc65d3 
cd ultralytics 

下载模型至源码目录下,下载路径。

wget https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt在yolov8源码路径中创建requirements_yolov8.txt文件,添加以下内容。

# Usage: pip install -r requirements_yolov8.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.12.0 
torchvision==0.13.0 
tqdm>=4.64.0 
# Plotting ------------------------------------ 
pandas>=1.1.4 
seaborn>=0.11.0 
# Export -------------------------------------- 
onnx>=1.12.0 # ONNX export 
onnxsim>=0.4.1 # ONNX simplifier 
# Extras -------------------------------------- 
psutil # system utilization 
thop>=0.1.1 # FLOPs computation 
#----------------------------------------

安装依赖,在yolov8源码ultralytics目录下执行

pip install --upgrade pip 
pip install -r requirements_yolov8.txt

安装ultralytics,ultralytics版本必须为8.0.68

pip install ultralytics==8.0.68

(2)对应python和cuda版本

查看cuda版本。

nvcc -V

如果出现nvcc no found,在~/.bashrc文件末尾添加如下环境变量。

export PATH="/usr/local/cuda/bin:$PATH" 

(3)环境测试

在服务器yolov8源码目录下创建一个test.py文件,添加以下内容:

from ultralytics import YOLO 
model = YOLO("yolov8n.pt") 
success = model.export(format="onnx", opset=12)

执行test.py文件导出原始onnx模型,若无报错则代表当前环境正常。

python test.py

2.训练数据集制作

数据集用于模型训练。

2.1数据集格式介绍

yolov8的数据集格式是yolo(txt)格式,整个数据集文件夹先是分为图片和标签文件夹,分别存储图片和标签文件,而图片和标签文件夹下均再继续分为训练集、验证集和测试集,训练时训练集和验证集是必须的,测试集后续预测才需要。 数据集文件目录格式如下,images存放图片,labels存放标签文件,其中两者的子目录:train为训练集,val为验证集,test为测试集;两者的子目录下存放的图片和标签文件除扩展名外名称是一样,是相互对应的。

易百纳社区

易百纳社区

2.1 数据集标注

yolov8数据集采用yolo(txt)格式,采用labelImg工具标注, 选择输出yolo格式。

labelImg安装方法见:https://cloud.tencent.com/developer/article/2039112

数据标注方法如下图:

易百纳社区

首先打开图片目录,选择输出格式为YOLO,点击create RectBox按钮为图形做标注。

3. YOLOv8训练

请先登录服务器并进入docke容器内。

3.1 查看显卡

#查看显卡 
nvidia-smi

3.2 上传数据集到服务器上

需要事先将数据集打包压缩,通过sttp上传至服务器。 在源码同级目录下创建datasets文件夹,如下:

易百纳社区

拷贝数据集至datasets文件夹内解压,其中[test_file]为数据集压缩文件名。

cd datasets 
unzip [test_file]

3.3 修改yaml文件

执行以下命令拷贝coco128.yaml文件到源码目录下,修改文件名并修改内容,注意源码ultralytics 文件夹下还有个ultralytics文件夹。

cp ./ultralytics/datasets/coco128.yaml ./ 
mv coco128.yaml test.yaml 
vim test.yaml

未修改的test.yaml文件。

易百纳社区

修改后的test.yaml文件。

易百纳社区

3.4 训练

切换到yolov8源码目录下训练,训练结果在源码的runs目录下。

#这里添加0,1,2,3四个显卡训练,添加参数每次批次图像数量batch=16,需要与显卡数量成整数倍 
yolo detect mode=train data=./test.yaml model=yolov8n.pt epochs=150 batch=16 
imgsz=640 device=0,1,2,3 

参考:https://docs.ultralytics.com/zh/models/yolov8/#supported-tasks-and-modes

3.5 预测

使用训练出来的模型预测测试集。

#model为模型路径,source为测试集路径,conf为阈值,0.5代表置信度高于0.5时标出识别框 
yolo detect predict model=./runs/detect/train6/weights/best.pt 
source=../datasets/HandGesture/4 save=True conf=0.5

结果在源码runs目录下。

3.6 onnx模型导出

修改test.py文件的输入模型路径。添加以下语句导出onnx模型。

success = model.export(format="onnx", opset=12)

4. onnx模型转换

以下是将onnx模型转换成板端运行的om格式模型的方法。

4.1 安装atc相关环境

conda create -n atc python=3.9.2 
conda env list 
conda config --set auto_activate_base false
conda activate atc
conda deactivate

4.2 安装atc相关依赖

pip3 install protobuf==3.13.0 --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install psutil==5.7.0 --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install numpy --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install scipy --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install decorator==4.4.0 --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install sympy==1.5.1 --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install cffi==1.12.3 --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pyyaml --user -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pathlib2 --user -i https://pypi.tuna.tsinghua.edu.cn/simple

4.3 安装atc软件

参考官方SDK文件夹下:NNN/驱动和开发环境安装指南。

先修改安装文件权限

chmod +X Ascend-cann-toolkit_5.20.t6.2.b060_linux-x86_64.run

安装cann软件

./Ascend-cann-toolkit_5.20.t6.2.b060_linux-x86_64.run --install

安装完成后运行以下命令:

source 
/usr/local/Ascend/ascend-toolkit/5.20.t6.2.b060/x86_64-linux/bin/setenv.bash

其中/usr/local/Ascend/ascend-toolkit/为安装目录。

4.4 YOLOV8转换模型

YOLOV8转换命令如下:

Source
$HOME/Ascend/ascend-toolkit/latest/x86_64-linux/bin/setenv.bash
atc --model=yolov5s_v6.2.onnx --framework=5 --output=yolov5s_v6.2 --soc_version="OPTG" --output_type=FP32 --insert_op_conf=./op.cfg

示例代码存在doc/act/onnx2om.sh.可以直接运行以下命令进行转换。

./onnx2om.sh 输入模型文件名  输出模型文件名

4.5 op.cfg文件

设置yuv420输入配置,输入为640*640 yuv420

aipp_op {
    aipp_mode : static
    related_input_rank : 0
    max_src_image_size : 1228800
    support_rotation : false
    input_format : YUV420SP_U8
    src_image_size_w : 640
    src_image_size_h: 640
    cpadding_value: 0.0
    crop : false
    load_start_pos_w : 0
    load_start_pos_h : 0
    crop_size_w : 0
    crop_size_h : 0
    resize : false
    resize_output_w : 640
    resize_output_h : 640
    padding : false
    left_padding_size : 0
    right_padding_size : 0
    top_padding_size : 0
    bottom_padding_size : 0
    padding_value : 0
    csc_switch : true
    rbuv_swap_switch : false
    ax_swap_switch : false
    matrix_r0c0 : 256
    matrix_r0c1 : 0
    matrix_r0c2 : 0
    matrix_r1c0 : 0
    matrix_r1c1 : 0
    matrix_r1c2 : 0
    matrix_r2c0 : 0
    matrix_r2c1 : 0
    matrix_r2c2 : 0
    output_bias_0 : 0
    output_bias_1 : 0
    output_bias_2 : 0
    input_bias_0 : 0
    input_bias_1 : 0
    input_bias_2 : 0
    mean_chn_0 : 0
    min_chn_0 : 0.0
    var_reci_chn_0 : 0.00392157
}

5. 板端推理

将生成的om离线模型、拷贝至板端进行模型推理即可完成板端部署。

拷贝到板端并命名为yolov8n.om, 或者修改代码。注:代码中默认只会在置信度 ≥ 0.85 时绘制框,可将阈值调低至 0.50 进行测试。

易百纳社区

export LD_LIBRARY_PATH=/opt/lib/npu:$LD_LIBRARY_PATH
./sample_yolov8_imx347


声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
易百纳技术社区
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区