import matplotlib.pyplot as plt
predicted_images_path = os.path.abspath("/content/predicted")
dataset_dicts_validation = DatasetCatalog.get('void-detection-2-valid')
for d in dataset_dicts_validation:
im = cv2.imread(d["file_name"])
outputs = predictor(im)
v = Visualizer(im[:, :, ::-1],
metadata = metadata,
scale=0.5,
instance_mode=ColorMode.IMAGE_BW
)
out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
fig = plt.figure(frameon=False, dpi=1)
fig.set_size_inches(1024,1024)
ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)
ax.imshow(cv2.cvtColor(out.get_image()[:, :, ::-1], cv2.COLOR_BGR2RGB), aspect='auto')
fig.savefig(f"{predicted_images_path}/{d['file_name'].split('/')[-1]}")
我使用 detectorron2 来训练模型并对检测到的空洞进行预测。如何仅标记分段而不使用文字的形状。
import os
import cv2
import matplotlib.pyplot as plt
from detectron2.data import DatasetCatalog
from detectron2.utils.visualizer import Visualizer, ColorMode
predicted_images_path = os.path.abspath("/content/predicted")
dataset_dicts_validation = DatasetCatalog.get('void-detection-2-valid')
for d in dataset_dicts_validation:
im = cv2.imread(d["file_name"])
outputs = predictor(im)
# Visualize the instances without labels
v = Visualizer(im[:, :, ::-1], metadata=metadata, scale=0.5, instance_mode=ColorMode.SEGMENTATION)
out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
# Save the modified image without labels
cv2.imwrite(f"{predicted_images_path}/{d['file_name'].split('/')[-1]}", out.get_image()[:, :, ::-1])
在此代码中:
我们设置instance_mode=ColorMode.SEGMENTATION来可视化没有标签或文本注释的实例。 我们直接保存修改后的图像,而不使用matplotlib,以确保没有向图像添加额外的注释或标签。 通过执行此操作,您将生成仅包含检测到的形状而没有附带文字或标签的图像。可能需要根据您的数据集和用例的具体情况进行调整。