YOLO:目标检测模型的训练和推理(简单Demo)
创作时间:
作者:
@小白创作中心
YOLO:目标检测模型的训练和推理(简单Demo)
引用
CSDN
1.
https://blog.csdn.net/qq_35591253/article/details/140846683
本文将通过一个简单的Demo,详细介绍如何使用YOLO模型进行目标检测,包括模型训练、推理以及环境配置等内容。
一、准备
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.1 基于pt格式模型
修改训练好的模型路径,图片的路径。只需4行,即可实现推理。
from ultralytics import YOLO
model = YOLO("../模型/best.pt")
image_path = "../测试图片/2.png"
model.predict(image_path, imgsz=640, save=True, device=0)
3.2 基于onnx格式模型
from ultralytics import YOLO
# 加载你的模型
# model = YOLO("yolov8n.pt")
# # 导出模型
# model.export(format="onnx") # creates 'yolov8n.onnx'
# 模型推理
onnx_model = YOLO("./model/yolov8n.onnx")
# 选择你的图片、视频
results = onnx_model("./images/0_frame_001.jpg")
result = results[0]
result.show() # 显示推理结果
四、讨论
由于只训练了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格式
热门推荐
蜂蜜等级划分及质量评定详解 一文讲透!
世界上最小的玩具型犬种,它被称为会动的“活宝石”
《封神》特效揭秘:商朝青铜器之美
《封神第一部》海外热映:中国神话的国际魅力
零代表什么意思 探究数字0的起源与象征意义
自然数:揭秘数学世界最基础的元素
茼蒿菜的功效与作用、禁忌和食用方法
黄金上涨动力不足?美联储决策和地缘风暴究竟谁是关键!
做黄金投资的四大原则:如何应对市场变化?
如何在黄金投资中实现风险规避?这种风险规避的方法有哪些?
锂电池内阻多少比较好?一文详解锂电池内阻标准
脾胃虚寒吃什么食物好 这些食物有助于改善体质
北方人都爱囤的大白菜,具有什么营养价值?
常吃大白菜有哪些食疗功效
多名乘客持票也没挤上车!“买短乘长”者:无奈选择,候补19个订单没买到票
从模仿光头强砍树看儿童行为:是模仿还是学习?
儿童彩妆套盒:科学看待孩子化妆热
极睡干货 | 合成褪黑素VS天然褪黑素:哪种更能助你安睡?
宿迁小番茄营养大揭秘:7种营养成分助力健康
宿迁小番茄成致富金果!
宿迁现代农业园区:小番茄产业的科技革命
初冬必打卡!梅河口海龙湖绝美风景
冬日打卡!梅河口市滑雪场不容错过
梅河口秋游打卡胜地推荐:从金黄海龙湖到火红鸡冠山
秋冬必备:儿菜的完美清洗与储存指南
冬季养生必备:儿菜的神奇功效
秋冬必吃:娃娃菜怎么挑才新鲜?
春天吃儿菜正当时!三种美味做法详解
辞职后医保续交攻略:你真的懂吗?
《哪吒2》登顶影史冠军:李靖角色反转引发热议