4.4 YOLOv8 训练部署全流程
本文以 YOLOv8 为例,详细介绍从模型训练、量化 到最终 推理 部署的完整流程。
模型训练
训练环境安装
-
获取源代码:
git clone https://github.com/ultralytics/ultralytics -
安装依赖:
cd ultralytics
pip install -e .如遇依赖项不能下载安装,可以采用镜像网站来下载安装 https://pypi.tuna.tsinghua.edu.cn/simple/
模型训练及导出
以下代码示例展示了如何使用 YOLOv8 进行模型训练并导出为 ONNX 格式:
from ultralytics import YOLO
#Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.yaml")
#Load a pretrained YOLO model (recommended for training)
model = YOLO("yolov8n.pt")
#Train the model using the 'coco8.yaml' dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100)
#Export the model to ONNX format
success = model.export(format="onnx",imgsz=(320,320),simplify=True,opset=13)
关键参数说明:
yolov8n.yaml:模型结构配置文件。coco8.yaml:训练数据集配置文件,需包含以下两部分:images:存放训练集以及验证集的图像数据。labels:存放训练集以及验证集的图像数据对应的标注文件。
标注文件(labels)格式(每行表示一个目标):
<class_id> <x_center> <y_center> <width> <height>
示例:
0 0.445688 0.480615 0.075125 0.117295
0 0.640086 0.471742 0.0508281 0.0814344
20 0.643211 0.558852 0.129828 0.097623
class_id:第目标类别编号(整数)。- 后续四个浮点数表示该目标的归一化坐标信息,这四个浮点数的排列顺序为:
x_center:(归一化后的)目标中心点的 x 坐标y_center:(归一化后的)目标中心点的 y 坐标width:(归一化后的)目标框 x 方向的大小height:(归一化后的)目标框 y 方向的大小
注意:若需在私有数据集上训练微调,建议先加载预训练模型,并参照
coco8.yaml格式准备数据。
模型量化 (x86 平台)
注意:量化操作需在 x86 平台进行。
量化工具安装
-
下载量化工具:
xquant-1.2.1 下载地址 -
安装工具:
pip install xquant-1.2.1-py3-none-any.whl -
验证安装:
pip show xquant成功安装后输出(示例)如下:
