Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOE: Реальное время для чего угодно#

Link to this sectionВведение#

Опции подсказок YOLOE

YOLOE (Real-Time Seeing Anything) — это новое достижение в области zero-shot моделей YOLO с поддержкой промптов, разработанное для open-vocabulary детекции и сегментации. В отличие от предыдущих моделей YOLO, ограниченных фиксированными категориями, YOLOE использует текстовые, визуальные или внутренние словарные подсказки, что позволяет обнаруживать объекты любого класса в реальном времени. Построенная на базе YOLOv10 и вдохновленная YOLO-World, модель YOLOE обеспечивает передовую zero-shot производительность с минимальным влиянием на скорость и точность.



Watch: How to use Ultralytics YOLOE-26 (New) | Open Vocabulary & Real-Time Seeing Anything 🚀

По сравнению с ранними моделями YOLO, YOLOE значительно повышает эффективность и точность. Она превосходит YOLO-Worldv2 на LVIS на +3.5 AP, используя при этом всего треть тренировочных ресурсов и обеспечивая в 1.4 раза более высокую скорость инференса. Дообученная на COCO, модель YOLOE-v8-large превосходит YOLOv8-L на 0.1 mAP, используя почти в 4 раза меньше времени на обучение. Это демонстрирует исключительный баланс точности, эффективности и универсальности YOLOE. В разделах ниже исследуются архитектура YOLOE, сравнительные бенчмарки и интеграция с фреймворком Ultralytics.

Link to this sectionОбзор архитектуры#

YOLOE Architecture

YOLOE сохраняет стандартную структуру YOLO — сверточный backbone (например, CSP-Darknet) для извлечения признаков, neck (например, PAN-FPN) для многомасштабного объединения и anchor-free, decoupled голову (head) детекции (как в YOLOv8/YOLO11), прогнозирующую наличие объекта, классы и ограничивающие рамки независимо. YOLOE представляет три новых модуля, обеспечивающих open-vocabulary детекцию:

  • Re-parameterizable Region-Text Alignment (RepRTA): поддерживает детекцию по текстовым подсказкам, уточняя текстовые embeddings (например, из CLIP) через небольшую вспомогательную сеть. При инференсе эта сеть встраивается в основную модель, гарантируя отсутствие дополнительных затрат времени. Таким образом, YOLOE обнаруживает произвольные текстовые объекты (например, еще не встречавшийся «светофор») без потери производительности во время работы.

  • Semantic-Activated Visual Prompt Encoder (SAVPE): обеспечивает детекцию по визуальным подсказкам через легкую ветку эмбеддингов. Получая эталонное изображение, SAVPE кодирует семантические признаки и признаки активации, настраивая модель на обнаружение визуально похожих объектов — возможность one-shot детекции, полезная для логотипов или специфических деталей.

  • Lazy Region-Prompt Contrast (LRPC): в режиме без подсказок (prompt-free mode) YOLOE выполняет распознавание открытых множеств, используя внутренние эмбеддинги, обученные на обширных словарях (1200+ категорий из LVIS и Objects365). Без внешних подсказок или энкодеров YOLOE идентифицирует объекты через поиск сходства эмбеддингов, эффективно обрабатывая большие пространства меток при инференсе.

Кроме того, YOLOE интегрирует сегментацию экземпляров в реальном времени, расширяя голову детекции веткой прогнозирования масок (по аналогии с YOLACT или YOLOv8-Seg) с минимальными накладными расходами.

Что критически важно, модули открытого мира YOLOE не требуют затрат на инференс при использовании в качестве обычной модели YOLO с закрытым множеством классов. После обучения параметры YOLOE можно репараметризовать в стандартную голову YOLO, сохраняя идентичные показатели FLOPs и скорости (например, полностью соответствующие YOLO11).

Link to this sectionДоступные модели, поддерживаемые задачи и режимы работы#

