Как создать собственный набор данных для использования моделей Mask-RCNN из API обнаружения объектов Tensorflow? - PullRequest
0 голосов
/ 28 августа 2018

Я не совсем понимаю это руководство: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/instance_segmentation.md

У меня много предметов трех классов. Согласно инструкции я должен сделать маску с размерами [N, H, W], где:

  • N - количество объектов
  • H - высота изображения
  • Ш - ширина изображения

У меня есть эта функция для создания маски

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 (я полагаю), ОЗУ быстро заканчивается, и я получаю ошибку памяти. Что я делаю неправильно? Может быть, где-то есть подробное руководство, как создать маску для использования Mask-RCNN и Tensorflow Object Detection API? Я не нашел этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...