녹색 확인
링크가 클립보드에 복사됨

체험하기 YOLO-세계

텍스트 프롬프트를 통해 객체를 식별할 수 있는 혁신적인 객체 감지 모델인 YOLO-World에 대해 알아보세요. YOLO -World의 작동 방식과 애플리케이션을 살펴보고 간단한 코드 예제를 통해 직접 실습해 보세요.

컴퓨터 비전 프로젝트에는 데이터에 주석을 달고 객체 감지 모델을 훈련하는 데 많은 시간이 소요되는 경우가 많습니다. 하지만 이제 곧 과거의 일이 될지도 모릅니다. 텐센트 AI Lab은 2024년 1월 31일에 실시간 오픈 어휘 객체 감지 모델인 YOLO-World를 출시했습니다. YOLO-World는 제로 샷 모델로, 별도의 학습 없이 이미지에서 객체 감지 추론을 실행할 수 있습니다.

제로샷 모델은 컴퓨터 비전 애플리케이션에 접근하는 방식을 바꿀 수 있는 잠재력을 가지고 있습니다. 이 블로그에서는 YOLO-World의 작동 방식과 잠재적 용도를 살펴보고 시작하는 데 도움이 되는 실용적인 코드 예제를 공유합니다.

YOLO-세계 들여다보기

찾고 있는 객체를 설명하는 이미지와 텍스트 프롬프트를 YOLO-World 모델을 통해 전달할 수 있습니다. 예를 들어 사진에서 '빨간 셔츠를 입은 사람'을 찾고자 하는 경우 YOLO-World는 이 입력을 받아 작업을 시작합니다.

이 모델의 독특한 아키텍처는 세 가지 주요 요소를 결합합니다:

  • 객체 감지 모델에 기반한 Ultralytics YOLOv8 객체 감지 모델을 기반으로 이미지의 시각적 콘텐츠를 분석합니다.
  • 텍스트 프롬프트를 이해하도록 특별히 설계된 OpenAI의 CLIP으로 사전 학습된 텍스트 인코더입니다. 
  • 처리된 이미지 데이터를 텍스트 데이터와 통합하는 네트워크인 비전-언어 경로 집계 네트워크(RepVL-PAN)입니다.

YOLO 감지기는 입력 이미지를 스캔하여 잠재적인 물체를 식별합니다. 텍스트 인코더는 사용자의 설명을 모델이 이해할 수 있는 형식으로 변환합니다. 그런 다음 이 두 가지 정보 스트림은 다단계 크로스 모달리티 융합을 사용하여 RepVL-PAN을 통해 병합됩니다. 이를 통해 YOLO-World는 이미지 내에서 프롬프트에 설명된 객체를 정확하게 감지하고 위치를 파악할 수 있습니다.

YOLO-World의 결과 예시입니다.

YOLO-World 선택의 이점

YOLO-World 사용의 가장 큰 장점 중 하나는 특정 클래스에 대해 모델을 훈련시킬 필요가 없다는 것입니다. 이미 이미지와 텍스트 쌍을 통해 학습했기 때문에 설명을 기반으로 객체를 찾는 방법을 알고 있습니다. 데이터 수집, 데이터 주석 달기, 고가의 GPU를 통한 학습 등에 많은 시간을 들이지 않아도 됩니다.

YOLO-World를 사용하면 얻을 수 있는 다른 이점은 다음과 같습니다:

  • 실시간 성능 - YOLO-World는 기존 YOLO 아키텍처와 마찬가지로 실시간 성능을 지원합니다. 자율 주행 차량 및 감시 시스템과 같이 즉각적인 물체 감지가 필요한 애플리케이션에 이상적입니다.
  • 인스턴스 세분화 - YOLO- 학습 중에 특별히 학습하지 않은 객체라도 사진 속 객체의 윤곽을 깔끔하게 구분하고 분리할 수 있습니다.
  • 효율성 - YOLO-World는 높은 정확도와 계산 효율성을 결합하여 실제 애플리케이션에 실용적입니다. 간소화된 아키텍처로 처리 능력에 대한 과도한 요구 없이 빠른 물체 감지가 가능합니다.

YOLO-World의 애플리케이션

YOLO-월드 모델은 다양한 애플리케이션에 사용할 수 있습니다. 그 중 몇 가지를 살펴보겠습니다.

제조 품질 관리

조립 라인에서 제조된 제품은 포장하기 전에 육안으로 결함이 있는지 확인합니다. 결함 검사는 종종 수작업으로 이루어지므로 시간이 오래 걸리고 실수가 발생할 수 있습니다. 이러한 실수는 높은 비용과 수리 또는 리콜의 필요성과 같은 문제를 야기할 수 있습니다. 이러한 문제를 해결하기 위해 특수 머신 비전 카메라와 AI 시스템이 개발되어 이러한 검사를 수행합니다. 