В этом разделе подробно описаны доступные модели с их конкретными предобученными весами, задачи, которые они поддерживают, и их совместимость с различными режимами работы, такими как Inference, Validation, Training и Export, обозначенными ✅ для поддерживаемых режимов и ❌ для неподдерживаемых.

Link to this sectionМодели с текстовыми/визуальными подсказками#

Тип моделиПредобученные весаПоддерживаемые задачиInferenceValidationTrainingЭкспорт
YOLOE-11Syoloe-11s-seg.ptInstance Segmentation
YOLOE-11Myoloe-11m-seg.ptInstance Segmentation
YOLOE-11Lyoloe-11l-seg.ptInstance Segmentation
YOLOE-v8Syoloe-v8s-seg.ptInstance Segmentation
YOLOE-v8Myoloe-v8m-seg.ptInstance Segmentation
YOLOE-v8Lyoloe-v8l-seg.ptInstance Segmentation
YOLOE-26Nyoloe-26n-seg.ptInstance Segmentation
YOLOE-26Syoloe-26s-seg.ptInstance Segmentation
YOLOE-26Myoloe-26m-seg.ptInstance Segmentation
YOLOE-26Lyoloe-26l-seg.ptInstance Segmentation
YOLOE-26Xyoloe-26x-seg.ptInstance Segmentation

Link to this sectionМодели без подсказок (Prompt Free)#

Тип моделиПредобученные весаПоддерживаемые задачиInferenceValidationTrainingЭкспорт
YOLOE-11S-PFyoloe-11s-seg-pf.ptInstance Segmentation
YOLOE-11M-PFyoloe-11m-seg-pf.ptInstance Segmentation
YOLOE-11L-PFyoloe-11l-seg-pf.ptInstance Segmentation
YOLOE-v8S-PFyoloe-v8s-seg-pf.ptInstance Segmentation
YOLOE-v8M-PFyoloe-v8m-seg-pf.ptInstance Segmentation
YOLOE-v8L-PFyoloe-v8l-seg-pf.ptInstance Segmentation
YOLOE-26N-PFyoloe-26n-seg-pf.ptInstance Segmentation
YOLOE-26S-PFyoloe-26s-seg-pf.ptInstance Segmentation
YOLOE-26M-PFyoloe-26m-seg-pf.ptInstance Segmentation
YOLOE-26L-PFyoloe-26l-seg-pf.ptInstance Segmentation
YOLOE-26X-PFyoloe-26x-seg-pf.ptInstance Segmentation
Производительность YOLOE-26

Для подробных бенчмарков производительности моделей YOLOE-26 обратись к документации YOLO26.

Link to this sectionПримеры использования#

Модели YOLOE легко интегрировать в твои Python-приложения. Ultralytics предоставляет удобный Python API и команды CLI для оптимизации процесса разработки.

Link to this sectionИспользование для обучения#

Link to this sectionДообучение на собственном наборе данных#

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



Watch: How to Train YOLOE on Car Parts Segmentation Dataset | Open-Vocabulary Model, Prediction & Export 🚀
Пример

Сегментация экземпляров

Дообучение предобученного чекпоинта YOLOE в основном следует стандартной процедуре обучения YOLO. Основное отличие заключается в явной передаче YOLOEPESegTrainer в качестве параметра trainer для метода model.train():

from ultralytics import YOLOE
from ultralytics.models.yolo.yoloe import YOLOEPESegTrainer

model = YOLOE("yoloe-26s-seg.pt")

# Fine-tune on your segmentation dataset
results = model.train(
    data="coco128-seg.yaml",  # Segmentation dataset
    epochs=80,
    patience=10,
    trainer=YOLOEPESegTrainer,  # <- Important: use segmentation trainer
)

Обнаружение объектов (детекция)

