Перейти к содержанию

Конфигурация

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

Смотреть: Освоение Ultralytics YOLO: Конфигурация



Смотреть: Освоение Ultralytics YOLO: Конфигурация

Команды Ultralytics используют следующий синтаксис:

Пример

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO model from a pre-trained weights file
model = YOLO("yolo11n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

Где:

  • TASK (необязательный) является одним из (detect, segment, classify, pose, obb)
  • MODE (обязательный) является одним из (train, val, predict, export, track, benchmark)
  • ARGS (необязательные) это arg=value пары, такие как imgsz=640 которые переопределяют значения по умолчанию.

По умолчанию ARG значения определены на этой странице и взяты из cfg/defaults.yaml файла.

Задачи

Модели Ultralytics YOLO могут выполнять различные задачи компьютерного зрения, включая:

  • Обнаружение: Обнаружение объектов определяет и локализует объекты на изображении или видео.
  • Сегмент: Сегментация экземпляров разделяет изображение или видео на области, соответствующие различным объектам или классам.
  • Классификация: Классификация изображений предсказывает метку класса входного изображения.
  • Поза: Оценка позы определяет объекты и оценивает их ключевые точки на изображении или видео.
  • OBB: Oriented Bounding Boxes использует повернутые ограничивающие рамки, подходящие для спутниковых или медицинских изображений.
АргументПо умолчаниюОписание
task'detect'Указывает задачу YOLO: detect для обнаружения объектов, segment для сегментации, classify для классификации, pose для оценки позы и obb для ориентированных ограничивающих рамок. Каждая задача адаптирована к конкретным выходным данным и проблемам анализа изображений и видео.

Руководство по задачам

Режимы

Модели Ultralytics YOLO работают в различных режимах, каждый из которых предназначен для определенного этапа жизненного цикла модели:

  • Обучение: Обучите модель YOLO на пользовательском наборе данных.
  • Val: Валидация обученной модели YOLO.
  • Прогнозирование: Используйте обученную модель YOLO для прогнозирования на новых изображениях или видео.
  • Экспорт: Экспорт модели YOLO для развертывания.
  • Отслеживание: Отслеживайте объекты в режиме реального времени с помощью модели YOLO.
  • Эталонное тестирование: Оценка скорости и точности экспорта YOLO (ONNX, TensorRT и т. д.).
АргументПо умолчаниюОписание
mode'train'Указывает режим работы модели YOLO: train для обучения модели, val для валидации, predict для инференса, export для преобразования в форматы развертывания, track для отслеживания объектов и benchmark для оценки производительности. Каждый режим поддерживает различные этапы, от разработки до развертывания.

Руководство по режимам

Настройки поезда

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

АргументТипПо умолчаниюОписание
modelstrNoneУказывает файл модели для обучения. Принимает путь к предварительно обученной модели .pt или файлу конфигурации .yaml . Важен для определения структуры модели или инициализации весов.
datastrNoneПуть к файлу конфигурации набора данных (например, coco8.yaml). Этот файл содержит параметры, специфичные для набора данных, включая пути к обучающим и данным валидации, названия классов и количество классов.
epochsint100Общее количество эпох обучения. Каждая эпоха представляет собой полный проход по всему набору данных. Настройка этого значения может повлиять на продолжительность обучения и производительность модели.
timefloatNoneМаксимальное время обучения в часах. Если задано, оно отменяет значение epochs Аргумент, позволяющий автоматически остановить обучение по истечении указанного времени. Полезно для сценариев обучения с ограничением по времени.
patienceint100Количество эпох ожидания без улучшения метрик проверки, после которого обучение будет досрочно остановлено. Помогает предотвратить переобучение, останавливая обучение при выходе на плато.
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). Улучшает скорость обучения за счет уменьшения дискового ввода-вывода, но увеличивает использование памяти.
deviceint или str или listNoneУказывает вычислительное устройство(а) для обучения: один GPU (device=0), несколько GPU (device=[0,1]), CPU (device=cpu), MPS для Apple silicon (device=mps), или автоматическом выборе наиболее незагруженной GPU (device=-1) или несколько простаивающих GPU (device=[-1,-1])
workersint8Количество рабочих потоков для загрузки данных (на RANK при обучении с несколькими GPU). Влияет на скорость предварительной обработки данных и подачи их в модель, особенно полезно в конфигурациях с несколькими GPU.
projectstrNoneИмя каталога проекта, в котором сохраняются результаты обучения. Обеспечивает организованное хранение различных экспериментов.
namestrNoneИмя запуска обучения. Используется для создания подкаталога в папке проекта, в котором хранятся журналы и результаты обучения.
exist_okboolFalseЕсли True, разрешает перезапись существующего каталога project/name. Полезно для итеративных экспериментов без необходимости вручную удалять предыдущие результаты.
pretrainedbool или strTrueОпределяет, следует ли начинать обучение с предварительно обученной модели. Может быть логическим значением или строковым путем к конкретной модели, из которой следует загружать веса. Повышает эффективность обучения и производительность модели.
optimizerstr'auto'Выбор оптимизатора для обучения. Возможные варианты: SGD, Adam, AdamW, NAdam, RAdam, RMSProp и т.д., или auto для автоматического выбора на основе конфигурации модели. Влияет на скорость и стабильность сходимости.
seedint0Устанавливает случайное начальное число для обучения, обеспечивая воспроизводимость результатов при запусках с одинаковыми конфигурациями.
deterministicboolTrueПринудительно использует детерминированный алгоритм, обеспечивая воспроизводимость, но может повлиять на производительность и скорость из-за ограничения на недетерминированные алгоритмы.
single_clsboolFalseРассматривает все классы в многоклассовых наборах данных как один класс во время обучения. Полезно для задач бинарной классификации или когда основное внимание уделяется наличию объекта, а не классификации.
classeslist[int]NoneУказывает список ID классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время обучения.
rectboolFalseВключает стратегию минимального заполнения — изображения в пакете минимально заполняются для достижения общего размера, при этом самая длинная сторона равна imgsz. Может повысить эффективность и скорость, но может повлиять на точность модели.
multi_scaleboolFalseВключает многомасштабное обучение путем увеличения/уменьшения imgsz до коэффициента 0.5 во время обучения. Обучает модель быть более точной с несколькими imgsz во время инференса.
cos_lrboolFalseИспользует планировщик скорости обучения на основе косинуса, регулируя скорость обучения в соответствии с косинусоидальной кривой в течение эпох. Помогает в управлении скоростью обучения для лучшей сходимости.
close_mosaicint10Отключает мозаичную аугментацию данных в последние N эпох для стабилизации обучения перед завершением. Установка значения 0 отключает эту функцию.
resumeboolFalseВозобновляет обучение с последней сохраненной контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и количество эпох, обеспечивая плавное продолжение обучения.
ampboolTrueВключает автоматическое обучение смешанной точности (AMP), снижая использование памяти и, возможно, ускоряя обучение с минимальным влиянием на точность.
fractionfloat1.0Указывает долю набора данных для использования при обучении. Позволяет проводить обучение на подмножестве полного набора данных, что полезно для экспериментов или при ограниченных ресурсах.
profileboolFalseВключает профилирование скорости ONNX и TensorRT во время обучения, что полезно для оптимизации развертывания модели.
freezeint или listNoneЗамораживает первые N слоев модели или указанные слои по индексу, уменьшая количество обучаемых параметров. Полезно для тонкой настройки или переноса обучения.
lr0float0.01Начальная скорость обучения (т.е. SGD=1E-2, Adam=1E-3). Регулировка этого значения имеет решающее значение для процесса оптимизации, влияя на скорость обновления весов модели.
lrffloat0.01Конечная скорость обучения как доля начальной скорости = (lr0 * lrf), используется в сочетании с планировщиками для регулировки скорости обучения с течением времени.
momentumfloat0.937Фактор импульса для SGD или beta1 для оптимизаторов Adam, влияющий на включение прошлых градиентов в текущее обновление.
weight_decayfloat0.0005L2 регуляризация, штрафующая большие веса для предотвращения переобучения.
warmup_epochsfloat3.0Количество эпох для разогрева скорости обучения, постепенно увеличивая скорость обучения с низкого значения до начальной скорости обучения для стабилизации обучения на ранней стадии.
warmup_momentumfloat0.8Начальный импульс для фазы разогрева, постепенно корректируемый до установленного импульса в течение периода разогрева.
warmup_bias_lrfloat0.1Скорость обучения для параметров смещения во время фазы разогрева, помогающая стабилизировать обучение модели в начальных эпохах.
boxfloat7.5Вес компонента потери ограничивающего прямоугольника в функции потерь, влияющий на то, какой акцент делается на точном прогнозировании координат ограничивающего прямоугольника.
clsfloat0.5Вес потери классификации в общей функции потерь, влияющий на важность правильного прогнозирования класса по отношению к другим компонентам.
dflfloat1.5Вес distribution focal loss, используемого в некоторых версиях YOLO для точной классификации.
posefloat12.0Вес loss, связанного с определением позы, в моделях, обученных для оценки позы, влияющий на акцент на точном предсказании ключевых точек позы.
kobjfloat2.0Вес loss, связанного с определением наличия объекта по ключевым точкам, в моделях оценки позы, балансирующий уверенность обнаружения с точностью позы.
nbsint64Номинальный размер пакета для нормализации loss.
overlap_maskboolTrueОпределяет, следует ли объединять маски объектов в одну маску для обучения или хранить отдельно для каждого объекта. В случае перекрытия меньшая маска накладывается поверх большей маски во время объединения.
mask_ratioint4Коэффициент уменьшения дискретизации для масок сегментации, влияющий на разрешение масок, используемых во время обучения.
dropoutfloat0.0Уровень Dropout для регуляризации в задачах классификации, предотвращающий переобучение путем случайного исключения юнитов во время обучения.
valboolTrueВключает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных.
plotsboolFalseСоздает и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и прогрессе обучения.
compilebool или strFalseВключает PyTorch 2.x torch.compile компиляция графа с помощью backend='inductor'. Принимает True"default", False → отключается, или строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". При отсутствии поддержки возвращается в режим eager с предупреждением.

