Конфигурация
Настройки YOLO и гиперпараметры играют важную роль в производительности, скорости и точности модели. Эти параметры могут влиять на поведение модели на различных этапах, включая обучение, проверку и прогнозирование.
Смотреть: Освоение Ultralytics YOLO: конфигурация
Смотреть: Освоение Ultralytics YOLO : Конфигурация
Ultralytics В командах используется следующий синтаксис:
Пример
Где:
TASK
(необязательно) - одно из (обнаружить, сегмент, классифицировать, поза, obb)MODE
(обязательно) является одним из (поезд, val, предсказать, экспорт, трек, эталон)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 работают в разных режимах, каждый из которых предназначен для определенного этапа жизненного цикла модели:
- 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. Это выгодно для современных графических процессоров, позволяя использовать более крупные модели и ускорять вычисления без существенной потери точности. Узнайте больше в Путеводитель по поезду.