YOLO-World 실습하기
텍스트 프롬프트를 통해 객체를 식별할 수 있는 혁신적인 객체 탐지 모델인 YOLO-World에 대해 알아보십시오. YOLO-World의 작동 원리와 응용 분야를 살펴보고 간단한 코드 예제를 직접 실습해 보십시오.

컴퓨터 비전 프로젝트는 흔히 데이터 어노테이션과 객체 탐지 모델 학습에 많은 시간을 할애합니다. 하지만 이제 그럴 필요가 없을지도 모릅니다. 2024년 1월 31일, Tencent의 AI Lab은 실시간 오픈 어휘 객체 탐지 모델인 YOLO-World를 발표했습니다. YOLO-World는 제로샷 모델로, 별도의 학습 과정 없이 이미지에 대한 객체 탐지 추론을 수행할 수 있습니다.
제로샷 모델은 컴퓨터 비전 애플리케이션에 접근하는 방식을 바꿀 잠재력을 가지고 있습니다. 이번 블로그에서는 YOLO-World의 작동 원리와 잠재적인 활용 사례를 살펴보고, 시작하는 데 도움이 될 실용적인 코드 예제를 공유하겠습니다.
Link to this sectionYOLO-World 살펴보기#
YOLO-World 모델에 이미지와 함께 찾고자 하는 객체를 설명하는 텍스트 프롬프트를 입력할 수 있습니다. 예를 들어, 사진 속에서 "빨간 셔츠를 입은 사람"을 찾고 싶다면, YOLO-World는 이 입력을 받아 작업을 수행합니다.
이 모델의 독특한 아키텍처는 세 가지 주요 요소로 구성됩니다.
- Ultralytics YOLOv8 객체 탐지 모델을 기반으로 하는 탐지기로, 이미지의 시각적 콘텐츠를 분석합니다.
- OpenAI의 CLIP으로 사전 학습된 텍스트 인코더로, 사용자의 텍스트 프롬프트를 이해하도록 설계되었습니다.
- 처리된 이미지 데이터와 텍스트 데이터를 통합하는 네트워크인 Vision-Language Path Aggregation Network(RepVL-PAN)입니다.
YOLO 탐지기는 입력 이미지를 스캔하여 잠재적인 객체를 식별합니다. 텍스트 인코더는 사용자의 설명을 모델이 이해할 수 있는 형식으로 변환합니다. 이후 이 두 정보 흐름은 다단계 교차 모달리티 융합을 사용하는 RepVL-PAN을 통해 병합됩니다. 이를 통해 YOLO-World는 프롬프트에 설명된 객체를 이미지 내에서 정확하게 탐지하고 위치를 파악할 수 있습니다.

YOLO-World 결과 예시입니다.
Link to this sectionYOLO-World 선택의 이점#
YOLO-World를 사용하는 가장 큰 장점 중 하나는 특정 클래스에 대해 모델을 학습시킬 필요가 없다는 것입니다. 이미 방대한 이미지와 텍스트 쌍으로 학습했기 때문에 설명을 기반으로 객체를 찾는 방법을 알고 있습니다. 따라서 데이터를 수집하고, 어노테이션을 달고, 고가의 GPU에서 학습시키는 등의 수많은 시간을 절약할 수 있습니다.
YOLO-World 사용의 다른 이점은 다음과 같습니다.
- 실시간 성능 - YOLO-World는 기존 YOLO 아키텍처와 마찬가지로 실시간 성능을 지원합니다. 자율 주행 차량이나 감시 시스템과 같이 즉각적인 객체 탐지가 필요한 애플리케이션에 이상적입니다.
- 인스턴스 세그멘테이션 - YOLO-World는 학습 과정에서 특별히 배우지 않은 객체라 하더라도 사진 속 객체를 깔끔하게 외곽선을 따고 분리할 수 있습니다.
- 효율성 - YOLO-World는 높은 정확도와 계산 효율성을 결합하여 실제 애플리케이션에서 실용적으로 사용할 수 있게 합니다. 간소화된 아키텍처 덕분에 처리 능력에 대한 과도한 요구 없이도 신속한 객체 탐지가 가능합니다.
Link to this sectionYOLO-World의 활용 사례#
YOLO-World 모델은 매우 다양한 애플리케이션에 사용할 수 있습니다. 그중 몇 가지를 살펴보겠습니다.
Link to this section제조업의 품질 관리#
조립 라인에서 제조된 제품은 포장 전에 시각적으로 결함 검사를 거칩니다. 결함 탐지는 흔히 수동으로 이루어지며, 이는 시간이 많이 걸리고 실수를 유발할 수 있습니다. 이러한 실수는 높은 비용 발생이나 수리 또는 리콜과 같은 문제를 야기할 수 있습니다. 이를 해결하기 위해 이러한 검사를 수행하는 특수 머신 비전 카메라와 AI 시스템이 개발되었습니다.
YOLO-World 모델은 이 분야에서 큰 발전을 이루었습니다. 제로샷 능력을 사용하여 특정 문제에 대해 학습되지 않은 경우에도 제품의 결함을 찾아낼 수 있습니다. 예를 들어, 생수병을 제조하는 공장에서는 YOLO-World를 사용하여 병뚜껑이 제대로 밀봉된 병과 뚜껑이 없거나 결함이 있는 병을 쉽게 구분할 수 있습니다.