Примечание о настройках размера пакета (Batch-size)

Параметр batch Аргумент предлагает три варианта конфигурации:

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

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

Настройки Predict

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

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

АргументТипПо умолчаниюОписание
sourcestr'ultralytics/assets'Указывает источник данных для инференса. Может быть путем к изображению, видеофайлу, каталогу, URL-адресу или идентификатором устройства для прямых трансляций. Поддерживает широкий спектр форматов и источников, обеспечивая гибкое применение для различных типов входных данных.
conffloat0.25Устанавливает минимальный порог уверенности для обнаружений. Объекты, обнаруженные с уверенностью ниже этого порога, будут игнорироваться. Настройка этого значения может помочь уменьшить количество ложных срабатываний.
ioufloat0.7Порог Intersection Over Union (IoU) для Non-Maximum Suppression (NMS). Более низкие значения приводят к меньшему количеству обнаружений за счет устранения перекрывающихся прямоугольников, что полезно для уменьшения дубликатов.
imgszint или tuple640Определяет размер изображения для инференса. Может быть одним целым числом 640 для квадратного изменения размера или кортежем (высота, ширина). Правильное определение размера может улучшить обнаружение точность и скорость обработки.
rectboolTrueЕсли включено, минимально дополняет короткую сторону изображения до тех пор, пока она не станет делимой на шаг, чтобы улучшить скорость inference. Если отключено, дополняет изображение до квадрата во время inference.
halfboolFalseВключает инференс с половинной точностью (FP16), что может ускорить инференс модели на поддерживаемых GPU с минимальным влиянием на точность.
devicestrNoneУказывает устройство для инференса (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели.
batchint1Указывает размер пакета для инференса (работает только когда источник - каталог, видеофайл или .txt файла). Больший размер пакета может обеспечить более высокую пропускную способность, сокращая общее время, необходимое для логического вывода.
max_detint300Максимальное количество обнаружений, разрешенное для одного изображения. Ограничивает общее количество объектов, которые модель может обнаружить за один инференс, предотвращая избыточные выходные данные в плотных сценах.
vid_strideint1Шаг кадров для видеовходов. Позволяет пропускать кадры в видео для ускорения обработки за счет снижения временного разрешения. Значение 1 обрабатывает каждый кадр, более высокие значения пропускают кадры.
stream_bufferboolFalseОпределяет, следует ли ставить входящие кадры в очередь для видеопотоков. Если False, старые кадры отбрасываются для размещения новых кадров (оптимизировано для приложений реального времени). Если True, ставит новые кадры в очередь в буфере, гарантируя, что ни один кадр не будет пропущен, но вызовет задержку, если FPS логического вывода ниже, чем FPS потока.
visualizeboolFalseАктивирует визуализацию особенностей модели во время инференса, предоставляя понимание того, что «видит» модель. Полезно для отладки и интерпретации модели.
augmentboolFalseВключает расширение данных во время теста (TTA) для прогнозов, что потенциально повышает устойчивость обнаружения за счет скорости инференса.
agnostic_nmsboolFalseВключает Non-Maximum Suppression (NMS), не зависящее от классов, которое объединяет перекрывающиеся рамки разных классов. Полезно в сценариях обнаружения нескольких классов, где перекрытие классов является обычным явлением.
classeslist[int]NoneФильтрует прогнозы по набору идентификаторов классов. Будут возвращены только обнаружения, принадлежащие указанным классам. Полезно для фокусировки на релевантных объектах в задачах обнаружения нескольких классов.
retina_masksboolFalseВозвращает маски сегментации высокого разрешения. Возвращаемые маски (masks.data) будут соответствовать исходному размеру изображения, если эта функция включена. Если она отключена, они будут иметь размер изображения, используемый во время инференса.
embedlist[int]NoneУказывает слои, из которых извлекать векторы признаков или embeddings. Полезно для последующих задач, таких как кластеризация или поиск сходства.
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 с предупреждением.

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

АргументТипПо умолчаниюОписание
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_widthNone or intNoneУказывает ширину линии ограничивающих рамок. Если None, ширина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для большей четкости.

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

Настройки валидации

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

АргументТипПо умолчаниюОписание
datastrNoneУказывает путь к файлу конфигурации набора данных (например, coco8.yaml). Этот файл должен содержать путь к данным валидации.
imgszint640Определяет размер входных изображений. Все изображения изменяются до этого размера перед обработкой. Большие размеры могут повысить точность для маленьких объектов, но увеличить время вычислений.
batchint16Устанавливает количество изображений в пакете. Более высокие значения более эффективно используют память GPU, но требуют больше VRAM. Настраивайте в зависимости от доступных аппаратных ресурсов.
save_jsonboolFalseЕсли True, сохраняет результаты в файл JSON для дальнейшего анализа, интеграции с другими инструментами или отправки на серверы оценки, такие как COCO.
conffloat0.001Устанавливает минимальный порог уверенности для обнаружений. Более низкие значения увеличивают полноту, но могут привести к увеличению количества ложных срабатываний. Используется во время валидации для вычисления кривых точности-полноты.
ioufloat0.7Устанавливает порог Intersection Over Union для Non-Maximum Suppression. Контролирует устранение дубликатов обнаружения.
max_detint300Ограничивает максимальное количество обнаружений на изображение. Полезно в плотных сценах для предотвращения чрезмерного количества обнаружений и управления вычислительными ресурсами.
halfboolTrueВключает вычисления половинной точности (FP16), снижая использование памяти и потенциально увеличивая скорость с минимальным влиянием на точность.
devicestrNoneУказывает устройство для валидации (cpu, cuda:0, и т.д.). Когда None, автоматически выбирает лучшее доступное устройство. Несколько устройств CUDA можно указать через запятую.
dnnboolFalseЕсли True, использует OpenCV модуль DNN для логического вывода модели ONNX, предлагая альтернативу методам логического вывода PyTorch .
plotsboolFalseКогда установлено значение True, генерирует и сохраняет графики прогнозов в сравнении с истинными значениями, матрицы ошибок и кривые PR для визуальной оценки производительности модели.
classeslist[int]NoneУказывает список идентификаторов классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время оценки.
rectboolTrueЕсли True, использует прямоугольный вывод для пакетирования, уменьшая заполнение и потенциально увеличивая скорость и эффективность за счет обработки изображений в их исходном соотношении сторон.
splitstr'val'Определяет разделение набора данных, используемое для валидации (val, test, или train). Обеспечивает гибкость в выборе сегмента данных для оценки производительности.
projectstrNoneИмя каталога проекта, в котором сохраняются выходные данные проверки. Помогает организовать результаты различных экспериментов или моделей.
namestrNoneИмя запуска валидации. Используется для создания подкаталога в папке проекта, где хранятся журналы и результаты валидации.
verboseboolFalseЕсли True, отображает подробную информацию в процессе валидации, включая метрики для каждого класса, прогресс пакета и дополнительную отладочную информацию.
save_txtboolFalseЕсли True, сохраняет результаты обнаружения в текстовых файлах, по одному файлу на изображение, что полезно для дальнейшего анализа, пользовательской постобработки или интеграции с другими системами.
save_confboolFalseЕсли True, включает значения достоверности в сохраненные текстовые файлы, когда save_txt включен, обеспечивая более подробный вывод для анализа и фильтрации.
workersint8Количество рабочих потоков для загрузки данных. Более высокие значения могут ускорить предварительную обработку данных, но могут увеличить использование CPU. Установка значения 0 использует основной поток, что может быть более стабильным в некоторых средах.
augmentboolFalseВключает увеличение времени тестирования (TTA) во время валидации, что потенциально улучшает точность обнаружения за счет скорости инференса, выполняя инференс на преобразованных версиях входных данных.
agnostic_nmsboolFalseВключает агностическое к классам Non-Maximum Suppression, которое объединяет перекрывающиеся рамки независимо от их предсказанного класса. Полезно для приложений, ориентированных на экземпляры.
single_clsboolFalseРассматривает все классы как один во время валидации. Полезно для оценки производительности модели в задачах бинарного обнаружения или когда различия между классами не важны.
visualizeboolFalseВизуализация истинных, истинно положительных, ложноположительных и ложноотрицательных результатов для каждого изображения. Полезно для отладки и интерпретации модели.
compilebool или strFalseВключает PyTorch 2.x torch.compile компиляция графа с помощью backend='inductor'. Принимает True"default", False → отключается, или строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". При отсутствии поддержки возвращается в режим eager с предупреждением.

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

Руководство по Val

Настройки экспорта

Параметры экспорта для моделей 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.
halfboolFalseВключает квантование FP16 (половина точности), уменьшая размер модели и потенциально ускоряя вывод на поддерживаемом оборудовании. Не совместимо с квантованием INT8 или экспортом CPU. Доступно только для некоторых форматов, например ONNX (см. ниже).
int8boolFalseАктивирует квантование INT8, дополнительно сжимая модель и ускоряя логический вывод с минимальной потерей точности, в основном для периферийных устройств. При использовании с TensorRT выполняет квантование после обучения (PTQ).
dynamicboolFalseПозволяет динамически изменять размеры входных данных при экспорте в ONNX, TensorRT и OpenVINO , что повышает гибкость при работе с изображениями разных размеров. Автоматически устанавливается на True при использовании TensorRT с INT8.
simplifyboolTrueУпрощает граф модели для экспорта ONNX с помощью onnxslim, потенциально улучшая производительность и совместимость с механизмами логического вывода.
opsetintNoneУказывает версию ONNX opset для совместимости с различными ONNX парсерами и средами выполнения. Если не задано, используется последняя поддерживаемая версия.
workspacefloat или NoneNoneУстанавливает максимальный размер рабочего пространства в GiB для TensorRT оптимизации, балансируя использование памяти и производительность. Используйте None для автоматического выделения TensorRT до максимального значения устройства.
nmsboolFalseДобавляет Non-Maximum Suppression (NMS) в экспортируемую модель, когда это поддерживается (см. Форматы экспорта), повышая эффективность постобработки обнаружения. Недоступно для end2end моделей.
batchint1Указывает размер пакета для инференса экспортной модели или максимальное количество изображений, которые экспортная модель будет обрабатывать одновременно в predict режим. Для экспорта Edge TPU это автоматически устанавливается в 1.
devicestrNoneУказывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для Apple silicon (device=mps) или DLA для NVIDIA Jetson (device=dla:0 или device=dla:1). TensorRT экспортирует данные автоматически с использованием GPU.
datastr'coco8.yaml'Путь к dataset файл конфигурации (по умолчанию: coco8.yaml), необходимые для калибровки квантования INT8. Если не указан с включенным INT8, будет назначен набор данных по умолчанию.
fractionfloat1.0Указывает долю набора данных, используемую для калибровки квантования INT8. Позволяет проводить калибровку на подмножестве полного набора данных, что полезно для экспериментов или при ограниченности ресурсов. Если не указано при включенном INT8, будет использован полный набор данных.

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

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

Настройки решений

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

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

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

Настройки аугментации

Методы аугментации данных необходимы для повышения устойчивости и производительности модели 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Изменяет значение (яркость) изображения на долю, помогая модели хорошо работать в различных условиях освещения.
degreesfloat0.0detect, segment, pose, obb0.0 - 180Случайно поворачивает изображение в пределах указанного диапазона градусов, улучшая способность модели распознавать объекты в различных ориентациях.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Сдвигает изображение по горизонтали и вертикали на долю размера изображения, помогая научиться обнаруживать частично видимые объекты.
scalefloat0.5detect, segment, pose, obb, classify>=0.0Масштабирует изображение на коэффициент усиления, имитируя объекты на разном расстоянии от камеры.
shearfloat0.0detect, segment, pose, obb-180 - +180Сдвигает изображение на заданный угол, имитируя эффект просмотра объектов с разных углов.
perspectivefloat0.0detect, segment, pose, obb0.0 - 0.001Применяет случайное перспективное преобразование к изображению, улучшая способность модели понимать объекты в 3D-пространстве.
flipudfloat0.0detect, segment, pose, obb, classify0.0 - 1.0Переворачивает изображение вверх ногами с указанной вероятностью, увеличивая вариативность данных, не влияя на характеристики объекта.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Отражает изображение слева направо с указанной вероятностью, что полезно для изучения симметричных объектов и увеличения разнообразия набора данных.
bgrfloat0.0detect, segment, pose, obb0.0 - 1.0Переключает каналы изображения с RGB на BGR с указанной вероятностью, что полезно для повышения устойчивости к неправильному порядку каналов.
mosaicfloat1.0detect, segment, pose, obb0.0 - 1.0Объединяет четыре обучающих изображения в одно, имитируя различные композиции сцен и взаимодействия объектов. Очень эффективно для понимания сложных сцен.
mixupfloat0.0detect, segment, pose, obb0.0 - 1.0Смешивает два изображения и их метки, создавая составное изображение. Повышает способность модели к обобщению за счет внесения шумовых меток и визуальной изменчивости.
cutmixfloat0.0detect, segment, pose, obb0.0 - 1.0Объединяет части двух изображений, создавая частичное смешивание с сохранением отдельных областей. Повышает устойчивость модели за счет создания сценариев окклюзии.
copy_pastefloat0.0segment0.0 - 1.0Копирует и вставляет объекты между изображениями, чтобы увеличить количество экземпляров объектов.
copy_paste_modestrflipsegment-Указывает copy-paste стратегию для использования. Возможные варианты включают 'flip' и 'mixup'.
auto_augmentstrrandaugmentclassify-Применяет предопределенную политику дополнения ('randaugment', 'autoaugment', или 'augmix') для повышения производительности модели за счет визуального разнообразия.
erasingfloat0.4classify0.0 - 0.9Случайное стирание областей изображения во время обучения, чтобы побудить модель сосредоточиться на менее очевидных особенностях.
augmentationslist{{ augmentations }}detect, segment, pose, obb-Пользовательские преобразования Albumentations для расширенного дополнения данныхPython толькоPython API). Принимает список объектов преобразований для специализированных задач по расширению данных.

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

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

