Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

CutMix

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

CutMix — метод аугментации данных: из одного обучающего изображения вырезают прямоугольную область и накладывают её на ту же область другого изображения, а метки смешивают пропорционально площади, занимаемой каждым изображением. Сангду Юн и коллеги из NAVER Clova AI Research представили этот метод в статье на ICCV 2019 года как сочетание двух более ранних идей: удаления случайной области в Cutout и смешивания меток в MixUp. На ImageNet CutMix снизил ошибку top-1 у ResNet-50 с 23,68% до 21,40%, опередив MixUp с результатом 22,58% и Cutout с 22,93%. Модели, предварительно обученные с этим методом, также лучше справлялись с обнаружением объектов и созданием описаний изображений.

Как работает CutMix#

Для каждой пары изображений A и B CutMix выбирает коэффициент смешивания λ из бета-распределения, которое при стандартном параметре α = 1 равномерно распределено от 0 до 1. Затем метод задаёт ширину и высоту рамки как ширину и высоту изображения, умноженные на √(1 − λ), помещает её центр в случайную точку, обрезает рамку по границам изображения и копирует область B в A. После обрезки λ пересчитывается как доля оставшейся части A, а метка становится смесью из λ частей A и (1 − λ) частей B. Например, если на изображение собаки наложить участок с кошкой, занимающий 30% площади, целевой вектор будет содержать 0,7 для собаки и 0,3 для кошки. При обучении минимизируется функция потерь относительно этой мягкой метки, как и при сглаживании меток.

torchvision в составе PyTorch применяет CutMix ко всему батчу, объединяя каждое изображение с соседним в батче:

import torch
from torchvision.transforms import v2

# A batch of 4 random 224x224 images labeled with classes 0-3 of 10
torch.manual_seed(0)
images = torch.rand(4, 3, 224, 224)
labels = torch.tensor([0, 1, 2, 3])

# Paste a random box from each image's neighbor in the batch and mix the labels by area
cutmix = v2.CutMix(num_classes=10)
mixed_images, mixed_labels = cutmix(images, labels)

# Image 0 received its patch from image 3
pasted = (mixed_images[0] != images[0]).any(dim=0).float().mean()
print(f"pasted area: {pasted:.3f}")
print(f"label weights for classes 0-3: {mixed_labels[0, :4].numpy().round(3)}")

Результат — площадь вставленного участка 0,187 и веса меток 0,813 для класса 0 и 0,187 для класса 3: доля целевой метки, назначенная каждому классу, соответствует доле пикселей, которую этот класс вносит.

Почему CutMix помогает#

Модель классификации изображений, обученная на целых изображениях, может успешно работать, распознавая одну небольшую, очень информативную часть — например, морду собаки. Когда CutMix закрывает эту часть другим изображением, модели приходится распознавать собаку по телу, лапам или шерсти. Так она учится использовать больше областей каждого объекта, что улучшает локализацию со слабым учителем и устойчивость к окклюзии. Все пиксели смешанного изображения по-прежнему взяты из реальных фотографий, поэтому модель никогда не обучается на пустых участках или полупрозрачных наложениях. Как и другие сильные аугментации, CutMix служит регуляризацией и снижает переобучение. Современные схемы обучения визуальных трансформеров (ViT), в том числе схема, лежащая в основе Data-efficient Image Transformers (DeiT) от Meta, используют вместе CutMix и MixUp.

  • MixUp: Смешивает два целых изображения попиксельно с весом λ и так же смешивает их метки. В результате получаются полупрозрачные наложения, не похожие ни на одну реальную сцену.
  • Cutout: Маскирует случайный квадрат нулями и сохраняет исходную метку, поэтому замаскированные пиксели не дают модели информации при обучении.
  • Mosaic: Объединяет четыре изображения, изменённых по размеру, в одно. Это стандартная аугментация для обучения детекторов объектов: метки рамок сохраняются для каждого объекта, оставшегося в кадре.
  • Копирование и вставка для сегментации экземпляров: Переносит из одного изображения в другое сегментированные экземпляры объектов, а не прямоугольные области.

CutMix при обнаружении объектов#

При обнаружении объектов метки остаются точными: вместо смешанного вектора классов сохраняются рамки обоих изображений, если соответствующие объекты остаются видимыми. Аугментация Ultralytics YOLO cutmix, отключённая по умолчанию, принимает вероятность от 0 до 1. Реализация выбирает область вырезания, не пересекающуюся ни с одной из существующих рамок целевого изображения, копирует ту же область из второго изображения и сохраняет каждую вставленную ограничивающую рамку, если не менее 10% её площади остаётся внутри области; для меток сегментации порог составляет 1%. По умолчанию CutMix отключается вместе с mosaic на последние 10 эпох обучения; срок задаёт close_mosaic=10.

Explore solutions

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

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

Компьютерное зрение в аэрокосмической отрасли

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

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

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

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения