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

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

Настройки и гиперпараметры 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.

Аргумент Тип По умолчанию Описание
model str None Указывает файл модели для обучения. Принимает путь к предварительно обученной модели .pt или файлу конфигурации .yaml . Важен для определения структуры модели или инициализации весов.
data str None Путь к файлу конфигурации набора данных (например, coco8.yaml). Этот файл содержит параметры, специфичные для набора данных, включая пути к обучающим и данным валидации, названия классов и количество классов.
epochs int 100 Общее количество эпох обучения. Каждая эпоха представляет собой полный проход по всему набору данных. Настройка этого значения может повлиять на продолжительность обучения и производительность модели.
time float None Максимальное время обучения в часах. Если задано, оно отменяет значение epochs аргумент, позволяющий автоматически прекратить обучение по истечении указанной продолжительности. Полезно для сценариев обучения с ограниченным временем.
patience int 100 Количество эпох, которое необходимо выждать при отсутствии улучшений в метриках проверки перед досрочным прекращением обучения. Помогает предотвратить чрезмерную подгонку, останавливая обучение, когда производительность достигает плато.
batch int или float 16 Размер партии, с тремя режимами: задается как целое число (например, batch=16), автоматический режим для 60 % использования памяти GPU (batch=-1), или автоматический режим с заданной долей использования (batch=0.70).
imgsz int или list 640 Целевой размер изображения для обучения. Перед подачей в модель все изображения изменяются до этого размера. Влияет на точность модели и сложность вычислений.
save bool True Позволяет сохранить контрольные точки обучения и окончательные веса модели. Полезно для возобновления обучения или развертывания модели.
save_period int -1 Частота сохранения контрольных точек модели, задается в эпохах. Значение -1 отключает эту функцию. Полезно для сохранения промежуточных моделей во время длительных тренировок.
cache bool False Включает кэширование изображений наборов данных в памяти (True/ram), на диске (disk), или отключить его (False). Повышает скорость обучения за счет снижения дискового ввода-вывода ценой увеличения использования памяти.
device int или str или list None Указание вычислительного устройства (устройств) для обучения: один GPU (device=0), несколько графических процессоров (device=[0,1]), CPU (device=cpu), MPS для Apple silicon (device=mps), или автоматическом выборе наиболее незагруженной GPU (device=-1) или несколько простаивающих GPU (device=[-1,-1])
workers int 8 Количество рабочих потоков для загрузки данных (на RANK если обучение многоGPU ). Влияет на скорость предварительной обработки данных и подачи их в модель, особенно полезно при использовании несколькихGPU установок.
project str None Имя директории проекта, в которой сохраняются результаты обучения. Позволяет организовать хранение различных экспериментов.
name str None Имя тренировочного прогона. Используется для создания подкаталога в папке проекта, в котором хранятся журналы тренировок и выходные данные.
exist_ok bool False Если значение True, позволяет перезаписать существующий каталог проекта/имени. Полезно для итеративных экспериментов без необходимости вручную очищать предыдущие результаты.
pretrained bool или str True Определяет, начинать ли обучение с предварительно обученной модели. Может быть булевым значением или строковым путем к конкретной модели, из которой загружаются веса. Повышает эффективность обучения и производительность модели.
optimizer str 'auto' Выбор оптимизатора для обучения. Возможные варианты: SGD, Adam, AdamW, NAdam, RAdam, RMSProp и т.д., или auto для автоматического выбора на основе конфигурации модели. Влияет на скорость и стабильность сходимости.
seed int 0 Устанавливает случайное начальное число для обучения, обеспечивая воспроизводимость результатов при запусках с одинаковыми конфигурациями.
deterministic bool True Принудительно использует детерминированный алгоритм, обеспечивая воспроизводимость, но может повлиять на производительность и скорость из-за ограничения на недетерминированные алгоритмы.
single_cls bool False Рассматривает все классы в многоклассовых наборах данных как один класс во время обучения. Полезно для задач бинарной классификации или когда основное внимание уделяется наличию объекта, а не классификации.
classes list[int] None Указывает список ID классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время обучения.
rect bool False Включает прямоугольное обучение, оптимизируя состав пакета для минимизации заполнения. Может повысить эффективность и скорость, но может повлиять на точность модели.
multi_scale bool False Включает многомасштабное обучение путем увеличения/уменьшения imgsz до коэффициента 0.5 во время обучения. Обучает модель быть более точной с несколькими imgsz во время инференса.
cos_lr bool False Использует планировщик скорости обучения на основе косинуса, регулируя скорость обучения в соответствии с косинусоидальной кривой в течение эпох. Помогает в управлении скоростью обучения для лучшей сходимости.
close_mosaic int 10 Отключает мозаичную аугментацию данных в последние N эпох для стабилизации обучения перед завершением. Установка значения 0 отключает эту функцию.
resume bool False Возобновляет обучение с последней сохраненной контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и количество эпох, обеспечивая плавное продолжение обучения.
amp bool True Включает автоматическое обучение смешанной точности (AMP), снижая использование памяти и, возможно, ускоряя обучение с минимальным влиянием на точность.
fraction float 1.0 Указывает долю набора данных для использования при обучении. Позволяет проводить обучение на подмножестве полного набора данных, что полезно для экспериментов или при ограниченных ресурсах.
profile bool False Включает профилирование скорости ONNX и TensorRT во время обучения, что полезно для оптимизации развертывания модели.
freeze int или list None Замораживает первые N слоев модели или указанные слои по индексу, уменьшая количество обучаемых параметров. Полезно для тонкой настройки или переноса обучения.
lr0 float 0.01 Начальная скорость обучения (т.е. SGD=1E-2, Adam=1E-3). Регулировка этого значения имеет решающее значение для процесса оптимизации, влияя на скорость обновления весов модели.
lrf float 0.01 Конечная скорость обучения как доля начальной скорости = (lr0 * lrf), используется в сочетании с планировщиками для регулировки скорости обучения с течением времени.
momentum float 0.937 Фактор импульса для SGD или beta1 для оптимизаторов Adam, влияющий на включение прошлых градиентов в текущее обновление.
weight_decay float 0.0005 L2 регуляризация, штрафующая большие веса для предотвращения переобучения.
warmup_epochs float 3.0 Количество эпох для разогрева скорости обучения, постепенно увеличивая скорость обучения с низкого значения до начальной скорости обучения для стабилизации обучения на ранней стадии.
warmup_momentum float 0.8 Начальный импульс для фазы разогрева, постепенно корректируемый до установленного импульса в течение периода разогрева.
warmup_bias_lr float 0.1 Скорость обучения для параметров смещения во время фазы разогрева, помогающая стабилизировать обучение модели в начальных эпохах.
box float 7.5 Вес компонента потери ограничивающего прямоугольника в функции потерь, влияющий на то, какой акцент делается на точном прогнозировании координат ограничивающего прямоугольника.
cls float 0.5 Вес потери классификации в общей функции потерь, влияющий на важность правильного прогнозирования класса по отношению к другим компонентам.
dfl float 1.5 Вес distribution focal loss, используемого в некоторых версиях YOLO для точной классификации.
pose float 12.0 Вес loss, связанного с определением позы, в моделях, обученных для оценки позы, влияющий на акцент на точном предсказании ключевых точек позы.
kobj float 2.0 Вес loss, связанного с определением наличия объекта по ключевым точкам, в моделях оценки позы, балансирующий уверенность обнаружения с точностью позы.
nbs int 64 Номинальный размер пакета для нормализации loss.
overlap_mask bool True Определяет, следует ли объединять маски объектов в одну маску для обучения или хранить отдельно для каждого объекта. В случае перекрытия меньшая маска накладывается поверх большей маски во время объединения.
mask_ratio int 4 Коэффициент уменьшения дискретизации для масок сегментации, влияющий на разрешение масок, используемых во время обучения.
dropout float 0.0 Уровень Dropout для регуляризации в задачах классификации, предотвращающий переобучение путем случайного исключения юнитов во время обучения.
val bool True Включает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных.
plots bool False Создает и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и прогрессе обучения.

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

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

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

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