YOLO-세계 모델은 이 분야에서 큰 발전을 이루었습니다. 이들은 특정 문제에 대한 교육을 받지 않은 경우에도 제로 샷 능력을 사용하여 제품의 결함을 찾아낼 수 있습니다. 예를 들어, 물병을 제조하는 공장에서 병뚜껑이 제대로 밀봉된 병과 병뚜껑이 누락되었거나 결함이 있는 병을 YOLO-World를 사용하여 쉽게 식별할 수 있습니다.

병뚜껑 검사의 예입니다.

로봇 공학

YOLO-세계 모델을 사용하면 로봇이 낯선 환경과 상호 작용할 수 있습니다. 방에 있을 수 있는 특정 물체에 대한 훈련을 받지 않아도 어떤 물체가 있는지 식별할 수 있습니다. 로봇이 한 번도 가본 적이 없는 방에 들어왔다고 가정해 봅시다. YOLO -World 모델을 사용하면 해당 항목에 대해 특별히 학습하지 않았더라도 의자, 테이블 또는 램프와 같은 물체를 인식하고 식별할 수 있습니다.

YOLO-World는 물체 감지 외에도 '프롬프트 후 감지' 기능을 통해 물체의 상태도 확인할 수 있습니다. 예를 들어, 농업용 로봇 공학에서는 로봇이 과일을 감지하도록 프로그래밍하여 익은 과일과 덜 익은 과일을 식별하는 데 사용할 수 있습니다.

자동차 산업에서의 AI

자동차 산업에는 움직이는 부품이 많은데, YOLO-World는 다양한 자동차 애플리케이션에 사용할 수 있습니다. 예를 들어, 자동차 정비의 경우 수동 태깅이나 광범위한 사전 교육 없이도 다양한 물체를 인식하는 YOLO-World의 기능은 매우 유용합니다. YOLO-World를 사용하여 교체가 필요한 자동차 부품을 식별할 수 있습니다. 품질 검사, 새 차의 결함이나 누락된 부품 발견과 같은 작업도 자동화할 수 있습니다.

또 다른 응용 분야는 자율 주행 차량의 제로 샷 물체 감지입니다. YOLO-제로 샷 감지 기능은 자율주행 차량이 보행자, 교통 표지판, 다른 차량 등 도로 위의 물체를 실시간으로 감지하고 분류하는 능력을 향상시킬 수 있습니다. 이를 통해 장애물을 감지하고 사고를 예방하여 더 안전한 주행을 할 수 있습니다. 

도로에서 물체를 감지하는 예시입니다.

소매점을 위한 재고 관리

소매점의 진열대에 있는 물체를 식별하는 것은 재고 추적, 재고 유지, 프로세스 자동화에 있어 중요한 부분입니다. Ultralytics YOLO-수동 태깅이나 광범위한 사전 교육 없이도 다양한 물체를 인식할 수 있는 기능은 재고 관리에 매우 유용합니다. 

예를 들어, 재고 관리에서 YOLO-World는 다양한 브랜드의 에너지 드링크와 같이 진열대에 있는 품목을 신속하게 찾아 분류할 수 있습니다. 소매점은 정확한 재고를 유지하고, 재고 수준을 효율적으로 관리하며, 공급망 운영을 원활하게 할 수 있습니다. 

모든 애플리케이션은 고유하며 YOLO-World가 얼마나 광범위하게 사용될 수 있는지 보여줍니다. 이제 YOLO-World를 직접 사용해 보고 코딩 예제를 살펴보겠습니다.

코드 살펴보기

앞서 언급했듯이 YOLO-World는 자동차의 다양한 부품을 감지하여 유지보수가 필요한 부분을 감지하는 데 사용할 수 있습니다. 필요한 수리를 감지하는 컴퓨터 비전 애플리케이션은 자동차 사진을 찍고, 자동차 부품을 식별하고, 각 부품의 손상 여부를 검사하고, 수리를 추천하는 작업을 포함합니다. 이 시스템의 모든 부분은 서로 다른 AI 기술과 접근 방식을 사용합니다. 이 코드 워크스루에서는 자동차 부품이 감지되는 부분에 초점을 맞춰 보겠습니다.

YOLO-World를 사용하면 5분 이내에 이미지에서 다양한 자동차 부품을 식별할 수 있습니다. 이 코드를 확장하여 YOLO-World를 사용하여 다른 애플리케이션을 사용해 볼 수도 있습니다! 시작하려면 아래 그림과 같이 Ultralytics 패키지를 설치해야 합니다.