병뚜껑 검사 예시입니다.
Link to this section로봇 공학#
YOLO-World 모델을 사용하면 로봇이 익숙하지 않은 환경과 상호 작용할 수 있습니다. 방 안에 있을지도 모르는 특정 객체에 대해 학습하지 않았더라도 현재 어떤 객체가 있는지 식별할 수 있습니다. 예를 들어, 로봇이 한 번도 가본 적 없는 방에 들어간다고 가정해 보겠습니다. YOLO-World 모델을 사용하면 의자, 테이블, 램프와 같은 객체를 구체적으로 학습하지 않았더라도 이를 인식하고 식별할 수 있습니다.
객체 탐지 외에도 YOLO-World는 '프롬프트 후 탐지(prompt-then-detect)' 기능을 통해 해당 객체의 상태를 결정할 수 있습니다. 예를 들어, 농업 로봇 공학에서 로봇이 익은 과일과 익지 않은 과일을 탐지하도록 프로그래밍하여 이를 구분하는 데 사용할 수 있습니다.
Link to this section자동차 산업에서의 AI#
자동차 산업에는 많은 움직이는 부품이 포함되어 있으며, YOLO-World는 다양한 차량 애플리케이션에 사용될 수 있습니다. 예를 들어, 자동차 유지보수의 경우, 수동 태깅이나 광범위한 사전 학습 없이도 다양한 객체를 인식하는 YOLO-World의 능력은 매우 유용합니다. YOLO-World는 교체가 필요한 자동차 부품을 식별하는 데 사용될 수 있습니다. 심지어 신차의 결함이나 누락된 부품을 찾아내어 품질 검사와 같은 작업을 자동화할 수도 있습니다.
또 다른 애플리케이션은 자율 주행 자동차에서의 제로샷 객체 탐지입니다. YOLO-World의 제로샷 탐지 기능은 자율 주행 차량이 보행자, 교통 표지판, 기타 차량과 같은 도로상의 객체를 실시간으로 탐지하고 분류하는 능력을 향상할 수 있습니다. 이를 통해 장애물을 감지하고 사고를 예방하여 더 안전한 주행을 돕습니다.

도로 위 객체 탐지 예시입니다.
Link to this section소매점의 재고 관리#
소매점 선반 위의 객체를 식별하는 것은 재고 추적, 재고 유지 및 프로세스 자동화의 중요한 부분입니다. 수동 태깅이나 광범위한 사전 학습 없이도 다양한 객체를 인식하는 Ultralytics YOLO-World의 능력은 재고 관리에 매우 유용합니다.
예를 들어, 재고 관리에서 YOLO-World는 에너지 드링크의 여러 브랜드와 같이 선반 위의 항목을 신속하게 찾아내고 분류할 수 있습니다. 소매점은 정확한 재고를 유지하고 재고 수준을 효율적으로 관리하며 공급망 운영을 원활하게 할 수 있습니다.
이 모든 애플리케이션은 고유하며 YOLO-World가 얼마나 광범위하게 사용될 수 있는지 보여줍니다. 다음으로, YOLO-World를 직접 다루어 보고 코드 예제를 살펴보겠습니다.
Link to this section코드 따라하기#
앞서 언급했듯이 YOLO-World는 유지보수를 위해 자동차의 여러 부품을 탐지하는 데 사용할 수 있습니다. 필요한 수리를 탐지하는 컴퓨터 비전 애플리케이션은 자동차 사진을 찍고, 자동차 부품을 식별하고, 각 부품의 손상 여부를 검사하고, 수리를 권장하는 과정을 포함합니다. 이 시스템의 각 부분은 서로 다른 AI 기술과 접근 방식을 사용합니다. 이번 코드 따라하기에서는 자동차 부품이 탐지되는 부분에 집중해 보겠습니다.
YOLO-World를 사용하면 5분 안에 이미지 속 다양한 자동차 부품을 식별할 수 있습니다. 이 코드를 확장하여 YOLO-World를 사용하는 다양한 애플리케이션을 직접 시도해 볼 수도 있습니다! 먼저 아래와 같이 pip를 통해 Ultralytics 패키지를 설치해야 합니다.
설치 과정에 대한 더 많은 지침과 모범 사례는 Ultralytics 설치 가이드를 확인해 주십시오. YOLOv8에 필요한 패키지를 설치하는 동안 어려움이 발생하면, 일반적인 문제 가이드에서 해결 방법과 팁을 확인해 보십시오.
필요한 패키지를 설치한 후에는 인터넷에서 이미지를 다운로드하여 추론을 실행할 수 있습니다. 아래 이미지를 사용하겠습니다.