Настройки Predict

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

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

Аргумент Тип По умолчанию Описание
source str 'ultralytics/assets' Указывает источник данных для инференса. Может быть путем к изображению, видеофайлу, каталогу, URL-адресу или идентификатором устройства для прямых трансляций. Поддерживает широкий спектр форматов и источников, обеспечивая гибкое применение для различных типов входных данных.
conf float 0.25 Устанавливает минимальный порог уверенности для обнаружений. Объекты, обнаруженные с уверенностью ниже этого порога, будут игнорироваться. Настройка этого значения может помочь уменьшить количество ложных срабатываний.
iou float 0.7 Порог Intersection Over Union (IoU) для Non-Maximum Suppression (NMS). Более низкие значения приводят к меньшему количеству обнаружений за счет устранения перекрывающихся прямоугольников, что полезно для уменьшения дубликатов.
imgsz int или tuple 640 Определяет размер изображения для инференса. Может быть одним целым числом 640 для квадратного изменения размера или кортежем (высота, ширина). Правильное определение размера может улучшить обнаружение точность и скорость обработки.
rect bool True Если включено, минимально дополняет короткую сторону изображения до тех пор, пока она не станет делимой на шаг, чтобы улучшить скорость inference. Если отключено, дополняет изображение до квадрата во время inference.
half bool False Включает инференс с половинной точностью (FP16), что может ускорить инференс модели на поддерживаемых GPU с минимальным влиянием на точность.
device str None Указывает устройство для инференса (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели.
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 Включает Non-Maximum Suppression (NMS), не зависящее от классов, которое объединяет перекрывающиеся рамки разных классов. Полезно в сценариях обнаружения нескольких классов, где перекрытие классов является обычным явлением.
classes list[int] None Фильтрует прогнозы по набору идентификаторов классов. Будут возвращены только обнаружения, принадлежащие указанным классам. Полезно для фокусировки на релевантных объектах в задачах обнаружения нескольких классов.
retina_masks bool False Возвращает маски сегментации высокого разрешения. Возвращаемые маски (masks.data) будут соответствовать исходному размеру изображения, если эта функция включена. Если она отключена, они будут иметь размер изображения, используемый во время инференса.
embed list[int] None Указывает слои, из которых извлекать векторы признаков или embeddings. Полезно для последующих задач, таких как кластеризация или поиск сходства.
project str None Имя каталога проекта, в котором сохраняются выходные данные прогнозирования, если save включено.
name str None Имя запуска прогнозирования. Используется для создания подкаталога в папке проекта, где хранятся выходные данные прогнозирования, если save включено.
stream bool False Включает энергоэффективную обработку длинных видео или многочисленных изображений, возвращая генератор объектов Results вместо загрузки всех кадров в память одновременно.
verbose bool True Управляет отображением подробных журналов выводов в терминале, обеспечивая обратную связь в режиме реального времени о процессе прогнозирования.

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

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

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

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

Параметры проверки для моделей 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 Устанавливает минимальный порог уверенности для обнаружений. Более низкие значения увеличивают полноту, но могут привести к увеличению количества ложных срабатываний. Используется во время валидации для вычисления кривых точности-полноты.
iou float 0.7 Устанавливает порог Intersection Over Union для Non-Maximum Suppression. Контролирует устранение дубликатов обнаружения.
max_det int 300 Ограничивает максимальное количество обнаружений на изображение. Полезно в плотных сценах для предотвращения чрезмерного количества обнаружений и управления вычислительными ресурсами.
half bool True Включает вычисления половинной точности (FP16), снижая использование памяти и потенциально увеличивая скорость с минимальным влиянием на точность.
device str None Указывает устройство для валидации (cpu, cuda:0, и т.д.). Когда None, автоматически выбирает лучшее доступное устройство. Несколько устройств CUDA можно указать через запятую.
dnn bool False Если True, использует OpenCV модуль DNN для логического вывода модели ONNX, предлагая альтернативу методам логического вывода PyTorch .
plots bool False Когда установлено значение True, генерирует и сохраняет графики прогнозов в сравнении с истинными значениями, матрицы ошибок и кривые PR для визуальной оценки производительности модели.
classes list[int] None Указывает список идентификаторов классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время оценки.
rect bool True Если True, использует прямоугольный вывод для пакетирования, уменьшая заполнение и потенциально увеличивая скорость и эффективность за счет обработки изображений в их исходном соотношении сторон.
split str 'val' Определяет разделение набора данных, используемое для валидации (val, test, или train). Обеспечивает гибкость в выборе сегмента данных для оценки производительности.
project str None Имя каталога проекта, в котором сохраняются выходные данные проверки. Помогает организовать результаты различных экспериментов или моделей.
name str None Имя запуска валидации. Используется для создания подкаталога в папке проекта, где хранятся журналы и результаты валидации.
verbose bool False Если 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, которое объединяет перекрывающиеся рамки независимо от их предсказанного класса. Полезно для приложений, ориентированных на экземпляры.
single_cls bool False Рассматривает все классы как один во время валидации. Полезно для оценки производительности модели в задачах бинарного обнаружения или когда различия между классами не важны.

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

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

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

Параметры экспорта для моделей 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.
half bool False Включает квантование FP16 (полуточное), уменьшая размер модели и потенциально ускоряя инференс на поддерживаемом оборудовании. Несовместимо с квантованием INT8 или экспортом только для CPU для ONNX.
int8 bool False Активирует квантование INT8, дополнительно сжимая модель и ускоряя логический вывод с минимальной потерей точности, в основном для периферийных устройств. При использовании с TensorRT выполняет квантование после обучения (PTQ).
dynamic bool False Обеспечивает динамические размеры входных данных для экспорта в ONNX, TensorRT и OpenVINO, повышая гибкость при обработке изображений с различными размерами. Автоматически устанавливается в True при использовании TensorRT с INT8.
simplify bool True Упрощает граф модели для экспорта ONNX с помощью onnxslim, потенциально улучшая производительность и совместимость с механизмами логического вывода.
opset int None Указывает версию ONNX opset для совместимости с различными ONNX парсерами и средами выполнения. Если не задано, используется последняя поддерживаемая версия.
workspace float или None None Устанавливает максимальный размер рабочего пространства в GiB для TensorRT оптимизации, балансируя использование памяти и производительность. Используйте None для автоматического выделения TensorRT до максимального значения устройства.
nms bool False Добавляет Non-Maximum Suppression (NMS) в экспортируемую модель, когда это поддерживается (см. Форматы экспорта), повышая эффективность постобработки обнаружения. Недоступно для end2end моделей.
batch int 1 Указывает размер пакета для инференса экспортной модели или максимальное количество изображений, которые экспортная модель будет обрабатывать одновременно в predict режим. Для экспорта Edge TPU это автоматически устанавливается в 1.
device str None Указывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для Apple silicon (device=mps) или DLA для NVIDIA Jetson (device=dla:0 или device=dla:1). TensorRT экспортирует данные автоматически с использованием GPU.
data str 'coco8.yaml' Путь к dataset файл конфигурации (по умолчанию: coco8.yaml), необходимые для калибровки квантования INT8. Если не указан с включенным INT8, будет назначен набор данных по умолчанию.
fraction float 1.0 Указывает долю набора данных, используемую для калибровки квантования INT8. Позволяет проводить калибровку на подмножестве полного набора данных, что полезно для экспериментов или при ограниченности ресурсов. Если не указано при включенном INT8, будет использован полный набор данных.

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

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

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

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

Аргумент Тип По умолчанию Описание
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_JET Цветовая карта для тепловой карты.
json_file str None Путь к JSON-файлу, содержащему все данные о координатах парковки.
up_angle float 145.0 Пороговое значение угла для позы 'вверху'.
kpts list[int, int, int] '[6, 8, 10]' Список ключевых точек, используемых для мониторинга тренировок. Эти ключевые точки соответствуют суставам или частям тела, таким как плечи, локти и запястья, для таких упражнений, как отжимания, подтягивания, приседания, упражнения для пресса.
down_angle float 90.0 Пороговое значение угла для позы 'внизу'.
blur_ratio float 0.5 Регулирует процент интенсивности размытия, со значениями в диапазоне 0.1 - 1.0.
crop_dir str 'cropped-detections' Имя каталога для хранения обрезанных обнаружений.
records int 5 Общее количество обнаружений для запуска электронной почты с системой охранной сигнализации.
vision_point tuple[int, int] (20, 20) Точка, в которой зрение будет отслеживать объекты и рисовать пути, используя VisionEye Solution.
source str None Путь к входному источнику (видео, RTSP и т. д.). Используется только с интерфейсом командной строки (CLI) Solutions.
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' Путь к каталогу изображений, используемому для поиска по сходству.

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

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

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

Аргумент Тип По умолчанию Диапазон Описание
hsv_h float 0.015 0.0 - 1.0 Регулирует оттенок изображения на долю цветового круга, внося вариативность цвета. Помогает модели обобщать при различных условиях освещения.
hsv_s float 0.7 0.0 - 1.0 Изменяет насыщенность изображения на долю, влияя на интенсивность цветов. Полезно для имитации различных условий окружающей среды.
hsv_v float 0.4 0.0 - 1.0 Изменяет значение (яркость) изображения на долю, помогая модели хорошо работать в различных условиях освещения.
degrees float 0.0 0.0 - 180 Случайно поворачивает изображение в пределах указанного диапазона градусов, улучшая способность модели распознавать объекты в различных ориентациях.
translate float 0.1 0.0 - 1.0 Сдвигает изображение по горизонтали и вертикали на долю размера изображения, помогая научиться обнаруживать частично видимые объекты.
scale float 0.5 >=0.0 Масштабирует изображение на коэффициент усиления, имитируя объекты на разном расстоянии от камеры.
shear float 0.0 -180 - +180 Сдвигает изображение на заданный угол, имитируя эффект просмотра объектов с разных углов.
perspective float 0.0 0.0 - 0.001 Применяет случайное перспективное преобразование к изображению, улучшая способность модели понимать объекты в 3D-пространстве.
flipud float 0.0 0.0 - 1.0 Переворачивает изображение вверх ногами с указанной вероятностью, увеличивая вариативность данных, не влияя на характеристики объекта.
fliplr float 0.5 0.0 - 1.0 Отражает изображение слева направо с указанной вероятностью, что полезно для изучения симметричных объектов и увеличения разнообразия набора данных.
bgr float 0.0 0.0 - 1.0 Переключает каналы изображения с RGB на BGR с указанной вероятностью, что полезно для повышения устойчивости к неправильному порядку каналов.
mosaic float 1.0 0.0 - 1.0 Объединяет четыре обучающих изображения в одно, имитируя различные композиции сцен и взаимодействия объектов. Очень эффективно для понимания сложных сцен.
mixup float 0.0 0.0 - 1.0 Смешивает два изображения и их метки, создавая составное изображение. Повышает способность модели к обобщению за счет внесения шумовых меток и визуальной изменчивости.
cutmix float 0.0 0.0 - 1.0 Объединяет части двух изображений, создавая частичное смешивание с сохранением отдельных областей. Повышает устойчивость модели за счет создания сценариев окклюзии.
copy_paste float 0.0 0.0 - 1.0 Только сегментация. Копирует и вставляет объекты между изображениями для увеличения количества экземпляров объектов.
copy_paste_mode str flip - Только сегментацияУказывает copy-paste стратегию для использования. Возможные варианты включают 'flip' и 'mixup'.
auto_augment str randaugment - Только классификация. Применяет предопределенную политику увеличения ('randaugment', 'autoaugment', или 'augmix') для повышения производительности модели за счет визуального разнообразия.
erasing float 0.4 0.0 - 0.9 Только классификация. Случайным образом стирает области изображения во время обучения, чтобы побудить модель сосредоточиться на менее очевидных признаках.

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

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

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

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

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

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

Аргумент По умолчанию Описание
project 'runs' Указывает корневой каталог для сохранения результатов обучения. Каждый запуск сохраняется в отдельном подкаталоге.
name 'exp' Определяет название эксперимента. Если не указано, YOLO увеличивает это имя для каждого запуска (например, exp, exp2) чтобы избежать перезаписи.
exist_ok False Определяет, следует ли перезаписывать существующий каталог экспериментов. True разрешает перезапись; False предотвращает это.
plots False Управляет созданием и сохранением графиков обучения и валидации. Установите значение True для создания графиков, таких как кривые потерь, точность-полнотой (recall) кривые и примеры прогнозов для визуального отслеживания производительности.
save False Включает сохранение контрольных точек обучения и окончательных весов модели. Установите значение 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, позволяя использовать более крупные модели и более быстрые вычисления без значительной потери точности. Узнайте больше в Руководство по обучению.



📅 Создано 1 год назад ✏️ Обновлено 26 дней назад

Комментарии