Как загрузить изображения для классификации проблемы с помощью Keras

Я работаю над проблемой классификации изображений с использованием фреймворка Keras. Это проблема бинарной классификации, и у меня есть обучающий набор из 2 папок и тестовый набор, содержащий изображения обоих классов. У меня нет отдельной папки для каждого класса (скажем, кошка против собаки). Keras ImageDataGenerator работает, когда у нас есть отдельные папки для каждого класса (папка cat и папка dog). Но у меня есть все изображения в одной папке, и я не понимаю, как действовать дальше. Пожалуйста, предложите, как загрузить изображения.

У меня также есть 2 CSV-файла - train.csv и test.csv. Файл train.csv содержит 2 столбца, а именно image_id и class_name. test.csv содержит image_id. Обратите внимание, что image_id совпадает с именем файлов в папках изображений.

1 ответ

Решение

Последние версии ImageDataGenerator есть метод, называемый flow_from_dataframe, который делает именно то, что вы хотите.

В основном это используется, сначала загружая Ваш файл CSV в панд DataFrameсоздать экземпляр ImageDataGenerator а затем позвоните flow_from_dataframe с тремя важными параметрами:

  • directory: Папка, в которой хранятся ваши данные.
  • x_col: Столбец в DataFrame который содержит имена файлов внутри directory которые соответствуют вашим данным обучения / тестирования.
  • y_col: Столбец в DataFrame соответствующие меткам, которые будут выводиться генератором.

Затем вы используете этот генератор, как и любой другой, вызывая fit_generator, Более подробная информация и примеры доступны здесь.

Другие вопросы по тегам