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

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

Настройки 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)

Где:

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

Задачи

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

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

Руководство по выполнению заданий

Режимы

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

  • Train: Обучение модели 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 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 (device=mps).
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 Указывает список идентификаторов классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время обучения.
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 для оптимизаторов Адама, влияющий на включение прошлых градиентов в текущее обновление.
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 Вес компонента box loss в функции потерь, влияющий на то, насколько большое внимание уделяется точному предсказанию координат ограничительной рамки.
cls float 0.5 Вес классификационных потерь в общей функции потерь, влияющий на важность правильного предсказания класса по сравнению с другими компонентами.
dfl float 1.5 Вес фокусных потерь распределения, используемый в некоторых версиях YOLO для более тонкой классификации.
pose float 12.0 Вес потери позы в моделях, обученных для оценки позы, влияет на акцент на точное предсказание ключевых точек позы.
kobj float 2.0 Вес потери объективности ключевой точки в моделях оценки позы, балансирующий между уверенностью в обнаружении и точностью позы.
nbs int 64 Номинальный размер партии для нормализации потерь.
overlap_mask bool True Определяет, следует ли объединить маски объектов в одну маску для обучения или оставить отдельные для каждого объекта. В случае перекрытия меньшая маска накладывается поверх большей при слиянии.
mask_ratio int 4 Коэффициент понижения дискретизации для масок сегментации, влияющий на разрешение масок, используемых при обучении.
dropout float 0.0 Показатель отсева для регуляризации в задачах классификации, предотвращающий перебор путем случайного исключения единиц в процессе обучения.
val bool True Включает проверку во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных.
plots bool False Генерирует и сохраняет графики показателей обучения и проверки, а также примеры предсказаний, обеспечивая визуальное представление о производительности модели и прогрессе обучения.

Примечание по настройкам размера партии

Сайт batch argument предлагает три варианта конфигурации:

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

Путеводитель по поезду

Прогнозирование настроек

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

Аргументы для умозаключений:

Аргумент Тип По умолчанию Описание
source str 'ultralytics/assets' Указывает источник данных для вывода. Это может быть путь к изображению, видеофайлу, директории, URL-адрес или идентификатор устройства для прямой трансляции. Поддерживает широкий спектр форматов и источников, что позволяет гибко использовать различные типы входных данных.
conf float 0.25 Устанавливает минимальный порог уверенности для обнаружений. Объекты, обнаруженные с достоверностью ниже этого порога, будут проигнорированы. Настройка этого значения может помочь уменьшить количество ложных срабатываний.
iou float 0.7 Порог Intersection Over Union (IoU) для немаксимального подавления (NMS). Более низкие значения приводят к уменьшению количества обнаружений за счет устранения перекрывающихся ячеек, что полезно для уменьшения количества дубликатов.
imgsz int или tuple 640 Определяет размер изображения для вывода. Может быть одним целым числом 640 для изменения размера квадрата или кортеж (высота, ширина). Правильное изменение размера может улучшить обнаружение точность и скорость обработки данных.
half bool False Включает вывод с половинной точностью (FP16), что позволяет ускорить вывод модели на поддерживаемых графических процессорах с минимальным влиянием на точность.
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 Определяет слои, из которых нужно извлечь векторы признаков или вкрапления. Полезно для последующих задач, таких как кластеризация или поиск сходства.
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Ширина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для наглядности.
font_size float None Размер шрифта текста для аннотаций. Масштабируется автоматически с размером изображения, если установлено значение None.
font str 'Arial.ttf' Название шрифта или путь к нему для текстовых аннотаций в визуализации.
pil bool False Возвращает изображение в виде объекта PIL Image вместо массива numpy.
kpt_radius int 5 Радиус ключевых точек при визуализации результатов оценки позы.
kpt_line bool True Соедините ключевые точки линиями при визуализации оценки позы.
masks bool True Отображение масок сегментации в выходных данных визуализации.
probs bool True Включите вероятности классификации в визуализацию.
filename str None Путь и имя файла для сохранения аннотированного изображения, когда save=True.
color_mode str 'class' Укажите режим раскраски для визуализаций, например, "экземпляр" или "класс".
txt_color tuple[int, int, int] (255, 255, 255) Цвет текста RGB для аннотаций к задачам классификации.

Путеводитель по предсказаниям

Настройки проверки

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