Настройки логирования, контрольных точек и построения графиков

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

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

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

АргументПо умолчаниюОписание
project'runs'Указывает корневой каталог для сохранения результатов обучения. Каждый запуск сохраняется в отдельном подкаталоге.
name'exp'Определяет название эксперимента. Если не указано, YOLO увеличивает это имя для каждого запуска (например, exp, exp2) чтобы избежать перезаписи.
exist_okFalseОпределяет, следует ли перезаписывать существующий каталог экспериментов. True разрешает перезапись; False предотвращает это.
plotsFalseУправляет созданием и сохранением графиков обучения и валидации. Установите значение True для создания графиков, таких как кривые потерь, точность-полнотой (recall) кривые и примеры прогнозов для визуального отслеживания производительности.
saveFalseВключает сохранение контрольных точек обучения и окончательных весов модели. Установите значение True для периодического сохранения состояний модели, что позволяет возобновить обучение или развернуть модель.

Часто задаваемые вопросы

Как улучшить производительность моей модели YOLO во время обучения?

Оптимизируйте производительность, настраивая гиперпараметры, такие как размер пакета (batch size), скорость обучения (learning rate), импульс (momentum) и затухание весов (weight decay). Отрегулируйте параметры аугментации данных, выберите подходящий оптимизатор и используйте такие методы, как ранняя остановка (early stopping) или смешанная точность (mixed precision). Подробности см. в Руководстве по обучению.

