使用Python绘制分割遮罩

在构建视觉模型的应用之前,可视化模型预测是非常有帮助的。这将帮助更好地理解模型是如何表现的。使用Roboflow的supervisionPython包,可以将各种计算机视觉模型返回的分割遮罩绘制到图像上。在本指南中,将展示如何使用supervision绘制分割遮罩。

如何使用Python绘制分割遮罩

为了绘制分割遮罩,将使用supervision Python包。Supervision包含了一套注解器,允许从各种模型类型(从目标检测到分割)绘制预测结果。

首先,需要安装supervision。可以通过以下命令安装:

pip install supervision

为了绘制分割遮罩,需要将数据加载到supervision的Detections对象中。这个对象以一种标准格式存储计算机视觉模型的预测结果,适用于所有supervision API,包括检测可视化、检测过滤和度量。

在本指南中,将从Roboflow训练的模型加载数据,并使用Roboflow Inference部署的开源推理服务器。可以使用以下代码加载模型预测:

import cv2 import supervision as sv from inference import get_model model = get_model(model_id="yolov8n-640") image = cv2.imread("SOURCE_IMAGE_PATH") results = model.infer(image)[0] detections = sv.Detections.from_inference(results)

有多种数据加载器可供流行的计算机视觉Python包使用,包括:

from_deepsparse(Deepsparse) from_detectron2(Detectron2) from_mmdetection(MMDetection) from_sam(Segment Anything Model) from_yolo_nas(YOLO-NAS)

有关完整的数据加载器列表,请查看。

现在已经将模型的预测加载到supervision对象中,可以使用这些检测结果与supervision Annotators API一起可视化模型结果。

有多种注解器支持分割遮罩。要绘制分割遮罩,可以使用MaskAnnotator。如果想绘制分割遮罩之外的所有区域(适合在图像中移除背景),可以使用BackgroundColorAnnotator。

有关supervision支持的所有计算机视觉模型类型的注解器的完整列表,请查看。

让使用MaskAnnotator。

可以这样注解检测结果:

mask_annotator = sv.MaskAnnotator() label_annotator = sv.LabelAnnotator(text_position=sv.Position.CENTER_OF_MASS) annotated_image = mask_annotator.annotate( scene=image, detections=detections) annotated_image = label_annotator.annotate( scene=annotated_image, detections=detections) sv.plot_image(annotated_image)

当模型在图像上运行时,结果如下:

系统已成功在检测周围绘制了紧密的分割遮罩。

使用supervisionPython包,可以从一系列流行的计算机视觉模型中绘制分割遮罩,从Segment Anything到YOLOv7 Segmentation到YOLOv8 Segmentation。

在本指南中,安装了supervision,从部署在Roboflow上的模型加载了检测结果,并使用Roboflow Inference部署,然后使用MaskAnnotator在图像上可视化了模型的检测结果。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485