Аргумент Тип По умолчанию Описание
data str None Указывает путь к файлу конфигурации набора данных (например, coco8.yaml). Этот файл включает в себя пути к данные проверки, названия классов и их количество.
imgsz int 640 Определяет размер входных изображений. Перед обработкой все изображения приводятся к этому размеру. Большие размеры могут повысить точность для мелких объектов, но увеличивают время вычислений.
batch int 16 Устанавливает количество изображений в одной партии. При больших значениях память GPU используется более эффективно, но требуется больше VRAM. Настраивайте в зависимости от доступных аппаратных ресурсов.
save_json bool False Если True, сохраняет результаты в JSON-файл для дальнейшего анализа, интеграции с другими инструментами или отправки на серверы оценки, такие как COCO.
save_hybrid bool False Если TrueСохраняет гибридную версию меток, которая сочетает оригинальные аннотации с дополнительными предсказаниями модели. Полезно для полуконтрольного обучения и расширения наборов данных.
conf float 0.001 Устанавливает минимальный порог доверия для обнаружений. Более низкие значения увеличивают запоминание, но могут привести к увеличению числа ложных срабатываний. Используется во время проверки для вычисления кривых "точность-отзыв".
iou float 0.6 Устанавливает порог пересечения над объединением для не максимального подавления. Управляет устранением обнаружения дубликатов.
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 для визуальной оценки эффективности модели.
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 включается, обеспечивая более подробный вывод для анализа и фильтрации.
save_crop bool False Если TrueСохраняет обрезанные изображения обнаруженных объектов, которые могут быть полезны для создания наборов данных, визуальной проверки или дальнейшего анализа отдельных обнаружений.
workers int 8 Количество рабочих потоков для загрузки данных. Большие значения могут ускорить предварительную обработку данных, но могут увеличить нагрузку на CPU . При установке значения 0 используется основной поток, который может быть более стабильным в некоторых средах.
augment bool False Позволяет увеличить время тестирования (TTA) во время проверки, потенциально повышая точность обнаружения за счет снижения скорости вывода путем выполнения вывода на преобразованных версиях входных данных.
agnostic_nms bool False Включает не зависящую от класса функцию Non-Maximum Suppression, которая объединяет перекрывающиеся ячейки независимо от их предсказанного класса. Полезно для приложений, ориентированных на экземпляр.
single_cls bool False При проверке все классы рассматриваются как один класс. Полезно для оценки производительности модели в задачах обнаружения бинарных классов или когда различия между классами не важны.

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

Путеводитель по Валу

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

Настройки экспорта для моделей 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 обеспечивая совместимость с сервисами и API TensorFlow .
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 для совместимости с различными ONNX парсерами и программами выполнения. Если не задано, используется последняя поддерживаемая версия.
workspace float или None None Устанавливает максимальный размер рабочей области в гигабайтах для TensorRT оптимизация, позволяющая сбалансировать использование памяти и производительность. Используйте None для автоматического распределения по адресу TensorRT до максимального значения устройства.
nms bool False Добавляет в экспортируемую модель подавление без максимума (NMS), если оно поддерживается (см. раздел "Форматы экспорта"), повышая эффективность постобработки обнаружения. Недоступно для моделей end2end.
batch int 1 Указывает размер пакетного вывода экспортной модели или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в predict режим. Для экспорта Edge TPU это значение автоматически устанавливается на 1.
device str None Указывает устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для кремния Apple (device=mps) или DLA для NVIDIA Jetson (device=dla:0 или device=dla:1). Экспорт TensorRT автоматически использует GPU.
data str 'coco8.yaml' Путь к набор данных файл конфигурации (по умолчанию: coco8.yaml), необходимый для калибровки квантования 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] (50, 50) Точка, где зрение будет отслеживать объекты и рисовать траектории с помощью VisionEye Solution.
tracker str 'botsort.yaml' Указывает используемый алгоритм отслеживания, например, bytetrack.yaml или botsort.yaml.
conf float 0.3 Устанавливает порог доверия для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
iou float 0.5 Устанавливает порог пересечения над объединением (IoU) для фильтрации перекрывающихся обнаружений.
classes list None Фильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
verbose bool True Управляет отображением результатов отслеживания, обеспечивая визуальный вывод отслеживаемых объектов.
device str None Указывает устройство для вывода (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели.
show bool False Если Trueотображает аннотированные изображения или видео в окне. Полезно для немедленной визуальной обратной связи во время разработки или тестирования.
line_width None or int None Определяет ширину линии ограничительных рамок. Если NoneШирина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для наглядности.

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

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

Методы дополнения данных важны для повышения устойчивости и производительности модели 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 -180 - +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 Применяет к изображению случайное преобразование перспективы, улучшая способность модели понимать объекты в трехмерном пространстве.
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 Смешивает два изображения и их метки, создавая составное изображение. Усиливает способность модели к обобщению, внося шум от меток и визуальную изменчивость.
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 Случайно стирает часть изображения во время обучения классификации, побуждая модель сосредоточиться на менее очевидных признаках для распознавания.
crop_fraction float 1.0 0.1 - 1.0 Обрезает классификационное изображение до меньшего размера, чтобы подчеркнуть центральные особенности и адаптироваться к масштабу объекта, уменьшая отвлекающий фон.

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

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

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

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

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

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

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии