Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOE: 실시간 객체 탐지 솔루션#

Link to this section소개#

YOLOE 프롬프트 옵션

YOLOE (Real-Time Seeing Anything)오픈 어휘(open-vocabulary) 탐지 및 세그멘테이션을 위해 설계된 제로샷, 프롬프트 가능 YOLO 모델의 새로운 발전입니다. 고정된 카테고리로 제한되었던 이전 YOLO 모델과 달리, YOLOE는 텍스트, 이미지 또는 내부 어휘 프롬프트를 사용하여 모든 객체 클래스를 실시간으로 탐지할 수 있습니다. YOLOv10을 기반으로 구축되고 YOLO-World에서 영감을 받은 YOLOE는 속도와 정확도에 최소한의 영향만 주면서 최첨단 제로샷 성능을 달성합니다.



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

이전 YOLO 모델과 비교하여 YOLOE는 효율성과 정확도를 크게 향상시켰습니다. LVIS에서 YOLO-Worldv2 대비 +3.5 AP 향상을 보였으며, 훈련 리소스는 3분의 1만 사용하고 추론 속도는 1.4배 더 빠릅니다. COCO에서 파인튜닝된 YOLOE-v8-large는 YOLOv8-L보다 0.1 mAP 더 높으면서 약 4배 적은 훈련 시간을 소요합니다. 이는 YOLOE가 정확도, 효율성, 범용성 사이에서 뛰어난 균형을 갖추고 있음을 보여줍니다. 아래 섹션에서는 YOLOE의 아키텍처, 벤치마크 비교 및 Ultralytics 프레임워크와의 통합에 대해 설명합니다.

Link to this section아키텍처 개요#

YOLOE Architecture

YOLOE는 표준 YOLO 구조를 유지합니다. 특징 추출을 위한 컨볼루션 백본(예: CSP-Darknet), 다중 스케일 융합을 위한 (예: PAN-FPN), 그리고 객체 여부, 클래스, 박스를 독립적으로 예측하는 앵커 프리(anchor-free), 디커플드(decoupled) 탐지 헤드(YOLOv8/YOLO11과 동일)로 구성됩니다. YOLOE는 오픈 어휘 탐지를 가능하게 하는 세 가지 새로운 모듈을 도입했습니다:

  • 재파라미터화 가능한 영역-텍스트 정렬(RepRTA): 소형 보조 네트워크를 통해 텍스트 임베딩(예: CLIP에서 생성)을 개선하여 텍스트 프롬프트 기반 탐지를 지원합니다. 추론 시 이 네트워크는 메인 모델로 통합되어 오버헤드가 발생하지 않습니다. 따라서 YOLOE는 런타임 페널티 없이 임의의 텍스트 레이블이 지정된 객체(예: 보이지 않는 "신호등")를 탐지합니다.

  • 의미론적 활성화 시각 프롬프트 인코더(SAVPE): 경량 임베딩 브랜치를 통해 시각 프롬프트 기반 탐지를 가능하게 합니다. 참조 이미지가 주어지면 SAVPE는 의미론적 특징과 활성화 특징을 인코딩하여 모델이 시각적으로 유사한 객체를 탐지하도록 조건화합니다. 이는 로고나 특정 부품 탐지에 유용한 원샷(one-shot) 탐지 기능입니다.

  • 레이지 영역-프롬프트 대조(LRPC): 프롬프트 없는 모드에서 YOLOE는 대규모 어휘(LVIS 및 Objects365의 1200개 이상의 카테고리)로 훈련된 내부 임베딩을 사용하여 오픈셋 인식을 수행합니다. 외부 프롬프트나 인코더 없이도 YOLOE는 임베딩 유사도 조회를 통해 객체를 식별하며, 추론 시 방대한 레이블 공간을 효율적으로 처리합니다.

또한, YOLOE는 세그멘테이션 마스크 예측 브랜치(YOLACT 또는 YOLOv8-Seg와 유사)를 탐지 헤드에 확장하여 실시간 인스턴스 세그멘테이션 기능을 통합하며, 오버헤드는 최소화했습니다.

