Meet YOLO26: next-gen vision AI.

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 могут выполнять различные задачи компьютерного зрения, включая:

АргументПо умолчаниюОписание
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.

АргументТипПо умолчаниюОписание
modelstrNoneУказывает файл модели для обучения. Принимает путь либо к предварительно обученной модели .pt, либо к файлу конфигурации .yaml. Необходим для определения структуры модели или инициализации весов.
datastrNoneПуть к файлу конфигурации набора данных (например, coco8.yaml). Этот файл содержит специфические параметры датасета, включая пути к обучающим и валидационным данным, названия классов и количество классов.
epochsint100Общее количество эпох обучения. Каждая эпоха представляет собой полный проход по всему набору данных. Настройка этого значения может повлиять на продолжительность обучения и производительность модели.
timefloatNoneМаксимальное время обучения в часах. Если установлено, это значение переопределяет аргумент epochs, позволяя обучению автоматически остановиться по истечении указанного времени. Полезно для сценариев обучения с ограниченным временем.
patienceint100Количество эпох, в течение которых метрики валидации не улучшаются, перед тем как остановить обучение (early stopping). Помогает предотвратить переобучение, останавливая процесс, когда производительность выходит на плато.
batchint или float16Размер пакета (Batch size) с тремя режимами: как целое число (например, batch=16), авторежим для 60% загрузки видеопамяти GPU (batch=-1) или авторежим с указанной долей использования (batch=0.70).
imgszint640Целевой размер изображения для обучения. Изображения меняют размер до квадратов со сторонами, равными указанному значению (если rect=False), сохраняя соотношение сторон для моделей YOLO, но не для RT-DETR. Влияет на точность модели и вычислительную сложность.
saveboolTrueВключает сохранение контрольных точек обучения и финальных весов модели. Полезно для возобновления обучения или развертывания модели.
save_periodint-1Периодичность сохранения контрольных точек модели в эпохах. Значение -1 отключает эту функцию. Полезно для сохранения промежуточных моделей во время длительных сеансов обучения.
cacheboolFalseВключает кэширование изображений датасета в памяти (True/ram), на диске (disk) или отключает его (False). Улучшает скорость обучения за счет уменьшения операций ввода-вывода (I/O) диска ценой увеличенного использования оперативной памяти.
deviceint или str или listNoneУказывает вычислительное устройство (или устройства) для обучения: один 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])
workersint8Количество потоков-воркеров для загрузки данных (на каждый RANK при обучении на нескольких GPU). Влияет на скорость предобработки данных и их передачи в модель; особенно полезно в конфигурациях с несколькими GPU.
projectstrNoneИмя директории проекта, куда сохраняются результаты обучения. Позволяет организованно хранить различные эксперименты.
namestrNoneИмя запуска обучения. Используется для создания подпапки внутри папки проекта, где хранятся логи и результаты обучения.
exist_okboolFalseЕсли True, разрешает перезапись существующей директории project/name. Полезно для итеративных экспериментов без необходимости вручную очищать предыдущие результаты.
pretrainedbool или strTrueОпределяет, начинать ли обучение с предварительно обученных весов. Может быть логическим значением или строковым путем к весам для загрузки. pretrained=False запускает обучение со случайной инициализацией весов при сохранении архитектуры модели.
optimizerstr'auto'Выбор оптимизатора для обучения. Опции включают SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp или auto для автоматического выбора на основе конфигурации модели. Влияет на скорость и стабильность сходимости.
seedint0Устанавливает случайное зерно (seed) для обучения, обеспечивая воспроизводимость результатов между запусками с одинаковыми конфигурациями.
deterministicboolTrueПринудительно использует детерминированный алгоритм, обеспечивая воспроизводимость, но это может повлиять на производительность и скорость из-за ограничений на недетерминированные алгоритмы.
verboseboolTrueВключает подробный вывод данных во время обучения, отображая индикаторы выполнения, метрики для каждой эпохи и дополнительную информацию об обучении в консоли.
single_clsboolFalseРассматривает все классы в многоклассовых наборах данных как один класс во время обучения. Полезно для задач бинарной классификации или когда ты фокусируешься на наличии объекта, а не на его классификации.
classeslist[int]NoneЗадает список ID классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время обучения.
rectboolFalseВключает стратегию минимального заполнения — изображения в пакете минимально дополняются до общего размера, при этом самая длинная сторона равна imgsz. Может улучшить эффективность и скорость, но может повлиять на точность модели.
multi_scalefloat0.0Случайное изменение imgsz для каждого пакета на +/- multi_scale (например, 0.25 -> от 0.75x до 1.25x), с округлением до кратных значений шага модели; 0.0 отключает многомасштабное обучение.
cos_lrboolFalseИспользует косинусный планировщик learning rate, корректируя скорость обучения по косинусоиде на протяжении эпох. Помогает управлять скоростью обучения для лучшей сходимости.
close_mosaicint10Отключает data augmentation типа mosaic в последние N эпох для стабилизации обучения перед завершением. Установка 0 отключает эту функцию.
resumeboolFalseВозобновляет обучение с последней сохраненной контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и счетчик эпох, продолжая обучение без сбоев.
ampboolTrueВключает обучение с автоматической Mixed Precision (AMP), уменьшая использование памяти и, возможно, ускоряя обучение при минимальном влиянии на точность.
fractionfloat1.0Указывает долю набора данных для использования при обучении. Позволяет обучать на подмножестве полного набора данных, что полезно для экспериментов или при ограниченных ресурсах.
profileboolFalseВключает профилирование скорости ONNX и TensorRT во время обучения, полезно для оптимизации развертывания модели.
freezeint или listNoneЗамораживает первые N слоев модели или указанные слои по индексу, уменьшая количество обучаемых параметров. Полезно для донастройки или transfer learning.
lr0float0.01Начальная скорость обучения (например, SGD=1E-2, Adam=1E-3). Настройка этого значения критически важна для процесса оптимизации, так как она влияет на то, насколько быстро обновляются веса модели.
lrffloat0.01Конечная скорость обучения как доля от начальной = (lr0 * lrf), используется вместе с планировщиками для корректировки скорости обучения с течением времени.
momentumfloat0.937Коэффициент импульса для SGD или beta1 для Adam optimizers, влияющий на учет прошлых градиентов при текущем обновлении.
weight_decayfloat0.0005Член L2 regularization, штрафующий большие веса для предотвращения переобучения.
warmup_epochsfloat3.0Количество эпох для разогрева (warmup) скорости обучения, постепенно увеличивающее ее от малого значения до начального для ранней стабилизации обучения.
warmup_momentumfloat0.8Начальный импульс для фазы разогрева, постепенно корректирующийся до установленного значения в течение периода разогрева.
warmup_bias_lrfloat0.1Скорость обучения для параметров смещения (bias) во время фазы разогрева, помогающая стабилизировать обучение модели в начальные эпохи.
boxfloat7.5Вес компонента функции потерь box в loss function, влияющий на акцент при точном прогнозировании координат bounding box.
clsfloat0.5Вес потерь классификации в общей функции потерь, влияющий на важность правильного предсказания класса по отношению к другим компонентам.
cls_pwfloat0.0Степень для весов классов для борьбы с их дисбалансом с использованием обратной частоты классов. 0.0 отключает взвешивание классов, 1.0 применяет полное обратное частотное взвешивание. Значения от 0 до 1 обеспечивают частичное взвешивание.
dflfloat1.5Вес функции распределения focal loss, используемой в определенных версиях YOLO для мелкозернистой классификации.
posefloat12.0Вес потерь позы в моделях для оценки позы, влияющий на акцент при точном прогнозировании ключевых точек позы.
kobjfloat1.0Вес потерь объектности ключевых точек в моделях оценки позы, балансирующий уверенность обнаружения с точностью позы.
rlefloat1.0Вес потерь остаточной оценки логарифмического правдоподобия в моделях оценки позы, влияющий на точность локализации ключевых точек.
anglefloat1.0Вес потерь угла в моделях obb, влияющий на точность предсказаний угла ориентированного ограничивающего прямоугольника.
nbsint64Номинальный размер пакета для нормализации потерь.
overlap_maskboolTrueОпределяет, должны ли маски объектов объединяться в одну общую маску для обучения или оставаться отдельными для каждого объекта. В случае перекрытия, меньшая маска накладывается поверх большей при объединении.
mask_ratioint4Коэффициент уменьшения разрешения (downsample) для масок сегментации, влияющий на разрешение масок, используемых при обучении.
dropoutfloat0.0Коэффициент исключения (dropout) для регуляризации в задачах классификации, предотвращающий переобучение путем случайного исключения единиц во время обучения.
valboolTrueВключает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных.
plotsboolTrueГенерирует и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и прогрессе обучения.
compilebool или strFalseВключает компиляцию графа PyTorch 2.x torch.compile с backend='inductor'. Принимает True"default", False → отключает, или строковый режим, такой как "default", "reduce-overhead", "max-autotune-no-cudagraphs". При отсутствии поддержки возвращается к режиму eager с предупреждением.
max_detint300Указывает максимальное количество объектов, сохраняемых во время фазы валидации обучения.
Примечание по настройкам размера пакета (Batch-size)

