如何在 AWS Sagemaker 中检索分段掩码中使用的标签
How to retrieve the labels used in a segmentation mask in AWS Sagemaker
我试图从分割掩码中检索掩码中表示的标签。
这是我 运行 通过 AWS Sagemaker 中的语义分割模型得到的图像。
进行预测和显示mask的代码。
from sagemaker.predictor import json_serializer, json_deserializer, RealTimePredictor
from sagemaker.content_types import CONTENT_TYPE_CSV, CONTENT_TYPE_JSON
%%time
ss_predict = sagemaker.RealTimePredictor(endpoint=ss_model.endpoint_name,
sagemaker_session=sess,
content_type = 'image/jpeg',
accept = 'image/png')
return_img = ss_predict.predict(img)
from PIL import Image
import numpy as np
import io
num_labels = 21
mask = np.array(Image.open(io.BytesIO(return_img)))
plt.imshow(mask, vmin=0, vmax=num_labels-1, cmap='jet')
plt.show()
这张图片是创建的分割蒙版,它代表摩托车,其他一切都是背景。
[
正如您从代码中看到的那样,有 21 种可能的标签,其中 2 种用于面具,一种用于摩托车,另一种用于背景。我现在想弄清楚的是如何从 21 种可能的选项中打印出哪些标签实际用于此面具?
如果您需要任何进一步的信息,请告诉我,非常感谢您的帮助。
在某处你应该有一个从标签整数到标签 类 的映射,例如
label_map = {0: 'background', 1: 'motorbike', 2: 'train', ...}
如果您使用的是 Pascal VOC 数据集,那将是(1=飞机,2=自行车,3=鸟,4=船,5=瓶子,6=公共汽车,7=汽车,8=猫, 9=椅子,10=牛,11=餐桌,12=狗,13=马,14=摩托车,15=人,16=盆栽,17=羊,18=沙发,19=火车,20=tv/monitor) - 看这里:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/segexamples/index.html
那么你可以简单地使用那个地图:
used_classes = np.unique(mask)
for cls in used_classes:
print("Found class: {}".format(label_map[cls]))
我试图从分割掩码中检索掩码中表示的标签。
这是我 运行 通过 AWS Sagemaker 中的语义分割模型得到的图像。
进行预测和显示mask的代码。
from sagemaker.predictor import json_serializer, json_deserializer, RealTimePredictor
from sagemaker.content_types import CONTENT_TYPE_CSV, CONTENT_TYPE_JSON
%%time
ss_predict = sagemaker.RealTimePredictor(endpoint=ss_model.endpoint_name,
sagemaker_session=sess,
content_type = 'image/jpeg',
accept = 'image/png')
return_img = ss_predict.predict(img)
from PIL import Image
import numpy as np
import io
num_labels = 21
mask = np.array(Image.open(io.BytesIO(return_img)))
plt.imshow(mask, vmin=0, vmax=num_labels-1, cmap='jet')
plt.show()
这张图片是创建的分割蒙版,它代表摩托车,其他一切都是背景。
[
正如您从代码中看到的那样,有 21 种可能的标签,其中 2 种用于面具,一种用于摩托车,另一种用于背景。我现在想弄清楚的是如何从 21 种可能的选项中打印出哪些标签实际用于此面具?
如果您需要任何进一步的信息,请告诉我,非常感谢您的帮助。
在某处你应该有一个从标签整数到标签 类 的映射,例如
label_map = {0: 'background', 1: 'motorbike', 2: 'train', ...}
如果您使用的是 Pascal VOC 数据集,那将是(1=飞机,2=自行车,3=鸟,4=船,5=瓶子,6=公共汽车,7=汽车,8=猫, 9=椅子,10=牛,11=餐桌,12=狗,13=马,14=摩托车,15=人,16=盆栽,17=羊,18=沙发,19=火车,20=tv/monitor) - 看这里:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/segexamples/index.html
那么你可以简单地使用那个地图:
used_classes = np.unique(mask)
for cls in used_classes:
print("Found class: {}".format(label_map[cls]))