В маске RCNN модель сегментации экземпляра генерирует маски для каждого обнаруженного объекта. Маски являются мягкими масками (со значениями в пикселях с плавающей запятой) и имеют размер 28x28 во время обучения, поэтому прогнозируемые маски масштабируются до размеров ограничительной рамки, и мы можем наложить их на исходное изображение, чтобы визуализировать окончательный результат.
Пожалуйста, как мне получить маску 28x28 до ее изменения?
У меня есть следующий код:
def apply_mask(image, mask, color, alpha=1):
"""apply mask to image"""
for n, c in enumerate(color):
image[:, :, n] = np.where(
mask == 1,
image[:, :, n] * (1 - alpha) + alpha * c,
image[:, :, n]
)
return image
for i in range(n_instances):
if not np.any(boxes[i]):
continue
if ids[i] == 1:
color = [255,255,255]
mask = masks[:, :, i]
image_background_substracted = apply_mask(background, mask, color)
return image_background_substracted
else:
return background