Аргумент batch предлагает три варианта настройки:

  • Фиксированный размер пакета: Укажи количество изображений на пакет с помощью целого числа (например, batch=16).
  • Автоматический режим (60% памяти GPU): Используй batch=-1 для автоматической настройки до примерно 60% использования памяти CUDA.
  • Автоматический режим с долей использования: Установи долю (например, batch=0.70) для настройки на основе указанного объема использования памяти GPU.

Руководство по обучению

Link to this sectionНастройки предсказания#

Настройки предсказания для моделей YOLO включают гиперпараметры и конфигурации, которые влияют на производительность, скорость и точность во время инференса. Ключевые настройки включают порог уверенности, порог немаксимального подавления (NMS) и количество классов. Размер входных данных, формат и дополнительные функции, такие как маски, также влияют на предсказания. Настройка этих параметров важна для достижения оптимальной производительности.

Аргументы инференса:

АргументТипПо умолчаниюОписание
sourcestr или int или NoneNoneУказывает источник данных для инференса. Это может быть путь к изображению, видеофайл, директория, URL или ID устройства для прямых трансляций. Если пропущено, записывается предупреждение, и модель переключается на встроенные демо-ресурсы (ultralytics/assets или демо URL для OBB). Поддерживает широкий спектр форматов и источников, обеспечивая гибкое применение для различных типов входных данных.
conffloat0.25Устанавливает минимальный порог уверенности для обнаружений. Объекты, обнаруженные с уверенностью ниже этого порога, будут игнорироваться. Настройка этого значения может помочь снизить количество ложноположительных результатов.
ioufloat0.7Порог Intersection Over Union (IoU) для немаксимального подавления (NMS). Меньшие значения приводят к меньшему количеству обнаружений за счет устранения перекрывающихся рамок, что полезно для уменьшения дубликатов.
imgszint или tuple640Цель Letterbox. Целое число дает квадрат N×N; кортеж дает (height, width). При rect=True фактический тензор может быть меньше этой цели из-за заполнения до минимального прямоугольника. Используй rect=False для фиксированного размера. См. Фиксированная форма против минимального прямоугольника.
rectboolTrueЕсли True, используй заполнение до минимального прямоугольника, когда это возможно (пакет одинаковой формы и поддерживаемый бэкенд). Если False, всегда дополняй до полного imgsz. См. Фиксированная форма против минимального прямоугольника.
halfboolFalseВключает инференс с полуточностью (FP16), что может ускорить работу модели на поддерживаемых GPU с минимальным влиянием на точность.
devicestrNoneУказывает устройство для инференса (например, cpu, cuda:0, 0, npu или npu:0). Позволяет пользователям выбирать между CPU, конкретным GPU, NPU Huawei Ascend или другими вычислительными устройствами для выполнения модели.
batchint1Указывает размер пакета для инференса (работает только если источник — директория, видеофайл или .txt файл). Больший размер пакета может обеспечить более высокую пропускную способность, сокращая общее время, необходимое для инференса.
max_detint300Максимальное количество разрешенных обнаружений на изображение. Ограничивает общее количество объектов, которые модель может обнаружить за один инференс, предотвращая чрезмерные выходы в плотных сценах.
vid_strideint1Шаг кадров для видеовходов. Позволяет пропускать кадры в видео для ускорения обработки за счет временного разрешения. Значение 1 обрабатывает каждый кадр, большие значения пропускают кадры.
stream_bufferboolFalseОпределяет, нужно ли ставить в очередь входящие кадры для видеопотоков. Если False, старые кадры отбрасываются, чтобы освободить место для новых (оптимизировано для приложений реального времени). Если True, новые кадры ставятся в очередь, гарантируя, что ни один кадр не будет пропущен, но это вызовет задержку, если FPS инференса ниже, чем FPS потока.
visualizeboolFalseАктивирует визуализацию признаков модели во время инференса, предоставляя понимание того, что «видит» модель. Полезно для отладки и интерпретации модели.
augmentboolFalseВключает аугментацию во время тестирования (TTA) для предсказаний, что потенциально повышает надежность обнаружения за счет скорости инференса.
agnostic_nmsboolFalseВключает классово-агностическое немаксимальное подавление (NMS), которое объединяет перекрывающиеся рамки разных классов. Полезно в сценариях многоклассового обнаружения, где часто встречается пересечение классов. Для end-to-end моделей (YOLO26, YOLOv10) это предотвращает появление одного и того же обнаружения с несколькими метками классов (дубликаты IoU=1.0) и не выполняет подавление на основе порога IoU между отдельными рамками.
classeslist[int]NoneФильтрует предсказания по набору ID классов. Будут возвращены только обнаружения, принадлежащие указанным классам. Полезно для фокусировки на релевантных объектах в задачах многоклассового обнаружения.
retina_masksboolFalseВозвращает маски сегментации высокого разрешения. Возвращаемые маски (masks.data) будут соответствовать исходному размеру изображения, если включено. Если выключено, они имеют размер изображения, использованный во время инференса.
embedlist[int]NoneУказывает слои, из которых нужно извлекать векторы признаков или эмбеддинги. Полезно для последующих задач, таких как кластеризация или поиск по сходству.
projectstrNoneИмя директории проекта, куда сохраняются выходы предсказаний, если включен save.
namestrNoneИмя запуска предсказания. Используется для создания поддиректории внутри папки проекта, где сохраняются выходы предсказаний, если включен save.
streamboolFalseВключает эффективную с точки зрения памяти обработку для длинных видео или многочисленных изображений, возвращая генератор объектов Results вместо загрузки всех кадров в память одновременно.
verboseboolTrueКонтролирует отображение подробных логов инференса в терминале, предоставляя обратную связь о процессе предсказания в режиме реального времени.
compilebool или strFalseВключает компиляцию графа PyTorch 2.x torch.compile с backend='inductor'. Принимает True"default", False → отключает, или строковый режим, такой как "default", "reduce-overhead", "max-autotune-no-cudagraphs". При отсутствии поддержки возвращается к режиму eager с предупреждением.
end2endboolNoneПереопределяет режим end-to-end в моделях YOLO, которые поддерживают инференс без NMS (YOLO26, YOLOv10). Установка в False позволяет выполнять предсказание с использованием традиционного конвейера NMS, дополнительно позволяя использовать аргумент iou. См. руководство по End-to-End детекции для получения подробностей.

