Конфигурация
Настройки и гиперпараметры YOLO играют решающую роль в производительности, скорости и точности модели. Эти настройки могут влиять на поведение модели на различных этапах, включая обучение, валидацию и прогнозирование.
Смотреть: Освоение Ultralytics YOLO: Конфигурация
Смотреть: Освоение Ultralytics YOLO: Конфигурация
Команды Ultralytics используют следующий синтаксис:
Пример
yolo TASK MODE ARGS
from ultralytics import YOLO
# Load a YOLO model from a pre-trained weights file
model = YOLO("yolo11n.pt")
# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)
Где:
TASK
(необязательный) является одним из (detect, segment, classify, pose, obb)MODE
(обязательный) является одним из (train, val, predict, export, track, benchmark)ARGS
(необязательные) этоarg=value
пары, такие какimgsz=640
которые переопределяют значения по умолчанию.
По умолчанию ARG
значения определены на этой странице и взяты из cfg/defaults.yaml
файла.
Задачи
Модели Ultralytics YOLO могут выполнять различные задачи компьютерного зрения, включая:
- Обнаружение: Обнаружение объектов определяет и локализует объекты на изображении или видео.
- Сегмент: Сегментация экземпляров разделяет изображение или видео на области, соответствующие различным объектам или классам.
- Классификация: Классификация изображений предсказывает метку класса входного изображения.
- Поза: Оценка позы определяет объекты и оценивает их ключевые точки на изображении или видео.
- OBB: Oriented Bounding Boxes использует повернутые ограничивающие рамки, подходящие для спутниковых или медицинских изображений.
Аргумент | По умолчанию | Описание |
---|---|---|
task |
'detect' |
Указывает задачу YOLO: detect для обнаружения объектов, segment для сегментации, classify для классификации, pose для оценки позы и obb для ориентированных ограничивающих рамок. Каждая задача адаптирована к конкретным выходным данным и проблемам анализа изображений и видео. |
Режимы
Модели Ultralytics YOLO работают в различных режимах, каждый из которых предназначен для определенного этапа жизненного цикла модели:
- Обучение: Обучите модель YOLO на пользовательском наборе данных.
- Val: Валидация обученной модели YOLO.
- Прогнозирование: Используйте обученную модель YOLO для прогнозирования на новых изображениях или видео.
- Экспорт: Экспорт модели YOLO для развертывания.
- Отслеживание: Отслеживайте объекты в режиме реального времени с помощью модели YOLO.
- Эталонное тестирование: Оценка скорости и точности экспорта YOLO (ONNX, TensorRT и т. д.).
Аргумент | По умолчанию | Описание |
---|---|---|
mode |
'train' |
Указывает режим работы модели YOLO: train для обучения модели, val для валидации, predict для инференса, export для преобразования в форматы развертывания, track для отслеживания объектов и benchmark для оценки производительности. Каждый режим поддерживает различные этапы, от разработки до развертывания. |
Настройки поезда
Параметры обучения для моделей YOLO включают гиперпараметры и конфигурации, которые влияют на производительность, скорость и точность модели. Ключевые параметры включают размер пакета, скорость обучения, импульс и затухание веса. Выбор оптимизатора, функции потерь и состава набора данных также влияет на обучение. Настройка и эксперименты имеют решающее значение для оптимальной производительности. Для получения более подробной информации см. функцию точки входа Ultralytics.
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
model |
str |
None |
Указывает файл модели для обучения. Принимает путь к предварительно обученной модели .pt или файлу конфигурации .yaml . Важен для определения структуры модели или инициализации весов. |
data |
str |
None |
Путь к файлу конфигурации набора данных (например, coco8.yaml ). Этот файл содержит параметры, специфичные для набора данных, включая пути к обучающим и данным валидации, названия классов и количество классов. |
epochs |
int |
100 |
Общее количество эпох обучения. Каждая эпоха представляет собой полный проход по всему набору данных. Настройка этого значения может повлиять на продолжительность обучения и производительность модели. |
time |
float |
None |
Максимальное время обучения в часах. Если задано, оно отменяет значение epochs аргумент, позволяющий автоматически прекратить обучение по истечении указанной продолжительности. Полезно для сценариев обучения с ограниченным временем. |
patience |
int |
100 |
Количество эпох, которое необходимо выждать при отсутствии улучшений в метриках проверки перед досрочным прекращением обучения. Помогает предотвратить чрезмерную подгонку, останавливая обучение, когда производительность достигает плато. |
batch |
int или float |
16 |
Размер партии, с тремя режимами: задается как целое число (например, batch=16 ), автоматический режим для 60 % использования памяти GPU (batch=-1 ), или автоматический режим с заданной долей использования (batch=0.70 ). |
imgsz |
int или list |
640 |
Целевой размер изображения для обучения. Перед подачей в модель все изображения изменяются до этого размера. Влияет на точность модели и сложность вычислений. |
save |
bool |
True |
Позволяет сохранить контрольные точки обучения и окончательные веса модели. Полезно для возобновления обучения или развертывания модели. |
save_period |
int |
-1 |
Частота сохранения контрольных точек модели, задается в эпохах. Значение -1 отключает эту функцию. Полезно для сохранения промежуточных моделей во время длительных тренировок. |
cache |
bool |
False |
Включает кэширование изображений наборов данных в памяти (True /ram ), на диске (disk ), или отключить его (False ). Повышает скорость обучения за счет снижения дискового ввода-вывода ценой увеличения использования памяти. |
device |
int или str или list |
None |
Указание вычислительного устройства (устройств) для обучения: один GPU (device=0 ), несколько графических процессоров (device=[0,1] ), CPU (device=cpu ), MPS для Apple silicon (device=mps ), или автоматическом выборе наиболее незагруженной GPU (device=-1 ) или несколько простаивающих GPU (device=[-1,-1] ) |
workers |
int |
8 |
Количество рабочих потоков для загрузки данных (на RANK если обучение многоGPU ). Влияет на скорость предварительной обработки данных и подачи их в модель, особенно полезно при использовании несколькихGPU установок. |
project |
str |
None |
Имя директории проекта, в которой сохраняются результаты обучения. Позволяет организовать хранение различных экспериментов. |
name |
str |
None |
Имя тренировочного прогона. Используется для создания подкаталога в папке проекта, в котором хранятся журналы тренировок и выходные данные. |
exist_ok |
bool |
False |
Если значение True, позволяет перезаписать существующий каталог проекта/имени. Полезно для итеративных экспериментов без необходимости вручную очищать предыдущие результаты. |
pretrained |
bool или str |
True |
Определяет, начинать ли обучение с предварительно обученной модели. Может быть булевым значением или строковым путем к конкретной модели, из которой загружаются веса. Повышает эффективность обучения и производительность модели. |
optimizer |
str |
'auto' |
Выбор оптимизатора для обучения. Возможные варианты: SGD , Adam , AdamW , NAdam , RAdam , RMSProp и т.д., или auto для автоматического выбора на основе конфигурации модели. Влияет на скорость и стабильность сходимости. |
seed |
int |
0 |
Устанавливает случайное начальное число для обучения, обеспечивая воспроизводимость результатов при запусках с одинаковыми конфигурациями. |
deterministic |
bool |
True |
Принудительно использует детерминированный алгоритм, обеспечивая воспроизводимость, но может повлиять на производительность и скорость из-за ограничения на недетерминированные алгоритмы. |
single_cls |
bool |
False |
Рассматривает все классы в многоклассовых наборах данных как один класс во время обучения. Полезно для задач бинарной классификации или когда основное внимание уделяется наличию объекта, а не классификации. |
classes |
list[int] |
None |
Указывает список ID классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время обучения. |
rect |
bool |
False |
Включает прямоугольное обучение, оптимизируя состав пакета для минимизации заполнения. Может повысить эффективность и скорость, но может повлиять на точность модели. |
multi_scale |
bool |
False |
Включает многомасштабное обучение путем увеличения/уменьшения imgsz до коэффициента 0.5 во время обучения. Обучает модель быть более точной с несколькими imgsz во время инференса. |
cos_lr |
bool |
False |
Использует планировщик скорости обучения на основе косинуса, регулируя скорость обучения в соответствии с косинусоидальной кривой в течение эпох. Помогает в управлении скоростью обучения для лучшей сходимости. |
close_mosaic |
int |
10 |
Отключает мозаичную аугментацию данных в последние N эпох для стабилизации обучения перед завершением. Установка значения 0 отключает эту функцию. |
resume |
bool |
False |
Возобновляет обучение с последней сохраненной контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и количество эпох, обеспечивая плавное продолжение обучения. |
amp |
bool |
True |
Включает автоматическое обучение смешанной точности (AMP), снижая использование памяти и, возможно, ускоряя обучение с минимальным влиянием на точность. |
fraction |
float |
1.0 |
Указывает долю набора данных для использования при обучении. Позволяет проводить обучение на подмножестве полного набора данных, что полезно для экспериментов или при ограниченных ресурсах. |
profile |
bool |
False |
Включает профилирование скорости ONNX и TensorRT во время обучения, что полезно для оптимизации развертывания модели. |
freeze |
int или list |
None |
Замораживает первые N слоев модели или указанные слои по индексу, уменьшая количество обучаемых параметров. Полезно для тонкой настройки или переноса обучения. |
lr0 |
float |
0.01 |
Начальная скорость обучения (т.е. SGD=1E-2 , Adam=1E-3 ). Регулировка этого значения имеет решающее значение для процесса оптимизации, влияя на скорость обновления весов модели. |
lrf |
float |
0.01 |
Конечная скорость обучения как доля начальной скорости = (lr0 * lrf ), используется в сочетании с планировщиками для регулировки скорости обучения с течением времени. |
momentum |
float |
0.937 |
Фактор импульса для SGD или beta1 для оптимизаторов Adam, влияющий на включение прошлых градиентов в текущее обновление. |
weight_decay |
float |
0.0005 |
L2 регуляризация, штрафующая большие веса для предотвращения переобучения. |
warmup_epochs |
float |
3.0 |
Количество эпох для разогрева скорости обучения, постепенно увеличивая скорость обучения с низкого значения до начальной скорости обучения для стабилизации обучения на ранней стадии. |
warmup_momentum |
float |
0.8 |
Начальный импульс для фазы разогрева, постепенно корректируемый до установленного импульса в течение периода разогрева. |
warmup_bias_lr |
float |
0.1 |
Скорость обучения для параметров смещения во время фазы разогрева, помогающая стабилизировать обучение модели в начальных эпохах. |
box |
float |
7.5 |
Вес компонента потери ограничивающего прямоугольника в функции потерь, влияющий на то, какой акцент делается на точном прогнозировании координат ограничивающего прямоугольника. |
cls |
float |
0.5 |
Вес потери классификации в общей функции потерь, влияющий на важность правильного прогнозирования класса по отношению к другим компонентам. |
dfl |
float |
1.5 |
Вес distribution focal loss, используемого в некоторых версиях YOLO для точной классификации. |
pose |
float |
12.0 |
Вес loss, связанного с определением позы, в моделях, обученных для оценки позы, влияющий на акцент на точном предсказании ключевых точек позы. |
kobj |
float |
2.0 |
Вес loss, связанного с определением наличия объекта по ключевым точкам, в моделях оценки позы, балансирующий уверенность обнаружения с точностью позы. |
nbs |
int |
64 |
Номинальный размер пакета для нормализации loss. |
overlap_mask |
bool |
True |
Определяет, следует ли объединять маски объектов в одну маску для обучения или хранить отдельно для каждого объекта. В случае перекрытия меньшая маска накладывается поверх большей маски во время объединения. |
mask_ratio |
int |
4 |
Коэффициент уменьшения дискретизации для масок сегментации, влияющий на разрешение масок, используемых во время обучения. |
dropout |
float |
0.0 |
Уровень Dropout для регуляризации в задачах классификации, предотвращающий переобучение путем случайного исключения юнитов во время обучения. |
val |
bool |
True |
Включает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных. |
plots |
bool |
False |
Создает и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и прогрессе обучения. |
Примечание о настройках размера пакета (Batch-size)
Параметр batch
Аргумент предлагает три варианта конфигурации:
- Фиксированный размер пакета: Укажите количество изображений на пакет целым числом (например,
batch=16
). - Автоматический режим (60% памяти GPU): Используйте
batch=-1
для автоматической настройки приблизительно до 60% использования памяти CUDA. - Автоматический режим с долей использования: Установите долю (например,
batch=0.70
) для настройки в зависимости от указанного использования памяти GPU.
Настройки Predict
Параметры предсказания для моделей YOLO включают гиперпараметры и конфигурации, которые влияют на производительность, скорость и точность во время инференса. Ключевые параметры включают порог уверенности, порог Non-Maximum Suppression (NMS) и количество классов. Размер входных данных, формат и дополнительные функции, такие как маски, также влияют на предсказания. Настройка этих параметров важна для оптимальной производительности.
Аргументы инференса:
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
source |
str |
'ultralytics/assets' |
Указывает источник данных для инференса. Может быть путем к изображению, видеофайлу, каталогу, URL-адресу или идентификатором устройства для прямых трансляций. Поддерживает широкий спектр форматов и источников, обеспечивая гибкое применение для различных типов входных данных. |
conf |
float |
0.25 |
Устанавливает минимальный порог уверенности для обнаружений. Объекты, обнаруженные с уверенностью ниже этого порога, будут игнорироваться. Настройка этого значения может помочь уменьшить количество ложных срабатываний. |
iou |
float |
0.7 |
Порог Intersection Over Union (IoU) для Non-Maximum Suppression (NMS). Более низкие значения приводят к меньшему количеству обнаружений за счет устранения перекрывающихся прямоугольников, что полезно для уменьшения дубликатов. |
imgsz |
int или tuple |
640 |
Определяет размер изображения для инференса. Может быть одним целым числом 640 для квадратного изменения размера или кортежем (высота, ширина). Правильное определение размера может улучшить обнаружение точность и скорость обработки. |
rect |
bool |
True |
Если включено, минимально дополняет короткую сторону изображения до тех пор, пока она не станет делимой на шаг, чтобы улучшить скорость inference. Если отключено, дополняет изображение до квадрата во время inference. |
half |
bool |
False |
Включает инференс с половинной точностью (FP16), что может ускорить инференс модели на поддерживаемых GPU с минимальным влиянием на точность. |
device |
str |
None |
Указывает устройство для инференса (например, cpu , cuda:0 или 0 ). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели. |
batch |
int |
1 |
Указывает размер пакета для инференса (работает только когда источник - каталог, видеофайл или .txt файла). Больший размер пакета может обеспечить более высокую пропускную способность, сокращая общее время, необходимое для логического вывода. |
max_det |
int |
300 |
Максимальное количество обнаружений, разрешенное для одного изображения. Ограничивает общее количество объектов, которые модель может обнаружить за один инференс, предотвращая избыточные выходные данные в плотных сценах. |
vid_stride |
int |
1 |
Шаг кадров для видеовходов. Позволяет пропускать кадры в видео для ускорения обработки за счет снижения временного разрешения. Значение 1 обрабатывает каждый кадр, более высокие значения пропускают кадры. |
stream_buffer |
bool |
False |
Определяет, следует ли ставить входящие кадры в очередь для видеопотоков. Если False , старые кадры отбрасываются для размещения новых кадров (оптимизировано для приложений реального времени). Если True , ставит новые кадры в очередь в буфере, гарантируя, что ни один кадр не будет пропущен, но вызовет задержку, если FPS логического вывода ниже, чем FPS потока. |
visualize |
bool |
False |
Активирует визуализацию особенностей модели во время инференса, предоставляя понимание того, что «видит» модель. Полезно для отладки и интерпретации модели. |
augment |
bool |
False |
Включает расширение данных во время теста (TTA) для прогнозов, что потенциально повышает устойчивость обнаружения за счет скорости инференса. |
agnostic_nms |
bool |
False |
Включает Non-Maximum Suppression (NMS), не зависящее от классов, которое объединяет перекрывающиеся рамки разных классов. Полезно в сценариях обнаружения нескольких классов, где перекрытие классов является обычным явлением. |
classes |
list[int] |
None |
Фильтрует прогнозы по набору идентификаторов классов. Будут возвращены только обнаружения, принадлежащие указанным классам. Полезно для фокусировки на релевантных объектах в задачах обнаружения нескольких классов. |
retina_masks |
bool |
False |
Возвращает маски сегментации высокого разрешения. Возвращаемые маски (masks.data ) будут соответствовать исходному размеру изображения, если эта функция включена. Если она отключена, они будут иметь размер изображения, используемый во время инференса. |
embed |
list[int] |
None |
Указывает слои, из которых извлекать векторы признаков или embeddings. Полезно для последующих задач, таких как кластеризация или поиск сходства. |
project |
str |
None |
Имя каталога проекта, в котором сохраняются выходные данные прогнозирования, если save включено. |
name |
str |
None |
Имя запуска прогнозирования. Используется для создания подкаталога в папке проекта, где хранятся выходные данные прогнозирования, если save включено. |
stream |
bool |
False |
Включает энергоэффективную обработку длинных видео или многочисленных изображений, возвращая генератор объектов Results вместо загрузки всех кадров в память одновременно. |
verbose |
bool |
True |
Управляет отображением подробных журналов выводов в терминале, обеспечивая обратную связь в режиме реального времени о процессе прогнозирования. |
Аргументы визуализации:
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
show |
bool |
False |
Если True , отображает аннотированные изображения или видео в окне. Полезно для немедленной визуальной обратной связи во время разработки или тестирования. |
save |
bool |
False or True |
Включает сохранение аннотированных изображений или видео в файл. Полезно для документирования, дальнейшего анализа или обмена результатами. По умолчанию имеет значение True при использовании CLI и False при использовании в python. |
save_frames |
bool |
False |
При обработке видео сохраняет отдельные кадры как изображения. Полезно для извлечения определенных кадров или для детального покадрового анализа. |
save_txt |
bool |
False |
Сохраняет результаты обнаружения в текстовом файле в формате [class] [x_center] [y_center] [width] [height] [confidence] . Полезно для интеграции с другими инструментами анализа. |
save_conf |
bool |
False |
Включает оценки достоверности в сохраненные текстовые файлы. Улучшает детализацию, доступную для постобработки и анализа. |
save_crop |
bool |
False |
Сохраняет вырезанные изображения обнаружений. Полезно для расширения набора данных, анализа или создания сфокусированных наборов данных для определенных объектов. |
show_labels |
bool |
True |
Отображает метки для каждого обнаружения в визуальном выводе. Обеспечивает немедленное понимание обнаруженных объектов. |
show_conf |
bool |
True |
Отображает оценку достоверности для каждого обнаружения рядом с меткой. Дает представление об уверенности модели для каждого обнаружения. |
show_boxes |
bool |
True |
Рисует ограничивающие рамки вокруг обнаруженных объектов. Необходим для визуальной идентификации и определения местоположения объектов на изображениях или видеокадрах. |
line_width |
None or int |
None |
Указывает ширину линии ограничивающих рамок. Если None , ширина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для большей четкости. |
Руководство по прогнозированию
Настройки валидации
Параметры проверки для моделей YOLO включают гиперпараметры и конфигурации для оценки производительности на наборе проверочных данных. Эти параметры влияют на производительность, скорость и точность. Общие параметры включают размер пакета, частоту проверки и метрики производительности. Размер и состав набора проверочных данных, а также конкретная задача также влияют на процесс.
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
data |
str |
None |
Указывает путь к файлу конфигурации набора данных (например, coco8.yaml ). Этот файл содержит пути к данным валидации, названия классов и количество классов. |
imgsz |
int |
640 |
Определяет размер входных изображений. Все изображения изменяются до этого размера перед обработкой. Большие размеры могут повысить точность для маленьких объектов, но увеличить время вычислений. |
batch |
int |
16 |
Устанавливает количество изображений в пакете. Более высокие значения более эффективно используют память GPU, но требуют больше VRAM. Настраивайте в зависимости от доступных аппаратных ресурсов. |
save_json |
bool |
False |
Если True , сохраняет результаты в файл JSON для дальнейшего анализа, интеграции с другими инструментами или отправки на серверы оценки, такие как COCO. |
conf |
float |
0.001 |
Устанавливает минимальный порог уверенности для обнаружений. Более низкие значения увеличивают полноту, но могут привести к увеличению количества ложных срабатываний. Используется во время валидации для вычисления кривых точности-полноты. |
iou |
float |
0.7 |
Устанавливает порог Intersection Over Union для Non-Maximum Suppression. Контролирует устранение дубликатов обнаружения. |
max_det |
int |
300 |
Ограничивает максимальное количество обнаружений на изображение. Полезно в плотных сценах для предотвращения чрезмерного количества обнаружений и управления вычислительными ресурсами. |
half |
bool |
True |
Включает вычисления половинной точности (FP16), снижая использование памяти и потенциально увеличивая скорость с минимальным влиянием на точность. |
device |
str |
None |
Указывает устройство для валидации (cpu , cuda:0 , и т.д.). Когда None , автоматически выбирает лучшее доступное устройство. Несколько устройств CUDA можно указать через запятую. |
dnn |
bool |
False |
Если True , использует OpenCV модуль DNN для логического вывода модели ONNX, предлагая альтернативу методам логического вывода PyTorch . |
plots |
bool |
False |
Когда установлено значение True , генерирует и сохраняет графики прогнозов в сравнении с истинными значениями, матрицы ошибок и кривые PR для визуальной оценки производительности модели. |
classes |
list[int] |
None |
Указывает список идентификаторов классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время оценки. |
rect |
bool |
True |
Если True , использует прямоугольный вывод для пакетирования, уменьшая заполнение и потенциально увеличивая скорость и эффективность за счет обработки изображений в их исходном соотношении сторон. |
split |
str |
'val' |
Определяет разделение набора данных, используемое для валидации (val , test , или train ). Обеспечивает гибкость в выборе сегмента данных для оценки производительности. |
project |
str |
None |
Имя каталога проекта, в котором сохраняются выходные данные проверки. Помогает организовать результаты различных экспериментов или моделей. |
name |
str |
None |
Имя запуска валидации. Используется для создания подкаталога в папке проекта, где хранятся журналы и результаты валидации. |
verbose |
bool |
False |
Если True , отображает подробную информацию в процессе валидации, включая метрики для каждого класса, прогресс пакета и дополнительную отладочную информацию. |
save_txt |
bool |
False |
Если True , сохраняет результаты обнаружения в текстовых файлах, по одному файлу на изображение, что полезно для дальнейшего анализа, пользовательской постобработки или интеграции с другими системами. |
save_conf |
bool |
False |
Если True , включает значения достоверности в сохраненные текстовые файлы, когда save_txt включен, обеспечивая более подробный вывод для анализа и фильтрации. |
workers |
int |
8 |
Количество рабочих потоков для загрузки данных. Более высокие значения могут ускорить предварительную обработку данных, но могут увеличить использование CPU. Установка значения 0 использует основной поток, что может быть более стабильным в некоторых средах. |
augment |
bool |
False |
Включает увеличение времени тестирования (TTA) во время валидации, что потенциально улучшает точность обнаружения за счет скорости инференса, выполняя инференс на преобразованных версиях входных данных. |
agnostic_nms |
bool |
False |
Включает агностическое к классам Non-Maximum Suppression, которое объединяет перекрывающиеся рамки независимо от их предсказанного класса. Полезно для приложений, ориентированных на экземпляры. |
single_cls |
bool |
False |
Рассматривает все классы как один во время валидации. Полезно для оценки производительности модели в задачах бинарного обнаружения или когда различия между классами не важны. |
Тщательная настройка и эксперименты имеют решающее значение для обеспечения оптимальной производительности, а также для обнаружения и предотвращения переобучения.
Настройки экспорта
Параметры экспорта для моделей YOLO включают конфигурации для сохранения или экспорта модели для использования в различных средах. Эти параметры влияют на производительность, размер и совместимость. Ключевые параметры включают формат экспортируемого файла (например, ONNX, TensorFlow SavedModel), целевое устройство (например, CPU, GPU) и такие функции, как маски. Задача модели и ограничения целевой среды также влияют на процесс экспорта.
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
format |
str |
'torchscript' |
Целевой формат для экспортируемой модели, такой как 'onnx' , 'torchscript' , 'engine' (TensorRT) или другие. Каждый формат обеспечивает совместимость с различными среды развертывания. |
imgsz |
int или tuple |
640 |
Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений (например, 640 для 640×640) или кортеж (height, width) для конкретных размеров. |
keras |
bool |
False |
Включает экспорт в формат Keras для TensorFlow SavedModel, обеспечивая совместимость с TensorFlow Serving и API. |
optimize |
bool |
False |
Применяет оптимизацию для мобильных устройств при экспорте в TorchScript, что потенциально снижает размер модели и повышает производительность инференса. Не совместимо с форматом NCNN или устройствами CUDA. |
half |
bool |
False |
Включает квантование FP16 (полуточное), уменьшая размер модели и потенциально ускоряя инференс на поддерживаемом оборудовании. Несовместимо с квантованием INT8 или экспортом только для CPU для ONNX. |
int8 |
bool |
False |
Активирует квантование INT8, дополнительно сжимая модель и ускоряя логический вывод с минимальной потерей точности, в основном для периферийных устройств. При использовании с TensorRT выполняет квантование после обучения (PTQ). |
dynamic |
bool |
False |
Обеспечивает динамические размеры входных данных для экспорта в ONNX, TensorRT и OpenVINO, повышая гибкость при обработке изображений с различными размерами. Автоматически устанавливается в True при использовании TensorRT с INT8. |
simplify |
bool |
True |
Упрощает граф модели для экспорта ONNX с помощью onnxslim , потенциально улучшая производительность и совместимость с механизмами логического вывода. |
opset |
int |
None |
Указывает версию ONNX opset для совместимости с различными ONNX парсерами и средами выполнения. Если не задано, используется последняя поддерживаемая версия. |
workspace |
float или None |
None |
Устанавливает максимальный размер рабочего пространства в GiB для TensorRT оптимизации, балансируя использование памяти и производительность. Используйте None для автоматического выделения TensorRT до максимального значения устройства. |
nms |
bool |
False |
Добавляет Non-Maximum Suppression (NMS) в экспортируемую модель, когда это поддерживается (см. Форматы экспорта), повышая эффективность постобработки обнаружения. Недоступно для end2end моделей. |
batch |
int |
1 |
Указывает размер пакета для инференса экспортной модели или максимальное количество изображений, которые экспортная модель будет обрабатывать одновременно в predict режим. Для экспорта Edge TPU это автоматически устанавливается в 1. |
device |
str |
None |
Указывает устройство для экспорта: GPU (device=0 ), CPU (device=cpu ), MPS для Apple silicon (device=mps ) или DLA для NVIDIA Jetson (device=dla:0 или device=dla:1 ). TensorRT экспортирует данные автоматически с использованием GPU. |
data |
str |
'coco8.yaml' |
Путь к dataset файл конфигурации (по умолчанию: coco8.yaml ), необходимые для калибровки квантования INT8. Если не указан с включенным INT8, будет назначен набор данных по умолчанию. |
fraction |
float |
1.0 |
Указывает долю набора данных, используемую для калибровки квантования INT8. Позволяет проводить калибровку на подмножестве полного набора данных, что полезно для экспериментов или при ограниченности ресурсов. Если не указано при включенном INT8, будет использован полный набор данных. |
Продуманная конфигурация гарантирует, что экспортированная модель оптимизирована для варианта использования и эффективно функционирует в целевой среде.
Настройки решений
Параметры конфигурации Ultralytics Solutions обеспечивают гибкость настройки моделей для таких задач, как подсчет объектов, создание тепловых карт, отслеживание тренировок, анализ данных, отслеживание зон, управление очередями и подсчет на основе регионов. Эти параметры позволяют легко выполнять корректировки для получения точных и полезных результатов, адаптированных к конкретным потребностям.
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
model |
str |
None |
Путь к файлу модели Ultralytics YOLO. |
region |
list |
'[(20, 400), (1260, 400)]' |
Список точек, определяющих область подсчета. |
show_in |
bool |
True |
Флаг для управления отображением количества входящих объектов на видеопотоке. |
show_out |
bool |
True |
Флаг для управления отображением количества исходящих объектов на видеопотоке. |
analytics_type |
str |
line |
Тип графа, т.е. line , bar , area , или pie . |
colormap |
int |
cv2.COLORMAP_JET |
Цветовая карта для тепловой карты. |
json_file |
str |
None |
Путь к JSON-файлу, содержащему все данные о координатах парковки. |
up_angle |
float |
145.0 |
Пороговое значение угла для позы 'вверху'. |
kpts |
list[int, int, int] |
'[6, 8, 10]' |
Список ключевых точек, используемых для мониторинга тренировок. Эти ключевые точки соответствуют суставам или частям тела, таким как плечи, локти и запястья, для таких упражнений, как отжимания, подтягивания, приседания, упражнения для пресса. |
down_angle |
float |
90.0 |
Пороговое значение угла для позы 'внизу'. |
blur_ratio |
float |
0.5 |
Регулирует процент интенсивности размытия, со значениями в диапазоне 0.1 - 1.0 . |
crop_dir |
str |
'cropped-detections' |
Имя каталога для хранения обрезанных обнаружений. |
records |
int |
5 |
Общее количество обнаружений для запуска электронной почты с системой охранной сигнализации. |
vision_point |
tuple[int, int] |
(20, 20) |
Точка, в которой зрение будет отслеживать объекты и рисовать пути, используя VisionEye Solution. |
source |
str |
None |
Путь к входному источнику (видео, RTSP и т. д.). Используется только с интерфейсом командной строки (CLI) Solutions. |
figsize |
tuple[int, int] |
(12.8, 7.2) |
Размер фигуры для аналитических графиков, таких как тепловые карты или графики. |
fps |
float |
30.0 |
Количество кадров в секунду, используемое для расчетов скорости. |
max_hist |
int |
5 |
Максимальное количество исторических точек для отслеживания каждого объекта для вычисления скорости/направления. |
meter_per_pixel |
float |
0.05 |
Коэффициент масштабирования, используемый для преобразования расстояния в пикселях в физические единицы. |
max_speed |
int |
120 |
Максимальное ограничение скорости в визуальных наложениях (используется в оповещениях). |
data |
str |
'images' |
Путь к каталогу изображений, используемому для поиска по сходству. |
Настройки аугментации
Методы аугментации данных необходимы для повышения устойчивости и производительности модели YOLO за счет внесения изменений в данные обучения, что помогает модели лучше обобщать невидимые данные. В следующей таблице описывается цель и эффект каждого аргумента аугментации:
Аргумент | Тип | По умолчанию | Диапазон | Описание |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
Регулирует оттенок изображения на долю цветового круга, внося вариативность цвета. Помогает модели обобщать при различных условиях освещения. |
hsv_s |
float |
0.7 |
0.0 - 1.0 |
Изменяет насыщенность изображения на долю, влияя на интенсивность цветов. Полезно для имитации различных условий окружающей среды. |
hsv_v |
float |
0.4 |
0.0 - 1.0 |
Изменяет значение (яркость) изображения на долю, помогая модели хорошо работать в различных условиях освещения. |
degrees |
float |
0.0 |
0.0 - 180 |
Случайно поворачивает изображение в пределах указанного диапазона градусов, улучшая способность модели распознавать объекты в различных ориентациях. |
translate |
float |
0.1 |
0.0 - 1.0 |
Сдвигает изображение по горизонтали и вертикали на долю размера изображения, помогая научиться обнаруживать частично видимые объекты. |
scale |
float |
0.5 |
>=0.0 |
Масштабирует изображение на коэффициент усиления, имитируя объекты на разном расстоянии от камеры. |
shear |
float |
0.0 |
-180 - +180 |
Сдвигает изображение на заданный угол, имитируя эффект просмотра объектов с разных углов. |
perspective |
float |
0.0 |
0.0 - 0.001 |
Применяет случайное перспективное преобразование к изображению, улучшая способность модели понимать объекты в 3D-пространстве. |
flipud |
float |
0.0 |
0.0 - 1.0 |
Переворачивает изображение вверх ногами с указанной вероятностью, увеличивая вариативность данных, не влияя на характеристики объекта. |
fliplr |
float |
0.5 |
0.0 - 1.0 |
Отражает изображение слева направо с указанной вероятностью, что полезно для изучения симметричных объектов и увеличения разнообразия набора данных. |
bgr |
float |
0.0 |
0.0 - 1.0 |
Переключает каналы изображения с RGB на BGR с указанной вероятностью, что полезно для повышения устойчивости к неправильному порядку каналов. |
mosaic |
float |
1.0 |
0.0 - 1.0 |
Объединяет четыре обучающих изображения в одно, имитируя различные композиции сцен и взаимодействия объектов. Очень эффективно для понимания сложных сцен. |
mixup |
float |
0.0 |
0.0 - 1.0 |
Смешивает два изображения и их метки, создавая составное изображение. Повышает способность модели к обобщению за счет внесения шумовых меток и визуальной изменчивости. |
cutmix |
float |
0.0 |
0.0 - 1.0 |
Объединяет части двух изображений, создавая частичное смешивание с сохранением отдельных областей. Повышает устойчивость модели за счет создания сценариев окклюзии. |
copy_paste |
float |
0.0 |
0.0 - 1.0 |
Только сегментация. Копирует и вставляет объекты между изображениями для увеличения количества экземпляров объектов. |
copy_paste_mode |
str |
flip |
- | Только сегментацияУказывает copy-paste стратегию для использования. Возможные варианты включают 'flip' и 'mixup' . |
auto_augment |
str |
randaugment |
- | Только классификация. Применяет предопределенную политику увеличения ('randaugment' , 'autoaugment' , или 'augmix' ) для повышения производительности модели за счет визуального разнообразия. |
erasing |
float |
0.4 |
0.0 - 0.9 |
Только классификация. Случайным образом стирает области изображения во время обучения, чтобы побудить модель сосредоточиться на менее очевидных признаках. |
Настройте эти параметры в соответствии с требованиями набора данных и задачи. Эксперименты с различными значениями могут помочь найти оптимальную стратегию увеличения для достижения наилучшей производительности модели.
Настройки логирования, контрольных точек и построения графиков
Ведение журналов, контрольные точки, построение графиков и управление файлами важны при обучении модели YOLO:
- Ведение журнала: Отслеживайте прогресс модели и диагностируйте проблемы, используя такие библиотеки, как TensorBoard, или записывая в файл.
- Контрольные точки: Сохраняйте модель через регулярные интервалы, чтобы возобновить обучение или экспериментировать с различными конфигурациями.
- Построение графиков: Визуализируйте производительность и прогресс обучения, используя такие библиотеки, как matplotlib или TensorBoard.
- Управление файлами: Организуйте файлы, созданные во время обучения, такие как контрольные точки, файлы журналов и графики, для легкого доступа и анализа.
Эффективное управление этими аспектами помогает отслеживать прогресс и упрощает отладку и оптимизацию.
Аргумент | По умолчанию | Описание |
---|---|---|
project |
'runs' |
Указывает корневой каталог для сохранения результатов обучения. Каждый запуск сохраняется в отдельном подкаталоге. |
name |
'exp' |
Определяет название эксперимента. Если не указано, YOLO увеличивает это имя для каждого запуска (например, exp , exp2 ) чтобы избежать перезаписи. |
exist_ok |
False |
Определяет, следует ли перезаписывать существующий каталог экспериментов. True разрешает перезапись; False предотвращает это. |
plots |
False |
Управляет созданием и сохранением графиков обучения и валидации. Установите значение True для создания графиков, таких как кривые потерь, точность-полнотой (recall) кривые и примеры прогнозов для визуального отслеживания производительности. |
save |
False |
Включает сохранение контрольных точек обучения и окончательных весов модели. Установите значение True для периодического сохранения состояний модели, что позволяет возобновить обучение или развернуть модель. |
Часто задаваемые вопросы
Как улучшить производительность моей модели YOLO во время обучения?
Оптимизируйте производительность, настраивая гиперпараметры, такие как размер пакета (batch size), скорость обучения (learning rate), импульс (momentum) и затухание весов (weight decay). Отрегулируйте параметры аугментации данных, выберите подходящий оптимизатор и используйте такие методы, как ранняя остановка (early stopping) или смешанная точность (mixed precision). Подробности см. в Руководстве по обучению.
Каковы ключевые гиперпараметры для точности модели YOLO?
Ключевые гиперпараметры, влияющие на точность, включают:
- Размер пакета (
batch
): Большие размеры могут стабилизировать обучение, но требуют больше памяти. - Скорость обучения (
lr0
): Меньшие значения обеспечивают точную настройку, но более медленную сходимость. - Момент (Momentum) (
momentum
): Ускоряет векторы градиента, демпфируя колебания. - Размер изображения (Image Size) (
imgsz
): Большие размеры повышают точность, но увеличивают вычислительную нагрузку.
Отрегулируйте их в зависимости от вашего набора данных и оборудования. Узнайте больше в разделе Настройки обучения.
Как установить скорость обучения для обучения модели YOLO?
Скорость обучения (learning rate) (lr0
) имеет решающее значение; начните с 0.01
для SGD или 0.001
для Оптимизатор Adam. Отслеживайте метрики и корректируйте их по мере необходимости. Используйте планировщики скорости обучения с косинусным спадом (cos_lr
) или разогрева (warmup) (warmup_epochs
, warmup_momentum
). Подробности в Руководство по обучению.
Какие настройки инференса используются по умолчанию для моделей YOLO?
Настройки по умолчанию включают:
- Порог уверенности (Confidence Threshold) (
conf=0.25
): Минимальная уверенность для обнаружений. - Порог IoU (IoU Threshold) (
iou=0.7
): Для Non-Maximum Suppression (NMS) - подавление немаксимумов. - Размер изображения (Image Size) (
imgsz=640
): Изменяет размер входных изображений. - Устройство (Device) (
device=None
): Выбирает CPU или GPU.
Полный обзор см. в разделах Настройки предсказания и Руководство по предсказанию.
Зачем использовать обучение со смешанной точностью с моделями YOLO?
Смешанная точность обучение (amp=True
) снижает использование памяти и ускоряет обучение с использованием FP16 и FP32. Это полезно для современных GPU, позволяя использовать более крупные модели и более быстрые вычисления без значительной потери точности. Узнайте больше в Руководство по обучению.