увеличение тренировочных данных в caffe вместе с его мультиблоком
Как произвольно обрезать обучающие изображения вместе с меткой положения.
Я предварительно обрабатываю данные изображений и их метки для ввода caffe. Я хочу обрезать свои обучающие изображения случайным образом в интернете (когда caffe работает), и я знаю, что caffe предоставляет случайный кадр в слоеслучайный кадр . Проблема в том, что моя метка каждого соответствующего изображения является вариантом, когда изображение преобразуется. Таким образом, я должен изменить свою метку вместе с преобразованным изображением. Я пытаюсь долго искать свою проблему время, но бесполезно. Затем я понял, что, возможно, есть два способа решить эти проблемы:
- получить смещение случайного кадрирования изображения на исходном изображении. Но я погуглил его, не получив ответа.
- я задам случайное смещение в интернете, а затем обрезаю изображение по определенному смещению обрезать конкретное смещение. Но как я могу сгенерировать случайное число, когда время тренировки caffe.
- я знаете предварительной обработки случайных обрезать изображение и метки в автономном режиме может быть достаточно действенный метод. Однако, это Уилл занимал значительное место на диске, ибо мой набор данных для обучения слишком велик.
Моя позиция соответствующая метка:
Я разбил каждое из обучающих изображений на 10x10=100
сетки. метка-это индекс сетки для конкретной характерной точки На изображении. например, метка будет 11, когда моя головная ключевая точка находится в позиции <2th row, 1th col>
сетки изображения.
1 ответ:
Вы можете использовать
"Python"
слой для этой задачи, как вы уже указали (и я полагаю, что это самый простой способ обойти).
Если вас интересует время работы этого слоя, вы можете сделать его многопоточным: пусть слой вызовет несколько потоков для обрезки изображений и повторного вычисления их меток. Эти потоки будут работать в фоновом режиме и должны быть в состоянии обеспечить сеть достаточным количеством данных для следующего мини-пакета.См. python
threading
модуль дляThread
класс. Вы также можете найти его удобным в использованииQueue
класс для синхронизации потоков и основного входного слоя.