Link to this sectionКонфигурация#
Настройки и гиперпараметры YOLO играют критически важную роль в производительности, скорости и точности модели. Эти параметры могут влиять на поведение модели на различных этапах, включая обучение, валидацию и предсказание.
Watch: Mastering Ultralytics YOLO: Configuration
Команды Ultralytics используют следующий синтаксис:
yolo TASK MODE ARGSГде:
TASK(необязательно) — одна из (detect, segment, semantic, classify, pose, obb)MODE(обязательно) — одна из (train, val, predict, export, track, benchmark)ARGS(необязательно) — это парыarg=value, такие какimgsz=640, которые переопределяют значения по умолчанию.
Default ARG values are defined on this page and come from the cfg/default.yaml file.
Link to this sectionЗадачи#
Модели Ultralytics YOLO могут выполнять различные задачи компьютерного зрения, включая:
- Detect: Обнаружение объектов идентифицирует и локализует объекты на изображении или видео.
- Segment: Сегментация экземпляров разделяет изображение или видео на области, соответствующие различным объектам или классам.
- Семантическая сегментация (
semantic): Семантическая сегментация присваивает метку класса каждому пикселю на изображении для плотного понимания сцены. - Classify: Классификация изображений предсказывает метку класса входного изображения.
- Pose: Оценка позы идентифицирует объекты и оценивает их ключевые точки на изображении или видео.
- OBB: Ориентированные ограничивающие рамки используют повернутые ограничивающие рамки, подходящие для спутниковых или медицинских снимков.
| Аргумент | По умолчанию | Описание |
|---|---|---|
task | 'detect' | Указывает задачу YOLO: detect для обнаружения объектов, segment для сегментации экземпляров, semantic для семантической сегментации, classify для классификации, pose для оценки позы и obb для ориентированных ограничивающих рамок. Каждая задача адаптирована к конкретным результатам и проблемам анализа изображений и видео. |
Link to this sectionРежимы#
Модели 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 для оценки производительности. Каждый режим поддерживает различные этапы, от разработки до развертывания. |
Link to this sectionНастройки обучения#
Настройки обучения для моделей YOLO включают гиперпараметры и конфигурации, влияющие на производительность, скорость и точность модели. Ключевые параметры включают размер пакета, скорость обучения, моментум и затухание весов. Выбор оптимизатора, функции потерь и состав набора данных также влияют на обучение. Тюнинг и эксперименты критически важны для оптимальной производительности. Для получения подробной информации см. функцию точки входа Ultralytics.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Указывает файл модели для обучения. Принимает путь либо к предварительно обученной модели .pt, либо к файлу конфигурации .yaml. Необходим для определения структуры модели или инициализации весов. |
data | str | None | Путь к файлу конфигурации набора данных (например, coco8.yaml). Этот файл содержит специфические параметры датасета, включая пути к обучающим и валидационным данным, названия классов и количество классов. |
epochs | int | 100 | Общее количество эпох обучения. Каждая эпоха представляет собой полный проход по всему набору данных. Настройка этого значения может повлиять на продолжительность обучения и производительность модели. |
time | float | None | Максимальное время обучения в часах. Если установлено, это значение переопределяет аргумент epochs, позволяя обучению автоматически остановиться по истечении указанного времени. Полезно для сценариев обучения с ограниченным временем. |
patience | int | 100 | Количество эпох, в течение которых метрики валидации не улучшаются, перед тем как остановить обучение (early stopping). Помогает предотвратить переобучение, останавливая процесс, когда производительность выходит на плато. |
batch | int или float | 16 | Размер пакета (Batch size) с тремя режимами: как целое число (например, 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). Улучшает скорость обучения за счет уменьшения операций ввода-вывода (I/O) диска ценой увеличенного использования оперативной памяти. |
device | int или str или list | None | Указывает вычислительное устройство (или устройства) для обучения: один GPU (device=0), несколько GPU (device=[0,1]), CPU (device=cpu), MPS для Apple Silicon (device=mps), Huawei Ascend NPU (device=npu или device=npu: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, разрешает перезапись существующей директории project/name. Полезно для итеративных экспериментов без необходимости вручную очищать предыдущие результаты. |
pretrained | bool или str | True | Определяет, начинать ли обучение с предварительно обученных весов. Может быть логическим значением или строковым путем к весам для загрузки. pretrained=False запускает обучение со случайной инициализацией весов при сохранении архитектуры модели. |
optimizer | str | 'auto' | Выбор оптимизатора для обучения. Опции включают SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp или auto для автоматического выбора на основе конфигурации модели. Влияет на скорость и стабильность сходимости. |
seed | int | 0 | Устанавливает случайное зерно (seed) для обучения, обеспечивая воспроизводимость результатов между запусками с одинаковыми конфигурациями. |
deterministic | bool | True | Принудительно использует детерминированный алгоритм, обеспечивая воспроизводимость, но это может повлиять на производительность и скорость из-за ограничений на недетерминированные алгоритмы. |
verbose | bool | True | Включает подробный вывод данных во время обучения, отображая индикаторы выполнения, метрики для каждой эпохи и дополнительную информацию об обучении в консоли. |
single_cls | bool | False | Рассматривает все классы в многоклассовых наборах данных как один класс во время обучения. Полезно для задач бинарной классификации или когда ты фокусируешься на наличии объекта, а не на его классификации. |
classes | list[int] | None | Задает список ID классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время обучения. |
rect | bool | False | Включает стратегию минимального заполнения — изображения в пакете минимально дополняются до общего размера, при этом самая длинная сторона равна imgsz. Может улучшить эффективность и скорость, но может повлиять на точность модели. |
multi_scale | float | 0.0 | Случайное изменение imgsz для каждого пакета на +/- multi_scale (например, 0.25 -> от 0.75x до 1.25x), с округлением до кратных значений шага модели; 0.0 отключает многомасштабное обучение. |
cos_lr | bool | False | Использует косинусный планировщик learning rate, корректируя скорость обучения по косинусоиде на протяжении эпох. Помогает управлять скоростью обучения для лучшей сходимости. |
close_mosaic | int | 10 | Отключает data augmentation типа mosaic в последние N эпох для стабилизации обучения перед завершением. Установка 0 отключает эту функцию. |
resume | bool | False | Возобновляет обучение с последней сохраненной контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и счетчик эпох, продолжая обучение без сбоев. |
amp | bool | True | Включает обучение с автоматической Mixed Precision (AMP), уменьшая использование памяти и, возможно, ускоряя обучение при минимальном влиянии на точность. |
fraction | float | 1.0 | Указывает долю набора данных для использования при обучении. Позволяет обучать на подмножестве полного набора данных, что полезно для экспериментов или при ограниченных ресурсах. |
profile | bool | False | Включает профилирование скорости ONNX и TensorRT во время обучения, полезно для оптимизации развертывания модели. |
freeze | int или list | None | Замораживает первые N слоев модели или указанные слои по индексу, уменьшая количество обучаемых параметров. Полезно для донастройки или transfer learning. |
lr0 | float | 0.01 | Начальная скорость обучения (например, SGD=1E-2, Adam=1E-3). Настройка этого значения критически важна для процесса оптимизации, так как она влияет на то, насколько быстро обновляются веса модели. |
lrf | float | 0.01 | Конечная скорость обучения как доля от начальной = (lr0 * lrf), используется вместе с планировщиками для корректировки скорости обучения с течением времени. |
momentum | float | 0.937 | Коэффициент импульса для SGD или beta1 для Adam optimizers, влияющий на учет прошлых градиентов при текущем обновлении. |
weight_decay | float | 0.0005 | Член L2 regularization, штрафующий большие веса для предотвращения переобучения. |
warmup_epochs | float | 3.0 | Количество эпох для разогрева (warmup) скорости обучения, постепенно увеличивающее ее от малого значения до начального для ранней стабилизации обучения. |
warmup_momentum | float | 0.8 | Начальный импульс для фазы разогрева, постепенно корректирующийся до установленного значения в течение периода разогрева. |
warmup_bias_lr | float | 0.1 | Скорость обучения для параметров смещения (bias) во время фазы разогрева, помогающая стабилизировать обучение модели в начальные эпохи. |
box | float | 7.5 | Вес компонента функции потерь box в loss function, влияющий на акцент при точном прогнозировании координат bounding box. |
cls | float | 0.5 | Вес потерь классификации в общей функции потерь, влияющий на важность правильного предсказания класса по отношению к другим компонентам. |
cls_pw | float | 0.0 | Степень для весов классов для борьбы с их дисбалансом с использованием обратной частоты классов. 0.0 отключает взвешивание классов, 1.0 применяет полное обратное частотное взвешивание. Значения от 0 до 1 обеспечивают частичное взвешивание. |
dfl | float | 1.5 | Вес функции распределения focal loss, используемой в определенных версиях YOLO для мелкозернистой классификации. |
pose | float | 12.0 | Вес потерь позы в моделях для оценки позы, влияющий на акцент при точном прогнозировании ключевых точек позы. |
kobj | float | 1.0 | Вес потерь объектности ключевых точек в моделях оценки позы, балансирующий уверенность обнаружения с точностью позы. |
rle | float | 1.0 | Вес потерь остаточной оценки логарифмического правдоподобия в моделях оценки позы, влияющий на точность локализации ключевых точек. |
angle | float | 1.0 | Вес потерь угла в моделях obb, влияющий на точность предсказаний угла ориентированного ограничивающего прямоугольника. |
nbs | int | 64 | Номинальный размер пакета для нормализации потерь. |
overlap_mask | bool | True | Определяет, должны ли маски объектов объединяться в одну общую маску для обучения или оставаться отдельными для каждого объекта. В случае перекрытия, меньшая маска накладывается поверх большей при объединении. |
mask_ratio | int | 4 | Коэффициент уменьшения разрешения (downsample) для масок сегментации, влияющий на разрешение масок, используемых при обучении. |
dropout | float | 0.0 | Коэффициент исключения (dropout) для регуляризации в задачах классификации, предотвращающий переобучение путем случайного исключения единиц во время обучения. |
val | bool | True | Включает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных. |
plots | bool | True | Генерирует и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и прогрессе обучения. |
compile | bool или str | False | Включает компиляцию графа PyTorch 2.x torch.compile с backend='inductor'. Принимает True → "default", False → отключает, или строковый режим, такой как "default", "reduce-overhead", "max-autotune-no-cudagraphs". При отсутствии поддержки возвращается к режиму eager с предупреждением. |
max_det | int | 300 | Указывает максимальное количество объектов, сохраняемых во время фазы валидации обучения. |
Аргумент batch предлагает три варианта настройки:
- Фиксированный размер пакета: Укажи количество изображений на пакет с помощью целого числа (например,
batch=16). - Автоматический режим (60% памяти GPU): Используй
batch=-1для автоматической настройки до примерно 60% использования памяти CUDA. - Автоматический режим с долей использования: Установи долю (например,
batch=0.70) для настройки на основе указанного объема использования памяти GPU.
Link to this sectionНастройки предсказания#
Настройки предсказания для моделей YOLO включают гиперпараметры и конфигурации, которые влияют на производительность, скорость и точность во время инференса. Ключевые настройки включают порог уверенности, порог немаксимального подавления (NMS) и количество классов. Размер входных данных, формат и дополнительные функции, такие как маски, также влияют на предсказания. Настройка этих параметров важна для достижения оптимальной производительности.
Аргументы инференса:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
source | str или int или None | None | Указывает источник данных для инференса. Это может быть путь к изображению, видеофайл, директория, URL или ID устройства для прямых трансляций. Если пропущено, записывается предупреждение, и модель переключается на встроенные демо-ресурсы (ultralytics/assets или демо URL для OBB). Поддерживает широкий спектр форматов и источников, обеспечивая гибкое применение для различных типов входных данных. |
conf | float | 0.25 | Устанавливает минимальный порог уверенности для обнаружений. Объекты, обнаруженные с уверенностью ниже этого порога, будут игнорироваться. Настройка этого значения может помочь снизить количество ложноположительных результатов. |
iou | float | 0.7 | Порог Intersection Over Union (IoU) для немаксимального подавления (NMS). Меньшие значения приводят к меньшему количеству обнаружений за счет устранения перекрывающихся рамок, что полезно для уменьшения дубликатов. |
imgsz | int или tuple | 640 | Цель Letterbox. Целое число дает квадрат N×N; кортеж дает (height, width). При rect=True фактический тензор может быть меньше этой цели из-за заполнения до минимального прямоугольника. Используй rect=False для фиксированного размера. См. Фиксированная форма против минимального прямоугольника. |
rect | bool | True | Если True, используй заполнение до минимального прямоугольника, когда это возможно (пакет одинаковой формы и поддерживаемый бэкенд). Если False, всегда дополняй до полного imgsz. См. Фиксированная форма против минимального прямоугольника. |
half | bool | False | Включает инференс с полуточностью (FP16), что может ускорить работу модели на поддерживаемых GPU с минимальным влиянием на точность. |
device | str | None | Указывает устройство для инференса (например, cpu, cuda:0, 0, npu или npu:0). Позволяет пользователям выбирать между CPU, конкретным GPU, NPU Huawei Ascend или другими вычислительными устройствами для выполнения модели. |
batch | int | 1 | Указывает размер пакета для инференса (работает только если источник — директория, видеофайл или .txt файл). Больший размер пакета может обеспечить более высокую пропускную способность, сокращая общее время, необходимое для инференса. |
max_det | int | 300 | Максимальное количество разрешенных обнаружений на изображение. Ограничивает общее количество объектов, которые модель может обнаружить за один инференс, предотвращая чрезмерные выходы в плотных сценах. |
vid_stride | int | 1 | Шаг кадров для видеовходов. Позволяет пропускать кадры в видео для ускорения обработки за счет временного разрешения. Значение 1 обрабатывает каждый кадр, большие значения пропускают кадры. |
stream_buffer | bool | False | Определяет, нужно ли ставить в очередь входящие кадры для видеопотоков. Если False, старые кадры отбрасываются, чтобы освободить место для новых (оптимизировано для приложений реального времени). Если True, новые кадры ставятся в очередь, гарантируя, что ни один кадр не будет пропущен, но это вызовет задержку, если FPS инференса ниже, чем FPS потока. |
visualize | bool | False | Активирует визуализацию признаков модели во время инференса, предоставляя понимание того, что «видит» модель. Полезно для отладки и интерпретации модели. |
augment | bool | False | Включает аугментацию во время тестирования (TTA) для предсказаний, что потенциально повышает надежность обнаружения за счет скорости инференса. |
agnostic_nms | bool | False | Включает классово-агностическое немаксимальное подавление (NMS), которое объединяет перекрывающиеся рамки разных классов. Полезно в сценариях многоклассового обнаружения, где часто встречается пересечение классов. Для end-to-end моделей (YOLO26, YOLOv10) это предотвращает появление одного и того же обнаружения с несколькими метками классов (дубликаты IoU=1.0) и не выполняет подавление на основе порога IoU между отдельными рамками. |
classes | list[int] | None | Фильтрует предсказания по набору ID классов. Будут возвращены только обнаружения, принадлежащие указанным классам. Полезно для фокусировки на релевантных объектах в задачах многоклассового обнаружения. |
retina_masks | bool | False | Возвращает маски сегментации высокого разрешения. Возвращаемые маски (masks.data) будут соответствовать исходному размеру изображения, если включено. Если выключено, они имеют размер изображения, использованный во время инференса. |
embed | list[int] | None | Указывает слои, из которых нужно извлекать векторы признаков или эмбеддинги. Полезно для последующих задач, таких как кластеризация или поиск по сходству. |
project | str | None | Имя директории проекта, куда сохраняются выходы предсказаний, если включен save. |
name | str | None | Имя запуска предсказания. Используется для создания поддиректории внутри папки проекта, где сохраняются выходы предсказаний, если включен save. |
stream | bool | False | Включает эффективную с точки зрения памяти обработку для длинных видео или многочисленных изображений, возвращая генератор объектов Results вместо загрузки всех кадров в память одновременно. |
verbose | bool | True | Контролирует отображение подробных логов инференса в терминале, предоставляя обратную связь о процессе предсказания в режиме реального времени. |
compile | bool или str | False | Включает компиляцию графа PyTorch 2.x torch.compile с backend='inductor'. Принимает True → "default", False → отключает, или строковый режим, такой как "default", "reduce-overhead", "max-autotune-no-cudagraphs". При отсутствии поддержки возвращается к режиму eager с предупреждением. |
end2end | bool | None | Переопределяет режим end-to-end в моделях YOLO, которые поддерживают инференс без NMS (YOLO26, YOLOv10). Установка в False позволяет выполнять предсказание с использованием традиционного конвейера NMS, дополнительно позволяя использовать аргумент iou. См. руководство по End-to-End детекции для получения подробностей. |
Аргументы визуализации:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
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, ширина линии автоматически подстраивается под размер изображения. Обеспечивает визуальную настройку для ясности. |
Link to this sectionНастройки валидации#
Настройки валидации для моделей YOLO включают гиперпараметры и конфигурации для оценки производительности на валидационном наборе данных. Эти настройки влияют на производительность, скорость и точность. Общие настройки включают размер пакета, частоту валидации и метрики производительности. Размер и состав валидационного набора, а также конкретная задача, также влияют на процесс.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
data | str | None | Указывает путь к файлу конфигурации набора данных (например, coco8.yaml). Этот файл должен содержать путь к валидационным данным. |
imgsz | int | 640 | Определяет размер входных изображений. Все изображения изменяются до этого размера перед обработкой. Большие размеры могут улучшить точность для маленьких объектов, но увеличивают время вычислений. |
batch | int | 16 | Устанавливает количество изображений на пакет. Более высокие значения более эффективно используют память GPU, но требуют больше VRAM. Регулируй в зависимости от имеющихся аппаратных ресурсов. |
save_json | bool | False | Если True, сохраняет результаты в JSON-файл для дальнейшего анализа, интеграции с другими инструментами или отправки на серверы оценки, такие как COCO. |
conf | float | 0.001 | Устанавливает минимальный порог уверенности для обнаружений. Меньшие значения увеличивают полноту (recall), но могут привести к большему количеству ложноположительных результатов. Используется во время валидации для вычисления кривых точности-полноты. По умолчанию 0.01 для валидации OBB для снижения использования памяти. |
iou | float | 0.7 | Устанавливает порог Intersection Over Union для немаксимального подавления. Контролирует устранение дублирующихся обнаружений. |
max_det | int | 300 | Ограничивает максимальное количество обнаружений на изображение. Полезно в плотных сценах для предотвращения чрезмерного количества обнаружений и управления вычислительными ресурсами. |
half | bool | False | Включает вычисления с полуточностью (FP16), снижая использование памяти и потенциально увеличивая скорость с минимальным влиянием на точность. |
device | str | None | Указывает устройство для валидации (cpu, cuda:0, npu, npu:0 и т.д.). Когда None, автоматически выбирается лучшее доступное устройство. Несколько устройств CUDA можно указать через запятую. |
dnn | bool | False | Если True, использует модуль DNN библиотеки OpenCV для инференса модели ONNX, предлагая альтернативу методам инференса PyTorch. |
plots | bool | True | Если установлено значение True, генерирует и сохраняет графики предсказаний по сравнению с эталонными данными (ground truth), матрицы ошибок и PR-кривые для визуальной оценки производительности модели. |
classes | list[int] | None | Указывает список ID классов для оценки. Полезно для фильтрации и концентрации внимания только на определенных классах во время оценки. |
rect | bool | True | Если True, использует прямоугольный вывод (rectangular inference) для формирования батчей, что уменьшает дополнение (padding) и потенциально увеличивает скорость и эффективность за счет обработки изображений в их исходном соотношении сторон. |
split | str | 'val' | Определяет, какой сегмент набора данных использовать для валидации (val, test или train). Обеспечивает гибкость в выборе части данных для оценки производительности. |
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) в процессе валидации, потенциально улучшая точность детекции ценой скорости вывода за счет запуска модели на трансформированных версиях входных данных. |
agnostic_nms | bool | False | Включает класс-агностическое Non-Maximum Suppression, которое объединяет перекрывающиеся рамки независимо от их предсказанного класса. Полезно для задач, сфокусированных на экземплярах. Для моделей end-to-end (YOLO26, YOLOv10) это предотвращает появление одной и той же детекции с разными метками классов (дубликаты при IoU=1.0) и не выполняет подавление на основе IoU-порога между различными рамками. |
single_cls | bool | False | Во время валидации рассматривает все классы как один единственный класс. Полезно для оценки производительности модели на задачах бинарной детекции или когда различия между классами не важны. |
visualize | bool | False | Визуализирует ground truths, true positives, false positives и false negatives для каждого изображения. Полезно для отладки и интерпретации модели. |
show_labels | bool | True | Отображает метки классов на визуализациях валидации, если visualize=True. Установи False для более чистого вида совпадений и ошибок. |
show_conf | bool | True | Отображает оценки уверенности на визуализациях валидации, если visualize=True. Установи False для более чистого вида совпадений и ошибок. |
compile | bool или str | False | Включает компиляцию графа PyTorch 2.x torch.compile с backend='inductor'. Принимает True → "default", False → отключает, или строковый режим, такой как "default", "reduce-overhead", "max-autotune-no-cudagraphs". При отсутствии поддержки возвращается к режиму eager с предупреждением. |
end2end | bool | None | Переопределяет режим end-to-end в моделях YOLO, поддерживающих NMS-free вывод (YOLO26, YOLOv10). Установка значения False позволяет выполнять валидацию с использованием традиционного NMS-конвейера, дополнительно позволяя использовать аргумент iou. |
Тщательная настройка и эксперименты крайне важны для обеспечения оптимальной производительности, а также для обнаружения и предотвращения overfitting.
Link to this sectionНастройки экспорта#
Настройки экспорта для моделей YOLO включают конфигурации для сохранения или экспорта модели для использования в различных средах. Эти параметры влияют на производительность, размер и совместимость. Ключевые настройки включают формат выходного файла (например, ONNX, TensorFlow SavedModel), целевое устройство (например, CPU, GPU) и функции, такие как маски. Задача модели и ограничения целевой среды также влияют на процесс экспорта.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'torchscript' | Целевой формат для экспортированной модели, такой как 'onnx', 'torchscript', 'engine' (TensorRT) или другие. Каждый формат обеспечивает совместимость с различными средами развертывания. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений (например, 640 для 640×640) или кортежем (height, width) для задания конкретных размеров. |
keras | bool | False | Включает экспорт в формат Keras для TensorFlow SavedModel, обеспечивая совместимость с TensorFlow serving и API. |
optimize | bool | False | Применяет оптимизацию для мобильных устройств при экспорте в TorchScript, что потенциально уменьшает размер модели и улучшает производительность инференса. Несовместимо с форматом NCNN или устройствами с CUDA. Для DEEPX включает более глубокую оптимизацию компилятора, что снижает задержку инференса, но увеличивает время компиляции. |
half | bool | False | Включает квантование FP16 (половинной точности), уменьшая размер модели и потенциально ускоряя инференс на поддерживаемом оборудовании. Несовместимо с квантованием INT8 или экспортом только для CPU. Доступно только для некоторых форматов, например ONNX (см. ниже). |
int8 | bool | False | Активирует квантование INT8, дополнительно сжимая модель и ускоряя инференс с минимальной потерей точности, преимущественно для периферийных устройств. В TensorRT 11+ используется явное квантование Q/DQ через ModelOpt; в TensorRT 7-10 используется PTQ с калибратором. |
dynamic | bool | False | Разрешает использование динамических размеров входных данных для экспорта в TorchScript, ONNX, OpenVINO, TensorRT и CoreML, повышая гибкость при обработке изображений разных размеров. |
simplify | bool | True | Упрощает граф модели для экспорта в ONNX с помощью onnxslim, что потенциально улучшает производительность и совместимость с движками инференса. |
opset | int | None | Указывает версию opset для ONNX для совместимости с различными ONNX парсерами и средами исполнения. Если не задано, используется последняя поддерживаемая версия. |
workspace | float или None | None | Устанавливает максимальный размер рабочего пространства в ГБ для оптимизаций TensorRT, балансируя использование памяти и производительность. Используй None для автоматического распределения ресурса движком TensorRT вплоть до максимума устройства. |
nms | bool | False | Добавляет подавление немаксимумов (NMS) в экспортированную модель там, где это поддерживается (см. Форматы экспорта), улучшая эффективность постобработки обнаружения. Недоступно для моделей end2end. |
batch | int | 1 | Указывает размер пакета для инференса или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. Для экспорта в Edge TPU устанавливается автоматически равным 1. |
device | str | None | Указывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для процессоров Apple silicon (device=mps), Huawei Ascend NPU (device=npu или device=npu:0) или DLA для NVIDIA Jetson (device=dla:0 или device=dla:1). При экспорте в TensorRT автоматически используется GPU, но TensorRT 11.0 не поддерживает DLA. |
data | str | 'coco8.yaml' | Путь к файлу конфигурации датасета, необходимому для калибровки квантования INT8. Если не указан при включенном INT8, в качестве резервного варианта для калибровки будет использован coco8.yaml. |
fraction | float | 1.0 | Указывает часть датасета, которую нужно использовать для калибровки квантования INT8. Позволяет выполнять калибровку на подмножестве полного датасета, что полезно для экспериментов или при ограниченных ресурсах. Если не указано при включенном INT8, будет использован весь датасет. |
end2end | bool | None | Переопределяет режим end-to-end в моделях YOLO, которые поддерживают инференс без NMS (YOLO26, YOLOv10). Установка значения False позволяет экспортировать эти модели для совместимости с традиционным конвейером постобработки на основе NMS. Подробности см. в Руководстве по сквозному обнаружению. |
Продуманная конфигурация гарантирует, что экспортированная модель оптимизирована для конкретного случая использования и эффективно функционирует в целевой среде.
Link to this sectionНастройки решений#
Конфигурационные настройки решений Ultralytics предлагают гибкость для адаптации моделей под такие задачи, как подсчет объектов, создание тепловых карт, отслеживание тренировок, анализ данных, отслеживание зон, управление очередями и подсчет на основе регионов. Эти параметры позволяют легко вносить коррективы для получения точных и полезных результатов, адаптированных под твои конкретные нужды.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Список точек, определяющих область подсчета. |
show_in | bool | True | Флаг для управления отображением входящих объектов в потоке видео. |
show_out | bool | True | Флаг для управления отображением выходящих объектов в потоке видео. |
analytics_type | str | 'line' | Тип графика, например, line, bar, area или pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Цветовая карта для использования в тепловой карте. |
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. |
source | str | None | Путь к входному источнику (видео, RTSP и т. д.). Используется только с интерфейсом командной строки (CLI) решений. |
figsize | tuple[int, int] | (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 | Размер входного изображения для вывода модели. |
Link to this sectionНастройки аугментации#
Методы аугментации данных необходимы для повышения надежности и производительности модели YOLO путем внесения вариативности в обучающие данные, что помогает модели лучше обобщать новые данные. В следующей таблице описаны цели и эффекты каждого аргумента аугментации:
| Аргумент | Тип | По умолчанию | Поддерживаемые задачи | Диапазон | Описание |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Корректирует цветовой тон изображения на долю цветового круга, внося вариативность цветов. Помогает модели обобщать данные при различных условиях освещения. |
hsv_s | float | 0.7 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Изменяет насыщенность изображения на долю, влияя на интенсивность цветов. Полезно для симуляции различных условий окружающей среды. |
hsv_v | float | 0.4 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Модифицирует значение (яркость) изображения на долю, помогая модели хорошо работать при различных условиях освещения. |
degrees | float | 0 | detect, segment, pose, obb | 0.0 - 180 | Случайно поворачивает изображение в заданном диапазоне градусов, улучшая способность модели распознавать объекты в различных ориентациях. |
translate | float | 0.1 | detect, segment, pose, obb | 0.0 - 1.0 | Сдвигает изображение по горизонтали и вертикали на часть размера изображения, помогая учиться обнаруживать частично видимые объекты. |
scale | float | 0.5 | detect, segment, pose, obb, classify | 0 - 1 | Масштабирует изображение с коэффициентом усиления, имитируя объекты на разном расстоянии от камеры. |
shear | float | 0 | detect, segment, pose, obb | -180 - +180 | Наклоняет изображение на заданный градус, имитируя эффект просмотра объектов под разными углами. |
perspective | float | 0 | detect, segment, pose, obb | 0.0 - 0.001 | Применяет случайное перспективное преобразование к изображению, улучшая способность модели понимать объекты в 3D-пространстве. |
flipud | float | 0 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Переворачивает изображение вверх ногами с заданной вероятностью, увеличивая вариативность данных, не затрагивая характеристики объекта. |
fliplr | float | 0.5 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Переворачивает изображение слева направо с заданной вероятностью, что полезно для изучения симметричных объектов и повышения разнообразия набора данных. |
bgr | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Меняет каналы изображения с RGB на BGR с заданной вероятностью, полезно для повышения устойчивости к неправильному порядку каналов. |
mosaic | float | 1 | detect, segment, pose, obb | 0.0 - 1.0 | Объединяет четыре изображения для обучения в одно, имитируя различные композиции сцен и взаимодействия объектов. Очень эффективно для понимания сложных сцен. |
mixup | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Смешивает два изображения и их метки, создавая составное изображение. Улучшает способность модели к обобщению за счет внесения шума в метки и визуальной вариативности. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Объединяет части двух изображений, создавая частичное смешение при сохранении отдельных областей. Повышает устойчивость модели за счет создания сценариев окклюзии. |
copy_paste | float | 0 | segment | 0.0 - 1.0 | Копирует и вставляет объекты между изображениями, чтобы увеличить количество экземпляров объектов. |
copy_paste_mode | str | flip | segment | - | Указывает стратегию copy-paste. Доступные варианты: 'flip' и 'mixup'. |
auto_augment | str | randaugment | classify | - | Применяет предопределенную политику аугментации ('randaugment', 'autoaugment' или 'augmix') для улучшения производительности модели за счет визуального разнообразия. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Случайным образом стирает области изображения во время обучения, чтобы побудить модель фокусироваться на менее очевидных признаках. |
augmentations | list | `` | detect, segment, pose, obb | - | Пользовательские преобразования Albumentations для продвинутой аугментации данных (только через Python API). Принимает список объектов преобразования для специализированных задач аугментации. |
Настрой эти параметры под требования своего набора данных и задачи. Эксперименты с различными значениями помогут найти оптимальную стратегию аугментации для наилучшей производительности модели.
Link to this sectionНастройки логирования, чекпоинтов и построения графиков#
Логирование, чекпоинты, построение графиков и управление файлами важны при обучении модели YOLO:
- Логирование: Отслеживай прогресс модели и диагностируй проблемы, используя такие библиотеки, как TensorBoard, или записывая данные в файл.
- Чекпоинты: Сохраняй модель через регулярные интервалы, чтобы возобновить обучение или поэкспериментировать с разными конфигурациями.
- Построение графиков: Визуализируй производительность и прогресс обучения, используя библиотеки типа Matplotlib или TensorBoard.
- Управление файлами: Организуй файлы, созданные во время обучения, такие как чекпоинты, лог-файлы и графики, для легкого доступа и анализа.
Эффективное управление этими аспектами помогает отслеживать прогресс и облегчает отладку и оптимизацию.
| Аргумент | По умолчанию | Описание |
|---|---|---|
project | None | Указывает корневую директорию для сохранения прогонов обучения. Если не указано, прогоны сохраняются в runs/<task>. Каждый прогон сохраняется в отдельную подпапку. |
name | None | Определяет имя эксперимента. Если не указано, YOLO использует имя режима и увеличивает его для каждого прогона (например, train, train-2), чтобы избежать перезаписи. |
exist_ok | False | Определяет, нужно ли перезаписывать существующую директорию эксперимента. True позволяет перезапись; False предотвращает её. |
plots | True | Управляет генерацией и сохранением графиков обучения и валидации. Установи True для создания графиков, таких как кривые потерь, кривые precision-recall и примеры предсказаний для визуального отслеживания производительности. |
save | True | Включает сохранение чекпоинтов обучения и финальных весов модели. Установи True для периодического сохранения состояний модели, что позволяет возобновить обучение или развернуть модель. |
Link to this sectionПользовательский конфигурационный файл#
Загрузи сохраненный YAML, чтобы использовать полный набор аргументов без передачи их в командной строке. Аргумент cfg переопределяет значения из default.yaml, в то время как дополнительные аргументы, переданные вместе с ним, по-прежнему имеют приоритет.
| Аргумент | По умолчанию | Описание |
|---|---|---|
cfg | None | Путь к YAML-файлу, значения которого заменяют записи default.yaml. См. Переопределение файла конфигурации по умолчанию для примера работы в CLI. |
Link to this sectionFAQ#
Link to this sectionКак мне улучшить производительность моей модели YOLO во время обучения?#
Улучшай производительность путем настройки гиперпараметров, таких как размер батча, скорость обучения, моментум и weight decay. Регулируй настройки аугментации данных, выбирай подходящий оптимизатор и используй такие методы, как ранняя остановка (early stopping) или смешанная точность. Для подробностей см. Руководство по обучению.
Link to this sectionКаковы ключевые гиперпараметры для точности модели YOLO?#
Ключевые гиперпараметры, влияющие на точность, включают:
- Размер батча (
batch): Большие размеры могут стабилизировать обучение, но требуют больше памяти. - Скорость обучения (
lr0): Меньшие значения предлагают более тонкую настройку, но более медленную сходимость. - Моментум (
momentum): Ускоряет векторы градиента, гася осцилляции. - Размер изображения (
imgsz): Большие размеры улучшают точность, но увеличивают вычислительную нагрузку.
Настрой эти параметры исходя из своего набора данных и оборудования. Узнай больше в Настройках обучения.
Link to this sectionКак задать скорость обучения для тренировки модели YOLO?#
Скорость обучения (lr0) критически важна; начни с 0.01 для SGD или 0.001 для оптимизатора Adam. Мониторь метрики и регулируй по необходимости. Используй планировщики косинусной скорости обучения (cos_lr) или warmup (warmup_epochs, warmup_momentum). Подробности — в Руководстве по обучению.
Link to this sectionКаковы настройки вывода (инференса) по умолчанию для моделей YOLO?#
Настройки по умолчанию включают:
- Порог уверенности (
conf=0.25): Минимальная уверенность для детекций. - Порог IoU (
iou=0.7): Для Non-Maximum Suppression (NMS). - Размер изображения (
imgsz=640): Изменяет размер входящих изображений. - Устройство (
device=None): Выбирает CPU, GPU, Apple MPS или Huawei Ascend NPU (npu).
Для полного обзора см. Настройки предсказания и Руководство по предсказанию.
Link to this sectionЗачем использовать обучение со смешанной точностью (mixed precision) для моделей YOLO?#
Обучение со смешанной точностью (amp=True) снижает использование памяти и ускоряет обучение, используя FP16 и FP32. Это выгодно для современных GPU, позволяя использовать большие модели и более быстрые вычисления без значительной потери точности. Узнай больше в Руководстве по обучению.