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

Data Augmentation

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

Аугментация данных увеличивает разнообразие обучающего набора данных, применяя случайные преобразования, например отражения, обрезку, изменение масштаба, сдвиг цветов и смешивание изображений, к уже имеющимся примерам. Каждая преобразованная копия сохраняет исходную метку, поэтому модель учится тому, что объект остаётся тем же объектом при изменении ракурса, освещения и положения. Сбор и разметка новых изображений требуют много времени и средств, поэтому аугментация — самый дешёвый способ защититься от переобучения, и почти все современные модели компьютерного зрения обучаются с её применением.

Как работает аугментация данных#

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

Чтобы расширение данных не искажало данные, соблюдай два правила. Во-первых, метки должны перемещаться вместе с пикселями: при детекции объектов, сегментации экземпляров и оценке позы геометрическое преобразование должно обновлять каждую ограничивающую рамку, маску и ключевую точку, а горизонтальное отражение также меняет местами левые и правые ключевые точки. Во-вторых, преобразование должно соответствовать тому, что может произойти в реальном мире: вертикальные отражения подходят для аэрофотоснимков и микроскопических изображений, но для уличных сцен создают перевёрнутые автомобили, которых не бывает во время инференса. Преобразования torchvision автоматически соблюдают первое правило, если рамки передаются вместе с изображением:

from urllib.request import urlopen

from PIL import Image
from torchvision import tv_tensors
from torchvision.transforms import v2

image = Image.open(urlopen("https://ultralytics.com/images/bus.jpg"))  # 810 x 1080 pixels
boxes = tv_tensors.BoundingBoxes([[50, 400, 250, 900]], format="XYXY", canvas_size=(1080, 810))

# Flip every time (p=1.0) and shift colors; the box must move with the pixels
augment = v2.Compose([v2.RandomHorizontalFlip(p=1.0), v2.ColorJitter(brightness=0.4, saturation=0.7)])
new_image, new_boxes = augment(image, boxes)

print(f"Original box: {boxes.tolist()}")
print(f"Flipped box:  {new_boxes.tolist()}")

Рамка вокруг мужчины слева на изображении перемещается из [50, 400, 250, 900] в [560, 400, 760, 900], зеркально отражаясь относительно ширины 810 пикселей; при этом цветовая коррекция изменяет пиксели, не затрагивая рамку.

Распространённые методы#

  • Геометрические преобразования: отражения, повороты, масштабирование, перенос, обрезка, сдвиг и перспективные искажения имитируют разные положения камеры и размеры объектов.
  • Фотометрические преобразования: изменение яркости, контрастности, насыщенности и цветового тона, а также размытие и добавление шума имитируют разное освещение, сенсоры и качество изображения.
  • Окклюзия: случайное стирание и вырезание закрывают прямоугольные области, чтобы модель не полагалась на какую-либо одну часть объекта.
  • Смешивание изображений: MixUp объединяет два изображения и их метки, CutMix вставляет фрагмент одного изображения в другое, мозаика объединяет четыре изображения в один обучающий пример, а метод копирования-вставки переносит сегментированные объекты на новый фон.
  • Автоматизированные стратегии: RandAugment применяет случайную последовательность преобразований, управляемую всего двумя настройками: количеством преобразований и их интенсивностью. Это избавляет от затратного поиска, необходимого для более ранних обучаемых стратегий.

Конвейеры аугментации для обнаружения объектов#

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

При обучении Ultralytics YOLO этот конвейер включён по умолчанию: мозаика применяется к каждому изображению (mosaic=1.0), вероятность горизонтального отражения составляет 50% (fliplr=0.5), масштабирование — до ±50%, а также выполняются сдвиги цветов HSV. За последние 10 эпох мозаика отключается (close_mosaic=10), чтобы модель завершала обучение на целых изображениях, похожих на реальные.

from ultralytics import YOLO

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

# fliplr: вероятность горизонтального отражения; scale: диапазон масштабирования (+/- 70%); degrees: диапазон поворота (+/- 5)
results = model.train(data="coco8.yaml", epochs=10, fliplr=0.5, scale=0.7, degrees=5.0)

Во время этого запуска тренер YOLO26 сохраняет первые три аугментированных батча как train_batch0.jpg, train_batch1.jpg и train_batch2.jpg, с нарисованными рамками, чтобы можно было проверить эффект каждой настройки до начала длительного запуска.

  • Синтетические данные: генерируются с нуля с помощью движков рендеринга, симуляторов или моделей диффузии. Аугментация изменяет уже существующие реальные изображения.
  • Предобработка данных: детерминированные шаги, например изменение размера и нормализация, одинаково применяемые ко всем изображениям при обучении и инференсе. Аугментация случайна и выполняется только во время обучения.
  • Аугментация во время тестирования (TTA): запускает инференс на нескольких аугментированных версиях одного входного изображения, например отражённых и масштабированных копиях, а затем объединяет предсказания. Это требует дополнительных вычислений, но немного повышает точность.

Изучи решения

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

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

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

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