Ultralytics YOLO27:

Набор данных ImageNette#

Набор данных ImageNette — это подмножество ImageNet с 10 легко различимыми классами, созданное командой fast.ai, чтобы предоставить более компактную и удобную версию ImageNet для разработки программного обеспечения и обучения. Он содержит 13 394 цветных изображения — 9 469 для обучения и 3 925 для валидации — таких классов, как линь, английский спрингер-спаниель, кассетный магнитофон и валторна, поэтому модели классификации изображений обучаются за минуты, а не за часы, необходимые для полного ImageNet с 1 000 классами.

Основные особенности#

  • ImageNette содержит 13 394 изображения 10 классов: линь, английский спрингер-спаниель, кассетный магнитофон, цепная пила, церковь, валторна, мусоровоз, бензоколонка, мяч для гольфа и парашют.
  • Набор включает заранее заданное разделение на 9 469 цветных изображений для обучения и 3 925 для валидации, имеющих разные размеры.
  • Благодаря 10 хорошо различимым классам ImageNette быстро обучается и легко интерпретируется, поэтому его широко используют для создания прототипов и обучения классификации изображений.

Структура набора данных#

ImageNette поставляется с заранее заданным разделением на обучающую и валидационную выборки; каждый класс хранится в отдельной папке:

ПодвыборкаИзображенияКлассы
Обучение9,46910
Валидация3,92510

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

Применение#

Набор данных ImageNette широко используется для обучения и оценки моделей глубокого обучения в задачах классификации изображений, например сверточных нейронных сетей (CNNs) и других алгоритмов машинного обучения. Благодаря простому формату и тщательно подобранным классам он удобен как начинающим, так и опытным специалистам в области машинного обучения и компьютерного зрения.

Использование#

Чтобы обучить модель на наборе данных ImageNette в течение 100 эпох со стандартным размером изображения 224x224, используй следующие фрагменты кода. Полный список доступных аргументов смотри на странице Обучение модели.

Пример обучения
from ultralytics import YOLO

# Загрузить модель
model = YOLO("yolo26n-cls.pt")  # загрузить предварительно обученную модель (рекомендуется для обучения)

# Обучить модель
results = model.train(data="imagenette", epochs=100, imgsz=224)

Примеры изображений и аннотаций#

Набор данных ImageNette содержит цветные изображения различных объектов и сцен, поэтому он подходит для разнообразных задач классификации изображений. Ниже приведены примеры изображений из набора данных:

Примеры изображений из набора данных ImageNette для классификации

Этот пример демонстрирует разнообразие и сложность изображений в наборе данных ImageNette и показывает, почему разнообразный набор данных важен для обучения надёжных моделей классификации изображений.

ImageNette160 и ImageNette320#

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

Чтобы использовать эти наборы данных, просто замени imagenette на imagenette160 или imagenette320 в команде обучения. Ниже приведены примеры кода:

Пример обучения с ImageNette160
from ultralytics import YOLO

# Загрузить модель
model = YOLO("yolo26n-cls.pt")  # загрузить предварительно обученную модель (рекомендуется для обучения)

# Обучить модель на ImageNette160
results = model.train(data="imagenette160", epochs=100, imgsz=160)
Пример обучения с ImageNette320
from ultralytics import YOLO

# Загрузить модель
model = YOLO("yolo26n-cls.pt")  # загрузить предварительно обученную модель (рекомендуется для обучения)

# Обучить модель на ImageNette320
results = model.train(data="imagenette320", epochs=100, imgsz=320)

Эти уменьшенные версии набора данных позволяют быстро выполнять итерации во время разработки и при этом решать реалистичные задачи классификации изображений. Ты также можешь управлять наборами данных для классификации и запускать обучение в облаке с помощью Ultralytics Platform.

Цитирование и благодарности#

Если ты используешь набор данных ImageNette в исследованиях или разработке, пожалуйста, укажи его авторов. Подробнее об ImageNette можно узнать на странице набора данных ImageNette на GitHub.

Мы хотели бы поблагодарить команду fast.ai за создание и поддержку ImageNette — ценного ресурса для сообщества исследователей в области машинного обучения и компьютерного зрения.

Часто задаваемые вопросы#

  • Набор данных ImageNette — это упрощённое подмножество ImageNet с 10 легко различимыми классами, такими как линь, английский спрингер-спаниель и валторна. Он содержит 13 394 изображения (9 469 для обучения и 3 925 для валидации) и создан командой fast.ai, чтобы упростить обучение и оценку моделей классификации изображений. Благодаря этому набор данных особенно полезен для быстрой разработки программного обеспечения и обучения в области машинного обучения и компьютерного зрения.

  • ImageNette содержит всего 13 394 изображения — 9 469 для обучения и 3 925 для валидации — в 10 классах: линь, английский спрингер-спаниель, кассетный магнитофон, цепная пила, церковь, валторна, мусоровоз, бензоколонка, мяч для гольфа и парашют. Каждый класс хранится в отдельной папке в стандартной структуре классификационных данных, которую ожидает Ultralytics.

  • Чтобы обучить модель YOLO на ImageNette в течение 100 эпох, выполни следующие команды. Убедись, что среда Ultralytics YOLO настроена.

    Пример обучения
    from ultralytics import YOLO
    
    # Загрузить модель
    model = YOLO("yolo26n-cls.pt")  # загрузить предварительно обученную модель (рекомендуется для обучения)
    
    # Обучить модель
    results = model.train(data="imagenette", epochs=100, imgsz=224)

    Подробнее смотри на странице документации Обучение.

  • Набор данных ImageNette полезен по нескольким причинам:

    • Быстро и просто: всего 10 классов и около 13 000 изображений, поэтому обучение на нём намного проще и быстрее, чем на полном ImageNet.
    • Для обучения: набор идеально подходит для изучения и преподавания основ классификации изображений, поскольку требует меньше вычислительных ресурсов и времени.
    • Универсальность: набор широко используют для обучения и сравнительной оценки моделей классификации изображений, особенно сверточных нейронных сетей (CNNs).

    Подробнее об обучении моделей и управлении наборами данных смотри в разделе Структура набора данных.

  • Да, ImageNette также доступен в двух вариантах с изменённым размером изображений: ImageNette160 и ImageNette320. В них максимальная длина стороны изображения меньше. Эти варианты ускоряют создание прототипов и особенно полезны при ограниченных вычислительных ресурсах.

    Пример обучения с ImageNette160
    from ultralytics import YOLO
    
    # Загрузить модель
    model = YOLO("yolo26n-cls.pt")
    
    # Обучить модель на ImageNette160
    results = model.train(data="imagenette160", epochs=100, imgsz=160)

    Подробнее смотри в разделе Обучение с ImageNette160 и ImageNette320.

  • Набор данных ImageNette широко используют для:

    • Обучения: чтобы обучать начинающих основам машинного обучения и компьютерного зрения.
    • Разработки программного обеспечения: для быстрого создания прототипов и разработки моделей классификации изображений.
    • Исследований в области глубокого обучения: для оценки и сравнения производительности различных моделей глубокого обучения, особенно сверточных нейронных сетей (CNNs).

    Подробные примеры использования смотри в разделе Применение.

Комментарии