Все предобученные модели YOLOE по умолчанию выполняют сегментацию экземпляров. Чтобы использовать эти предобученные чекпоинты для обучения модели детекции, инициализируй модель детекции с нуля, используя YAML-конфигурацию, а затем загрузи предобученный чекпоинт сегментации того же масштаба. Обрати внимание, что мы используем YOLOEPETrainer вместо YOLOEPESegTrainer, так как обучаем модель детекции:

from ultralytics import YOLOE
from ultralytics.models.yolo.yoloe import YOLOEPETrainer

# Initialize a detection model from a config
model = YOLOE("yoloe-26s.yaml")

# Load weights from a pretrained segmentation checkpoint (same scale)
model.load("yoloe-26s-seg.pt")

# Fine-tune on your detection dataset
results = model.train(
    data="coco128.yaml",  # Detection dataset
    epochs=80,
    patience=10,
    trainer=YOLOEPETrainer,  # <- Important: use detection trainer
)

Link to this sectionИспользование для предсказания#

YOLOE поддерживает как текстовые, так и визуальные подсказки. Использовать подсказки просто — просто передай их через метод predict, как показано ниже:

Пример

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

from ultralytics import YOLOE

# Initialize a YOLOE model
model = YOLOE("yoloe-26l-seg.pt")  # or yoloe-26s/m-seg.pt for different sizes

# Set text prompt to detect person and bus. You only need to do this once after you load the model.
model.set_classes(["person", "bus"])

# Run detection on the given image
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()

Link to this sectionИспользование для валидации#

Валидация модели на наборе данных упрощена следующим образом:

Пример
from ultralytics import YOLOE

# Create a YOLOE model
model = YOLOE("yoloe-26l-seg.pt")  # or yoloe-26s/m-seg.pt for different sizes

# Conduct model validation on the COCO128-seg example dataset
metrics = model.val(data="coco128-seg.yaml")

Link to this sectionИспользование при экспорте#

Процесс экспорта аналогичен другим моделям YOLO с дополнительной гибкостью в обработке текстовых и визуальных подсказок:

Экспортированные модели являются статическими

Классы, настроенные с помощью set_classes() (или через refer_image для визуальных подсказок), вшиваются в экспортированные веса. После экспорта модель больше не может принимать новые подсказки: вызов set_classes() или передача visual_prompts=... в predict() для загруженной экспортированной модели приведет к ошибке. Чтобы изменить обнаруживаемые классы, выполни повторный экспорт из оригинального .pt чекпоинта с настроенными новыми подсказками. Экспортированный файл ведет себя как стандартный детектор YOLO, и его также можно загрузить с помощью YOLO() вместо YOLOE().

Пример
from ultralytics import YOLOE

# Select yoloe-26s/m-seg.pt for different sizes
model = YOLOE("yoloe-26l-seg.pt")

# Configure the set_classes() before exporting the model
model.set_classes(["person", "bus"])

export_model = model.export(format="onnx")
model = YOLOE(export_model)

# Run detection on the given image
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()

Link to this sectionОбучение официальных моделей#

Link to this sectionПодготовка наборов данных#

Примечание

Training official YOLOE models needs segment annotations for train data, here's the script provided by official team that converts datasets to segment annotations, powered by SAM2.1 models. Or you can directly download the provided Processed Segment Annotations in following table provided by official team.

  • Данные для обучения
ДатасетТипОбразцыБоксыНеобработанные аннотации детекцииОбработанные сегментационные аннотации
Objects365v1Детектирование609k9621kobjects365_train.jsonobjects365_train_segm.json
GQAGrounding621k3681kfinal_mixed_train_no_coco.jsonfinal_mixed_train_no_coco_segm.json
Flickr30kGrounding149 тыс.641 тыс.final_flickr_separateGT_train.jsonfinal_flickr_separateGT_train_segm.json
  • Валидационные данные
ДатасетТипФайлы аннотаций
LVIS minivalДетектированиеminival.txt

Link to this sectionЗапуск обучения с нуля#

Примечание