결정적으로, YOLOE의 오픈월드 모듈은 일반적인 클로즈드셋 YOLO로 사용할 때 추론 비용이 발생하지 않습니다. 훈련 후 YOLOE 파라미터는 표준 YOLO 헤드로 재파라미터화될 수 있으며, 동일한 FLOPs와 속도(예: YOLO11와 정확히 일치)를 유지합니다.

Link to this section사용 가능한 모델, 지원 작업 및 운영 모드#

이 섹션에서는 특정 사전 훈련 가중치를 가진 사용 가능한 모델, 모델이 지원하는 작업, 그리고 추론, 검증, 훈련, 내보내기와 같은 다양한 작동 모드와의 호환성에 대해 자세히 설명합니다. 지원되는 모드는 ✅, 지원되지 않는 모드는 ❌로 표시됩니다.

Link to this section텍스트/시각 프롬프트 모델#

Link to this section프롬프트 프리 모델#

YOLOE-26 성능

YOLOE-26 모델의 상세 성능 벤치마크는 YOLO26 문서를 참조하십시오.

Link to this section사용 예제#

YOLOE 모델은 Python 애플리케이션에 쉽게 통합할 수 있습니다. Ultralytics는 개발을 간소화하기 위한 사용자 친화적인 Python APICLI 명령어를 제공합니다.

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 🚀
예시

인스턴스 세그멘테이션

Fine-tuning a YOLOE pretrained checkpoint mostly follows the standard YOLO training procedure. The key difference is explicitly passing YOLOEPESegTrainer as the trainer parameter to 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
)

객체 탐지

All pretrained YOLOE models perform instance segmentation by default. To use these pretrained checkpoints for training a detection model, initialize a detection model from scratch using the YAML configuration, then load the pretrained segmentation checkpoint of the same scale. Note that we use YOLOEPETrainer instead of YOLOEPESegTrainer since we're training a detection model:

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 sectionPredict 사용법#

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 sectionVal 사용법#

데이터셋에 대한 모델 검증은 다음과 같이 간소화됩니다:

예시
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내보내기(Export) 사용법#

내보내기 프로세스는 다른 YOLO 모델과 유사하며, 텍스트 및 시각적 프롬프트를 처리하는 유연성이 추가되었습니다:

내보낸 모델은 정적입니다

Classes configured with set_classes() (or via refer_image for visual prompts) are baked into the exported weights. Once exported, the model can no longer accept new prompts: calling set_classes() or passing visual_prompts=... to predict() on a loaded export will fail. To change the detected classes, re-export from the original .pt checkpoint with the new prompts configured. The exported file behaves like a standard YOLO detector and can also be loaded with YOLO() instead of 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
GQA그라운딩621k3681kfinal_mixed_train_no_coco.jsonfinal_mixed_train_no_coco_segm.json
Flickr30k그라운딩(Grounding)149k641kfinal_flickr_separateGT_train.jsonfinal_flickr_separateGT_train_segm.json
  • 검증(Val) 데이터
데이터셋유형주석 파일
LVIS minival탐지minival.txt

Link to this section처음부터 학습 시작하기#

참고

Visual Prompt 모델은 잘 학습된 Text Prompt 모델을 기반으로 미세 조정(fine-tuned)됩니다.

예시
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 sectionYOLOE 성능 비교#

YOLOE는 속도나 모델 크기를 희생하지 않으면서 COCO 및 LVIS와 같은 표준 벤치마크에서 폐쇄형(closed-set) YOLO 모델의 정확도와 일치하거나 능가합니다. 아래 표는 YOLOE-L(YOLO11 기반) 및 YOLOE26-L( YOLO26 기반)을 해당 폐쇄형 모델과 비교한 것입니다.

모델COCO mAP50-95LVIS mAP50-95추론 속도 (T4)매개변수GFLOPs (640px)
YOLOv8-L (폐쇄형)52.9%-9.06 ms (110 FPS)43.7 M165.2 B
YOLO11-L (폐쇄형)53.5%-6.2 ms (161 FPS)26.2 M86.9 B
YOLOE-L (오픈 보카불러리)52.6%35.2%6.2 ms (161 FPS)26.2 M86.9 B
YOLOE26-L (오픈 보카불러리)-36.8%6.2 ms (161 FPS)32.3 M88.3 B

