作者:CSDN @ _养乐多_
本文将介绍如何训练和推理YOLO模型。使用coco8数据集以一个简单的demo进行示例。

文章目录
- 一、准备
- 1.1 模型类型
- 1.2 环境配置
 
 
- 二、模型训练和推理
- 三、讨论
 
 
一、准备
1.1 模型类型
YOLO8模型性能数据:
| Model | Size (pixels) | mAPval 50-95 | Speed CPU ONNX (ms) | Speed A100 TensorRT (ms) | Params (M) | FLOPs (B) | 
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 | 
| YOLOv8s | 640 | 44.9 | 128.4 | 1.20 | 11.2 | 28.6 | 
| YOLOv8m | 640 | 50.2 | 234.7 | 1.83 | 25.9 | 78.9 | 
| YOLOv8l | 640 | 52.9 | 375.2 | 2.39 | 43.7 | 165.2 | 
| YOLOv8x | 640 | 53.9 | 479.1 | 3.53 | 68.2 | 257.8 | 
这个表格包含了YOLO模型的各项性能指标,包括模型大小、mAP值、CPU和TensorRT的推理速度、参数数量以及FLOPs。
1.2 环境配置
安装ultralytics库
pip install ultralytics
二、模型训练和推理
Windows系统下,直接运行以下代码。保持网络通畅,因为模型文件和推理图片都是通过网络直接下载并应用的。
from ultralytics import YOLO
if __name__ == '__main__':
    # 加载模型
    # model = YOLO("yolov8n.yaml")  # 从头构建一个新模型
    model = YOLO("yolov8n.pt")  # 加载一个预训练模型(推荐用于训练)
   # 训练
    model.train(data="coco8.yaml", epochs=3, workers=0)  # 使用单进程数据训练模型
    # 验证
    metrics = model.val()  # 评估模型在验证集上的性能
    
    # 推理
    results = model("https://ultralytics.com/images/bus.jpg")  # 对图像进行预测
    model.predict("https://ultralytics.com/images/bus.jpg", imgsz=640, save=True, device=0)
    # 保存模型
    path = model.export(format="onnx")  # 将模型导出为ONNX格式
如果网络有问题,就点击链接下载bus.jpg图片。 也可以自己在网上找一个有很多物体的图片进行推理。
 代码如下,
from ultralytics import YOLO
if __name__ == '__main__':
    # 加载模型
    # model = YOLO("yolov8n.yaml")  # 从头构建一个新模型
    model = YOLO("yolov8n.pt")  # 加载一个预训练模型(推荐用于训练)
    # 训练
    model.train(data="coco8.yaml", epochs=3, workers=0)  # 使用单进程数据训练模型
    # 验证
    metrics = model.val()  # 评估模型在验证集上的性能
    
    # 推理
    # 如果网络有问题,就点击链接下载到本地,“https://ultralytics.com/images/bus.jpg”
    results = model("bus.jpg")  # 对图像进行预测
    model.predict("bus.jpg", imgsz=640, save=True, device=0)
    # 保存模型
    path = model.export(format="onnx")  # 将模型导出为ONNX格式
三、讨论
因为我只训练了3次,训练的epoch少,精度就会低一点,像下面右上角的图片中,人和马都检测错了。
 
再简化一下代码,四行就可以训练、预测和保存模型。
from ultralytics import YOLO
if __name__ == '__main__':
    # 加载模型
    model = YOLO("yolov8n.pt")  # 加载一个预训练模型(推荐用于训练)
   # 训练
    model.train(data="coco8.yaml", epochs=3, workers=0)  # 使用单进程数据训练模型
    
    # 推理
    model.predict("https://ultralytics.com/images/bus.jpg", imgsz=640, save=True, device=0)
    # 保存模型
    path = model.export(format="onnx")  # 将模型导出为ONNX格式



