Модели Visual Prompt дообучаются на основе хорошо обученных моделей Text Prompt.

Пример
from ultralytics import YOLOE
from ultralytics.models.yolo.yoloe import YOLOESegTrainerFromScratch

# Option 1: Use Python dictionary
data = dict(
    train=dict(
        yolo_data=["Objects365.yaml"],
        grounding_data=[
            dict(
                img_path="flickr/full_images/",
                json_file="flickr/annotations/final_flickr_separateGT_train_segm.json",
            ),
            dict(
                img_path="mixed_grounding/gqa/images",
                json_file="mixed_grounding/annotations/final_mixed_train_no_coco_segm.json",
            ),
        ],
    ),
    val=dict(yolo_data=["lvis.yaml"]),
)

# Option 2: Use YAML file (yoloe_data.yaml)
# train:
#   yolo_data:
#     - Objects365.yaml
#   grounding_data:
#     - img_path: flickr/full_images/
#       json_file: flickr/annotations/final_flickr_separateGT_train_segm.json
#     - img_path: mixed_grounding/gqa/images
#       json_file: mixed_grounding/annotations/final_mixed_train_no_coco_segm.json
# val:
#   yolo_data:
#     - lvis.yaml

model = YOLOE("yoloe-26l-seg.yaml")
model.train(
    data=data,  # or data="yoloe_data.yaml" if using YAML file
    batch=128,
    epochs=30,
    close_mosaic=2,
    optimizer="AdamW",
    lr0=2e-3,
    warmup_bias_lr=0.0,
    weight_decay=0.025,
    momentum=0.9,
    workers=4,
    trainer=YOLOESegTrainerFromScratch,
    device="0,1,2,3,4,5,6,7",
)

Link to this sectionСравнение производительности YOLOE#

YOLOE соответствует или превосходит точность моделей YOLO с закрытым набором классов на стандартных бенчмарках, таких как COCO и LVIS, не жертвуя скоростью или размером модели. В таблице ниже сравниваются YOLOE-L (построенная на базе YOLO11) и YOLOE26-L (построенная на базе YOLO26) с соответствующими моделями с закрытым набором классов:

МодельCOCO mAP50-95LVIS mAP50-95Скорость инференса (T4)ПараметрыGFLOPs (640px)
YOLOv8-L (закрытый набор)52.9%-9.06 мс (110 FPS)43.7 М165.2 B
YOLO11-L (закрытый набор)53.5%-6.2 мс (161 FPS)26.2 М86.9 B
YOLOE-L (открытый словарь)52.6%35.2%6.2 мс (161 FPS)26.2 М86.9 B
YOLOE26-L (открытый словарь)-36.8%6.2 мс (161 FPS)32.3 М88.3 B

YOLOE-L использует архитектуру YOLO11-L, а YOLOE26-L использует архитектуру YOLO26-L, что обеспечивает схожую скорость инференса и GFLOPs.

YOLOE26-L достигает 36.8% LVIS mAP при 32.3M параметров и 88.3B FLOPs, обрабатывая изображения 640×640 за 6.2 мс (161 FPS) на GPU T4. Это улучшение по сравнению с 35.2% LVIS mAP у YOLOE-L при сохранении той же скорости инференса. Важно отметить, что модули открытого словаря YOLOE не требуют затрат при инференсе, что демонстрирует дизайн по принципу "no free lunch trade-off".

Для zero-shot задач YOLOE26 значительно превосходит предыдущие детекторы с открытым словарем: на LVIS модель YOLOE26-S достигает 29.9% mAP, превосходя YOLO-World-S на +11.4 AP, в то время как YOLOE26-L достигает 36.8% mAP, превосходя YOLO-World-L на +10.0 AP. YOLOE26 поддерживает эффективный инференс со скоростью 161 FPS на GPU T4, что идеально подходит для приложений с открытым словарем в реальном времени.

Примечание

