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格式
热门推荐
Excel高手教你秒变两位小数达人
Excel财务报表:保留两位小数的最佳实践
腰疼与情绪的关系:压力可能是幕后黑手
手机开机自启动软件如何关闭?这5个步骤让你轻松应对!
腔隙性脑梗死吃什么食物调理
JAMA Neurol:西洛他唑+单硝酸异山梨酯改善腔梗患者预后
秋冬小鸡咳嗽,兽医推荐神药组合
小鸡咳嗽频发,养殖户如何科学应对?
冬季小鸡咳嗽高发期,如何科学防治?
小鸡咳嗽怎么治?专家推荐这三款神药!
击败郑钦文选手遭爆扫出局,网友质疑声再起,嘲讽钦文仅百大实力
郑钦文在澳网表现出色,最新世界排名揭晓
体谈 | 郑钦文澳网出局不影响“钱”途 今年场外收入高达2.2亿元
榴莲的营养价值有哪些?给你吃榴莲的千万个理由!
四川戒毒:智慧管理与人文关怀的双重奏
VR戒毒法和运动戒毒法,谁更有效?
文旅新探丨悠悠古道 寻迹太行
来中央大街,品特色哈埠风味,探寻百年老街的独特魅力
哈尔滨四天三晚深度游攻略:冰雪大世界、雪乡等你来
CNC机床保养秘籍:从日常维护到故障预防
提升数控铣床保养的工业安全水平
苹果手机丢失后的找回方法与注意事项
7个实用生活小妙招,让生活更便捷舒适
汽车隔音材料:打造静谧驾驶空间的关键
ANC主动降噪技术:让汽车驾驶更安静舒适的智能解决方案
车吉祥教你打造静谧驾乘体验
洛杉矶大火后泥石流来袭,家园再遭威胁
福州2日游:三坊七巷与鼓山深度体验
预防心脑血管疾病的草药
颈部动脉斑块吃什么食物