物体检测
物体检测是一项涉及识别图像或视频流中物体的位置和类别的任务。
物体检测器的输出是一组包围图像中物体的边框,以及每个边框的类标签和置信度分数。如果您需要识别场景中感兴趣的物体,但又不需要知道物体的具体位置或确切形状,那么物体检测就是一个不错的选择。
观看: 利用预训练的Ultralytics YOLOv8 模型进行物体检测。
提示
YOLOv8 检测模型是默认的YOLOv8 模型,即 yolov8n.pt
并对 COCO.
机型
YOLOv8 这里显示的是经过预训练的检测模型。Detect、Segment 和 Pose 模型是在COCO数据集上预先训练的,而 Classify 模型则是在ImageNet数据集上预先训练的。
首次使用时,模型会自动从最新的Ultralytics 版本下载。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 A100 TensorRT (毫秒) |
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 |
- mAPval 数值是在 COCO val2017 数据集。
复制方式yolo val detect data=coco.yaml device=0
- 速度 对 COCO val 图像使用 亚马逊 EC2 P4d 实例
复制方式yolo val detect data=coco8.yaml batch=1 device=0|cpu
火车
在 COCO8 数据集上对YOLOv8n 进行 100 次历时训练,图像大小为 640。有关可用参数的完整列表,请参阅配置页面。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.yaml") # build a new model from YAML
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
model = YOLO("yolov8n.yaml").load("yolov8n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolov8n.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640
数据集格式
YOLO 检测数据集格式详见数据集指南。要将现有数据集从其他格式(如 COCO 等)转换为YOLO 格式,请使用JSON2YOLO工具(Ultralytics )。
瓦尔
Validate trained YOLOv8n model accuracy on the COCO8 dataset. No arguments are needed as the model
保留其培训 data
和参数作为模型属性。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category
预测
使用训练有素的YOLOv8n 模型对图像进行预测。
示例
查看全文 predict
模式的详细信息,请参见 预测 page.
出口
将YOLOv8n 模型导出为不同格式,如ONNX,CoreML 等。
示例
YOLOv8 可用的导出格式如下表所示。您可以使用 format
参数,即 format='onnx'
或 format='engine'
.您可以直接对导出的模型进行预测或验证,即 yolo predict model=yolov8n.onnx
.导出完成后会显示模型的使用示例。
格式 | format 论据 |
模型 | 元数据 | 论据 |
---|---|---|---|---|
PyTorch | - | yolov8n.pt |
✅ | - |
TorchScript | torchscript |
yolov8n.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolov8n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolov8n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n.pb |
❌ | imgsz , batch |
TF 轻型 | tflite |
yolov8n.tflite |
✅ | imgsz , half , int8 , batch |
TF 边缘TPU | edgetpu |
yolov8n_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolov8n_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n_ncnn_model/ |
✅ | imgsz , half , batch |
查看全文 export
中的详细信息 出口 page.
常见问题
如何在自定义数据集上训练YOLOv8 模型?
在自定义数据集上训练YOLOv8 模型需要几个步骤:
- 准备数据集:确保数据集采用YOLO 格式。有关指导,请参阅我们的《数据集指南》。
- 加载模型:使用Ultralytics YOLO 库加载预训练模型或从 YAML 文件创建新模型。
- 培训模型:执行
train
Python 中的yolo detect train
CLI 中的命令。
示例
有关详细配置选项,请访问配置页面。
YOLOv8 中有哪些预训练模型?
Ultralytics YOLOv8 为物体检测、分割和姿态估计提供了各种预训练模型。这些模型在 COCO 数据集或 ImageNet 上经过预训练,可用于分类任务。下面是一些可用的模型:
有关详细列表和性能指标,请参阅机型部分。
如何验证经过训练的YOLOv8 模型的准确性?
要验证训练有素的YOLOv8 模型的准确性,可以使用 .val()
Python 中的 yolo detect val
CLI命令。这将提供 mAP50-95、mAP50 等指标。
示例
更多验证详情,请访问Val页面。
YOLOv8 模型可以导出成什么格式?
Ultralytics YOLOv8 允许将模型导出为各种格式,如ONNX,TensorRT,CoreML 等,以确保在不同平台和设备上的兼容性。
示例
在导出页面查看支持格式的完整列表和说明。
为什么要使用Ultralytics YOLOv8 进行物体检测?
Ultralytics YOLOv8 旨在为物体检测、分割和姿态估计提供最先进的性能。以下是一些主要优势:
- 预训练模型:利用在 COCO 和 ImageNet 等流行数据集上预训练的模型,加快开发速度。
- 高精确度:可获得令人印象深刻的 mAP 分数,确保可靠的目标检测。
- 速度快针对实时推理进行了优化,非常适合需要快速处理的应用。
- 灵活性:将模型导出为各种格式,如ONNX 和TensorRT ,以便在多个平台上部署。
浏览我们的博客,了解YOLOv8 的使用案例和成功故事。