Аргументы визуализации:

АргументТипПо умолчаниюОписание
showboolFalseЕсли True, отображает аннотированные изображения или видео в окне. Полезно для немедленной визуальной обратной связи во время разработки или тестирования.
saveboolFalse or TrueВключает сохранение аннотированных изображений или видео в файлы. Полезно для документации, дальнейшего анализа или обмена результатами. По умолчанию True при использовании CLI и False при использовании в Python.
save_framesboolFalseПри обработке видео сохраняет отдельные кадры как изображения. Полезно для извлечения конкретных кадров или детального анализа по кадрам.
save_txtboolFalseСохраняет результаты обнаружения в текстовый файл в формате [class] [x_center] [y_center] [width] [height] [confidence]. Полезно для интеграции с другими инструментами анализа.
save_confboolFalseВключает оценки уверенности в сохраненных текстовых файлах. Увеличивает детализацию, доступную для постобработки и анализа.
save_cropboolFalseСохраняет обрезанные изображения обнаружений. Полезно для аугментации данных, анализа или создания сфокусированных наборов данных для конкретных объектов.
show_labelsboolTrueОтображает метки для каждого обнаружения в визуальном выводе. Обеспечивает быстрое понимание того, какие объекты были обнаружены.
show_confboolTrueОтображает показатель уверенности для каждого обнаружения рядом с меткой. Дает представление об уверенности модели в каждом обнаружении.
show_boxesboolTrueРисует ограничивающие рамки вокруг обнаруженных объектов. Необходимо для визуальной идентификации и определения местоположения объектов на изображениях или кадрах видео.
line_widthint or NoneNoneУказывает ширину линии ограничивающих рамок. Если None, ширина линии автоматически подстраивается под размер изображения. Обеспечивает визуальную настройку для ясности.

