Я создаю свой собственный набор данных для обучения на модели Deeplab. В настоящее время я использую LabelMe для аннотирования изображений. Как только изображения преобразуются из сегментированных PNG в необработанный PNG, изображение становится полностью черным. Я не уверен, должно ли изображение быть черным или на нем должен быть контур объекта, который я выбрал в LabelMe.
Я использую этот сценарий, который основан на remove_gt_colormap из репозитория deeplab github.
def _remove_colormap(filename):
return np.array(Image.open(filename))
def _save_annotation(annotation, filename):
pil_image = Image.fromarray(annotation.astype(dtype=np.uint8))
with tf.compat.v1.gfile.Open(filename, mode='w') as f:
pil_image.save(f, 'PNG')
def main(unused_argv):
# Create the output directory if not exists.
if not tf.compat.v1.gfile.IsDirectory(FLAGS.output_dir):
tf.compat.v1.io.gfile.makedirs(FLAGS.output_dir)
annotations = glob.glob(os.path.join(FLAGS.original_gt_folder,
'*.' + FLAGS.segmentation_format))
for annotation in annotations:
raw_annotation = _remove_colormap(annotation)
filename = os.path.basename(annotation)[:-4]
_save_annotation(raw_annotation,
os.path.join(
FLAGS.output_dir,
filename + '.' + FLAGS.segmentation_format))
if __name__ == '__main__':
tf.compat.v1.app.run()