我有很多三个类的对象 . 根据指南,我必须制作尺寸为[N,H,W]的面具,其中:
-
N - 对象数
-
H - 图像高度
-
W - 图像宽度
我有这个功能来创建一个面具
def image_mask(img, polygons):
w, h = img.size
n = len(polygons)
mask = np.zeros([n, h, w], dtype=np.float32)
for i in range(0, n):
polygon = polygons[i].reshape((-1, 1, 2))
tmp_mask = np.zeros([h, w], dtype=np.float32)
cv2.fillPoly(tmp_mask, [polygon], (1, 1, 1))
mask[i, :, :] = tmp_mask
return mask
我使用本指南创建数据集:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/using_your_own_dataset.md
我在tf_example的末尾添加了一个掩码
tf_example = tf.train.Example(features=tf.train.Features(feature={
...
'image/object/class/label': dataset_util.int64_list_feature(classes),
'image/object/mask': dataset_util.bytes_list_feature(mask.reshape((-1))),
}))
由于 reshape
(我想),RAM快速耗尽,我收到内存错误 . 我究竟做错了什么?也许某个地方有详细的指南,如何创建使用Mask-RCNN和Tensorflow Object Detection API的掩码?我没有找到这个 .