입력 이미지입니다.
그 다음, 필요한 패키지를 불러오고 모델을 초기화한 후 입력 이미지에서 찾고자 하는 클래스를 설정합니다. 여기서는 자동차(car), 바퀴(wheel), 자동차 문(car door), 자동차 미러(car mirror), 번호판(license plate) 클래스에 관심이 있습니다.
그런 다음 predict 메서드를 사용하여 이미지 경로와 함께 최대 탐지 수에 대한 매개변수, 그리고 IoU(Intersection over Union) 및 신뢰도(conf) 임계값을 제공하여 이미지에 대한 추론을 실행합니다. 마지막으로, 탐지된 객체는 'result.jpg'라는 파일로 저장됩니다.
다음 출력 이미지가 파일로 저장됩니다.

출력 이미지입니다.
코딩 없이 YOLO-World의 기능을 확인하고 싶다면 YOLO-World 데모 페이지에 접속하여 입력 이미지를 업로드하고 사용자 지정 클래스를 입력해 볼 수 있습니다.
사용자 지정 클래스를 반복해서 입력하지 않고 나중에 바로 사용할 수 있도록 모델을 저장하는 방법은 YOLO-World 문서 페이지를 확인해 주십시오.
Link to this section자동차 문이 탐지되지 않은 것을 확인하셨나요?#
출력 이미지를 다시 살펴보면, 사용자 지정 클래스인 "car door"가 탐지되지 않았음을 알 수 있습니다. 뛰어난 성과에도 불구하고 YOLO-World에는 몇 가지 제한 사항이 있습니다. 이러한 한계를 극복하고 YOLO-World 모델을 효과적으로 사용하려면 올바른 유형의 텍스트 프롬프트를 사용하는 것이 중요합니다.
이에 대한 통찰은 다음과 같습니다.
- YOLO-World는 정확한 예측을 위해 높은 신뢰도 수준이 필요하지 않을 수 있으므로, 신뢰도 임계값을 낮추면 탐지율을 개선할 수 있습니다.
- 관심 없는 클래스를 추가하십시오. 이는 보조 객체에 대한 오탐(false positive)을 줄여 기본 객체 탐지 성능을 향상하는 데 도움이 됩니다.
- 더 작은 세부 사항에 집중하기 전에 더 큰 객체를 먼저 탐지하면 탐지 정확도를 향상할 수 있습니다.
- 색상 단서를 기반으로 객체를 탐지하려면 클래스에 색상을 언급하십시오.
- 프롬프트에 객체 크기를 설명하는 것도 YOLO-World가 특정 객체를 더 정확하게 식별하는 데 도움이 될 수 있습니다.
- 크기별로 예측을 필터링하거나 클래스당 신뢰도 수준을 조정하는 등의 후처리 방법은 객체 탐지 결과를 더욱 향상할 수 있습니다.
Link to this section가능성은 무궁무진합니다#
전반적으로 YOLO-World 모델은 고급 객체 탐지 기능과 함께 강력한 도구가 될 수 있습니다. 뛰어난 효율성과 정확도를 제공하며, 우리가 논의한 자동차 부품 식별 예시와 같이 다양한 애플리케이션 전반에서 작업을 자동화하는 데 도움을 줍니다.
컴퓨터 비전 및 AI에 대한 당사의 기여에 대해 더 알아보려면 GitHub 저장소를 자유롭게 살펴보십시오. AI가 헬스케어 기술과 같은 분야를 어떻게 재편하고 있는지 궁금하시다면 당사의 솔루션 페이지를 확인해 주십시오. YOLO-World와 같은 혁신 기술의 가능성은 끝이 없어 보입니다!