Условия бенчмарка: Результаты YOLOE получены на моделях, предварительно обученных на Objects365, GoldG и LVIS, а затем дообученных или оцененных на COCO. Небольшое преимущество YOLOE по mAP над YOLOv8 обусловлено обширным предварительным обучением. Без этого обучения для открытого словаря YOLOE соответствует моделям YOLO аналогичного размера, подтверждая свою точность SOTA и гибкость в открытых условиях без потери производительности.

Link to this sectionСравнение с предыдущими моделями#

YOLOE представляет собой значительный прогресс по сравнению с предыдущими моделями YOLO и детекторами с открытым словарем:

  • YOLOE против YOLOv5: YOLOv5 предлагал хороший баланс скорости и точности, но требовал дообучения для новых классов и использовал головы на основе анкоров. В отличие от него, YOLOE является безанкорным и динамически распознает новые классы. YOLOE, развивая улучшения YOLOv8, достигает более высокой точности (52.6% против ~50% mAP у YOLOv5 на COCO) и включает сегментацию экземпляров, в отличие от YOLOv5.

  • YOLOE против YOLOv8: YOLOE расширяет переработанную архитектуру YOLOv8, достигая такой же или лучшей точности (52.6% mAP при ~26M параметров против 52.9% при ~44M параметров у YOLOv8-L). Она значительно сокращает время обучения благодаря более мощному предварительному обучению. Ключевое достижение — это способность к работе в открытом мире (open-world), позволяющая обнаруживать невидимые ранее объекты (например, "bird scooter" или "peace symbol") с помощью подсказок, в отличие от закрытого дизайна YOLOv8.

  • YOLOE против YOLO11: YOLO11 улучшает YOLOv8 за счет повышенной эффективности и меньшего количества параметров (сокращение на ~22%). YOLOE наследует эти преимущества, соответствуя скорости инференса и количеству параметров YOLO11 (~26M), добавляя при этом детектирование и сегментацию с открытым словарем. В сценариях с закрытым набором YOLOE эквивалентен YOLO11, но, что важно, добавляет адаптивность для обнаружения новых классов, обеспечивая YOLO11 + возможности открытого мира без снижения скорости.

  • YOLOE26 против YOLOE (на базе YOLO11): YOLOE26 базируется на архитектуре YOLO26, наследуя её дизайн end-to-end без NMS для ускорения инференса. На LVIS модель YOLOE26-L достигает 36.8% mAP, улучшая показатели YOLOE-L (35.2% mAP). YOLOE26 предлагает все пять масштабов моделей (N/S/M/L/X) по сравнению с тремя у YOLOE (S/M/L), предоставляя больше гибкости для различных сценариев развертывания.

  • YOLOE26 против предыдущих детекторов с открытым словарем: Более ранние модели (GLIP, OWL-ViT, YOLO-World) сильно полагались на vision-language трансформеры, что приводило к медленному инференсу. На LVIS модель YOLOE26-S достигает 29.9% mAP (+11.4 AP по сравнению с YOLO-World-S), а YOLOE26-L — 36.8% mAP (+10.0 AP по сравнению с YOLO-World-L), сохраняя инференс в реальном времени со скоростью 161 FPS на GPU T4. По сравнению с трансформерными подходами (например, GLIP), YOLOE26 предлагает инференс на порядки быстрее, эффективно сокращая разрыв в точности и эффективности при детектировании в открытых условиях.

В итоге, YOLOE и YOLOE26 сохраняют известную скорость и эффективность YOLO, превосходят предшественников в точности, интегрируют сегментацию и внедряют мощные функции детектирования в открытом мире. YOLOE26 дополнительно развивает архитектуру благодаря end-to-end инференсу без NMS, унаследованному от YOLO26, что делает её идеальной для приложений с открытым словарем в реальном времени.

Link to this sectionВарианты использования и приложения#