YOLOE-L은 YOLO11-L의 아키텍처를 공유하며 YOLOE26-L은 YOLO26-L의 아키텍처를 공유하므로, 추론 속도와 GFLOPs가 유사합니다.

YOLOE26-L은 T4 GPU에서 640×640 이미지를 **6.2ms(161 FPS)**로 처리하며 32.3M 파라미터88.3B FLOPs36.8% LVIS mAP를 달성합니다. 이는 동일한 추론 속도를 유지하면서 YOLOE-L의 35.2% LVIS mAP를 개선한 결과입니다. 핵심은 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은 T4 GPU에서 161 FPS의 효율적인 추론 속도를 유지하여 실시간 오픈 보카불러리 애플리케이션에 이상적입니다.

참고

벤치마크 조건: YOLOE 결과는 Objects365, GoldG, LVIS로 사전 학습된 후 COCO에서 미세 조정되거나 평가된 모델에서 얻은 것입니다. YOLOv8 대비 YOLOE의 소폭의 mAP 우위는 광범위한 사전 학습에서 기인합니다. 이러한 오픈 보카불러리 학습 없이도 YOLOE는 비슷한 크기의 YOLO 모델과 일치하는 성능을 보여주며, 성능 저하 없이 SOTA 정확도와 오픈 월드 유연성을 제공함을 확인했습니다.

Link to this section이전 모델과의 비교#

YOLOE는 이전 YOLO 모델 및 오픈 보카불러리 탐지기 대비 주목할 만한 발전을 이루었습니다:

  • YOLOE vs YOLOv5: YOLOv5는 우수한 속도-정확도 균형을 제공했으나 새로운 클래스를 위해 재학습이 필요했고 앵커 기반 헤드를 사용했습니다. 반면, YOLOE는 **앵커 프리(anchor-free)**이며 동적으로 새로운 클래스를 탐지합니다. YOLOv8의 개선 사항을 기반으로 하는 YOLOE는 YOLOv5와 달리 인스턴스 세그멘테이션을 통합하고 더 높은 정확도(COCO에서 YOLOv5의 ~50% mAP 대비 52.6% mAP)를 달성합니다.

  • YOLOE vs YOLOv8: YOLOE는 YOLOv8의 재설계된 아키텍처를 확장하여 유사하거나 더 우수한 정확도(~26M 파라미터로 52.6% mAP vs. YOLOv8-L의 ~44M 파라미터로 52.9%)를 달성합니다. 강력한 사전 학습 덕분에 학습 시간을 크게 단축합니다. 핵심 발전은 YOLOE의 오픈 월드 기능으로, YOLOv8의 폐쇄형 설계와 달리 프롬프트를 통해 보이지 않는 객체(예: "bird scooter" 또는 "peace symbol")를 탐지합니다.

  • YOLOE vs YOLO11: YOLO11은 향상된 효율성과 더 적은 파라미터(~22% 감소)로 YOLOv8을 개선했습니다. YOLOE는 이러한 이점을 그대로 계승하여 YOLO11의 추론 속도 및 파라미터 수(~26M 파라미터)와 일치하면서 오픈 보카불러리 탐지 및 세그멘테이션을 추가했습니다. 폐쇄형 시나리오에서 YOLOE는 YOLO11과 동일하지만, 속도 저하 없이 보이지 않는 클래스를 탐지할 수 있는 적응성을 더하여 YOLO11 + 오픈 월드 기능을 구현했습니다.

  • YOLOE26 vs YOLOE (YOLO11 기반): YOLOE26은 YOLO26의 아키텍처를 기반으로 하여 더 빠른 추론을 위해 NMS 프리 엔드투엔드 설계를 계승합니다. LVIS에서 YOLOE26-L은 36.8% mAP를 달성하여 YOLOE-L의 35.2% mAP보다 개선되었습니다. YOLOE26은 YOLOE의 3가지(S/M/L) 대비 5가지 모든 모델 스케일(N/S/M/L/X)을 제공하여 다양한 배포 시나리오에 더 큰 유연성을 제공합니다.

  • YOLOE26 vs 이전 오픈 보카불러리 탐지기: 초기 오픈 보카불러리 모델(GLIP, OWL-ViT, YOLO-World)은 비전-언어 트랜스포머에 크게 의존하여 추론 속도가 느렸습니다. LVIS에서 YOLOE26-S는 29.9% mAP(YOLO-World-S 대비 +11.4 AP)를, YOLOE26-L은 36.8% mAP(YOLO-World-L 대비 +10.0 AP)를 달성하며 T4 GPU에서 161 FPS의 실시간 추론을 유지합니다. 트랜스포머 기반 방식(예: GLIP)과 비교할 때, YOLOE26은 훨씬 빠른 추론 속도를 제공하여 오픈셋 탐지의 정확도-효율성 격차를 효과적으로 해소합니다.

