Конфигурация#
Настройки и гиперпараметры YOLO играют ключевую роль в производительности, скорости и точности модели. Эти параметры могут влиять на поведение модели на разных этапах, включая обучение, валидацию и предсказание.
Смотри: Осваиваем Ultralytics YOLO: конфигурация
В командах Ultralytics используется следующий синтаксис:
yolo TASK MODE ARGSГде:
TASK(необязательно) — один из вариантов: (detect, segment, semantic, depth, classify, pose, obb)MODE(обязательно) — один из вариантов: (train, val, predict, export, track, benchmark)ARGS(необязательно) — это парыarg=value, напримерimgsz=640, которые переопределяют значения по умолчанию.
Значения ARG по умолчанию определены на этой странице и берутся из файла cfg/default.yaml.
Задачи#
Модели Ultralytics YOLO могут выполнять различные задачи компьютерного зрения, в том числе:
- Detect: обнаружение объектов определяет объекты на изображении или видео и находит их расположение.
- Segment: сегментация экземпляров разделяет изображение или видео на области, соответствующие разным объектам или классам.
- Семантическая сегментация (
semantic): семантическая сегментация присваивает метку класса каждому пикселю изображения для детального понимания сцены. - Глубина (
depth): оценка глубины по одному изображению предсказывает карту глубины в метрах для каждого пикселя на основе одного RGB-изображения. - Classify: классификация изображений предсказывает метку класса для входного изображения.
- Pose: оценка позы определяет объекты и оценивает расположение их ключевых точек на изображении или видео.
- OBB: ориентированные ограничивающие рамки использует повернутые ограничивающие рамки, подходящие для спутниковых снимков или медицинских изображений.
| Аргумент | По умолчанию | Описание |
|---|---|---|
task | 'detect' | Задаёт задачу YOLO: detect — обнаружение объектов, segment — сегментация экземпляров, semantic — семантическая сегментация, depth — оценка глубины по одному изображению, classify — классификация, pose — оценка позы, obb — ориентированные ограничивающие рамки. Каждая задача предназначена для решения определённых задач и формирования конкретных выходных данных при анализе изображений и видео. |
Режимы#
Модели Ultralytics YOLO работают в разных режимах, каждый из которых предназначен для определённого этапа жизненного цикла модели:
- Train: обучение модели YOLO на пользовательском наборе данных.
- Val: проверка обученной модели YOLO.
- Predict: получение предсказаний для новых изображений или видео с помощью обученной модели YOLO.
- Export: экспорт модели YOLO для развёртывания.
- Track: отслеживание объектов в реальном времени с помощью модели YOLO.
- Benchmark: оценка скорости и точности экспортированных моделей YOLO (ONNX, TensorRT и др.).
| Аргумент | По умолчанию | Описание |
|---|---|---|
mode | 'train' | Задаёт режим работы модели YOLO: train — обучение модели, val — валидация, predict — инференс, export — преобразование в форматы для развёртывания, track — отслеживание объектов, benchmark — оценка производительности. Каждый режим подходит для разных этапов — от разработки до развёртывания. |
Параметры обучения#
Параметры обучения моделей YOLO включают гиперпараметры и настройки, влияющие на производительность, скорость и точность модели. Ключевые параметры: размер пакета, скорость обучения, моментум и затухание весов. На обучение также влияют выбор оптимизатора, функции потерь и состав набора данных. Для достижения оптимальной производительности важно настраивать параметры и экспериментировать с ними. Подробнее см. в описании функции точки входа Ultralytics.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Задаёт файл модели для обучения. Принимает путь к предварительно обученной модели .pt или файлу конфигурации .yaml. Этот параметр необходим для определения структуры модели или инициализации весов. |
data | str | None | Путь к YAML-файлу набора данных (например, coco8.yaml), в котором указаны пути к обучающим и валидационным данным, имена классов и их количество. Для классификации вместо этого укажи каталог набора данных или имя встроенного набора данных (например, imagenet10). |
epochs | int | 100 | Общее количество эпох обучения. Каждая эпоха — это полный проход по всему набору данных. Изменение этого значения может повлиять на длительность обучения и производительность модели. |
time | float | None | Максимальная длительность обучения в часах. Если задано, это значение переопределяет аргумент epochs и позволяет автоматически остановить обучение по истечении указанного времени. Полезно, когда время обучения ограничено. |
patience | int | 100 | Количество эпох без улучшения метрик на валидации, после которого обучение останавливается досрочно. Помогает предотвратить переобучение: обучение прекращается, когда качество перестаёт расти. |
batch | int или float | 16 | Размер пакета можно задать тремя способами: целым числом (например, batch=16), автоматически с использованием 60% памяти GPU (batch=-1) или автоматически с указанием доли используемой памяти (batch=0.70). |
imgsz | int | 640 | Целевой размер изображений для обучения. Изображения преобразуются в квадраты с длиной стороны, равной заданному значению (если rect=False); модели YOLO сохраняют соотношение сторон, а RT-DETR — нет. Параметр влияет на точность модели и вычислительную сложность. |
save | bool | True | Включает сохранение контрольных точек обучения и итоговых весов модели. Полезно для возобновления обучения или развёртывания модели. |
save_period | int | -1 | Частота сохранения контрольных точек модели, заданная в эпохах. Значение -1 отключает эту функцию. Полезно для сохранения промежуточных моделей при длительном обучении. |
cache | bool или str | False | Включает кэширование изображений набора данных в памяти (True/ram), на диске (disk) или отключает кэширование (False). Ускоряет обучение за счёт сокращения операций ввода-вывода с диском, но увеличивает потребление памяти. |
device | int, str или list | None | Задаёт вычислительное устройство или устройства для обучения: один GPU (device=0), несколько GPU (device=[0,1]), CPU (device=cpu), MPS для Apple silicon (device=mps), NPU Huawei Ascend (device=npu:0 или device=npu:0,1), Intel XPU (device=xpu:0), автоматический выбор свободного GPU (device=-1) или нескольких свободных GPU (device=[-1,-1]). |
workers | int | 8 | Количество рабочих потоков для загрузки данных (на каждый RANK при обучении на нескольких GPU). Влияет на скорость предварительной обработки данных и их передачи в модель; особенно полезно при работе с несколькими GPU. |
project | str | None | Имя каталога проекта, в котором сохраняются результаты обучения. Помогает упорядочить хранение результатов разных экспериментов. |
name | str | None | Имя запуска обучения. Используется для создания подкаталога в папке проекта, где хранятся журналы и результаты обучения. |
exist_ok | bool | False | Если задано значение True, разрешает перезаписать существующий каталог с именем проекта/запуска. Полезно для повторных экспериментов, когда не нужно вручную удалять предыдущие результаты. |
save_dir | str | None | Задаёт точный каталог для сохранения результатов запуска, переопределяя сочетание project/name. Путь используется без изменений и автоматической нумерации, поэтому последующие запуски используют тот же каталог. |
pretrained | bool или str | True | Определяет, начинать ли обучение с предварительно обученных весов. Можно указать логическое значение или строковый путь к загружаемым весам. pretrained=False запускает обучение со случайно инициализированными весами, сохраняя архитектуру модели. |
cls_remap | bool | True | При дообучении на разных наборах данных копирует строки предварительно обученной классификационной головы в новую модель для совпадающих имён классов. Благодаря этому общие классы сохраняют выученные смещения, а также веса, если ширина головы не изменилась. Работает как при разном количестве классов, так и при одинаковом количестве классов в другом порядке. |
optimizer | str | 'auto' | Выбор оптимизатора для обучения. Доступны варианты SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp и auto, чтобы выбрать AdamW или MuSGD в зависимости от количества итераций обучения. Влияет на скорость и стабильность сходимости. |
seed | int | 0 | Задаёт случайное начальное значение для обучения, обеспечивая воспроизводимость результатов при одинаковых настройках запусков. |
deterministic | bool | True | Принудительно использует детерминированные алгоритмы, обеспечивая воспроизводимость результатов. Ограничение недетерминированных алгоритмов может повлиять на производительность и скорость. |
verbose | bool | True | Включает подробный вывод во время обучения: индикаторы выполнения, метрики для каждой эпохи и дополнительные сведения об обучении в консоли. |
single_cls | bool | False | При обучении на многоклассовых наборах данных рассматривает все классы как один. Полезно для задач бинарной классификации или когда важно определить наличие объекта, а не его класс. |
classes | list[int] | None | Задаёт список идентификаторов классов для обучения. Полезно, чтобы отфильтровать классы и сосредоточиться только на выбранных. |
rect | bool | False | Включает стратегию минимального дополнения: изображения в батче дополняются по минимуму, чтобы достичь общего размера, при этом длинная сторона равна imgsz. Это может повысить эффективность и скорость, но повлиять на точность модели. Стандартный тренер YOLO использует rect=True для валидации задач обнаружения, сегментации, оценки позы и OBB независимо от этой настройки. |
multi_scale | float | 0.0 | Случайным образом изменяет imgsz для каждого пакета на +/- multi_scale (например, 0.25 -> 0.75x to 1.25x), округляя значения до кратных шагу модели; 0.0 отключает обучение с несколькими масштабами. |
cos_lr | bool | False | Использует косинусный планировщик скорости обучения, изменяя скорость обучения по косинусной кривой на протяжении эпох. Помогает подобрать скорость обучения для лучшей сходимости. |
close_mosaic | int | 10 | Отключает мозаичную аугментацию данных за последние N эпох, чтобы стабилизировать обучение перед его завершением. Значение 0 отключает эту функцию. |
resume | bool | False | Возобновляет обучение с последней сохранённой контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и номер эпохи, чтобы продолжить обучение без перерыва. |
amp | bool или str | True | Задаёт точность вычислений при обучении: True или "fp16" используют FP16, "bf16" — BF16 на поддерживаемых устройствах CUDA, а False или "fp32" — FP32. |
quantize | int или str | None | Задай 8 (или "int8"), чтобы включить обучение с учётом квантования INT8 (QAT). При дообучении применяется имитация квантования, чтобы веса подходили для экспорта в INT8. См. обучение с учётом квантования. |
fraction | float, int или list | 1.0 | Подмножество набора данных в виде доли/количества или списка [train, val, test]. 1 означает полное разбиение; целые числа больше 1 задают количество изображений. Только необязательный параметр test принимает 0/0.0 в значении «нет». В списках из двух элементов тестовый набор остаётся полным. |
profile | bool | False | Включает профилирование скорости ONNX и TensorRT во время обучения; полезно для оптимизации развёртывания модели. |
freeze | int или list | None | Замораживает первые N слоёв модели или определённые слои по индексу или имени модуля (23.cv2, без начального model.), уменьшая количество обучаемых параметров. Полезно для дообучения или переноса обучения. |
lr0 | float | 0.01 | Начальная скорость обучения (то есть SGD=1E-2, Adam=1E-3). Не учитывается при использовании оптимизатора optimizer='auto' по умолчанию; чтобы применить этот параметр, укажи оптимизатор явно. |
lrf | float | 0.01 | Итоговая скорость обучения как доля от начальной скорости = (lr0 * lrf); используется совместно с планировщиками для изменения скорости обучения со временем. |
momentum | float | 0.937 | Коэффициент моментума для SGD или beta1 для оптимизаторов Adam, определяющий влияние прошлых градиентов на текущее обновление. |
weight_decay | float | 0.0005 | Параметр L2-регуляризации, который штрафует большие веса и помогает предотвратить переобучение. |
warmup_epochs | float | 3.0 | Количество эпох разогрева скорости обучения: она постепенно повышается от низкого значения до начальной, чтобы стабилизировать обучение на раннем этапе. |
warmup_momentum | float | 0.8 | Начальный моментум на этапе разогрева, который постепенно меняется до заданного значения в течение периода разогрева. |
warmup_bias_lr | float | 0.1 | Скорость обучения для параметров смещения на этапе разогрева, помогающая стабилизировать модель в первых эпохах. При использовании оптимизатора optimizer='auto' по умолчанию автоматически задаётся значение 0.0; чтобы применить этот параметр, укажи оптимизатор явно. |
distill_model | str | None | Путь к контрольной точке модели-учителя (например, yolo26x.pt) для дистилляции знаний. Если задан, модель-ученик обучается с дополнительной функцией потерь дистилляции, направляемой замороженной моделью-учителем. |
dis | float | 6.0 | Вес функции потерь дистилляции, добавляемой к стандартным потерям обнаружения. Чем выше значение, тем сильнее влияние признаков, предоставляемых моделью-учителем. |
box | float | 7.5 | Вес компонента потерь для рамок в функции потерь, определяющий, насколько важна точность предсказания координат ограничивающих рамок. |
cls | float | 0.5 | Вес потерь классификации в общей функции потерь, определяющий важность правильного предсказания класса относительно других компонентов. |
cls_pw | float | 0.0 | Степень взвешивания классов для устранения дисбаланса с помощью обратной частоты классов. 0.0 отключает взвешивание классов, 1.0 включает полное взвешивание по обратной частоте. Значения от 0 до 1 обеспечивают частичное взвешивание. |
dfl | float | 1.5 | Вес компонента регрессии расстояний до рамки: распределённая фокальная функция потерь (DFL), если голова обнаружения использует reg_max > 1; потери L1 для нормализованных расстояний до рамки в YOLO26 без DFL (reg_max: 1). |
pose | float | 12.0 | Вес потерь позы в моделях, обученных для оценки позы; определяет важность точного предсказания ключевых точек позы. |
kobj | float | 1.0 | Вес потерь уверенности в наличии объекта в ключевой точке для моделей оценки позы; задаёт баланс между уверенностью обнаружения и точностью оценки позы. |
rle | float | 1.0 | Вес потерь оценки остаточного логарифмического правдоподобия в моделях оценки позы; влияет на точность локализации ключевых точек. |
angle | float | 1.0 | Вес потерь угла в моделях OBB; влияет на точность предсказания угла ориентированных ограничивающих рамок. |
dlog | float | 1.0 | Вес потерь масштабно-инвариантного логарифмического критерия (SILog) в моделях оценки глубины; это основной компонент, определяющий точность оценки глубины. |
dgrad | float | 0.5 | Вес градиентных потерь в моделях оценки глубины: штрафует ошибки на границах глубины и помогает чётче выделять границы поверхностей. |
dlam | float | 1.0 | Коэффициент фокусировки дисперсии в функции потерь SILog для моделей оценки глубины. Значение 1.0 делает функцию потерь полностью масштабно-инвариантной, а 0.0 сводит её к обычной логарифмической RMSE. |
nbs | int | 64 | Номинальный размер пакета для нормализации потерь. |
overlap_mask | bool | True | Определяет, объединять ли маски объектов в одну маску для обучения или хранить их раздельно для каждого объекта. При объединении перекрывающиеся меньшие маски накладываются поверх больших. |
mask_ratio | int | 4 | Коэффициент уменьшения разрешения масок сегментации, влияющий на разрешение масок, используемых при обучении. Не изменяет разрешение предсказанных масок. |
dropout | float | 0.0 | Уровень Dropout для регуляризации задач классификации. Помогает предотвратить переобучение, случайным образом отключая нейроны во время обучения. |
val | bool | True | Включает валидацию во время обучения и периодическую оценку производительности модели на отдельном наборе данных. |
nms | bool, необязательно | None | Выбирает голову инференса для валидации эпох, выбора контрольной точки и ранней остановки. None или True использует схему one-to-many с NMS; False использует голову без NMS, если она доступна. Обе головы сохраняют потери обучения. |
plots | bool | True | Создаёт и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, наглядно показывая производительность модели и ход обучения. |
compile | bool или str | False | Включает компиляцию графа torch.compile в PyTorch 2.x с помощью backend='inductor'. Принимает значения True → "default", False → отключение или строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". Если режим не поддерживается, выполняется откат к eager-режиму с предупреждением. |
channels_last | bool | None | Использует формат памяти channels_last (NHWC) для свёрток во время обучения. Значение None автоматически включает этот формат в CUDA с PyTorch 1.11 или новее, кроме Windows, где он показал более низкую скорость. Значение False отключает его, а True включает принудительно. При обучении на CPU или MPS всегда используется NCHW (True игнорируется с предупреждением). |
max_det | int | 300 | Максимальное количество обнаружений на изображение при валидации во время обучения. Для detect, segment, pose и OBB значение по умолчанию 300 увеличивается до наибольшего количества размеченных объектов в train/val только в том случае, если это количество превышает 300. Другие значения остаются без изменений; при превышении лимита выводится предупреждение. |
Аргумент batch поддерживает три варианта настройки:
- Фиксированный размер пакета: укажи целым числом количество изображений в пакете (например,
batch=16). - Автоматический режим (60% памяти GPU): используй
batch=-1для автоматической настройки примерно на 60% использования памяти CUDA. - Автоматический режим с заданной долей использования: укажи долю (например,
batch=0.70), чтобы настроить размер пакета в соответствии с заданным использованием памяти GPU. - Подходящий вариант не найден: если ни один из предложенных размеров пакета не позволяет получить пригодный профиль, AutoBatch выдаёт понятную ошибку
RuntimeError, а не молча использует неподходящее значение по умолчанию.
Параметры предсказания#
Параметры предсказания моделей YOLO включают гиперпараметры и настройки, влияющие на производительность, скорость и точность при инференсе. Ключевые параметры: порог уверенности, порог подавления немаксимумов (NMS) и количество классов. На предсказания также влияют размер и формат входных данных, а также дополнительные возможности, например маски. Для оптимальной производительности необходимо настроить эти параметры.
Аргументы инференса:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
source | str, int или None | None | Задаёт источник данных для инференса. Это может быть путь к изображению, видеофайл, каталог, URL-адрес или идентификатор устройства для видеопотока. Если значение не задано, в журнал записывается предупреждение, а модель использует встроенные демонстрационные данные (ultralytics/assets или демонстрационный URL для OBB). Поддерживается широкий спектр форматов и источников, что позволяет гибко работать с разными типами входных данных. |
conf | float | 0.25 | Задаёт минимальный порог уверенности для обнаружений. Объекты с уверенностью ниже этого порога отбрасываются. Изменение значения помогает сократить количество ложноположительных результатов. |
iou | float | 0.7 | Порог пересечения по объединению (IoU) для подавления немаксимумов (NMS). При низких значениях остаётся меньше обнаружений, поскольку перекрывающиеся рамки удаляются. Это помогает сократить число дубликатов. |
imgsz | int или tuple | 640 | Целевой размер Letterbox. Целое число задаёт квадрат N×N; кортеж — (height, width). При rect=True фактический тензор может быть меньше целевого из-за дополнения до минимального прямоугольника. Для фиксированного размера используй rect=False. См. раздел Фиксированный размер или минимальный прямоугольник. |
rect | bool | True | Если задано True, по возможности используется дополнение до минимального прямоугольника (пакет с одинаковой формой и поддерживаемый бэкенд). Если задано False, дополнение всегда выполняется до полного размера imgsz. См. раздел Фиксированный размер или минимальный прямоугольник. |
quantize | int или str | None | Точность инференса: 16/"fp16" и 32/"fp32"/unset задают вычисления в FP16 или FP32 для моделей PyTorch и TorchScript (FP32 на CPU); для других форматов точность определяется артефактом модели и средой выполнения. На 16 OpenVINO по-прежнему округляет входные данные до FP16 на клиенте, а затем расширяет их обратно до FP32, не меняя точность среды выполнения. Квантование INT8/PTQ настраивается при экспорте, а затем применяется при загрузке экспортированной модели. Заменяет устаревший флаг half. |
device | str | None | Задаёт устройство для инференса (например, cpu, cuda:0, 0, npu или npu:0). Позволяет выбрать CPU, определённый GPU, NPU Huawei Ascend или другое вычислительное устройство для выполнения модели. |
dnn | bool | False | Если True, использует модуль DNN OpenCV вместо ONNX Runtime для инференса ONNX-модели. |
data | str | None | Путь к YAML-файлу датасета (например, coco8.yaml), который читается только для получения names и только если у загруженной модели нет собственных названий классов: например, это сторонний экспорт или экспорт Ultralytics, отделённый от поставляемых с ним метаданных. В противном случае такая модель сообщает class0, class1 и так далее. |
batch | int | 1 | Задаёт размер пакета для инференса (работает, только если источник — каталог, видеофайл или файл .txt). Больший размер пакета может повысить пропускную способность и сократить общее время инференса. |
max_det | int | 300 | Максимальное число детекций на изображение. Ограничивает общее количество объектов, которые модель может обнаружить за один инференс, предотвращая чрезмерное количество результатов в насыщенных сценах. |
vid_stride | int | 1 | Шаг обработки кадров для видеоисточников. Позволяет пропускать кадры в видео, ускоряя обработку за счёт снижения временного разрешения. Значение 1 означает обработку каждого кадра, большие значения — пропуск кадров. |
stream_buffer | bool | False | Определяет, нужно ли ставить входящие кадры видеопотоков в очередь. Если False, старые кадры отбрасываются, чтобы освободить место для новых (оптимально для приложений реального времени). Если True, новые кадры помещаются в буфер, что исключает пропуски кадров, но приводит к задержке, если FPS инференса ниже FPS потока. |
visualize | bool | False | Сохраняет тепловую карту активации класса рядом с каждым предсказанием и показывает, какие пиксели повысили оценки предсказанного класса. Учитывает conf и classes, поэтому classes=[0] отображает только этот класс. Доступно только для моделей Ultralytics на PyTorch. |
augment | bool | False | Включает аугментацию во время тестирования (TTA) для предсказаний, что может повысить устойчивость детекции, но замедляет инференс. Доступно только для моделей Ultralytics на PyTorch. |
agnostic_nms | bool | False | Включает зависящее от класса подавление немаксимумов (NMS): перекрывающиеся рамки с более низкими оценками подавляются между разными классами, а не только в рамках одного класса. Полезно для задач многоклассовой детекции, где классы часто перекрываются. При инференсе без NMS (nms=False на YOLO26 или YOLOv10) этот параметр только предотвращает появление одной и той же детекции с несколькими метками классов (дубликаты с IoU=1.0) и не подавляет разные рамки на основе порога IoU. |
classes | list[int] | None | Фильтрует предсказания по набору ID классов. Возвращаются только детекции, относящиеся к указанным классам. Полезно, чтобы сосредоточиться на нужных объектах в задачах многоклассовой детекции. |
retina_masks | bool | False | Возвращает маски сегментации высокого разрешения. Если параметр включён, возвращаемые маски (masks.data) будут соответствовать исходному размеру изображения. Если он выключен, маски будут иметь размер изображения, использованного при инференсе. |
embed | list[int] | None | Задаёт слои, из которых извлекаются векторы признаков или эмбеддинги. Используй model.embed(source) для эмбеддингов предпоследнего слоя или model.predict(source, embed=[layer]), чтобы выбрать конкретные слои. Полезно для последующих задач, например кластеризации или поиска сходства. Доступно только для моделей Ultralytics на PyTorch. |
project | str | None | Имя каталога проекта, в котором сохраняются результаты предсказания, если включён параметр save. |
name | str | None | Имя запуска предсказания. Используется для создания подкаталога в папке проекта, куда сохраняются результаты предсказания, если включён параметр save. |
stream | bool | False | Обеспечивает экономную по памяти обработку длинных видео или большого количества изображений: вместо загрузки всех кадров в память сразу возвращает генератор объектов Results. |
verbose | bool | True | Определяет, показывать ли в терминале подробные журналы инференса, обеспечивая обратную связь о ходе предсказания в реальном времени. |
compile | bool или str | False | Включает компиляцию графа torch.compile в PyTorch 2.x с помощью backend='inductor'. Принимает значения True → "default", False → отключение или строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". Если режим не поддерживается, выполняется откат к eager-режиму с предупреждением. |
channels_last | bool | None | Использует формат памяти channels_last (NHWC) для нативного инференса PyTorch. None автоматически включает его на процессорах x86 с oneDNN в Linux и Windows при PyTorch 1.13 или новее, False отключает его, а True запрашивает его на поддерживаемых процессорах x86 или устройствах CUDA. Для ARM64, MPS, более старых версий PyTorch, процессоров без oneDNN и экспортированных форматов, таких как TensorRT и ONNX, ничего не меняется. |
nms | bool, необязательно | None | По умолчанию выполняет инференс по схеме «один ко многим» с NMS (None или True). Укажи False, чтобы использовать голову «один к одному» без NMS, если она доступна. Подробности см. в руководстве по сквозной детекции. |
Параметры визуализации:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
show | bool | False | Если True, показывает аннотированные изображения или видео в окне. Полезно для мгновенной визуальной проверки во время разработки или тестирования. |
save | bool | False or True | Включает сохранение аннотированных изображений или видео в файлы. Полезно для документации, дальнейшего анализа или обмена результатами. По умолчанию включено при использовании CLI и выключено при использовании Python. |
save_frames | bool | False | При обработке видео сохраняет отдельные кадры как изображения. Полезно для извлечения конкретных кадров или подробного анализа каждого кадра. |
save_txt | bool | False | Сохраняет результаты детекции в текстовый файл в формате [class] [x_center] [y_center] [width] [height] [confidence]. Полезно для интеграции с другими инструментами анализа. |
save_conf | bool | False | Добавляет оценки уверенности в сохраняемые текстовые файлы. Это делает данные для постобработки и анализа более подробными. |
save_crop | bool | False | Сохраняет обрезанные изображения детекций. Полезно для аугментации датасета, анализа или создания специализированных датасетов для определённых объектов. |
show_labels | bool | True | Показывает метки каждой детекции на визуализации. Помогает сразу понять, какие объекты обнаружены. |
show_conf | bool | True | Показывает оценку уверенности каждой детекции рядом с меткой. Позволяет оценить уверенность модели в каждой детекции. |
show_boxes | bool | True | Рисует ограничивающие рамки вокруг обнаруженных объектов. Необходимо для визуального определения объектов и их местоположения на изображениях или видеокадрах. |
line_width | int or None | None | Задаёт толщину линий ограничивающих рамок. Если None, толщина автоматически подстраивается под размер изображения. Позволяет настроить визуализацию для большей наглядности. |
Настройки валидации#
Настройки валидации моделей YOLO включают гиперпараметры и параметры для оценки производительности на валидационном датасете. Эти настройки влияют на производительность, скорость и точность. К распространённым параметрам относятся размер пакета, частота валидации и метрики производительности. На процесс также влияют размер и состав валидационного датасета, а также конкретная задача.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
data | str | None | Задаёт путь к YAML-файлу датасета (например, coco8.yaml), в котором должен быть указан путь к валидационным данным. Для классификации вместо этого указывается каталог датасета или встроенное имя датасета (например, imagenet10). |
imgsz | int | 640 | Задаёт размер входных изображений. Перед обработкой все изображения приводятся к этому размеру. Большие размеры могут повысить точность для мелких объектов, но увеличивают время вычислений. |
batch | int | 16 | Задаёт количество изображений в пакете. Большие значения позволяют эффективнее использовать память GPU, но требуют больше VRAM. Выбирай значение с учётом доступных аппаратных ресурсов. |
save_json | bool | False | Если True, сохраняет результаты в файл JSON для дальнейшего анализа, интеграции с другими инструментами или отправки на серверы оценки, например COCO. Для датасетов детекции также оценивает предсказания с помощью faster-coco-eval и сообщает mAP для мелких, средних и крупных объектов; во время обучения эти значения записываются как metrics/mAP_small(B), metrics/mAP_medium(B) и metrics/mAP_large(B) в results.csv. |
conf | float | 0.001 | Задаёт минимальный порог уверенности для детекций. Низкие значения повышают полноту, но могут привести к большему количеству ложноположительных результатов. Кривые «точность–полнота», mAP и матрицы ошибок детекции используют это значение; более высокий conf, например 0.25, даёт матрицу, более близкую к выходу предсказания, но может снизить mAP. Итоговые показатели точности и полноты используют порог уверенности с максимальным F1, поэтому они могут отличаться от значений, рассчитанных по confusion_matrix.png. Для валидации OBB по умолчанию используется 0.01, чтобы снизить расход памяти. |
iou | float | 0.7 | Задаёт порог пересечения над объединением для подавления немаксимумов. Управляет удалением дублирующих детекций. |
max_det | int | 300 | Ограничивает максимальное количество детекций на изображение. Для detect, segment, pose и OBB, если оставить значение 300, оно увеличивается до наибольшего количества размеченных объектов в проверяемой части датасета, когда изображение содержит больше объектов; при этом выводится предупреждение. Любое другое значение сохраняется, а если на изображении объектов больше, выводится предупреждение о возможном ограничении полноты. |
quantize | int или str | None | Точность валидации: 16/"fp16" и 32/"fp32"/unset задают вычисления в FP16 или FP32 для моделей PyTorch и TorchScript (FP32 на CPU); для других форматов точность определяется артефактом модели и средой выполнения. На 16 OpenVINO по-прежнему округляет входные данные до FP16 на клиенте, а затем расширяет их обратно до FP32, не меняя точность среды выполнения. Квантование INT8/PTQ настраивается при экспорте, а затем применяется при валидации экспортированной модели. Заменяет устаревший флаг half. |
device | str | None | Задаёт устройство для валидации (cpu, cuda:0, npu, npu:0 и т. д.). Если указано None, автоматически выбирается лучшее доступное устройство. Несколько устройств CUDA можно указать через запятую. |
dnn | bool | False | Если True, использует модуль DNN OpenCV для инференса ONNX-модели — альтернативу методам инференса PyTorch. |
plots | bool | True | Если установлено значение True, создаёт и сохраняет графики предсказаний и эталонных данных, матрицы ошибок и PR-кривые для визуальной оценки производительности модели. |
classes | list[int] | None | Задаёт список ID классов для оценки. Полезно, если при оценке нужно отфильтровать классы и сосредоточиться только на некоторых из них. |
rect | bool | True | Если True, изображения с близкими соотношениями сторон группируются в прямоугольные батчи. Перед округлением каждого размера вверх до кратного шага добавляется половина шага (для semantic дополнительная половина шага не добавляется). При шаге 32 изображение размером 640×640 при imgsz=640 становится размером 672×672 со смещением 16 px, а в режиме predict используется размер 640×640, поэтому метрики могут различаться. rect=False соответствует режиму predict для квадратных изображений. Не применяется при depth, который растягивает изображения до квадрата размером imgsz. |
split | str | 'val' | Определяет часть датасета, используемую для валидации (val, test или train). Позволяет выбрать сегмент данных для оценки производительности. |
fraction | float, int или list | 1.0 | Подмножество проверяемой части датасета. Для списка [train, val, test] применяется элемент, соответствующий split (1 = вся часть датасета, целые числа больше 1 = количество изображений; для пропущенных элементов используется вся часть). Скалярное значение применяется только к split=train; тогда val и test используют всю часть датасета. |
project | str | None | Имя каталога проекта, в котором сохраняются результаты валидации. Помогает упорядочить результаты разных экспериментов или моделей. |
name | str | None | Имя запуска валидации. Используется для создания подкаталога в папке проекта, где хранятся журналы и результаты валидации. |
verbose | bool | True | Если True, показывает подробную информацию о процессе валидации, включая метрики по классам, прогресс обработки пакетов и дополнительные сведения для отладки. |
save_txt | bool | False | Если True, сохраняет результаты детекции в текстовые файлы — по одному файлу на изображение. Полезно для дальнейшего анализа, пользовательской постобработки или интеграции с другими системами. |
save_conf | bool | False | Если True, добавляет значения уверенности в сохраняемые текстовые файлы, когда включён параметр save_txt, предоставляя больше данных для анализа и фильтрации. |
workers | int | 8 | Количество рабочих потоков для загрузки данных. Большие значения могут ускорить предобработку данных, но повышают нагрузку на CPU. Значение 0 использует основной поток и может быть стабильнее в некоторых средах. |
augment | bool | False | Включает аугментацию во время тестирования (TTA) при валидации. Инференс на преобразованных версиях входных данных может повысить точность детекции, но замедляет работу. Доступно только для моделей Ultralytics на PyTorch. |
agnostic_nms | bool | False | Включает зависящее от класса подавление немаксимумов, подавляя перекрывающиеся рамки с более низкими оценками независимо от предсказанного класса. Полезно для приложений, ориентированных на отдельные объекты. При инференсе без NMS (nms=False на YOLO26 или YOLOv10) этот параметр только предотвращает появление одной и той же детекции с несколькими метками классов (дубликаты с IoU=1.0) и не подавляет разные рамки на основе порога IoU. |
single_cls | bool | False | Во время валидации рассматривает все классы как один класс. Полезно для оценки модели в задачах бинарной детекции или когда различия между классами не важны. |
visualize | bool | False | Визуализирует эталонные объекты, истинно-положительные, ложноположительные и ложноотрицательные результаты для каждого изображения. Полезно для отладки и интерпретации модели. |
show_labels | bool | True | Показывает метки классов на визуализациях валидации, если включён параметр visualize=True. Укажи False, чтобы нагляднее отображались совпадения и ошибки. |
show_conf | bool | True | Показывает оценки уверенности на визуализациях валидации, если включён параметр visualize=True. Укажи False, чтобы нагляднее отображались совпадения и ошибки. |
compile | bool или str | False | Включает компиляцию графа torch.compile в PyTorch 2.x с помощью backend='inductor'. Принимает значения True → "default", False → отключение или строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". Если режим не поддерживается, выполняется откат к eager-режиму с предупреждением. |
channels_last | bool | None | Использует формат памяти channels_last (NHWC) для нативной валидации PyTorch. None автоматически включает его на процессорах x86 с oneDNN в Linux и Windows при PyTorch 1.13 или новее, False отключает его, а True запрашивает его на поддерживаемых процессорах x86 или устройствах CUDA. Для ARM64, MPS, более старых версий PyTorch, процессоров без oneDNN и экспортированных форматов ничего не меняется; при валидации во время обучения сохраняется формат модели, используемый для обучения. |
nms | bool, необязательно | None | По умолчанию выполняет инференс по схеме «один ко многим» с NMS (None или True). Укажи False, чтобы использовать голову «один к одному» без NMS, если она доступна. Подробности см. в руководстве по сквозной детекции. |
Для оптимальной производительности важно тщательно настраивать параметры и проводить эксперименты, чтобы выявлять и предотвращать переобучение.
Настройки экспорта#
Настройки экспорта моделей YOLO определяют параметры сохранения и экспорта модели для использования в различных средах. Эти настройки влияют на производительность, размер и совместимость. Ключевые параметры — формат экспортируемого файла (например, ONNX, TensorFlow SavedModel), целевое устройство (например, CPU, GPU) и такие функции, как маски. На процесс экспорта также влияют задача модели и ограничения целевой среды.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'torchscript' | Целевой формат экспортируемой модели, например 'onnx', 'torchscript', 'engine' (TensorRT) и другие. Каждый формат обеспечивает совместимость с различными средами развёртывания. |
name | str | None | Название целевого оборудования для форматов, которым оно требуется: архитектура Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; по умолчанию — 'hailo8l'), чип Rockchip RKNN (по умолчанию — 'rk3588'), SoC Huawei Ascend (CANN --soc_version; по умолчанию — 'Ascend310B4'), целевое устройство Qualcomm QNN HTP (по умолчанию — '73') или устройство AMD Xilinx Versal AI Edge Series Gen 2 (по умолчанию — 've2-xc2ve3858', оценочный комплект VEK385). Не путай с парой именования запусков project/name, используемой в других режимах. |
imgsz | int или tuple | 640 | Желаемый размер входных изображений модели. Для квадратных изображений можно указать целое число (например, 640 для 640×640), а для конкретных размеров — кортеж (height, width). Если значение не задано, при экспорте используется размер обучения, сохранённый в загруженной контрольной точке: в официальных контрольных точках YOLO26 записано 768 для depth, 224 для classify, 1024 для OBB и 640 для остальных задач; в дообученной модели записан размер imgsz, на котором она обучалась. У модели, созданной из YAML, размер обучения не записан, поэтому используется 640. |
optimize | bool | False | Включает более высокий уровень оптимизации компилятора для DEEPX, снижая задержку инференса ценой увеличения времени компиляции. |
quantize | int или str | None | Точность квантования: 16 (FP16 — уменьшает размер модели и может ускорить инференс на поддерживаемом оборудовании) или 8 (INT8/PTQ — дополнительно сжимает модель с минимальной потерей точности, главным образом для периферийных устройств; требуются калибровочные data/fraction); 32 или отсутствие значения означает FP32. Контрольная точка, обученная с quantize=8, всегда экспортируется в INT8: onnx и engine экспортируются на основе сохранённых в ней диапазонов без калибровки, а другие форматы или варианты точности не допускаются. 'w8a8' и 'w16a16' — псевдонимы для 8 и 16; смешанная точность 'w8a16' (веса INT8 с 16-битными активациями: CoreML, LiteRT, QNN) и 'w8a32' (динамический INT8: LiteRT) поддерживается только этими форматами. Заменяет устаревшие флаги half/int8 (half=True → 16, int8=True → 8; они по-прежнему поддерживаются с предупреждением об устаревании). Допускаются только варианты точности, поддерживаемые целевым форматом (см. ниже). |
dynamic | bool | False | Позволяет задавать динамические размеры входных данных при экспорте в TorchScript, ONNX, OpenVINO, TensorRT, CoreML и MNN, повышая гибкость при обработке изображений разных размеров. |
simplify | bool | True | Упрощает промежуточный граф ONNX с помощью onnxslim для вариантов экспорта, в которых он создаётся (см. форматы экспорта), что может повысить производительность и совместимость с движками инференса. |
opset | int | None | Задаёт версию opset ONNX для вариантов экспорта, в которых создаётся граф ONNX (см. форматы экспорта), обеспечивая совместимость с различными парсерами и средами выполнения ONNX. Если значение не задано, используется последняя поддерживаемая версия. |
workspace | float или None | None | Задаёт максимальный размер рабочей области в ГиБ для оптимизаций TensorRT, обеспечивая баланс между расходом памяти и производительностью. Используй None, чтобы TensorRT автоматически выделил до максимального объёма памяти устройства. |
nms | bool, необязательно | None | None экспортирует исходные предсказания по схеме «один ко многим» для внешней обработки NMS; True встраивает NMS, если формат это поддерживает; False выбирает голову без NMS, если она доступна. Встроенная NMS CoreML поддерживает detect, segment и pose со статическими размерами. Подробности см. в руководстве по сквозной детекции. |
conf | float | None | Порог уверенности, используемый при генерации NMS во время экспорта: экспорт nms=True; экспорт detect для Hailo без сквозной обработки; экспорт detect, pose и segment для IMX, где внутри принудительно используется nms=True. Если значение не задано, по умолчанию используется 0.25. |
iou | float | 0.7 | Порог IoU, используемый при генерации NMS во время экспорта: экспорт nms=True; экспорт detect для Hailo без сквозной обработки; экспорт detect, pose и segment для IMX, где внутри принудительно используется nms=True. |
max_det | int | 300 | Максимальное количество детекций, сохраняемых в выходных данных экспортированной модели. Применяется к экспорту nms=True во всех форматах, кроме детекции CoreML, где в нативном конвейере NMS нет ограничения на количество детекций; также применяется к экспорту сквозной детекции без NMS (YOLO26, YOLOv10; ограничивается количеством доступных якорей) и к экспорту detect, pose и segment для IMX. |
agnostic_nms | bool | False | Включает зависящую от класса NMS во всех случаях, когда NMS генерируется при экспорте стандартным конвейером nms=True, включая собственный этап NMS CoreML. Перекрывающиеся рамки с более низкими оценками подавляются между разными классами, а не только внутри одного класса. Параметр не учитывается конфигурациями NMS, генерируемыми самим Hailo или IMX: в них нет параметра для обработки без учёта классов, поэтому они всегда учитывают классы. Также применяется при сквозном экспорте без NMS (YOLO26, YOLOv10): только предотвращает появление одной и той же детекции под несколькими метками классов (дубликаты с IoU=1.0), но не подавляет разные рамки на основе порога IoU. |
batch | int | 1 | Задает размер пакета для инференса экспортированной модели или максимальное число изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. Форматы, в аргументах экспорта которых нет batch (Edge TPU, IMX500, DEEPX, Hailo, AMD Xilinx), экспортируют модель с размером пакета 1 и не принимают другие значения. |
device | str | None | Задаёт устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для Apple silicon (device=mps), NPU Huawei Ascend (device=npu или device=npu:0) или DLA для NVIDIA Jetson (device=dla:0 или device=dla:1). При экспорте в TensorRT автоматически используется GPU, но TensorRT 11.0 не поддерживает DLA. |
verbose | bool | False | При экспорте format='engine' задаёт уровень подробности журнала сборщика TensorRT VERBOSE. Другие форматы экспорта игнорируют этот параметр. |
data | str | None | Путь к YAML-файлу датасета, необходимый для калибровки квантования INT8; для классификации вместо этого указывается каталог датасета или встроенное имя датасета. Если значение не задано при включённом INT8, Ultralytics выбирает калибровочный датасет для конкретной задачи, когда он требуется, или использует датасет по умолчанию для задачи модели. Контрольная точка, обученная с quantize=8, содержит собственные диапазоны INT8 и не требует калибровочных данных. |
split | str | 'val' | Часть датасета ('train', 'val' или 'test'), используемая для создания загрузчика данных калибровки квантования INT8 из data. |
fraction | float, int или list | 1.0 | Подмножество датасета для калибровки INT8: доля, количество изображений или значения [train, val, test]. 1 означает всю часть датасета, целые числа больше 1 задают количество изображений, а только необязательная часть test принимает 0/0.0 в значении «нет». Если список содержит два элемента, test остаётся полной частью датасета. |
Продуманная настройка гарантирует, что экспортированная модель оптимизирована для своего сценария использования и эффективно работает в целевой среде.
Настройки Solutions#
Параметры конфигурации Ultralytics Solutions позволяют гибко настраивать модели для таких задач, как подсчёт объектов, создание тепловых карт, отслеживание тренировок, анализ данных, отслеживание зон, управление очередями и подсчёт объектов в заданных областях. Эти параметры позволяют легко адаптировать решения для получения точных и полезных результатов с учётом конкретных потребностей.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
region | list или dict | None | Точки, задающие интересующую область: список кортежей (x, y) или словарь, сопоставляющий названия областей со списками точек для нескольких областей (только RegionCounter). Если None, решения, которым требуется область, используют заданную по умолчанию область. |
show_in | bool | True | Флаг, управляющий отображением счётчиков входа в видеопотоке. |
show_out | bool | True | Флаг, управляющий отображением счётчиков выхода в видеопотоке. |
analytics_type | str | 'line' | Тип графика: line, bar, area или pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Цветовая карта для тепловой карты. |
line_width | int | 2 | Толщина линий рамок, ключевых точек и счётчиков, которые рисует решение. |
verbose | bool | True | Включает журнал решения для каждого кадра с указанием формы входных данных, количества объектов по классам и скорости обработки. Сам вызов отслеживания всегда выполняется без вывода сообщений. |
json_file | str | None | Путь к файлу JSON со всеми данными о координатах парковочных мест. |
up_angle | float | 145.0 | Пороговый угол для позы «вверх». |
kpts | list[int] | [6, 8, 10] | Список из трёх индексов ключевых точек, используемых для отслеживания тренировок. Эти точки соответствуют суставам или частям тела, например плечам, локтям и запястьям, для таких упражнений, как отжимания, подтягивания, приседания и упражнения на пресс. |
down_angle | float | 90.0 | Пороговый угол для позы «вниз». |
blur_ratio | float | 0.5 | Настраивает процент интенсивности размытия в диапазоне 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Имя каталога для сохранения обрезанных обнаруженных объектов. |
records | int | 5 | Общее количество обнаруженных объектов, при достижении которого отправляется электронное письмо с предупреждением системы безопасности. |
vision_point | tuple[int, int] | (20, 20) | Точка, в которой Vision отслеживает объекты и рисует траектории с помощью решения VisionEye. |
source | str | None | Путь к входному источнику (видео, RTSP и т. д.). Доступно только через интерфейс командной строки Solutions (CLI). |
figsize | tuple[float, float] | (12.8, 7.2) | Размер графиков Analytics в дюймах; (12.8, 7.2) отображает кадр размером 1280×720. |
fps | float | 30.0 | Количество кадров в секунду, используемое для расчёта скорости. |
max_hist | int | 5 | Максимальное количество исторических точек на объект для расчёта скорости и направления. |
meter_per_pixel | float | 0.05 | Коэффициент масштабирования для преобразования расстояния в пикселях в единицы реального мира. |
max_speed | int | 120 | Максимальная скорость в км/ч; более высокие расчётные значения ограничиваются этим пределом. |
data | str | 'images' | Путь к каталогу изображений, используемому для поиска похожих изображений. |
imgsz | int | 640 | Размер входного изображения для инференса модели. |
Параметры аугментации#
Методы аугментации данных необходимы для повышения устойчивости и производительности модели YOLO: они вносят разнообразие в обучающие данные, помогая модели лучше обобщать на ранее не встречавшиеся данные. В таблице ниже описаны назначение и эффект каждого аргумента аугментации:
| Аргумент | Тип | По умолчанию | Поддерживаемые задачи | Диапазон | Описание |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Изменяет оттенок изображения на долю цветового круга, внося разнообразие цветов. Помогает модели обобщать результаты при разных условиях освещения. Для classify применяется только при auto_augment=None. |
hsv_s | float | 0.7 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Изменяет насыщенность изображения на заданную долю, влияя на интенсивность цветов. Полезно для имитации различных условий окружающей среды. Для classify применяется только при auto_augment=None. |
hsv_v | float | 0.4 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Изменяет значение (яркость) изображения на заданную долю, помогая модели хорошо работать при различных условиях освещения. Для classify применяется только при auto_augment=None. |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | Случайным образом поворачивает изображение в заданном диапазоне углов, помогая модели распознавать объекты при различной ориентации. |
translate | float | 0.1 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Сдвигает изображение по горизонтали и вертикали на долю его размера, помогая модели учиться обнаруживать частично видимые объекты. |
scale | float | tuple | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1 или явно заданный кортеж (min, max) (не для classify) | Масштабирует изображение с заданным коэффициентом, имитируя объекты на разных расстояниях от камеры. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | Сдвигает изображение под заданным углом, имитируя вид объектов с разных ракурсов. |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 0.001 | Применяет к изображению случайное перспективное преобразование, улучшая способность модели понимать объекты в 3D-пространстве. |
flipud | float | 0 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Переворачивает изображение вверх ногами с заданной вероятностью, увеличивая разнообразие данных без изменения характеристик объекта. |
fliplr | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Отражает изображение по горизонтали с заданной вероятностью. Это полезно для обучения распознаванию симметричных объектов и увеличения разнообразия набора данных. |
bgr | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Меняет порядок каналов изображения с RGB на BGR с заданной вероятностью, повышая устойчивость к неправильному порядку каналов. |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Объединяет четыре обучающих изображения в одно, имитируя разные композиции сцен и взаимодействия объектов. Особенно эффективно для понимания сложных сцен. |
mixup | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Смешивает два изображения и их метки, создавая составное изображение. Помогает модели лучше обобщать за счёт внесения шума в метки и визуального разнообразия. |
cutmix | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Объединяет фрагменты двух изображений, создавая частичное смешение при сохранении отдельных областей. Повышает устойчивость модели за счёт создания сценариев с перекрытием объектов. |
copy_paste | float | 0 | segment, semantic, obb | 0.0 - 1.0 | Доля подходящих объектов, которые вставляются; flip зеркально отражает их внутри изображения, а mixup также использует это значение как вероятность применения между изображениями. |
copy_paste_mode | str | flip | segment, semantic, obb | - | Задаёт используемую стратегию copy-paste. Доступны варианты 'flip' и 'mixup'. |
auto_augment | str | randaugment | classify | - | Применяет заранее заданную политику аугментации ('randaugment', 'autoaugment' или 'augmix'), чтобы повысить производительность модели за счёт визуального разнообразия. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Во время обучения случайным образом стирает области изображения, побуждая модель обращать внимание на менее очевидные признаки. |
augmentations | list | None | detect, segment, semantic, depth, pose, obb | - | Пользовательские преобразования Albumentations для расширенной аугментации данных (только Python API). Принимает список объектов преобразования для специализированной аугментации. |
Настрой эти параметры с учётом требований набора данных и задачи. Эксперименты с разными значениями помогут найти оптимальную стратегию аугментации для достижения наилучшей производительности модели.
Параметры журналирования, контрольных точек и построения графиков#
При обучении модели YOLO важно управлять журналированием, контрольными точками, построением графиков и файлами:
- Журналирование: отслеживай ход обучения модели и диагностируй проблемы с помощью таких библиотек, как TensorBoard, или записывай данные в файл.
- Контрольные точки: сохраняй модель через регулярные интервалы, чтобы возобновлять обучение или экспериментировать с разными конфигурациями.
- Построение графиков: визуализируй производительность и ход обучения с помощью таких библиотек, как Matplotlib или TensorBoard.
- Управление файлами: организуй файлы, созданные во время обучения, например контрольные точки, журналы и графики, чтобы упростить доступ к ним и их анализ.
Эффективное управление этими аспектами помогает отслеживать ход работы и упрощает отладку и оптимизацию.
| Аргумент | По умолчанию | Описание |
|---|---|---|
project | None | Задаёт корневой каталог для сохранения запусков обучения. Если не указан, запуски сохраняются в runs/<task>. Каждый запуск сохраняется в отдельном подкаталоге. |
name | None | Задаёт имя эксперимента. Если имя не указано, YOLO использует название режима и увеличивает его номер при каждом запуске (например, train, train-2), чтобы не перезаписывать файлы. |
exist_ok | False | Определяет, можно ли перезаписать существующий каталог эксперимента. True разрешает перезапись, а False запрещает её. |
plots | True | Управляет созданием и сохранением графиков обучения и валидации. Задай значение True, чтобы строить графики потерь, кривые точности-полноты и примеры предсказаний для визуального отслеживания производительности. |
save | True | Включает сохранение контрольных точек обучения и итоговых весов модели. Задай значение True, чтобы периодически сохранять состояния модели и иметь возможность возобновить обучение или развернуть модель. |
Пользовательский файл конфигурации#
Загрузи сохранённый файл YAML, чтобы повторно использовать полный набор аргументов без их передачи в командной строке. Аргумент cfg переопределяет значения из default.yaml, а дополнительные переданные аргументы имеют приоритет.
| Аргумент | По умолчанию | Описание |
|---|---|---|
cfg | None | Путь к файлу YAML, значения которого заменяют записи default.yaml. См. Переопределение файла конфигурации по умолчанию с примером использования CLI. |
Часто задаваемые вопросы#
Повышай производительность, настраивая гиперпараметры, например размер пакета, скорость обучения, момент и затухание весов. Настрой параметры аугментации данных, выбери подходящий оптимизатор и используй такие методы, как ранняя остановка или обучение со смешанной точностью. Подробнее см. в руководстве по обучению.
К ключевым гиперпараметрам, влияющим на точность, относятся:
- Размер пакета (
batch): большие значения могут стабилизировать обучение, но требуют больше памяти. - Скорость обучения (
lr0): меньшие значения обеспечивают более точную настройку, но замедляют сходимость. - Момент (
momentum): ускоряет векторы градиентов и сглаживает колебания. - Размер изображения (
imgsz): большие размеры повышают точность, но увеличивают вычислительную нагрузку.
Настрой эти параметры с учётом набора данных и оборудования. Подробнее см. в разделе Параметры обучения.
- Размер пакета (
Скорость обучения (
lr0) имеет решающее значение: начни с0.01для SGD или0.001для оптимизатора Adam и явно задайoptimizer, поскольку значение по умолчаниюautoигнорируетlr0. Отслеживай метрики и при необходимости корректируй параметры. Используй планировщики скорости обучения с косинусным затуханием (cos_lr) или разогрев (warmup_epochs,warmup_momentum). Подробнее см. в руководстве по обучению.Параметры по умолчанию:
- Порог уверенности (
conf=0.25): минимальная уверенность для обнаружения. - Порог IoU (
iou=0.7): используется для подавления немаксимумов (NMS). - Размер изображения (
imgsz=640): изменяет размер входных изображений. - Устройство (
device=None): выбирает CPU, GPU с CUDA, Apple MPS, Intel XPU (xpu) или NPU Huawei Ascend (npu).
Полный обзор см. в разделах Параметры предсказания и Руководство по предсказаниям.
- Порог уверенности (
Обучение со смешанной точностью (
amp=True) снижает потребление памяти и ускоряет обучение за счёт использования FP16 и FP32. Этот подход эффективен на современных GPU: он позволяет использовать более крупные модели и ускоряет вычисления без существенной потери точности. Подробнее см. в руководстве по обучению.