Мне нужно отсортировать изображения, используя классификатор изображений, в папки на основе их содержимого.
По сути, у меня есть несколько тысяч изображений собак, крупного рогатого скота, овец и «без животных», и мне нужно переместить их в папки с именами «Собаки», «Крупный рогатый скот», «Овцы», «Негативы». Мне нужна помощь с использованием классификатора изображений, чтобы сначала идентифицировать, а затем отсортировать изображения в папки. Если сортировка, возможно, невозможна, пометка изображения категорией и сортировка вручную также ускорит процесс.
Я считаю, что у меня есть обученный классификатор изображений (из https://www.tensorflow.org/hub/tutorials/image_retraining), который должен быть в состоянии идентифицировать большинство фотографий в моих категориях с точностью 80-95%.
Как использовать классификатор изображений для идентификации и сортировки изображений?
Я создал классификатор изображений и переобучил его, используя несколько тысяч изображений, отсортированных вручную; с помощью учебника Tensorflow: https://www.tensorflow.org/hub/tutorials/image_retraining)
Я также успешно использовал учебное пособие Прабху (https://medium.com/@RaghavPrabhu/a-simple-tutorial-to-classify-images-using-tensorflow-step-by-step-guide-7e0fad26c22).). Подготовка к обучению в учебном пособии Прабху - это, по сути, то, что я пытаюсь сделать, используя свою собственную модель.
Код Прабху дает мне представление о том, что делать:
def organise_dataset(root_path,):
dataset_path = root_path+'/dataset'
train_data = root_path+'/train/'
os.makedirs(root_path, exist_ok=True)
df = pd.read_csv(root_path+'/labels.csv')
files = os.listdir(train_data)
print("Organising dataset by creating folders by dogs breeds using names in labels")
for file in files:
# Define folder name reference in labels csv by 32 UUID file name
folder_name = df.loc[df['id'] == file.split('.')[0],'breed'].values[0]
os.makedirs(dataset_path+'/'+folder_name, exist_ok=True)
source = train_data+file
destination = dataset_path+'/'+folder_name+'/'+file
# Moving files from source (train folder) to detination folder under each breed
os.rename(source, destination)
print("Dataset folders successfully created by breed name and copied all images in corresponding folders")
К сожалению, код может сортировать изображения только с именем файла 32 UUID в столбце ID файла label.csv, и я не знаю, как создать аналогичный код, который вызывает классификатор изображений для сортировки изображений.
Любая помощь будет принята с благодарностью, даже если она просто направит меня к другому учебнику.