Конфигурация#
Настройки и гиперпараметры YOLO играют критически важную роль в производительности, скорости и точности модели. Эти настройки могут влиять на поведение модели на разных этапах, включая обучение, валидацию и предсказание.
Watch: Mastering Ultralytics YOLO: Configuration
Команды 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 segmentation (
semantic): семантическая сегментация присваивает метку класса каждому пикселю изображения для детального понимания сцены. - Depth (
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 | 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), автоматический выбор незанятого 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. Это может повысить эффективность и скорость, но повлиять на точность модели. |
multi_scale | float | 0.0 | Случайно изменяет imgsz в каждом пакете на +/- multi_scale (например, 0.25 -> от 0.75x до 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") для обучения с учетом квантования (QAT), при котором выполняется точная настройка с искусственным квантованием в цикле, чтобы веса выдерживали экспорт в INT8. Смотри обучение с учетом квантования. |
fraction | float, int или list | 1.0 | Подмножество набора данных в виде доли/количества или списка [train, val, test]. 1 означает полное подмножество, целые числа больше 1 — количество изображений, а только необязательная запись для тестирования принимает 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). Настройка этого значения критически важна для процесса оптимизации, поскольку влияет на скорость обновления весов модели. |
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 | Вес члена регрессии расстояния до рамки: distribution focal loss (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 использует схему «один ко многим» с 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 явно запрашивает его. В PyTorch 1.10 и более старых версиях, на CPU и MPS по умолчанию остается NCHW. |
max_det | int | 300 | Максимальное количество обнаружений на изображение во время валидации при обучении. Для задач детекции, сегментации, позы и 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"/не задано выбирают вычисления FP16 или FP32 для моделей PyTorch и TorchScript; остальные форматы выполняют вычисления с точностью, выбранной их артефактом и средой выполнения. При 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, для инференса ONNX-модели используется модуль OpenCV DNN вместо ONNX Runtime. |
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 | Фильтрует предсказания по набору идентификаторов классов. Возвращаются только обнаружения, принадлежащие указанным классам. Это полезно для фокусировки на релевантных объектах в задачах мультиклассового обнаружения. |
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 автоматически включает его в Linux и Windows на CPU x86 с oneDNN и PyTorch версии 1.13 или новее, False отключает его, а True запрашивает его на поддерживаемых CPU x86 или устройствах CUDA. ARM64, MPS, старые версии PyTorch, CPU без oneDNN и экспортированные форматы, такие как TensorRT и ONNX, остаются без изменений. |
nms | bool, необязательно | None | Запускает вывод «один ко многим» с NMS по умолчанию (None или True). Установи False, чтобы использовать голову «один к одному» без NMS, если она доступна. Подробнее см. в руководстве по сквозному детектированию. |
Аргументы визуализации:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
show | bool | False | Если True, аннотированные изображения или видео отображаются в окне. Это полезно для получения визуальной обратной связи в процессе разработки или тестирования. |
save | bool | False or True | Включает сохранение размеченных изображений или видео в файлы. Это полезно для документирования, дальнейшего анализа или обмена результатами. По умолчанию имеет значение True при использовании CLI и False при использовании в 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 | Задает минимальный порог уверенности для обнаружений. Меньшие значения повышают полноту, но могут привести к появлению большего числа ложноположительных результатов. По умолчанию кривые precision-recall используют 0.001; матрицы ошибок обнаружения используют явное значение conf или 0.25, если оно не задано. Сводные значения precision и recall используют уверенность при максимальном F1, поэтому они могут отличаться от значений, рассчитанных на основе confusion_matrix.png. Для валидации OBB по умолчанию используется 0.01, чтобы снизить потребление памяти. |
iou | float | 0.7 | Задает порог пересечения по объединению для подавления немаксимумов. Управляет устранением дублирующихся обнаружений. |
max_det | int | 300 | Ограничивает максимальное количество обнаружений на изображение. Для задач детекции, сегментации, позы и OBB при значении по умолчанию 300 оно увеличивается до наибольшего количества объектов с разметкой в валидационном наборе данных, если изображение превышает его, с выводом предупреждения; любое другое значение сохраняется с предупреждением о том, что полнота (recall) может быть ограничена при превышении лимита изображением. |
quantize | int или str | None | Точность валидации: 16/"fp16" и 32/"fp32"/не задано выбирают вычисления FP16 или FP32 для моделей PyTorch и TorchScript; остальные форматы выполняют вычисления с точностью, выбранной их артефактом и средой выполнения. При 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 | Указывает список идентификаторов классов для оценки. Полезно для фильтрации и фокусировки только на определенных классах во время оценки. |
rect | bool | True | Если True, использует прямоугольный инференс при пакетной обработке, уменьшая дополнение и потенциально повышая скорость и эффективность за счет обработки изображений с исходным соотношением сторон. Не применяется при валидации 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 автоматически включает его в Linux и Windows на CPU x86 с oneDNN и PyTorch 1.13 или новее, False отключает его, а True запрашивает его на поддерживаемых CPU x86 или устройствах CUDA. ARM64, MPS, старые версии PyTorch, CPU без 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'). Не следует путать с парой project/name для именования запусков, используемой другими режимами. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений (например, 640 для 640×640) или кортежем (height, width) для конкретных размеров. Если значение не передано, экспорт использует размер обучения, записанный в загруженной контрольной точке: официальные контрольные точки YOLO26 содержат 768 для depth, 224 для classify, 1024 для OBB и 640 для остальных задач, тогда как дообученная модель сохраняет значение imgsz, с которым она обучалась. У модели, созданной из YAML, размер обучения не записан, поэтому используется 640. |
keras | bool | False | Включает экспорт в формат Keras для TensorFlow SavedModel, обеспечивая совместимость с сервисом TensorFlow и API. |
optimize | bool | False | Включает более высокий уровень оптимизации компилятора для DEEPX, уменьшая задержку инференса и увеличивая время компиляции. |
quantize | int или str | None | Точность квантования: 16 (FP16, уменьшает размер модели и может ускорить инференс на поддерживаемом оборудовании) или 8 (INT8/PTQ, дополнительно сжимает модель с минимальной потерей точности, в основном для краевых устройств; требуется калибровка data/fraction); 32/не задано — это FP32. Чекпоинт, обученный с помощью quantize=8, всегда экспортирует INT8: onnx и engine выполняют экспорт из диапазонов, которые он содержит, без калибровки, а другие форматы или точности отклоняются. Форматы экспорта, поддерживающие смешанную точность весов и активаций, также принимают обозначение 'w8a8'/'w16a16'/'w8a16'/'w8a32'. Заменяет устаревшие флаги half/int8 (half=True → 16, int8=True → 8, по-прежнему принимаются с предупреждением об устаревании). Допускаются только точности, поддерживаемые целевым форматом (см. ниже). |
dynamic | bool | False | Разрешает динамические размеры входных данных для экспортов TorchScript, ONNX, OpenVINO, TensorRT и CoreML, повышая гибкость при работе с изображениями разных размеров. |
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 поддерживает детектирование, сегментацию и позу со статическими формами. См. руководство по сквозному детектированию. |
conf | float | None | Порог уверенности, используемый везде, где создаётся NMS во время экспорта: экспорты nms=True; экспорты обнаружения Hailo без сквозного режима; а также экспорты обнаружения, позы и сегментации IMX, которые внутренне принудительно используют nms=True. Если значение не задано, по умолчанию используется 0.25. |
iou | float | 0.7 | Порог IoU, используемый везде, где создаётся NMS во время экспорта: экспорты nms=True; экспорты обнаружения Hailo без сквозного режима; а также экспорты обнаружения, позы и сегментации IMX, которые внутренне принудительно используют nms=True. |
max_det | int | 300 | Максимальное количество обнаружений, сохраняемых в выводе экспортированной модели. Применяется к экспортам nms=True во всех форматах, кроме детекции CoreML, чей встроенный конвейер NMS не имеет ограничения на количество обнаружений, а также к экспортам детекции "end-to-end" без NMS (YOLO26, YOLOv10, с ограничением до числа доступных анкеров) и экспортам детекции, позы и сегментации 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. Для экспортов Edge TPU автоматически устанавливается значение 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 | Повышает уровень журналирования сборщика TensorRT до VERBOSE во время экспорта format='engine'. Другие форматы экспорта этот параметр игнорируют. |
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 полностью. |
Продуманная конфигурация гарантирует, что экспортированная модель оптимизирована для своего сценария использования и эффективно работает в целевой среде.
Настройки решений#
Настройки конфигурации 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 | int | 90 | Порог угла для позы «вниз». |
blur_ratio | float | 0.5 | Настраивает процент интенсивности размытия; допустимые значения находятся в диапазоне 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Имя каталога для хранения обрезанных детекций. |
records | int | 5 | Общее количество детекций, необходимое для отправки электронного письма системой охранной сигнализации. |
vision_point | tuple[int, int] | (20, 20) | Точка, в которой VisionEye отслеживает объекты и рисует траектории с помощью решения VisionEye. |
source | str | None | Путь к источнику входных данных (видео, RTSP и т. д.). Доступно только через интерфейс командной строки Solutions (CLI). |
figsize | tuple[float, float] | (12.8, 7.2) | Размер рисунка для аналитических диаграмм, таких как тепловые карты или графики. |
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 | Применяет к изображению случайное перспективное преобразование, улучшая способность модели понимать объекты в трёхмерном пространстве. |
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, pose, obb | 0.0 - 1.0 | Объединяет части двух изображений, создавая частичное смешение при сохранении отдельных областей. Повышает устойчивость модели за счёт создания сценариев с перекрытием объектов. |
copy_paste | float | 0 | segment, obb | 0.0 - 1.0 | Доля подходящих объектов, которые вставляются; flip отражает их внутри изображения, а mixup также использует это значение как вероятность применения между изображениями. |
copy_paste_mode | str | flip | segment, 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 см. в разделе Переопределение файла конфигурации по умолчанию. |
Часто задаваемые вопросы#
Повышай производительность, настраивая гиперпараметры, такие как размер батча, скорость обучения, momentum и затухание весов. Настрой параметры аугментации данных, выбери подходящий оптимизатор и используй такие методы, как ранняя остановка или смешанная точность. Подробнее см. в Руководстве по обучению.
К основным гиперпараметрам, влияющим на точность, относятся:
- Размер батча (
batch): Большие значения могут стабилизировать обучение, но требуют больше памяти. - Скорость обучения (
lr0): Меньшие значения обеспечивают более тонкую настройку, но замедляют сходимость. - Momentum (
momentum): Ускоряет движение векторов градиента и уменьшает колебания. - Размер изображения (
imgsz): Большие значения повышают точность, но увеличивают вычислительную нагрузку.
Настрой эти параметры с учётом своего датасета и оборудования. Подробнее см. в разделе Настройки обучения.
- Размер батча (
Скорость обучения (
lr0) имеет решающее значение; начни с0.01для SGD или0.001для оптимизатора Adam. Следи за метриками и при необходимости корректируй значение. Используй планировщики скорости обучения с косинусным затуханием (cos_lr) или разогрев (warmup_epochs,warmup_momentum). Подробнее см. в Руководстве по обучению.Параметры по умолчанию включают:
- Порог уверенности (
conf=0.25): Минимальная уверенность для обнаружений. - Порог IoU (
iou=0.7): Используется для подавления немаксимумов (NMS). - Размер изображения (
imgsz=640): Изменяет размер входных изображений. - Устройство (
device=None): Выбирает CPU, GPU, Apple MPS или NPU Huawei Ascend (npu).
Полный обзор см. в разделах Настройки предсказаний и Руководство по предсказаниям.
- Порог уверенности (
Обучение со смешанной точностью (
amp=True) снижает потребление памяти и ускоряет обучение за счёт использования FP16 и FP32. Этот подход особенно полезен для современных GPU: он позволяет использовать более крупные модели и выполнять вычисления быстрее без существенной потери точности. Подробнее см. в Руководстве по обучению.