Каковы ключевые гиперпараметры для точности модели YOLO?

Ключевые гиперпараметры, влияющие на точность, включают:

  • Размер пакета (batch): Большие размеры могут стабилизировать обучение, но требуют больше памяти.
  • Скорость обучения (lr0): Меньшие значения обеспечивают точную настройку, но более медленную сходимость.
  • Момент (Momentum) (momentum): Ускоряет векторы градиента, демпфируя колебания.
  • Размер изображения (Image Size) (imgsz): Большие размеры повышают точность, но увеличивают вычислительную нагрузку.

Отрегулируйте их в зависимости от вашего набора данных и оборудования. Узнайте больше в разделе Настройки обучения.

Как установить скорость обучения для обучения модели YOLO?

Скорость обучения (learning rate) (lr0) имеет решающее значение; начните с 0.01 для SGD или 0.001 для Оптимизатор Adam. Отслеживайте метрики и корректируйте их по мере необходимости. Используйте планировщики скорости обучения с косинусным спадом (cos_lr) или разогрева (warmup) (warmup_epochs, warmup_momentum). Подробности в Руководство по обучению.

Какие настройки инференса используются по умолчанию для моделей YOLO?

Настройки по умолчанию включают:

  • Порог уверенности (Confidence Threshold) (conf=0.25): Минимальная уверенность для обнаружений.
  • Порог IoU (IoU Threshold) (iou=0.7): Для Non-Maximum Suppression (NMS) - подавление немаксимумов.
  • Размер изображения (Image Size) (imgsz=640): Изменяет размер входных изображений.
  • Устройство (Device) (device=None): Выбирает CPU или GPU.

Полный обзор см. в разделах Настройки предсказания и Руководство по предсказанию.

Зачем использовать обучение со смешанной точностью с моделями YOLO?

Смешанная точность обучение (amp=True) снижает использование памяти и ускоряет обучение с использованием FP16 и FP32. Это полезно для современных GPU, позволяя использовать более крупные модели и более быстрые вычисления без значительной потери точности. Узнайте больше в Руководство по обучению.



📅 Создано 2 года назад ✏️ Обновлено 5 месяцев назад
glenn-jocherMatthewNoyceambitious-octopusfcakyonLaughing-qRizwanMunawarjk4eUltralyticsAssistantplashchynskiBurhan-QAyushExeltensorturtle

Комментарии