요약하자면, YOLOE와 YOLOE26은 YOLO의 유명한 속도와 효율성을 유지하면서 정확도 면에서 전임자들을 능가하고, 세그멘테이션을 통합하며, 강력한 오픈 월드 탐지 기능을 도입했습니다. YOLOE26은 YOLO26의 NMS 프리 엔드투엔드 추론으로 아키텍처를 더욱 발전시켜 실시간 오픈 보카불러리 애플리케이션에 이상적입니다.

Link to this section사용 사례 및 애플리케이션#

YOLOE의 오픈 보카불러리 탐지 및 세그멘테이션은 기존 고정 클래스 모델을 넘어 다양한 애플리케이션을 가능하게 합니다:

  • 오픈 월드 객체 탐지: 로보틱스와 같은 동적 시나리오에 이상적이며, 로봇이 프롬프트를 사용하여 이전에 보지 못한 객체를 인식하거나 보안 시스템이 재학습 없이 새로운 위협(예: 위험 물품)에 신속하게 적응할 수 있습니다.

  • 퓨샷(Few-Shot) 및 원샷(One-Shot) 탐지: 시각적 프롬프트(SAVPE)를 사용하여 YOLOE는 단일 참조 이미지에서 새로운 객체를 빠르게 학습합니다. 산업 검사(부품이나 결함 식별) 또는 최소한의 설정으로 시각적 검색을 가능하게 하는 맞춤형 감시에 완벽합니다.

  • 대규모 보카불러리 및 롱테일 인식: 1000개 이상의 클래스 보카불러리를 갖춘 YOLOE는 생물 다양성 모니터링(희귀 종 탐지), 박물관 컬렉션, 소매 재고 관리 또는 전자상거래와 같은 작업에서 탁월하며, 클래스별로 광범위한 학습 없이도 많은 클래스를 안정적으로 식별합니다.

  • 대화형 탐지 및 세그멘테이션: YOLOE는 자연어 입력(텍스트 또는 시각적 프롬프트)을 기반으로 검색 가능한 비디오/이미지 검색, 증강 현실(AR), 직관적인 이미지 편집과 같은 실시간 대화형 애플리케이션을 지원합니다. 사용자는 세그멘테이션 마스크를 사용하여 객체를 동적으로 분리, 식별 또는 정밀하게 편집할 수 있습니다.

  • 자동 데이터 라벨링 및 부트스트래핑: YOLOE는 초기 바운딩 박스 및 세그멘테이션 어노테이션을 제공하여 데이터셋 구축을 가속화하고 인간의 라벨링 노력을 크게 줄여줍니다. 특히 존재하는 객체를 자동 식별하여 특수 모델 구축을 지원하는 대규모 미디어 컬렉션 분석에 유용합니다.

  • 모든 객체를 위한 세그멘테이션: 프롬프트를 통해 임의의 객체로 세그멘테이션 기능을 확장합니다. 의료 영상, 현미경 검사, 또는 위성 영상 분석에 특히 유용하며 특수 사전 학습 모델 없이도 구조를 자동으로 식별하고 정밀하게 세그멘테이션합니다. SAM과 같은 모델과 달리 YOLOE는 객체를 자동으로 인식하고 세그멘테이션하며 콘텐츠 제작 또는 장면 이해와 같은 작업을 지원합니다.

이 모든 사용 사례에서 YOLOE의 핵심 장점은 다재다능함이며, 동적 시나리오 전반에서 탐지, 인식, 세그멘테이션을 위한 통합 모델을 제공합니다. 효율성 덕분에 리소스가 제한된 장치에서도 실시간 성능을 보장하며, 로보틱스, 자율 주행, 방위 산업 등을 위한 이상적인 솔루션입니다.

