GPU:推荐使用 NVIDIA GPU(如 RTX 30 系列),显存至少 8GB。
CPU:如果没有 GPU,可以使用 CPU,但训练和推理速度会较慢。
YOLOv8 依赖于 ultralytics
库,可以通过以下命令安装:
bash
pip install ultralytics
Python 3.8 或更高版本
PyTorch 1.8 或更高版本
OpenCV(用于图像处理)
安装 PyTorch 和 OpenCV:
bash
pip install torch torchvision torchaudio pip install opencv-python
YOLOv8 的网络架构基于 CSPDarknet 骨干网络,结合了 PANet(Path Aggregation Network)和 SPP(Spatial Pyramid Pooling)模块,具有以下特点:
CSPDarknet:高效的骨干网络,提取图像特征。
PANet:增强特征金字塔,提升多尺度目标检测能力。
SPP:增加感受野,提升模型对目标的全局理解能力。
YOLOv8 提供了多种预训练模型(如 yolov8n.pt
、yolov8s.pt
等),我们可以直接加载并使用。
from ultralytics import YOLO # 加载预训练模型(YOLOv8n 是最小的模型) model = YOLO("yolov8n.pt") # 打印模型结构 print(model)
使用加载的模型对图像或视频进行目标检测。
# 对单张图片进行推理 results = model(" # 可视化结果 results[0].show() # 保存结果 results[0].save("output.jpg")
YOLOv8 支持训练自定义数据集。首先需要准备数据集,格式为 YOLO 格式(每张图片对应一个 .txt
文件,包含目标类别和边界框信息)。
# 加载自定义数据集配置文件(data.yaml)model = YOLO("yolov8n.pt") # 加载模型model.train(data="data.yaml", epochs=100, imgsz=640) # 训练模型
训练完成后,可以使用验证集评估模型性能。
# 验证模型 metrics = model.val() print(metrics.box.map) # 打印 mAP(平均精度)
YOLOv8 支持将模型导出为多种格式(如 ONNX、TensorRT 等),以便在不同平台上部署。
# 导出模型为 ONNX 格式 model.export(format="onnx")
CSP(Cross Stage Partial):通过部分连接减少计算量,同时保持特征提取能力。
Darknet:基于卷积神经网络的特征提取器。
FPN(Feature Pyramid Network):提取多尺度特征。
PANet:在 FPN 基础上增加自底向上的路径,增强特征融合。
Spatial Pyramid Pooling:通过不同尺度的池化操作,增加感受野,提升模型对目标的全局理解能力。
YOLOv8 官方文档:https://docs.ultralytics.com/
PyTorch 官方文档:https://pytorch.org/docs/stable/index.html
OpenCV 官方文档:https://docs.opencv.org/
YOLOv8 是一个高效、灵活的目标检测模型,适用于多种任务(如目标检测、实例分割、姿态估计等)。通过 ultralytics
库,我们可以轻松实现模型的加载、推理、训练和部署。