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格式
热门推荐
迁户口要实际居住证明去哪里开具?本地户口居住证明去哪里开?
后背"长痘"总爱用手挤?小心越长越多,低成本祛痘攻略来啦……
农历新年习俗全解析:从除夕到初六的传统与讲究
Debian 12系统安装:手动磁盘分区完整指南
不锈钢法兰球阀的管道安装说明
武侠小说中的武学境界解析
金融风险管理的最佳实践案例有哪些?
大模型应用案例详解:从入门到精通的系统指南
PN结特性及反向饱和电流与反向漏电流详解
45亿甩卖中药铺,李嘉诚再次上演“不赚最后一个铜板”?
如何评估企业的服务质量?这种评估对企业选择有何帮助?
定型发泥怎么用?一文详解使用方法和技巧
车灯 12 万坎德拉是多少流明
自动驾驶三大主流芯片架构分析
麻薯的营养成分研究及其健康功效探讨
山川异域,风月同天
怎么辨别淋巴瘤阶段
暴涨的锑价——大国博弈下结构供需矛盾最大的战略金属
等保2.0基本要求及等级划分详解
儿童牙齿矫正黄金期绝不是12岁后 ,一位正畸医生的科学解读
早餐拼盘搭配减肥:从食材到搭配的全方位指南
揭秘肠镜探秘之旅:价格、流程与智慧攻略
南京清凉山银杏谷什么时候去最美 最佳地点在哪
STM32F103 CubeMX 使用USB生成键盘设备
颅咽管瘤分类
“剃刀将军”东条英机:陆军普信男咋成了日本头号背锅侠?
健康管理毕业去向的方向
3004铝箔:餐盒铝箔材料的优质选择
长期坚持晨跑的十大好处
尿素行情的波动因素有哪些?这些因素如何通过市场数据进行分析?