# Install ultralytics package
pip install ultralytics

설치 과정과 관련된 자세한 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하세요. YOLOv8 에 필요한 패키지를 설치하는 동안 문제가 발생하면 일반적인 문제 가이드에서 해결 방법과 팁을 참조하세요.

필요한 패키지를 설치했으면 인터넷에서 이미지를 다운로드하여 추론을 실행할 수 있습니다. 아래 이미지를 사용하겠습니다.

입력 이미지.

그런 다음 필요한 패키지를 임포트하고 모델을 초기화하며 입력 이미지에서 원하는 클래스를 설정합니다. 여기서는 자동차, 바퀴, 자동차 문, 자동차 거울, 번호판 등의 클래스에 관심이 있습니다.

# Import YOLOWorld class from ultralytics module
from ultralytics import YOLOWorld

# Initialize the model with pre-trained weights
model = YOLOWorld('yolov8s-world')

# Set the classes you'd like to find in your image
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])

그런 다음 예측 방법을 사용하여 이미지의 경로와 함께 최대 감지 횟수에 대한 매개변수, IoU(intersection over union) 및 conf(신뢰도)에 대한 임계값을 제공하여 이미지에 대한 추론을 실행합니다. 마지막으로 감지된 객체는 'result.jpg'라는 파일에 저장됩니다.

# Run object detection for your custom classes on your image
results = model.predict('path_to_your_image.jpg', max_det=100, iou=0.01, conf=0.01)

# Save the results
results[0].save(filename='result.jpg')

다음 출력 이미지가 파일에 저장됩니다.

출력 이미지.

코딩 없이 YOLO-World가 무엇을 할 수 있는지 확인하려면 YOLO-World 데모 페이지로 이동하여 입력 이미지를 업로드하고 사용자 지정 클래스를 입력하면 됩니다. 

사용자 지정 클래스를 반복해서 입력하지 않고도 나중에 바로 사용할 수 있도록 사용자 지정 클래스와 함께 모델을 저장하는 방법을 알아보려면 YOLO-World의 문서 페이지를 참조하세요.

자동차 문이 감지되지 않나요?

출력 이미지를 다시 살펴보면 사용자 정의 클래스 "자동차 문"이 감지되지 않았음을 알 수 있습니다. 훌륭한 성과에도 불구하고 YOLO-World에는 몇 가지 한계가 있습니다. 이러한 한계를 극복하고 YOLO-World 모델을 효과적으로 사용하려면 올바른 유형의 텍스트 프롬프트를 사용하는 것이 중요합니다. 

이에 대한 몇 가지 인사이트를 소개합니다:

  • YOLO-정확한 예측을 위해 높은 신뢰 수준이 필요하지 않을 수 있으므로 신뢰 임계값을 낮추면 탐지율을 높일 수 있습니다.
  • 관심 없는 클래스를 추가하세요. 보조 객체에 대한 오탐지를 줄여 기본 객체 감지를 개선하는 데 도움이 됩니다.
  • 작은 디테일에 집중하기 전에 큰 물체를 먼저 감지하면 감지 정확도를 높일 수 있습니다.
  • 수업에서 색상을 언급하여 색상 단서를 기반으로 객체를 감지할 수 있습니다.
  • 프롬프트에 개체 크기를 설명하면 YOLO-World가 특정 개체를 더 정확하게 식별하는 데 도움이 될 수 있습니다.
  • 크기별로 예측을 필터링하거나 클래스별 신뢰 수준을 조정하는 등의 후처리 방법을 사용하면 객체 감지 결과를 더욱 개선할 수 있습니다.

한계는 끝이 없습니다

전반적으로 YOLO-세계 모델은 고급 객체 감지 기능을 통해 강력한 도구로 만들 수 있습니다. 뛰어난 효율성과 정확성을 제공하며 실제로 논의한 자동차 부품 식별의 예와 같이 다양한 애플리케이션에서 다양한 작업을 자동화하는 데 도움이 됩니다.

컴퓨터 비전과 AI에 대한 유니티의 기여에 대해 자세히 알아보려면 GitHub 리포지토리를 살펴보세요. AI가 의료 기술과 같은 분야를 어떻게 재편하고 있는지 궁금하다면 솔루션 페이지를 확인해 보세요. YOLO -World와 같은 혁신의 가능성은 무궁무진해 보입니다!

Facebook 로고트위터 로고LinkedIn 로고복사 링크 기호

이 카테고리에서 자세히 보기

인공지능의 미래
를 함께 만들어 갑시다!

머신 러닝의 미래와 함께하는 여정 시작하기