Детектирование и сегментация с открытым словарем в YOLOE открывают возможности для разнообразных приложений, выходящих за рамки традиционных моделей с фиксированным набором классов:

  • Детектирование объектов в открытом мире: Идеально подходит для динамических сценариев, таких как робототехника, где роботы распознают ранее не виденные объекты с помощью подсказок, или для систем безопасности, быстро адаптирующихся к новым угрозам (например, опасным предметам) без переобучения.

  • Few-Shot и One-Shot детектирование: Используя визуальные подсказки (SAVPE), YOLOE быстро изучает новые объекты по единичным эталонным изображениям — идеально для промышленного контроля (мгновенная идентификация деталей или дефектов) или пользовательского наблюдения, позволяя выполнять визуальный поиск с минимальной настройкой.

  • Распознавание с большим словарем и длинным хвостом: Оснащенная словарем из 1000+ классов, YOLOE превосходно справляется с задачами вроде мониторинга биоразнообразия (обнаружение редких видов), музейных коллекций, управления запасами в ритейле или электронной коммерции, надежно идентифицируя множество классов без обширного обучения для каждого из них.

  • Интерактивное детектирование и сегментация: YOLOE поддерживает интерактивные приложения в реальном времени, такие как поиск по видео/изображениям, дополненная реальность (AR) и интуитивно понятное редактирование изображений, управляемое естественными входными данными (текстовые или визуальные подсказки). Пользователи могут динамически изолировать, идентифицировать или редактировать объекты с помощью масок сегментации.

  • Автоматизированная разметка данных и бутстрэппинг: YOLOE упрощает быстрое создание датасетов, предоставляя начальные аннотации BBox и сегментации, что значительно снижает объем ручной работы. Это особенно ценно для аналитики крупных медиа-коллекций, где можно автоматически идентифицировать объекты, помогая быстрее строить специализированные модели.

  • Сегментация любых объектов: Расширяет возможности сегментации на произвольные объекты через подсказки — особенно полезно для медицинской визуализации, микроскопии или анализа спутниковых снимков, автоматически идентифицируя и точно сегментируя структуры без специализированных предобученных моделей. В отличие от моделей типа SAM, YOLOE одновременно распознает и сегментирует объекты автоматически, помогая в задачах создания контента или понимания сцены.

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

Совет

Выбери режим YOLOE в зависимости от своих задач:

  • Режим закрытого набора (Closed-set mode): Для задач с фиксированными классами (максимальная скорость и точность).
  • Режим с подсказками (Prompted mode): Быстрое добавление новых объектов с помощью текстовых или визуальных подсказок.
  • Режим открытого набора без подсказок (Prompt-free open-set mode): Общее детектирование по множеству категорий (идеально для каталогизации и поиска).

Часто комбинация режимов — например, поиск без подсказок с последующим применением целевых подсказок — позволяет полностью раскрыть потенциал YOLOE.

Link to this sectionОбучение и инференс#

YOLOE легко интегрируется с Python API Ultralytics и CLI, аналогично другим моделям YOLO (YOLOv8, YOLO-World). Вот как быстро начать работу:

Обучение и инференс с YOLOE
from ultralytics import YOLO

# Load pretrained YOLOE model and train on custom data
model = YOLO("yoloe-26s-seg.pt")
model.train(data="path/to/data.yaml", epochs=50, imgsz=640)

# Run inference using text prompts ("person", "bus")
model.set_classes(["person", "bus"])
results = model.predict(source="test_images/street.jpg")
results[0].save()  # save annotated output

Здесь YOLOE по умолчанию ведет себя как стандартный детектор, но легко переключается на детектирование с подсказками через указание классов (set_classes). Результаты содержат BBox, маски и метки.

Link to this sectionДругие поддерживаемые задачи#

  • Валидация: Легко оценивай точность с помощью model.val() или yolo val.
  • Экспорт: Экспортируй модели YOLOE (model.export()) в ONNX, TensorRT и другие форматы, облегчая развертывание.
  • Трекинг: YOLOE поддерживает отслеживание объектов (yolo track) при интеграции, что полезно для отслеживания объектов по подсказкам в видео.
