Руководство для начинающих по загрузчикам изображений Fastai

Оглавление

· Импорт всех необходимых файлов и библиотек
· Загрузка всех изображений с помощью Fastai Dataloaders
Image Dataloaders From Folder
Image Dataloaders From Name Function
> ∘ Загрузчик данных изображения из Df
· Будущая работа
· Ссылка
Свяжитесь со мной в Linkedin —

Недавно я начал использовать PyTorch и Fastai. Ниже я обрисовываю в общих чертах ключевые понятия, которые будут полезны при обработке изображений или при решении любой проблемы с компьютерным зрением.

Импорт всех необходимых файлов и библиотек

Первым шагом будет импорт всех необходимых файлов. Для простоты я использую набор данных MNIST. Fastai позволяет нам загрузить весь набор данных всего за несколько строк кода.

Приведенный выше код импортирует все необходимые библиотеки для нашей задачи, а последняя строка установит полный набор данных MNIST в наш каталог.

Загрузка всех изображений с помощью Fastai Dataloaders

После загрузки всех изображений следующим шагом будет их загрузка. Для этого мы воспользуемся помощью загрузчика данных Fastai. После загрузки у нас будет две папки, одна для обучения, а другая для тестирования.

Загрузчики данных изображений из папки

Первый загрузчик данных изображения, который мы будем использовать, — это ImageDataloaders.from_folder, поскольку наши изображения находятся в двух отдельных папках (для обучения и для тестирования).

Приведенный выше код загрузит все изображения в загрузчик данных Fastai. Нам не нужно заботиться о маркировке, так как загрузчик данных сделает это автоматически за нас. Все изображения для разных классов находились в отдельных подпапках, поэтому загрузчик данных Fastai автоматически принимает класс в качестве имени подпапки.

Как видно выше, Fastai позаботился о маркировке изображений за нас.

Иногда у нас нет изображений в отдельных подпапках, но в одной большой учебной папке у нас есть все изображения. В этом случае этот загрузчик данных не будет работать.

Загрузчики данных изображения из имени Функция

Для использования этого загрузчика данных мы будем использовать набор данных кошек и собак. Опять же, мы можем очень легко загрузить этот набор данных в наш каталог.

В первой строке мы загружаем набор данных о домашних животных. Формат набора данных таков, что если имя начинается с заглавной буквы, то это изображение кошки, в противном случае это собака. Итак, мы создали функцию is_cat, которая будет возвращать True для всех изображений кошек и False для всех изображений собак. Наконец, мы используем ImageDataLoaders.from_name_func и передаем путь к изображениям, label_func = is_cat, что позволит Fastai помечать наши изображения для обучения сверточных нейронных сетей.

Иногда нам дают путь к изображениям и их меткам в CSV-файле. Эти два загрузчика данных не будут работать в этом случае. Для Fastai есть отдельный загрузчик данных.

Загрузчик данных изображения из Df

Для использования этого загрузчика данных мы снова будем использовать набор данных MNIST, но другим способом. Чтобы продемонстрировать, как использовать этот конкретный загрузчик данных, я сначала создам фрейм данных, который будет иметь два столбца — path и label.

Приведенные выше несколько строк кода создадут для нас фрейм данных, содержащий путь и метку для изображения. Мы просто перебираем каждую подпапку, сохраняя пути и метки в списке, преобразовывая их в фрейм данных и объединяя их с исходным фреймом данных. Окончательный фрейм данных будет выглядеть примерно так:

Теперь нам просто нужно передать этот кадр данных в загрузчик данных, а Fastai позаботится об обучении и наборах тестов, изменении размера изображений, дополнениях и т. д.

Первая строка вызовет ImageDataLoaders.from_df, в который мы передаем созданный нами кадр данных. Fastai случайным образом выбирает 20% изображений для тестирования. Во второй строке мы печатаем 5 изображений из проверочного набора.

Теперь мы можем легко обучить или настроить любую модель CNN, такую ​​как ResNet, VGG и т. д. (что я оставлю читателям для самостоятельной реализации).

Будущая работа

В будущем я расскажу о других руководствах, связанных с Fastai и PyTorch.

Ссылка

  1. https://course.fast.ai/
  2. https://docs.fast.ai/vision.data.html#ImageDataLoaders

Свяжитесь со мной в Linkedin —