基于海鸥派Yolov8 模型训练与部署教程
目录
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-smi3.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 deactivate4.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/simple4.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- 分享
- 举报
暂无数据-
浏览量:5762次2024-03-05 15:05:36
-
2024-12-10 11:13:53
-
2024-12-10 10:34:18
-
浏览量:4000次2024-02-28 16:15:25
-
浏览量:7377次2024-02-28 15:36:09
-
2024-12-10 11:25:33
-
浏览量:5231次2024-02-02 18:15:06
-
2024-12-10 10:52:33
-
浏览量:3946次2023-12-19 17:25:07
-
浏览量:2678次2023-12-14 17:15:07
-
浏览量:4254次2023-11-25 17:47:33
-
浏览量:1943次2024-12-10 13:21:45
-
浏览量:3329次2024-02-23 17:41:04
-
浏览量:2130次2023-12-19 17:38:07
-
浏览量:6540次2023-05-25 16:32:18
-
浏览量:412次2026-02-28 19:51:27
-
浏览量:6737次2021-07-30 10:33:41
-
浏览量:595次2026-01-13 15:26:50
-
浏览量:2100次2025-02-26 21:18:20
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
易百纳技术社区
微信支付举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明

微信扫码分享
QQ好友