Руководство по предсказанию

Link to this sectionНастройки валидации#

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

АргументТипПо умолчаниюОписание
datastrNoneУказывает путь к файлу конфигурации набора данных (например, coco8.yaml). Этот файл должен содержать путь к валидационным данным.
imgszint640Определяет размер входных изображений. Все изображения изменяются до этого размера перед обработкой. Большие размеры могут улучшить точность для маленьких объектов, но увеличивают время вычислений.
batchint16Устанавливает количество изображений на пакет. Более высокие значения более эффективно используют память GPU, но требуют больше VRAM. Регулируй в зависимости от имеющихся аппаратных ресурсов.
save_jsonboolFalseЕсли True, сохраняет результаты в JSON-файл для дальнейшего анализа, интеграции с другими инструментами или отправки на серверы оценки, такие как COCO.
conffloat0.001Устанавливает минимальный порог уверенности для обнаружений. Меньшие значения увеличивают полноту (recall), но могут привести к большему количеству ложноположительных результатов. Используется во время валидации для вычисления кривых точности-полноты. По умолчанию 0.01 для валидации OBB для снижения использования памяти.
ioufloat0.7Устанавливает порог Intersection Over Union для немаксимального подавления. Контролирует устранение дублирующихся обнаружений.
max_detint300Ограничивает максимальное количество обнаружений на изображение. Полезно в плотных сценах для предотвращения чрезмерного количества обнаружений и управления вычислительными ресурсами.
halfboolFalseВключает вычисления с полуточностью (FP16), снижая использование памяти и потенциально увеличивая скорость с минимальным влиянием на точность.
devicestrNoneУказывает устройство для валидации (cpu, cuda:0, npu, npu:0 и т.д.). Когда None, автоматически выбирается лучшее доступное устройство. Несколько устройств CUDA можно указать через запятую.
dnnboolFalseЕсли True, использует модуль DNN библиотеки OpenCV для инференса модели ONNX, предлагая альтернативу методам инференса PyTorch.
plotsboolTrueЕсли установлено значение True, генерирует и сохраняет графики предсказаний по сравнению с эталонными данными (ground truth), матрицы ошибок и PR-кривые для визуальной оценки производительности модели.
classeslist[int]NoneУказывает список ID классов для оценки. Полезно для фильтрации и концентрации внимания только на определенных классах во время оценки.
rectboolTrueЕсли True, использует прямоугольный вывод (rectangular inference) для формирования батчей, что уменьшает дополнение (padding) и потенциально увеличивает скорость и эффективность за счет обработки изображений в их исходном соотношении сторон.
splitstr'val'Определяет, какой сегмент набора данных использовать для валидации (val, test или train). Обеспечивает гибкость в выборе части данных для оценки производительности.
projectstrNoneИмя директории проекта, куда сохраняются результаты валидации. Помогает упорядочить результаты разных экспериментов или моделей.
namestrNoneИмя прогона валидации. Используется для создания подпапки внутри папки проекта, где хранятся логи и результаты валидации.
verboseboolTrueЕсли True, отображает подробную информацию во время процесса валидации, включая метрики по классам, прогресс батчей и дополнительную информацию для отладки.
save_txtboolFalseЕсли True, сохраняет результаты детекции в текстовые файлы (по одному файлу на изображение), что полезно для дальнейшего анализа, пользовательской постобработки или интеграции с другими системами.
save_confboolFalseЕсли True, включает значения уверенности в сохраненные текстовые файлы при включенном save_txt, предоставляя более детальный вывод для анализа и фильтрации.
workersint8Количество рабочих потоков для загрузки данных. Более высокие значения могут ускорить предварительную обработку данных, но могут увеличить нагрузку на CPU. Установка значения 0 использует основной поток, что в некоторых средах может быть стабильнее.
augmentboolFalseВключает аугментацию во время тестирования (TTA) в процессе валидации, потенциально улучшая точность детекции ценой скорости вывода за счет запуска модели на трансформированных версиях входных данных.
agnostic_nmsboolFalseВключает класс-агностическое Non-Maximum Suppression, которое объединяет перекрывающиеся рамки независимо от их предсказанного класса. Полезно для задач, сфокусированных на экземплярах. Для моделей end-to-end (YOLO26, YOLOv10) это предотвращает появление одной и той же детекции с разными метками классов (дубликаты при IoU=1.0) и не выполняет подавление на основе IoU-порога между различными рамками.
single_clsboolFalseВо время валидации рассматривает все классы как один единственный класс. Полезно для оценки производительности модели на задачах бинарной детекции или когда различия между классами не важны.
visualizeboolFalseВизуализирует ground truths, true positives, false positives и false negatives для каждого изображения. Полезно для отладки и интерпретации модели.
show_labelsboolTrueОтображает метки классов на визуализациях валидации, если visualize=True. Установи False для более чистого вида совпадений и ошибок.
show_confboolTrueОтображает оценки уверенности на визуализациях валидации, если visualize=True. Установи False для более чистого вида совпадений и ошибок.
compilebool или strFalseВключает компиляцию графа PyTorch 2.x torch.compile с backend='inductor'. Принимает True"default", False → отключает, или строковый режим, такой как "default", "reduce-overhead", "max-autotune-no-cudagraphs". При отсутствии поддержки возвращается к режиму eager с предупреждением.
end2endboolNoneПереопределяет режим end-to-end в моделях YOLO, поддерживающих NMS-free вывод (YOLO26, YOLOv10). Установка значения False позволяет выполнять валидацию с использованием традиционного NMS-конвейера, дополнительно позволяя использовать аргумент iou.

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

