При использовании TFRecord, как я могу собирать изображения объектов (обрезанные ограничивающими рамками) и создавать пакеты?

У меня есть хорошо работающая сеть обнаружения объектов, и я использовал ее для обучения следующим образом.

# minimal codes for creating training batch
dataset = slim.dataset.Dataset(...)
provider = slim.dataset_data_provider.DatasetDataProvider(dataset,...)
[image, labels, bboxes] = provider.get(...)
batch = tf.train.batch([image, labels, bboxes], batch_size=16, ...)

Теперь, скажем, с другой целью, я хочу собрать изображения патчей объекта (т.е. обрезать bboxes) и создавать из них партии. (то есть подрезанная машина, человек, кошка, собаки, ...). Как вы можете себе представить, изображение может включать в себя различное количество объектов.

Другими словами, будет две части: обрезать изображение и обрезать очередь и создать пакет. Если бы я мог использовать собственный код Python, это было бы как

# for given image, labels, bboxes
crops = []
for label, bbox in zip(labels, bboxes):
    crop = some_crop_fn(image, bbox)
    crops.append(crop)
# somehow queue "crops" and pop by batch size every iteration

Я не уверен, как я могу сделать это при использовании функций TFRECORD и TF. Пожалуйста помоги!

0 ответов

Другие вопросы по тегам