【超详细】【YOLOV8使用说明】一套框架解决CV的5大任务:目标检测、分割、姿势估计、跟踪和分类任务【含源码】(1)

简介: 【超详细】【YOLOV8使用说明】一套框架解决CV的5大任务:目标检测、分割、姿势估计、跟踪和分类任务【含源码】

1.简介

YOLOv8是Ultralytics的最新版本YOLO。作为最先进的 SOTA 模型,YOLOv8 建立在以前版本成功的基础上,引入了新功能和改进,以增强性能、灵活性和效率。YOLOv8 支持全方位的视觉 AI 任务,包括检测分割姿势估计跟踪分类。这种多功能性使用户能够在不同的应用程序和域中利用YOLOv8的功能。模型中只需要设定不同的训练模型,就可以得到不同的检测结果。

本文主要介绍如何使用该模型框架进行CV中各种任务的推理使用,包含检测分割姿势估计跟踪,关于模型的训练等相关内容,后续有空再进行更新,感兴趣的小伙伴,可以点赞关注我~谢谢


2.环境安装

2.1安装torch相关库

官网地址:https://pytorch.org/get-started/locally

安装命令:

pip install torch torchvision torchaudio

2.2 获取yolov8最新版本,并安装依赖

github地址: https://github.com/ultralytics/ultralytics

通过克隆仓库到本地来获得yolov8最新版本。

安装依赖环境:

pip install ultralytics

3. 如何使用模型用于各种CV任务

安装好yolov8需要的运行环境之后,就可以直接使用模型了,目前,该模型可以直接用于检测分割姿势估计跟踪分类这5类检测任务。

支持两种运行方式:

方式一:命令行形式示例

yolo TASK MODE ARGS
举例: yolo detect predict model=yolov8n.pt source='1.jpg'
表示对图片1.jpg进行目标检测

参数说明:

TASK (optional) 表示模型任务类型,可以从列表 [detect, segment, classify, pose]选一个. 分别代表检测、分割、分类、姿态检测任务

MODE (required) 表示模型需要执行的操作,可以从列表 [train, val, predict, export, track, benchmark]选一个,分别代表训练、验证、预测、模型转换、追踪、基准模型评估

ARGS (optional) 表示其他的一些参数设置,后面详细说明

方式二:python代码形式示例

from ultralytics import YOLO
# 加载预训练模型,
model = YOLO('yolov8n.pt',task='detect')
# yolov8n.pt表示预训练模型
# task代表需要执行的任务:detect, segment, classify, pose
# 使用模型进行指定任务
results = model(ARGS)

3.1 目标检测任务实现

检测图片代码

from ultralytics import YOLO
import cv2
# 加载预训练模型
model = YOLO("yolov8n.pt", task='detect') 
# model = YOLO("yolov8n.pt") task参数也可以不填写,它会根据模型去识别相应任务类别
# 检测图片
results = model("./ultralytics/assets/bus.jpg")
res = results[0].plot()
cv2.imshow("YOLOv8 Inference", res)
cv2.waitKey(0)

检测视频代码

import cv2
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO('yolov8n.pt')
print('111')
# Open the video file
video_path = "1.mp4"
cap = cv2.VideoCapture(video_path)
# Loop through the video frames
while cap.isOpened():
    # Read a frame from the video
    success, frame = cap.read()
    if success:
        # Run YOLOv8 inference on the frame
        results = model(frame)
        # Visualize the results on the frame
        annotated_frame = results[0].plot()
        # Display the annotated frame
        cv2.imshow("YOLOv8 Inference", annotated_frame)
        # Break the loop if 'q' is pressed
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        # Break the loop if the end of the video is reached
        break
# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()

3.2 分割任务实现

分割图片代码

from ultralytics import YOLO
import cv2
# Load a model
model = YOLO('yolov8n-seg.pt')  
# Predict with the model
results = model('./ultralytics/assets/bus.jpg')  # predict on an image
res = results[0].plot(boxes=False) #boxes=False表示不展示预测框,True表示同时展示预测框
# Display the annotated frame
cv2.imshow("YOLOv8 Inference", res)
cv2.waitKey(0)

分割视频代码

import cv2
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO('yolov8n-seg.pt', task='segment')
# Open the video file
video_path = "1.mp4"
cap = cv2.VideoCapture(video_path)
# Loop through the video frames
while cap.isOpened():
    # Read a frame from the video
    success, frame = cap.read()
    if success:
        # Run YOLOv8 inference on the frame
        results = model(frame)
        # Visualize the results on the frame
        annotated_frame = results[0].plot()
        # annotated_frame = results[0].plot(boxes=False)不显示预测框
        # Display the annotated frame
        cv2.imshow("YOLOv8 Inference", annotated_frame)
        # Break the loop if 'q' is pressed
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        # Break the loop if the end of the video is reached
        break
# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()

显示预测框结果

不显示预测框结果

将代码中的boxes设为False即可:

annotated_frame = results[0].plot(boxes=False)

【超详细】【YOLOV8使用说明】一套框架解决CV的5大任务:目标检测、分割、姿势估计、跟踪和分类任务【含源码】(2)https://developer.aliyun.com/article/1536305

相关文章
|
8月前
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
|
8月前
|
存储 XML JSON
开集目标检测-标签提示目标检测大模型(吊打YOLO系列-自动化检测标注)
开集目标检测-标签提示目标检测大模型(吊打YOLO系列-自动化检测标注)
|
8月前
|
机器学习/深度学习 开发工具 计算机视觉
YOLOv8 目标检测 | 自定义数据集
YOLOv8 目标检测 | 自定义数据集
|
8月前
|
存储 人工智能 算法
YOLOv8界面-目标检测+语义分割+追踪+姿态识别(姿态估计)+界面DeepSort/ByteTrack-PyQt-GUI
YOLOv8界面-目标检测+语义分割+追踪+姿态识别(姿态估计)+界面DeepSort/ByteTrack-PyQt-GUI
|
3月前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
4908 1
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
3月前
|
XML JSON 数据可视化
数据集学习笔记(六):目标检测和图像分割标注软件介绍和使用,并转换成YOLO系列可使用的数据集格式
本文介绍了labelImg和labelme两款图像标注工具的安装、使用、数据转换和验证方法,适用于目标检测和图像分割任务,支持YOLO等数据集格式。
771 2
数据集学习笔记(六):目标检测和图像分割标注软件介绍和使用,并转换成YOLO系列可使用的数据集格式
|
3月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
858 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
3月前
|
机器学习/深度学习 算法 PyTorch
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-7.0版本进行目标检测的完整流程,包括算法介绍、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。YOLOv5以其高精度、快速度和模型小尺寸在计算机视觉领域受到广泛应用。
1531 0
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
|
3月前
|
机器学习/深度学习 XML 并行计算
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用YOLOX完成图像目标检测任务的完整流程,包括数据准备、模型训练、验证和测试。
350 0
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
3月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
598 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)

热门文章

最新文章