필요에 따라 YOLOE 모드를 선택하십시오:

  • 폐쇄형 모드(Closed-set mode): 고정 클래스 작업용 (최대 속도 및 정확도).
  • 프롬프트 모드(Prompted mode): 텍스트 또는 시각적 프롬프트를 통해 새로운 객체를 빠르게 추가.
  • 프롬프트 없는 오픈셋 모드(Prompt-free open-set mode): 많은 카테고리에 걸친 일반적인 탐지 (카탈로그 작성 및 발견에 이상적).

프롬프트 없는 탐색 후 타겟 프롬프트를 사용하는 것과 같이 모드를 조합하면 YOLOE의 잠재력을 최대한 활용할 수 있는 경우가 많습니다.

Link to this section학습 및 추론#

YOLOE는 다른 YOLO 모델(YOLOv8, YOLO-World)과 유사하게 Ultralytics Python APICLI와 원활하게 통합됩니다. 빠르게 시작하는 방법은 다음과 같습니다:

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)를 지정하여 프롬프트 탐지로 쉽게 전환할 수 있습니다. 결과에는 바운딩 박스, 마스크 및 라벨이 포함됩니다.

Link to this section기타 지원되는 작업#

  • 검증(Validation): model.val() 또는 yolo val을 사용하여 정확도를 쉽게 평가합니다.
  • 내보내기(Export): YOLOE 모델(model.export())을 ONNX, TensorRT 등으로 내보내어 배포를 용이하게 합니다.
  • 추적(Tracking): YOLOE는 통합 시 객체 추적(yolo track)을 지원하며, 비디오에서 프롬프트된 클래스를 추적하는 데 유용합니다.
참고

YOLOE는 추론 결과(results[0].masks)에 자동으로 세그멘테이션 마스크를 포함하여 별도의 모델 없이 객체 추출이나 측정과 같은 픽셀 정밀 작업을 단순화합니다.

Link to this section시작하기#

다음 단계에 따라 Ultralytics로 YOLOE를 빠르게 설정하십시오:

  1. 설치: Ultralytics 패키지를 설치하거나 업데이트하십시오:

    pip install -U ultralytics
  2. YOLOE 가중치 다운로드: 사전 학습된 YOLOE 모델(예: YOLOE-v8-S/L, YOLOE-11 변형)은 YOLOE GitHub 릴리스에서 제공됩니다. Ultralytics YOLO 클래스에 로드하려면 원하는 .pt 파일을 다운로드하십시오.

  3. 하드웨어 요구 사항:

    • 추론: 권장 GPU (NVIDIA, VRAM ≥4-8GB). 소형 모델은 엣지 GPU(예: Jetson)나 낮은 해상도의 CPU에서 효율적으로 실행됩니다. 소형 워크스테이션에서의 고성능 추론은 NVIDIA DGX Spark 가이드를 참조하십시오.
    • 학습: 커스텀 데이터에서 YOLOE를 미세 조정하는 데는 일반적으로 하나의 GPU만 필요합니다. 저자들이 사용한 광범위한 오픈 보카불러리 사전 학습(LVIS/Objects365)은 상당한 연산 자원(8× RTX 4090 GPU)이 필요했습니다.
  4. 구성(Configuration): YOLOE 구성은 표준 Ultralytics YAML 파일을 사용합니다. 기본 구성(예: 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 생태계 내에서 강력한 오픈 월드 기능을 쉽게 탐색할 수 있습니다.

프로 팁: YOLOE의 제로샷 정확도를 극대화하려면 처음부터 학습하는 대신 제공된 체크포인트부터 미세 조정하십시오. 탐지 정확도를 높이려면 일반적인 학습 라벨(LVIS 카테고리 참조)과 정렬된 프롬프트 단어를 사용하십시오.

Link to this section인용 및 감사의 글#

YOLOE가 귀하의 연구나 프로젝트에 기여했다면 **칭화대학교(Tsinghua University)**의 Ao Wang, Lihao Liu, Hui Chen, Zijia Lin, Jungong Han, 및 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},
}

