홈으로 돌아가기

YOLOE: 파인튜닝 없이 객체 탐지

YOLOE는 텍스트 및 시각 프롬프트를 통해 zero-shot 탐지 기능을 YOLO에 확장합니다. RepRTA는 속도 손실 없이 임베딩을 통합합니다. 포장 및 창고 제어와 같은 동적 작업에 적합합니다.

YOLOE: 데이터셋 없이 모든 것을 탐지하는 검출기
Advertisement 728x90

YOLOE: 텍스트와 시각적 프롬프트를 활용한 범용 객체 감지기

YOLOE는 고정된 클래스 대신 텍스트 설명이나 시각적 예시를 사용하여 이미지에서 임의의 객체를 감지할 수 있습니다. 백본과 PAN은 표준 YOLO에서 차용했지만, 감지기 헤드는 객체 임베딩을 텍스트 인코더의 벡터와 비교합니다. RepRTA 모듈은 텍스트 임베딩을 개선하고 재매개변수를 통해 모델에 통합하여 오버헤드 없이 추론 속도를 유지합니다.

모델은 사전 훈련된 가중치로 초기화되며, 클래스는 동적으로 설정됩니다:

from ultralytics import YOLOE

model = YOLOE("yoloe-26m-seg.pt")
model.set_classes(["사람", "버스"])
results = model.predict("path/to/image.jpg")

아키텍처와 주요 모듈

표준 YOLO는 훈련 데이터셋의 클래스로 제한됩니다. YOLOE에서는 클래스 임베딩이 추론 전에 텍스트 인코더에 의해 생성되고 가중치에 임베딩됩니다. 이로 인해 데이터셋 수집, 라벨링 및 훈련 반복이 필요 없어집니다.

Google AdInline article slot

또한, SAVPE(의미 활성화 시각적 프롬프트 인코더)를 통해 시각적 프롬프트가 지원됩니다. 사용자는 바운딩 박스가 있는 참조 이미지를 제공하고, 모델은 유사한 객체를 검색합니다:

import numpy as np
from ultralytics import YOLOE
from ultralytics.models.yolo.yoloe import YOLOEVPSegPredictor

model = YOLOE("yoloe-26m-seg.pt")
visual_prompts = dict(
    bboxes=np.array([
        [221.52, 405.8, 344.98, 857.54],  # 사람
        [120, 425, 160, 445],              # 버스
    ]),
    cls=np.array([0, 1]),
)
results = model.predict(
    "ultralytics/assets/bus.jpg",
    refer_image="reference.jpg",
    visual_prompts=visual_prompts,
    predictor=YOLOEVPSegPredictor,
)
results[0].show()

프롬프트 없음 모드는 1200개 이상의 카테고리 내장 사전을 사용합니다:

from ultralytics import YOLOE

model = YOLOE("yoloe-26m-seg-pf.pt")
results = model.predict("path/to/image.jpg")
results[0].show()

적용 시나리오

YOLOE는 명확하게 설명 가능한 객체가 있는 작업에 효과적입니다. 일반적인 사용 사례는 다음과 같습니다:

Google AdInline article slot
  • 라벨링 제어: 컨베이어 벨트에서 QR 코드, 손상된 라벨 또는 포장 방향 감지.
  • 구역 모니터링: 이물질 또는 누락된 도구 검색.
  • 창고 재고: 변화하는 제품의 계수 및 분류.
  • 시각적 검사: 표면의 스크래치, 칩 또는 변형.

이러한 시나리오에서 프롬프트는 데이터셋을 대체하여 개발 속도를 높입니다.

한계와 접근 방식 선택

모델은 시각적으로 유사한 클래스, 특정 객체 또는 95% 이상의 정확도 요구 사항이 있는 작업에서는 부족합니다. 미세한 세부 사항이나 보이지 않는 객체를 구별하려면 미세 조정이 필요합니다.

전략: 기준 평가를 위해 YOLOE로 시작하고, 부족하면 인코더를 개선하거나 고전적인 훈련으로 전환합니다.

Google AdInline article slot

핵심 포인트

  • 동적 클래스: 고정된 라벨 대신 텍스트 또는 시각적 프롬프트 사용.
  • 속도 유지: RepRTA가 임베딩을 재매개변수화하여 런타임 오버헤드 제거.
  • 유연성: 시각적 예시를 위한 SAVPE, 프롬프트 없음을 위한 내장 사전.
  • 실용성: 변화하는 객체가 있는 산업 작업에 적합.
  • 한계: 이색적인 데이터에 대한 고정밀도 작업에는 적합하지 않음.

— Editorial Team

Advertisement 728x90

다음 읽기