Руководство по валидации

Link to this sectionНастройки экспорта#

Настройки экспорта для моделей YOLO включают конфигурации для сохранения или экспорта модели для использования в различных средах. Эти параметры влияют на производительность, размер и совместимость. Ключевые настройки включают формат выходного файла (например, ONNX, TensorFlow SavedModel), целевое устройство (например, CPU, GPU) и функции, такие как маски. Задача модели и ограничения целевой среды также влияют на процесс экспорта.

АргументТипПо умолчаниюОписание
formatstr'torchscript'Целевой формат для экспортированной модели, такой как 'onnx', 'torchscript', 'engine' (TensorRT) или другие. Каждый формат обеспечивает совместимость с различными средами развертывания.
imgszint или tuple640Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений (например, 640 для 640×640) или кортежем (height, width) для задания конкретных размеров.
kerasboolFalseВключает экспорт в формат Keras для TensorFlow SavedModel, обеспечивая совместимость с TensorFlow serving и API.
optimizeboolFalseПрименяет оптимизацию для мобильных устройств при экспорте в TorchScript, что потенциально уменьшает размер модели и улучшает производительность инференса. Несовместимо с форматом NCNN или устройствами с CUDA. Для DEEPX включает более глубокую оптимизацию компилятора, что снижает задержку инференса, но увеличивает время компиляции.
halfboolFalseВключает квантование FP16 (половинной точности), уменьшая размер модели и потенциально ускоряя инференс на поддерживаемом оборудовании. Несовместимо с квантованием INT8 или экспортом только для CPU. Доступно только для некоторых форматов, например ONNX (см. ниже).
int8boolFalseАктивирует квантование INT8, дополнительно сжимая модель и ускоряя инференс с минимальной потерей точности, преимущественно для периферийных устройств. В TensorRT 11+ используется явное квантование Q/DQ через ModelOpt; в TensorRT 7-10 используется PTQ с калибратором.
dynamicboolFalseРазрешает использование динамических размеров входных данных для экспорта в TorchScript, ONNX, OpenVINO, TensorRT и CoreML, повышая гибкость при обработке изображений разных размеров.
simplifyboolTrueУпрощает граф модели для экспорта в ONNX с помощью onnxslim, что потенциально улучшает производительность и совместимость с движками инференса.
opsetintNoneУказывает версию opset для ONNX для совместимости с различными ONNX парсерами и средами исполнения. Если не задано, используется последняя поддерживаемая версия.
workspacefloat или NoneNoneУстанавливает максимальный размер рабочего пространства в ГБ для оптимизаций TensorRT, балансируя использование памяти и производительность. Используй None для автоматического распределения ресурса движком TensorRT вплоть до максимума устройства.
nmsboolFalseДобавляет подавление немаксимумов (NMS) в экспортированную модель там, где это поддерживается (см. Форматы экспорта), улучшая эффективность постобработки обнаружения. Недоступно для моделей end2end.
batchint1Указывает размер пакета для инференса или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. Для экспорта в Edge TPU устанавливается автоматически равным 1.
devicestrNoneУказывает устройство для экспорта: 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.
datastr'coco8.yaml'Путь к файлу конфигурации датасета, необходимому для калибровки квантования INT8. Если не указан при включенном INT8, в качестве резервного варианта для калибровки будет использован coco8.yaml.
fractionfloat1.0Указывает часть датасета, которую нужно использовать для калибровки квантования INT8. Позволяет выполнять калибровку на подмножестве полного датасета, что полезно для экспериментов или при ограниченных ресурсах. Если не указано при включенном INT8, будет использован весь датасет.
end2endboolNoneПереопределяет режим end-to-end в моделях YOLO, которые поддерживают инференс без NMS (YOLO26, YOLOv10). Установка значения False позволяет экспортировать эти модели для совместимости с традиционным конвейером постобработки на основе NMS. Подробности см. в Руководстве по сквозному обнаружению.

