参考文档
Segment - Ultralytics YOLO Docsdocs.ultralytics.com/tasks/segment/
何为实例分割?
实例分割比目标检测更进一步,涉及识别图像中的各个对象并将它们与图像的其余部分分割开来。
实例分割模型的输出是一组用于勾勒图像中每个对象的掩码或轮廓,以及每个对象的类别标签和置信度分数。当你不仅需要知道图像中对象的位置,还需要了解它们的确切形状时,实例分割非常有用。
快速演示
环境配置
conda create -n yolov8_seg_ultralytics python==3.8
conda activate yolov8_seg_ultralytics
pip install ultralytics
快速推理
yolo predict model=yolov8n-seg.pt source='https://ultralytics.com/images/bus.jpg'
原图:
预测后的图:
模型
这里展示了预训练的 YOLOv8 分割模型(检测、分割和姿态模型)。模型都是在 COCO 数据集上进行了预训练,而分类模型在 ImageNet 数据集上进行了预训练。
模型 将在首次使用时,自动从 Ultralytics 的最新 发布版本 下载。
Model | 模型下载链接 |
---|---|
YOLOv8n-seg | https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-seg.pt |
YOLOv8s-seg | https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-seg.pt |
YOLOv8m-seg | https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-seg.pt |
YOLOv8l-seg | https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-seg.pt |
YOLOv8x-seg | https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-seg.pt |
- mAPval 值是针对单模型单尺度在 COCO val2017 数据集上的结果。可以通过运行 `yolo val segment data=coco.yaml device=0` 进行复现。
- Speed 是基于在 Amazon EC2 P4d 实例上对 COCO val 图像的平均值。可以通过运行 `yolo val segment data=coco8-seg.yaml batch=1 device=0|cpu` 进行复现。
训练
训练 YOLOv8n-seg 模型,在 COCO128-seg 数据集上,for 100 epochs at image size 640。
所有可用参数的完整列表,请参阅 配置 页面。
代码示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n-seg.yaml") # build a new model from YAML
model = YOLO("yolov8n-seg.pt") # load a pretrained model (recommended for training)
model = YOLO("yolov8n-seg.yaml").load("yolov8n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
数据集格式
YOLO 分割数据集格式的详细信息,可以在 数据集指南 中找到。要将现有数据集(如 COCO 等)转换为 YOLO 格式,请使用 Ultralytics 提供的 JSON2YOLO 工具。
验证
在 COCO128-seg 数据集上验证训练好的 YOLOv8n-seg 模型的准确性。无需传递任何参数,因为模型会保留其训练数据和参数作为模型属性。
示例代码
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n-seg.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(B)
metrics.box.map50 # map50(B)
metrics.box.map75 # map75(B)
metrics.box.maps # a list contains map50-95(B) of each category
metrics.seg.map # map50-95(M)
metrics.seg.map50 # map50(M)
metrics.seg.map75 # map75(M)
metrics.seg.maps # a list contains map50-95(M) of each category
预测
Use a trained YOLOv8n-seg model to run predictions on images.
示例代码
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n-seg.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
有关完整的预测模式详细信息,请参阅 预测 页面。
模型导出
Export a YOLOv8n-seg model to a different format like ONNX, CoreML, etc.
示例代码
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n-seg.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom trained model
# Export the model
model.export(format="onnx")
以下是可用的 YOLOv8-seg 导出格式。您可以使用 `format` 参数导出为任何格式,例如 `format='onnx'` 或 `format='engine'`。可以直接在导出的模型上进行预测或验证,例如 `yolo predict model=yolov8n-seg.onnx`。导出完成后,您的模型将显示使用示例。
See fullexport
details in the Export page.