Конфигурация
Настройки 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 он не указан, будет назначен набор данных по умолчанию. |
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] |
(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. Это выгодно для современных графических процессоров, позволяя использовать более крупные модели и ускорять вычисления без существенной потери точности. Узнайте больше в Путеводитель по поезду.