您的位置:首页 > 新闻 > 热点要闻 > 实例分割【YOLOv8版】

实例分割【YOLOv8版】

2024/10/6 18:05:08 来源:https://blog.csdn.net/weixin_45037357/article/details/141863106  浏览:    关键词:实例分割【YOLOv8版】

参考文档

Segment - Ultralytics YOLO Docs​docs.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-seghttps://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-seg.pt
YOLOv8s-seghttps://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-seg.pt
YOLOv8m-seghttps://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-seg.pt
YOLOv8l-seghttps://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-seg.pt
YOLOv8x-seghttps://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 fullexportdetails in the Export page.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com