Продуманная конфигурация гарантирует, что экспортированная модель оптимизирована для конкретного случая использования и эффективно функционирует в целевой среде.

Руководство по экспорту

Link to this sectionНастройки решений#

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

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'Список точек, определяющих область подсчета.
show_inboolTrueФлаг для управления отображением входящих объектов в потоке видео.
show_outboolTrueФлаг для управления отображением выходящих объектов в потоке видео.
analytics_typestr'line'Тип графика, например, line, bar, area или pie.
colormapintcv2.COLORMAP_DEEPGREENЦветовая карта для использования в тепловой карте.
json_filestrNoneПуть к JSON-файлу, который содержит все данные о координатах парковки.
up_anglefloat145.0Пороговый угол для позы «вверх».
kptslist[int]'[6, 8, 10]'Список из трех индексов ключевых точек, используемых для контроля тренировок. Эти ключевые точки соответствуют суставам или частям тела, таким как плечи, локти и запястья, для упражнений типа отжиманий, подтягиваний, приседаний и упражнений на пресс.
down_angleint90Пороговый угол для позы «вниз».
blur_ratiofloat0.5Регулирует процент интенсивности размытия со значениями в диапазоне 0.1 - 1.0.
crop_dirstr'cropped-detections'Имя директории для хранения обрезанных обнаружений.
recordsint5Общее количество обнаружений для запуска электронной почты с охранной сигнализацией.
vision_pointtuple[int, int](20, 20)Точка, где зрение будет отслеживать объекты и рисовать пути, используя решение VisionEye.
sourcestrNoneПуть к входному источнику (видео, RTSP и т. д.). Используется только с интерфейсом командной строки (CLI) решений.
figsizetuple[int, int](12.8, 7.2)Размер фигуры для аналитических графиков, таких как тепловые карты или графики.
fpsfloat30.0Количество кадров в секунду, используемое для расчетов скорости.
max_histint5Максимальное количество исторических точек для отслеживания объекта при расчетах скорости/направления.
meter_per_pixelfloat0.05Масштабирующий коэффициент, используемый для преобразования расстояния в пикселях в реальные единицы измерения.
max_speedint120Максимальное ограничение скорости в визуальных оверлеях (используется в оповещениях).
datastr'images'Путь к директории изображений, используемой для поиска по сходству.
imgszint640Размер входного изображения для вывода модели.

