【玩转全栈】---基于YOLO8的图片、视频目标检测
本篇主要讲YOLO8的具体操作,想要了解YOLO的具体原理,可以去官网查询
目录
下载ultralytics库
开始检测
介绍
YOLOv8(You Only Look Once Version 8)是 YOLO 系列的最新版本,由 Ultralytics 开发并发布,是一种实时目标检测算法。相比之前的版本,YOLOv8 提供了更高的精度和更快的推理速度,同时支持目标检测、图像分割和姿态估计等任务。它采用了模块化设计,结合更先进的网络结构和训练技术,例如动态标签分配和改进的损失函数,从而提升了模型性能和泛化能力。此外,YOLOv8 兼容 PyTorch 框架,支持灵活的模型大小调整和迁移学习,适合在不同硬件设备(如 GPU、CPU)上运行。其用户友好的 API 和详细的文档使得开发者能够轻松集成和部署 YOLOv8,在安防监控、自动驾驶、智能零售等领域具有广泛应用。
YOLOv8 与 YOLOv5 比较
特性 | YOLOv8 | YOLOv5 |
---|---|---|
发布时间 | 2023 年 | 2020 年 |
核心功能 | 目标检测、图像分割、姿态估计 | 目标检测 |
模型结构 | 使用全新的架构,优化模块化设计,支持更高效的推理 | CSPNet 架构,较传统但已优化 |
性能 | 更高的 mAP 精度和推理速度 | 性能优秀,但不如 YOLOv8 |
任务支持 | 多任务(检测、分割、姿态估计) | 仅支持目标检测 |
训练优化 | 动态标签分配、改进的损失函数 | 使用固定标签分配方式,损失函数为 BCE+IoU |
部署灵活性 | 支持 ONNX、TensorRT、CoreML、OpenVINO 等主流推理框架 | 支持 ONNX 和 TensorRT,灵活性稍低 |
代码简洁性 | 更直观的 API 和模块化设计,易于扩展和使用 | 代码清晰,但接口较 YOLOv8 略显复杂 |
兼容性 | 向下兼容 YOLOv5 数据集格式 | 原生支持 YOLO 数据格式 |
适用场景 | 更广泛(如精细分割、人体姿态估计) | 目标检测为主 |
下载ultralytics库
控制台 pip 下载
pip install ultralytics
清华镜像源下载,国内镜像网站,速度更快
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ultralytics
下载YOLO的预训练模型文件:
https://download.csdn.net/download/2403_83182682/90295807?spm=1001.2014.3001.5503
开始检测
YOLO检测分两步:1、加载预训练模型;2、检测目标。
首先导入ultralytics 库
from ultralytics import YOLO
加载预训练模型
model = YOLO('yolov8l.pt')
检测目标
model('1.png',show=True)
# show=True 是否显示图片
持续显示
import cv2
# 持续显示
cv2.waitKey(0)
照片随便找张即可,这是官方使用的检测照片
运行结果如下:
检测出来框内是某事物的概率
如果想要保存检测后图片,只需添加参数:
model('1.png',show=True,save=True)
运行后,会自动创建文件夹并将预测图片储存。
同样地,检测网络图片和视频也是这样,检测网络图片仅需将url复制进model中即可,模型会先下载网络图片,再进行检测。
视频识别按照一秒60帧的速度来检测目标,可以传本地,也可以用网络url
视频识别结果如下:
基于YOLO8的目标识别
可以看到,这样的训练对于人物和部分物体是能识别到的,但一些其他的物体,比如健身器材,就检测不到,这是因为像这样的目标识别是基于官方预训练模型进行的,所检测出来的内容也只能是预训练模型中训练的,这样当然是不能满足特定场景的特定需求,想要实现特定场景下的特定识别,还得自己训练模型。
下一篇将介绍如何训练自己的模型并运用。
感谢您的三连!!!