увеличение тренировочных данных в caffe вместе с его мультиблоком


Как произвольно обрезать обучающие изображения вместе с меткой положения.

Я предварительно обрабатываю данные изображений и их метки для ввода caffe. Я хочу обрезать свои обучающие изображения случайным образом в интернете (когда caffe работает), и я знаю, что caffe предоставляет случайный кадр в слоеслучайный кадр . Проблема в том, что моя метка каждого соответствующего изображения является вариантом, когда изображение преобразуется. Таким образом, я должен изменить свою метку вместе с преобразованным изображением. Я пытаюсь долго искать свою проблему время, но бесполезно. Затем я понял, что, возможно, есть два способа решить эти проблемы:

  1. получить смещение случайного кадрирования изображения на исходном изображении. Но я погуглил его, не получив ответа.
  2. я задам случайное смещение в интернете, а затем обрезаю изображение по определенному смещению обрезать конкретное смещение. Но как я могу сгенерировать случайное число, когда время тренировки caffe.
  3. я знаете предварительной обработки случайных обрезать изображение и метки в автономном режиме может быть достаточно действенный метод. Однако, это Уилл занимал значительное место на диске, ибо мой набор данных для обучения слишком велик.

Моя позиция соответствующая метка: Я разбил каждое из обучающих изображений на 10x10=100 сетки. метка-это индекс сетки для конкретной характерной точки На изображении. например, метка будет 11, когда моя головная ключевая точка находится в позиции <2th row, 1th col> сетки изображения.

1 2

1 ответ:

Вы можете использовать "Python" слой для этой задачи, как вы уже указали (и я полагаю, что это самый простой способ обойти).
Если вас интересует время работы этого слоя, вы можете сделать его многопоточным: пусть слой вызовет несколько потоков для обрезки изображений и повторного вычисления их меток. Эти потоки будут работать в фоновом режиме и должны быть в состоянии обеспечить сеть достаточным количеством данных для следующего мини-пакета.

См. python threading модуль для Thread класс. Вы также можете найти его удобным в использовании Queue класс для синхронизации потоков и основного входного слоя.