Как: использовать обученный классификатор изображений для сортировки или маркировки изображений - PullRequest
0 голосов
/ 10 июня 2019

Мне нужно отсортировать изображения, используя классификатор изображений, в папки на основе их содержимого.

По сути, у меня есть несколько тысяч изображений собак, крупного рогатого скота, овец и «без животных», и мне нужно переместить их в папки с именами «Собаки», «Крупный рогатый скот», «Овцы», «Негативы». Мне нужна помощь с использованием классификатора изображений, чтобы сначала идентифицировать, а затем отсортировать изображения в папки. Если сортировка, возможно, невозможна, пометка изображения категорией и сортировка вручную также ускорит процесс.

Я считаю, что у меня есть обученный классификатор изображений (из 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, и я не знаю, как создать аналогичный код, который вызывает классификатор изображений для сортировки изображений.

Любая помощь будет принята с благодарностью, даже если она просто направит меня к другому учебнику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...