yolov8训练和预测

介绍

Ultralytics YOLOv8 是一种前沿、最先进 (SOTA) 的模型,它在之前的 YOLO 版本的成功基础上引入了新功能和改进,以提高性能和灵活性。YOLOv8 旨在快速、准确、易于使用,是广泛应用于目标检测和跟踪、实例分割、图像分类和姿态估计等任务的优秀选择。

与之前的 YOLOv5 不同的是,YOLOv8 是在一个名为 Ultralytics 项目下,该项目将该团队之前制作的 YOLOv3、YOLOv5 整合到了一起,并添加了 YOLOv8。初次之外,Ultralytics 更是整合了 YOLOv6、YOLOv9、YOLOv8-World、百度的 RT-DETR。

原文链接:https://blog.csdn.net/weixin_44878336/article/details/138316279

安装

yolov8可以通过多种方式安装,比如通过pip直接安装:
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
也可以使用docker安装:

推理

使用命令行:
yolo predict model=yolov8n.pt source=bus.jpg
这里忽略了很多参数,其中比较重要的两个参数是imgsz和device,补充后如下所示:
yolo predict model=yolov8n.pt source=bus.jpg imgsz=640 device=0
其中imgsz代表图片无论是多大,都会将长宽缩放到640,其中长边缩放至640,短边按比例缩放(小于640)。
device代表使用GPU设备,0代表使用第一个GPU。
model参数很重要,它用于指定使用哪个模型,yolov8n.pt只是yolov8项目里训练好的模型中最小的那个(参数少,识别速度快,准确率相对最低)。除此之外,还支持如下模型:

  • yolov8n: 适用于CPU的小型模型,适用于快速检测。
  • yolov8s: 中等大小的模型,适合中级资源的系统。
  • yolov8m: 大型模型,适合中高级资源的系统。
  • yolov8l: 超大型模型,适合高级资源的系统。
  • yolov8x: 极大型模型,适合最高资源的系统。
    使用上述模型时,第一次预测会自动下载该模型(可能很慢,要翻墙)。如果使用其他模型名,请确保当前目录下存在该模型(训练的模型)。
    根据系统配置,可选用合适的模型。
    使用Python:
    参考:https://docs.ultralytics.com/modes/predict/#key-features-of-predict-mode
from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # pretrained YOLOv8n model

# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"])  # return a list of Results objects

# Process results list
for result in results:
    boxes = result.boxes  # Boxes object for bounding box outputs
    masks = result.masks  # Masks object for segmentation masks 
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs
    obb = result.obb  # Oriented boxes object for OBB outputs
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk

标注图片

标注图片建议使用label_studio,此工具使用pip安装,命令行启动,浏览器访问,针对创建的某个数据集,可随时追加新图片,标注部分时也可以随时导出用于训练。
安装参考:https://labelstud.io/guide/install.html#Install-using-pip
一条命令搞定:pip install label-studio
运行:label-studio
使用方法请自行搜索。可参考:https://zhuanlan.zhihu.com/p/705893073

准备数据集

标注好图片后,需要根据yolo所需训练集格式,准备数据集。
可在label-studio中导出yolo格式,然后解压下载的目录后,将其整理为COCO8 Dataset的格式,COCO8数据集下载地址:https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

训练

使用命令行,参考https://docs.ultralytics.com/usage/cli/:
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=0 batch=16
参数和预测时雷同。其中比较重要的是,如果训练集不大(比如几十张图片),就一定要指定model=yolov8n.pt,否则训练后的模型无法识别任何物体。另外,根据使用硬件设备GPU的显存情况,设置合适的imgsz很重要,数据集图片如果是2000像素以内的,imgsz=2000时,需要更大的显存的支持,此时可以配合参数batch设置小一些,以减小对GPU显存的需求。
训练完成后,可使用命令行推理图片验证训练结果。
使用Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])
### 使用YOLOv8进行模型训练 对于YOLOv8模型训练,官方提供了详细的指南支持工具来简化这一流程。当前最新版本为8.2.0,在GitHub上有完整的项目资源可供获取[^2]。 为了启动YOLOv8训练过程,首先需要安装`ultralytics`库并准备数据集。假设已经完成了环境配置数据预处理工作,则可以通过以下Python脚本开始训练: ```python from ultralytics import YOLO # 创建一个新的YOLOv8n实例(可以更换成其他型号如'yolov8s', 'yolov8m'等) model = YOLO('yolov8n.yaml') # 开始训练;这里的data参数应指向自定义的数据配置文件路径, # epochs表示迭代次数,imgsz设置输入图像尺寸大小 results = model.train(data='path/to/data.yaml', epochs=100, imgsz=640) ``` 这段代码会基于指定的数据集执行训练操作,并自动保存最佳权重到默认目录下。训练完成后,还可以通过可视化工具查看混淆矩阵等相关统计图表以评估性能表现[^1]。 ### 执行YOLOv8推理 完成模型训练之后,就可以利用该模型来进行目标检测任务了。具体来说,加载之前保存的最佳权重文件并对新图片实施预测非常简单: ```python from ultralytics import YOLO # 加载已有的YOLOv8模型权重 model = YOLO('runs/train/exp/weights/best.pt') source_image_path = 'test.jpg' # 对单张测试图片运行推理,并将结果保存下来 predictions = model.predict(source_image_path, save=True) ``` 上述命令将会读取给定的源图像(`test.jpg`)并通过调用`.predict()`方法应用先前训练得到的对象识别能力对其进行标注,最终输出带有边界框标记的结果图像至本地磁盘中[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值