实例分割是一种计算机视觉技术,它能够在图像中识别出单独的对象,并将它们从图像的其余部分中分割出来。与传统的对象检测相比,实例分割不仅能够确定对象的位置,还能够精确地描绘出对象的形状。这种技术在需要精确了解对象形状的场景中非常有用,例如在医学成像或自动驾驶领域。
YOLO11是一个预训练的实例分割模型,它在COCO数据集上进行了训练,因此能够识别和分割多种不同的对象。该模型的输出包括每个对象的掩码或轮廓,以及每个对象的类别标签和置信度分数。这些信息对于需要精确识别对象形状的应用场景非常有价值。
要开始使用YOLO11模型,首先需要下载预训练的模型文件。这些模型文件会自动从Ultralytics的最新发布版本中下载。模型的大小、精度和速度等参数如下表所示:
YOLO11n-seg: 640像素, mAPbox 50-95: 38.9, mAPmask 50-95: 32.0, CPU ONNX速度: 65.9ms, T4 TensorRT10速度: 1.8ms, 参数量: 2.9M, FLOPs: 10.4B
YOLO11s-seg: 640像素, mAPbox 50-95: 46.6, mAPmask 50-95: 37.8, CPU ONNX速度: 117.6ms, T4 TensorRT10速度: 2.9ms, 参数量: 10.1M, FLOPs: 35.5B
YOLO11m-seg: 640像素, mAPbox 50-95: 51.5, mAPmask 50-95: 41.5, CPU ONNX速度: 281.6ms, T4 TensorRT10速度: 6.3ms, 参数量: 22.4M, FLOPs: 123.3B
YOLO11l-seg: 640像素, mAPbox 50-95: 53.4, mAPmask 50-95: 42.9, CPU ONNX速度: 344.2ms, T4 TensorRT10速度: 7.8ms, 参数量: 27.6M, FLOPs: 142.2B
YOLO11x-seg: 640像素, mAPbox 50-95: 54.7, mAPmask 50-95: 43.8, CPU ONNX速度: 664.5ms, T4 TensorRT10速度: 15.8ms, 参数量: 62.1M, FLOPs: 319.0B
以上数据展示了不同YOLO11实例分割模型的性能参数,包括模型大小、平均精度(mAP)、速度和计算复杂度。这些参数可以帮助根据实际需求选择合适的模型。
在训练模型之后,可以通过验证步骤来评估模型的准确性。这可以通过Python或命令行界面(CLI)来完成。以下是使用Python进行模型验证的示例代码:
from ultralytics import YOLO
# 加载模型
model = YOLO("yolo11n-seg.pt")
# 验证模型
metrics = model.val()
print("Mean Average Precision for boxes:", metrics.box.map)
print("Mean Average Precision for masks:", metrics.seg.map)
通过上述代码,可以得到模型在COCO验证集上的平均精度(mAP),这是评估模型性能的重要指标。
使用训练好的YOLO11实例分割模型,可以对新的图像进行预测。以下是使用Python进行模型预测的示例代码:
from ultralytics import YOLO
# 加载模型
model = YOLO("yolo11n-seg.pt")
# 使用模型进行预测
results = model("https://ultralytics.com/images/bus.jpg")
这段代码将加载一个预训练的YOLO11实例分割模型,并使用它来预测指定图像中的对象。预测结果将包括对象的掩码、类别标签和置信度分数。
YOLO11实例分割模型可以导出到不同的格式,如ONNX、CoreML等,以便于在不同的平台上使用。以下是使用Python导出模型到ONNX格式的示例代码:
from ultralytics import YOLO
# 加载模型
model = YOLO("yolo11n-seg.pt")
# 导出模型到ONNX格式
model.export(format="onnx")
导出模型后,可以直接在导出的模型上进行预测或验证,这为模型的部署和集成提供了便利。
如何在自定义数据集上训练YOLO11分割模型?
要在自定义数据集上训练YOLO11分割模型,首先需要将数据集转换为YOLO分割格式。可以使用Ultralytics提供的工具,如JSON2YOLO,来转换数据集。数据集准备完成后,可以使用Python或CLI命令来训练模型。
对象检测和YOLO11实例分割有什么区别?
对象检测通过在图像中绘制边界框来识别和定位对象,而实例分割不仅识别边界框,还描绘出每个对象的确切形状。YOLO11实例分割模型提供了描绘每个检测到的对象的掩码或轮廓,这在需要精确了解对象形状的任务中非常有用。
为什么要使用YOLO11进行实例分割?
UltralyticsYOLO11是一个最新的模型,以其高精度和实时性能而闻名,非常适合进行实例分割任务。YOLO11分割模型在COCO数据集上进行了预训练,确保了对各种对象的强大性能。此外,YOLO支持训练、验证、预测和导出功能,与研究和行业应用的无缝集成,使其具有高度的多功能性。
如何加载和验证预训练的YOLO分割模型?
加载和验证预训练的YOLO分割模型非常简单。以下是如何使用Python和CLI进行操作的示例:
from ultralytics import YOLO
# 加载预训练模型
model = YOLO("yolo11n-seg.pt")
# 验证模型
metrics = model.val()
print("Mean Average Precision for boxes:", metrics.box.map)
print("Mean Average Precision for masks:", metrics.seg.map)
这些步骤将为提供验证指标,如平均精度(mAP),这对于评估模型性能至关重要。
如何将YOLO分割模型导出到ONNX格式?
将YOLO分割模型导出到ONNX格式非常简单,可以使用Python或CLI命令来完成:
from ultralytics import YOLO
# 加载预训练模型
model = YOLO("yolo11n-seg.pt")
# 将模型导出到ONNX格式
model.export(format="onnx")