추가 읽을거리는 arXiv에서 원본 YOLOE 논문을 확인하십시오. 프로젝트 소스 코드 및 추가 리소스는 GitHub 저장소를 통해 액세스할 수 있습니다.

Link to this sectionFAQ#

Link to this sectionYOLOE는 YOLO-World와 어떻게 다릅니까?#

YOLOE와 YOLO-World 모두 오픈 보카불러리 탐지를 가능하게 하지만, YOLOE는 몇 가지 장점을 제공합니다. YOLOE는 YOLO-Worldv2보다 학습 리소스를 3배 적게 사용하고 1.4배 더 빠르게 실행되면서 LVIS에서 3.5 AP 더 높은 정확도를 달성합니다. 또한 YOLOE는 3가지 프롬프트 모드(텍스트, 시각적, 내부 보카불러리)를 지원하는 반면, YOLO-World는 주로 텍스트 프롬프트에 집중합니다. 또한 YOLOE에는 인스턴스 세그멘테이션 기능이 내장되어 있어 추가 오버헤드 없이 탐지된 객체에 대해 픽셀 정밀 마스크를 제공합니다.

Link to this sectionYOLOE를 일반 YOLO 모델로 사용할 수 있습니까?#

네, YOLOE는 성능 저하 없이 표준 YOLO 모델처럼 완벽하게 작동할 수 있습니다. 폐쇄형 모드(프롬프트 없이)에서 사용될 때, YOLOE의 오픈 보카불러리 모듈은 표준 탐지 헤드로 재파라미터화되어 동급 YOLO11 모델과 동일한 속도와 정확도를 제공합니다. 따라서 YOLOE는 매우 다재다능하며, 최대 속도를 위해 전통적인 탐지기로 사용하다가 필요할 때만 오픈 보카불러리 모드로 전환할 수 있습니다.

Link to this sectionYOLOE에서 어떤 유형의 프롬프트를 사용할 수 있습니까?#

YOLOE는 세 가지 유형의 프롬프트를 지원합니다:

  1. 텍스트 프롬프트: 자연어를 사용하여 객체 클래스 지정 (예: "person", "traffic light", "bird scooter")
  2. 시각적 프롬프트: 탐지하려는 객체의 참조 이미지 제공
  3. 내부 보카불러리: 외부 프롬프트 없이 YOLOE의 내장 1200개 이상의 카테고리 보카불러리 사용

이러한 유연성을 통해 모델을 재학습하지 않고도 다양한 시나리오에 YOLOE를 적응시킬 수 있으며, 탐지 요구 사항이 자주 변경되는 동적 환경에서 특히 유용합니다.

Link to this sectionYOLOE는 인스턴스 세그멘테이션을 어떻게 처리합니까?#

YOLOE는 탐지 헤드를 마스크 예측 브랜치로 확장하여 인스턴스 세그멘테이션을 아키텍처에 직접 통합합니다. 이 방식은 YOLOv8-Seg와 유사하지만 모든 프롬프트 객체 클래스에서 작동합니다. 세그멘테이션 마스크는 추론 결과에 자동으로 포함되며 results[0].masks를 통해 액세스할 수 있습니다. 이러한 통합 접근 방식은 별도의 탐지 및 세그멘테이션 모델이 필요하지 않으므로 픽셀 단위의 정확한 객체 경계가 필요한 애플리케이션의 워크플로우를 간소화합니다.

Link to this sectionYOLOE는 사용자 정의 프롬프트를 사용한 추론을 어떻게 처리합니까?#

YOLO-World와 유사하게, YOLOE는 효율성을 높이기 위해 오프라인 어휘를 활용하는 "프롬프트 후 탐지(prompt-then-detect)" 전략을 지원합니다. 캡션이나 특정 객체 카테고리와 같은 사용자 정의 프롬프트는 사전에 인코딩되어 오프라인 어휘 임베딩으로 저장됩니다. 이 접근 방식은 재학습 없이 탐지 프로세스를 간소화합니다. 특정 탐지 작업에 맞게 모델을 조정하려면 모델 내에서 이러한 프롬프트를 동적으로 설정할 수 있습니다.

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()

댓글