Руководство по решениям

Link to this sectionНастройки аугментации#

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

АргументТипПо умолчаниюПоддерживаемые задачиДиапазонОписание
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Корректирует цветовой тон изображения на долю цветового круга, внося вариативность цветов. Помогает модели обобщать данные при различных условиях освещения.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Изменяет насыщенность изображения на долю, влияя на интенсивность цветов. Полезно для симуляции различных условий окружающей среды.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Модифицирует значение (яркость) изображения на долю, помогая модели хорошо работать при различных условиях освещения.
degreesfloat0detect, segment, pose, obb0.0 - 180Случайно поворачивает изображение в заданном диапазоне градусов, улучшая способность модели распознавать объекты в различных ориентациях.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Сдвигает изображение по горизонтали и вертикали на часть размера изображения, помогая учиться обнаруживать частично видимые объекты.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Масштабирует изображение с коэффициентом усиления, имитируя объекты на разном расстоянии от камеры.
shearfloat0detect, segment, pose, obb-180 - +180Наклоняет изображение на заданный градус, имитируя эффект просмотра объектов под разными углами.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001Применяет случайное перспективное преобразование к изображению, улучшая способность модели понимать объекты в 3D-пространстве.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0Переворачивает изображение вверх ногами с заданной вероятностью, увеличивая вариативность данных, не затрагивая характеристики объекта.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Переворачивает изображение слева направо с заданной вероятностью, что полезно для изучения симметричных объектов и повышения разнообразия набора данных.
bgrfloat0detect, segment, pose, obb0.0 - 1.0Меняет каналы изображения с RGB на BGR с заданной вероятностью, полезно для повышения устойчивости к неправильному порядку каналов.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Объединяет четыре изображения для обучения в одно, имитируя различные композиции сцен и взаимодействия объектов. Очень эффективно для понимания сложных сцен.
mixupfloat0detect, segment, pose, obb0.0 - 1.0Смешивает два изображения и их метки, создавая составное изображение. Улучшает способность модели к обобщению за счет внесения шума в метки и визуальной вариативности.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Объединяет части двух изображений, создавая частичное смешение при сохранении отдельных областей. Повышает устойчивость модели за счет создания сценариев окклюзии.
copy_pastefloat0segment0.0 - 1.0Копирует и вставляет объекты между изображениями, чтобы увеличить количество экземпляров объектов.
copy_paste_modestrflipsegment-Указывает стратегию copy-paste. Доступные варианты: 'flip' и 'mixup'.
auto_augmentstrrandaugmentclassify-Применяет предопределенную политику аугментации ('randaugment', 'autoaugment' или 'augmix') для улучшения производительности модели за счет визуального разнообразия.
erasingfloat0.4classify0.0 - 1.0Случайным образом стирает области изображения во время обучения, чтобы побудить модель фокусироваться на менее очевидных признаках.
augmentationslist``detect, segment, pose, obb-Пользовательские преобразования Albumentations для продвинутой аугментации данных (только через Python API). Принимает список объектов преобразования для специализированных задач аугментации.

