[딥러닝] YOLO-World

RCC.AI·2024년 7월 17일
0

딥러닝

목록 보기
36/41

Abstract

YOLO-World는 많은 리소스를 필요로 하는 트랜스포머 모델에 의존하는 기존의 Open-Vocabulary 감지 모델이 직면한 문제를 해결합니다. 이러한 모델은 사전 정의된 개체 범주에 의존하기 때문에 동적 시나리오에서 유용성이 제한되기도 합니다. YOLO-World는 Open-Vocabulary 감지 기능으로 YOLOv8 프레임워크를 활성화하여 vision-language 모델링과 방대한 데이터 세트에 대한 사전 학습을 통해 제로 샷 시나리오에서 탁월한 효율성으로 광범위한 객체를 식별합니다.

Key Features

  1. Real-time Solution: 실시간 솔루션: CNN의 계산 속도를 활용하는 YOLO-World는 즉각적인 결과를 필요로 하는 산업에 맞는 신속한 open-vocabulary 감지 솔루션을 제공합니다.

  2. Efficiency and Performance: YOLO-World는 성능 저하 없이 계산 및 리소스 요구 사항을 절감하여 SAM 같은 모델에 대한 대안을 제공하지만 계산 비용은 훨씬 저렴하여 실시간 애플리케이션을 지원합니다.

  3. Inference with Offline Vocabulary: YOLO-World는 offline vocabulary를 사용하여 효율성을 더욱 향상시키는 "prompt-then-detect" 전략을 도입했습니다. 이 접근 방식을 사용하면 캡션이나 카테고리를 포함하여 선험적으로 계산된 사용자 지정 프롬프트를 offline vocabulary 임베딩으로 인코딩하고 저장하여 감지 프로세스를 간소화할 수 있습니다.

  4. Powered by YOLOv8: Ultralytics YOLOv8 기반으로, YOLO-World는 실시간 객체 감지의 최신 기술을 활용하여 탁월한 정확도와 속도로 open-vocabulary 감지를 용이하게 합니다.

  5. Benchmark Excellence: YOLO-World는 표준 벤치마크에서 속도와 효율성 측면에서 MDETR 및 GLIP 시리즈를 포함한 기존 open-vocabulary 검출기보다 월등한 성능을 발휘하여 단일 NVIDIA V100 GPU 에서 YOLOv8의 우수한 성능을 보여줍니다.

  6. Versatile Applications: YOLO-World의 혁신적인 접근 방식은 다양한 비전 작업에 대한 새로운 가능성을 열어주며 기존 방식보다 몇 배의 속도 향상을 제공합니다.

프롬프트 설정

YOLO-World 프레임워크는 사용자 지정 프롬프트를 통해 클래스를 동적으로 지정할 수 있어 사용자가 재학습 없이도 특정 요구 사항에 맞게 모델을 조정할 수 있도록 지원합니다. 이 기능은 원래 학습 데이터에 포함되지 않았던 새로운 도메인이나 특정 작업에 모델을 적용하는 데 특히 유용합니다. 사용자 지정 프롬프트를 설정함으로써 사용자는 기본적으로 모델의 초점을 관심 있는 객체로 유도하여 탐지 결과의 관련성과 정확성을 향상시킬 수 있습니다.

예를 들어, 애플리케이션에서 '사람'과 '버스' 객체만 감지해야 하는 경우 이러한 클래스를 직접 지정할 수 있습니다.

from ultralytics import YOLO

# Initialize a YOLO-World model
model = YOLO("yolov8s-world.pt")  # or choose yolov8m/l-world.pt

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

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

# Show results
results[0].show()

사용자 지정 클래스를 설정한 후 모델을 저장할 수도 있습니다. 이렇게 하면 특정 사용 사례에 특화된 YOLO-World 모델 버전을 만들 수 있습니다. 이 프로세스는 사용자 지정 클래스 정의를 모델 파일에 직접 포함하므로 추가 조정 없이 지정한 클래스에서 모델을 사용할 수 있습니다.

from ultralytics import YOLO

# Initialize a YOLO-World model
model = YOLO("yolov8s-world.pt")  # or select yolov8m/l-world.pt

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

# Save the model with the defined offline vocabulary
model.save("custom_yolov8s.pt")

# Load your custom model
model = YOLO("custom_yolov8s.pt")

# Run inference to detect your custom classes
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()

사용자 지정 어휘를 통한 저장의 이점

  • 효율성: 관련 객체에 집중하고 계산 오버헤드를 줄이며 추론 속도를 높여 탐지 프로세스를 간소화합니다.

  • 유연성: 광범위한 재교육이나 데이터 수집 없이도 새로운 또는 틈새 탐지 작업에 모델을 쉽게 적용할 수 있습니다.

  • 단순성: 런타임에 사용자 지정 클래스를 반복적으로 지정할 필요가 없어 배포가 간소화되며, 내장된 어휘로 모델을 바로 사용할 수 있습니다.

  • 성능: 모델의 리소스를 정의된 객체를 인식하는 데 집중하여 지정된 클래스에 대한 탐지 정확도를 향상시킵니다.

이 접근 방식은 특정 작업에 맞게 최신 객체 감지 모델을 사용자 지정할 수 있는 강력한 수단을 제공하여 고급 AI를 보다 쉽게 접근하고 광범위한 실제 애플리케이션에 적용할 수 있게 해줍니다.

profile
따라가기도 벅찬 AI Engineer 겸 부앙단

0개의 댓글