Как разделить набор данных изображений на подмножества в зависимости от их имен? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть набор данных под названием «Пальцы», на котором я пытаюсь построить модель TensorFlow на ...

Однако я немного застрял, потому что хочу разделить изображения в зависимости от последние 2 символа имени изображения (не включая расширение).

как в приведенном ниже коде:

train_dir_list = os.listdir(train_set)

список каталогов содержит несколько изображений с разными именами, но фактическая метка, которая представляет изображение в конце имени, как показано ниже:

123949 2L .png 123123 5R .png ...

и т. Д. *

метка изображения расположена в индексе [-6: -5], где R обозначает ПРАВО, а L - ВЛЕВО. с числом для общего числа пальцев.

Теперь моя проблема состоит в том, чтобы разделить эти изображения на подкаталоги как 1L, 2L ... 5L и 1R ... 5R для каждого, чтобы иметь свой собственный каталог, чтобы используйте Keras ImageDataGenerator.

помогите, и вы можете найти набор данных по именам Kaggle Fingers.

1 Ответ

0 голосов
/ 25 апреля 2020
  1. храните все ваши изображения в папке с именем 'imgs'

  2. Используйте glob, чтобы прочитать все изображения, проверьте их названия.

import glob
import cv2

imgs = []
labels = []

for f in glob.glob('imgs/*.png'):
   imgs.append(cv2.imread(f))
   str_label = f.split('.')[0][-2:] # 5L / 3R

   if str_label[-1] == 'R':
       labels.append([int(str_label[-2]), 1]) # 1 denotes right
   else:
       labels.append([int(str_label[-2]), 0]) # 0 == left hand

...