Настрой эти параметры под требования своего набора данных и задачи. Эксперименты с различными значениями помогут найти оптимальную стратегию аугментации для наилучшей производительности модели.

Руководство по аугментации

Link to this sectionНастройки логирования, чекпоинтов и построения графиков#

Логирование, чекпоинты, построение графиков и управление файлами важны при обучении модели YOLO:

  • Логирование: Отслеживай прогресс модели и диагностируй проблемы, используя такие библиотеки, как TensorBoard, или записывая данные в файл.
  • Чекпоинты: Сохраняй модель через регулярные интервалы, чтобы возобновить обучение или поэкспериментировать с разными конфигурациями.
  • Построение графиков: Визуализируй производительность и прогресс обучения, используя библиотеки типа Matplotlib или TensorBoard.
  • Управление файлами: Организуй файлы, созданные во время обучения, такие как чекпоинты, лог-файлы и графики, для легкого доступа и анализа.

Эффективное управление этими аспектами помогает отслеживать прогресс и облегчает отладку и оптимизацию.

АргументПо умолчаниюОписание
projectNoneУказывает корневую директорию для сохранения прогонов обучения. Если не указано, прогоны сохраняются в runs/<task>. Каждый прогон сохраняется в отдельную подпапку.
nameNoneОпределяет имя эксперимента. Если не указано, YOLO использует имя режима и увеличивает его для каждого прогона (например, train, train-2), чтобы избежать перезаписи.
exist_okFalseОпределяет, нужно ли перезаписывать существующую директорию эксперимента. True позволяет перезапись; False предотвращает её.
plotsTrueУправляет генерацией и сохранением графиков обучения и валидации. Установи True для создания графиков, таких как кривые потерь, кривые precision-recall и примеры предсказаний для визуального отслеживания производительности.
saveTrueВключает сохранение чекпоинтов обучения и финальных весов модели. Установи True для периодического сохранения состояний модели, что позволяет возобновить обучение или развернуть модель.

Link to this sectionПользовательский конфигурационный файл#

Загрузи сохраненный YAML, чтобы использовать полный набор аргументов без передачи их в командной строке. Аргумент cfg переопределяет значения из default.yaml, в то время как дополнительные аргументы, переданные вместе с ним, по-прежнему имеют приоритет.

АргументПо умолчаниюОписание
cfgNoneПуть к 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, позволяя использовать большие модели и более быстрые вычисления без значительной потери точности. Узнай больше в Руководстве по обучению.

Комментарии