Примечание

YOLOE автоматически включает маски сегментации в результаты инференса (results[0].masks), упрощая выполнение задач, требующих точности до пикселя, таких как извлечение объектов или измерения, без необходимости использования отдельных моделей.

Link to this sectionНачало работы#

Быстро начни работу с YOLOE в Ultralytics, выполнив следующие шаги:

  1. Установка: Установи или обнови пакет Ultralytics:

    pip install -U ultralytics
  2. Загрузка весов YOLOE: Предобученные модели YOLOE (например, YOLOE-v8-S/L, варианты YOLOE-11) доступны в GitHub-релизах YOLOE. Просто скачай нужный файл .pt для загрузки в класс YOLO в Ultralytics.

  3. Требования к оборудованию:

    • Инференс: Рекомендуется GPU (NVIDIA с VRAM ≥4-8GB). Небольшие модели эффективно работают на edge-GPU (например, Jetson) или CPU при пониженном разрешении. Для высокопроизводительного инференса на компактных рабочих станциях смотри наш гайд NVIDIA DGX Spark.
    • Обучение: Для дообучения YOLOE на своих данных обычно достаточно одного GPU. Масштабное предварительное обучение для открытого словаря (LVIS/Objects365), выполненное авторами, потребовало значительных вычислительных мощностей (8× GPU RTX 4090).
  4. Конфигурация: Конфигурации YOLOE используют стандартные YAML-файлы Ultralytics. Обычно достаточно конфигураций по умолчанию (например, yoloe-26s-seg.yaml), но ты можешь изменить бэкбон, классы или размер изображения по мере необходимости.

  5. Запуск YOLOE:

    • Быстрый инференс (без подсказок):

      yolo predict model=yoloe-26s-seg-pf.pt source="image.jpg"
    • Детектирование с подсказками (пример текстовой подсказки):

      from ultralytics import YOLO
      
      model = YOLO("yoloe-26s-seg.pt")
      model.set_classes(["bowl", "apple"])
      results = model.predict("kitchen.jpg")
      results[0].save()
  6. Советы по интеграции:

    • Имена классов: По умолчанию выходы YOLOE используют категории LVIS; используй set_classes(), чтобы указать свои собственные метки.
    • Скорость: У YOLOE нет накладных расходов, если не используются подсказки. Текстовые подсказки почти не влияют на скорость; визуальные влияют немного больше.
    • Поведение NMS: YOLOE автоматически использует agnostic_nms=True при предсказании, объединяя пересекающиеся рамки разных классов. Это предотвращает дублирование детектирований, когда один и тот же объект соответствует нескольким категориям в обширном словаре YOLOE (1200+ классов LVIS). Ты можешь отменить это, явно передав agnostic_nms=False.
    • Батч-инференс: Поддерживается напрямую (model.predict([img1, img2])). Для индивидуальных подсказок на каждое изображение запускай обработку каждого изображения отдельно.

Документация Ultralytics предоставляет дополнительные ресурсы. YOLOE позволяет легко изучать мощные возможности работы в открытом мире в рамках привычной экосистемы YOLO.

Совет

Pro-совет: Чтобы максимизировать точность YOLOE в zero-shot задачах, выполняй дообучение на основе предоставленных чекпоинтов, а не обучая с нуля. Используй слова-подсказки, соответствующие общим тренировочным меткам (см. категории LVIS), для улучшения точности детектирования.

Link to this sectionЦитирование и благодарности#

Если YOLOE внес вклад в твое исследование или проект, пожалуйста, процитируй оригинальную статью авторов: Ao Wang, Lihao Liu, Hui Chen, Zijia Lin, Jungong Han, and Guiguang Ding из Университета Цинхуа:

Цитата
@misc{wang2025yoloerealtimeseeing,
      title={YOLOE: Real-Time Seeing Anything},
      author={Ao Wang and Lihao Liu and Hui Chen and Zijia Lin and Jungong Han and Guiguang Ding},
      year={2025},
      eprint={2503.07465},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2503.07465},
}

Для дальнейшего чтения оригинальная статья по YOLOE доступна на arXiv. Исходный код проекта и дополнительные ресурсы доступны через их GitHub-репозиторий.

Link to this sectionFAQ#

Link to this sectionЧем YOLOE отличается от YOLO-World?#

Хотя и YOLOE, и YOLO-World позволяют выполнять детектирование с открытым словарем, YOLOE предлагает несколько преимуществ. YOLOE достигает на +3.5 AP более высокой точности на LVIS, используя в 3 раза меньше ресурсов на обучение и работая в 1.4 раза быстрее, чем YOLO-Worldv2. YOLOE также поддерживает три режима подсказок (текстовые, визуальные и внутренний словарь), в то время как YOLO-World в основном сфокусирован на текстовых подсказках. Кроме того, YOLOE включает встроенные возможности сегментации экземпляров, обеспечивая маски с точностью до пикселя для обнаруженных объектов без дополнительных накладных расходов.

Link to this sectionМогу ли я использовать YOLOE как обычную модель YOLO?#

Да, YOLOE может функционировать точно так же, как стандартная модель YOLO без потери производительности. При использовании в режиме закрытого набора (без подсказок) модули открытого словаря YOLOE перепараметризуются в стандартную голову детектирования, что приводит к идентичной скорости и точности, как у эквивалентных моделей YOLO11. Это делает YOLOE чрезвычайно универсальным — ты можешь использовать его как традиционный детектор для максимальной скорости, а затем переключаться в режим открытого словаря только тогда, когда это необходимо.

Link to this sectionКакие типы подсказок я могу использовать с YOLOE?#

YOLOE поддерживает три типа подсказок:

  1. Текстовые подсказки: Указывай классы объектов на естественном языке (например, "person", "traffic light", "bird scooter")
  2. Визуальные подсказки: Предоставляй эталонные изображения объектов, которые хочешь обнаружить
  3. Внутренний словарь: Используй встроенный словарь YOLOE из 1200+ категорий без внешних подсказок

Эта гибкость позволяет тебе адаптировать YOLOE к различным сценариям без переобучения модели, что особенно полезно для динамических сред, где требования к детектированию часто меняются.

Link to this sectionКак YOLOE справляется с сегментацией экземпляров?#

YOLOE интегрирует сегментацию экземпляров непосредственно в свою архитектуру, расширяя детектирующую голову ветвью прогнозирования масок. Этот подход похож на YOLOv8-Seg, но работает для любого заданного класса объектов. Маски сегментации автоматически включаются в результаты инференса, и к ним можно получить доступ через results[0].masks. Такой унифицированный подход устраняет необходимость в отдельных моделях для детекции и сегментации, оптимизируя рабочие процессы для приложений, требующих попиксельной точности границ объектов.

Link to this sectionКак YOLOE выполняет инференс с пользовательскими промптами?#

Подобно YOLO-World, YOLOE поддерживает стратегию «промпт-затем-детекция», которая использует офлайн-словарь для повышения эффективности. Пользовательские промпты, такие как подписи или конкретные категории объектов, предварительно кодируются и сохраняются в виде эмбеддингов офлайн-словаря. Этот подход упрощает процесс детекции, не требуя переобучения. Ты можешь динамически задавать эти промпты в модели, чтобы адаптировать её к конкретным задачам детекции:

from ultralytics import YOLO

# Initialize a YOLOE model
model = YOLO("yoloe-26s-seg.pt")

# Define custom classes
model.set_classes(["person", "bus"])

# Execute prediction on an image
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()

Комментарии