YOLOE: 실시간 비디오 감지 및 객체 세분화를 위한 오픈 소스 도구

최신 AI 리소스4개월 전 업데이트 AI 공유 서클
1.3K 00

일반 소개

YOLOE는 칭화대학교 소프트웨어대학의 멀티미디어 인텔리전스 그룹(THU-MIG)에서 개발한 오픈 소스 프로젝트로, 정식 명칭은 "You Only Look Once Eye"입니다. PyTorch 프레임워크를 기반으로 하며 다음에 속합니다. YOLO 실시간으로 모든 물체를 감지하고 분할하는 시리즈의 확장판입니다. GitHub에서 호스팅되는 이 프로젝트의 핵심 기능은 텍스트 큐잉, 시각적 큐잉, 프롬프트 없는 감지의 세 가지 모드를 지원한다는 것입니다. 사용자는 텍스트나 그림으로 대상을 지정하거나 모델이 1200개 이상의 사물을 자동으로 인식할 수 있습니다. 공식 데이터에 따르면 YOLOE는 LVIS 데이터 세트에서 YOLO-Worldv2보다 1.4배 빠르고 훈련 비용이 3배 저렴하면서도 높은 정확도를 유지하는 것으로 나타났습니다. 또한 이 모델은 추가 오버헤드 없이 YOLOv8 또는 YOLO11로 원활하게 변환할 수 있어 여러 디바이스에 배포하기에 적합합니다.

YOLOE:实时视频检测和分割物体的开源工具

 

기능 목록

  • 실시간 물체 감지를 지원하여 이미지나 동영상에서 대상을 빠르게 식별할 수 있습니다.
  • 인스턴스 세분화 기능을 제공하여 객체의 윤곽을 정확하게 그릴 수 있습니다.
  • 텍스트 프롬프트 감지를 지원하며, 사용자가 텍스트를 입력하여 감지 대상을 지정합니다.
  • 사진을 참조하여 유사한 물체를 인식하는 시각적 단서 감지 기능을 제공합니다.
  • 내장된 프롬프트 없음 모드는 1200개 이상의 일반적인 개체를 자동으로 감지합니다.
  • YOLOv8/YOLO11로 모델 재파라미터화 가능 추론 오버헤드 없음.
  • 다양한 성능 요구 사항을 지원하기 위해 사전 학습된 다양한 모델(S/M/L 스케일)을 제공합니다.
  • 개발자가 수정하고 확장할 수 있는 오픈 소스 코드 및 문서입니다.

 

도움말 사용

YOLOE의 사용은 설치와 운영의 두 부분으로 나뉩니다. 다음은 사용자가 쉽게 시작할 수 있도록 자세한 단계입니다.

설치 프로세스

  1. 환경 준비하기
    Python 3.10 및 PyTorch가 필요합니다. 가상 환경을 만들 때는 Conda를 사용하는 것이 좋습니다:
conda create -n yoloe python=3.10 -y
conda activate yoloe
  1. 코드 복제
    GitHub에서 YOLOE 프로젝트를 다운로드하세요:
git clone https://github.com/THU-MIG/yoloe.git
cd yoloe
  1. 종속성 설치
    CLIP 및 MobileCLIP을 포함한 필요한 라이브러리를 설치합니다:
pip install -r requirements.txt
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/CLIP
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/ml-mobileclip
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/lvis-api
wget https://docs-assets.developer.apple.com/ml-research/datasets/mobileclip/mobileclip_blt.pt
  1. 사전 학습된 모델 다운로드
    YOLOE는 다음과 같은 다양한 모델을 제공합니다. yoloe-v8l-seg.pt. 다음 명령어로 다운로드하세요:
pip install huggingface-hub==0.26.3
huggingface-cli download jameslahm/yoloe yoloe-v8l-seg.pt --local-dir pretrain

또는 Python을 사용하여 자동으로 로드합니다:

from ultralytics import YOLOE
model = YOLOE.from_pretrained("jameslahm/yoloe-v8l-seg.pt")
  1. 설치 확인
    테스트 명령을 실행하여 환경이 정상인지 확인합니다:

    python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
    

주요 기능

1. 문자 알림 감지

  • 기능 설명: 해당 개체를 감지할 텍스트를 입력합니다.
  • 절차::
    1. 다음과 같은 이미지를 준비합니다. bus.jpg.
    2. 명령을 실행하고 대상을 지정합니다(예: "사람, 개, 고양이"):
      python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
      
    3. 결과를 확인하면 이미지에 감지된 개체에 레이블이 지정됩니다.
  • 조정 방법신뢰도 임계값 : 탐지가 누락된 경우 신뢰도 임계값을 낮출 수 있습니다:
    --conf 0.001
    

2. 시각적 단서 감지

  • 기능 설명참조 사진으로 유사한 물체를 감지합니다.
  • 절차::
    1. 참조 및 대상 사진을 준비합니다.
    2. 시각적 단서 모듈을 교육합니다:
      python tools/convert_segm2det.py
      python train_vp.py
      python tools/get_vp_segm.py
      
    3. 테스트를 실행합니다:
      python predict_visual_prompt.py --source test.jpg --ref reference.jpg --checkpoint pretrain/yoloe-v8l-seg.pt
      
    4. 출력을 확인하고 결과를 확인합니다.
  • 주의참고 사진은 선명하고 뚜렷해야 합니다.

3. 프롬프트되지 않은 탐지

  • 기능 설명프롬프트를 입력할 필요 없이 사진 속 사물을 자동으로 인식합니다.
  • 절차::
    1. 모델에 사전 학습된 어휘가 로드되어 있는지 확인하세요(1200개 이상의 카테고리 지원).
    2. 실행 명령을 실행합니다:
      python predict_prompt_free.py --source test.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --device cuda:0
      
    3. 결과를 확인하면 모든 본문에 레이블이 지정됩니다.
  • 조정 방법: 탐지가 불완전한 경우 최대 탐지 횟수가 증가할 수 있습니다:
    --max_det 1000
    

4. 모델 변환 및 배포

  • 기능 설명다른 기기에 배포할 수 있도록 YOLOE를 YOLOv8/YOLO11 형식으로 변환합니다.
  • 절차::
    1. 내보내기 도구를 설치합니다:
      pip install onnx coremltools onnxslim
      
    2. 내보내기 명령을 실행합니다:
      python export.py --checkpoint pretrain/yoloe-v8l-seg.pt
      
    3. 출력 형식은 TensorRT(GPU) 또는 CoreML(iPhone)을 지원합니다.
  • 성능 데이터로 설정합니다.yoloe-v8l-seg.pt FPS는 102.5점이었고, iPhone 12에서는 27.2점이었습니다.

5. 맞춤형 모델 교육

  • 기능 설명자체 데이터셋으로 YOLOE를 훈련하세요.
  • 절차::
    1. Objects365v1 또는 GQA와 같은 데이터 집합을 준비합니다.
    2. 세분화 어노테이션을 생성합니다:
      python tools/generate_sam_masks.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train.json
      
    3. 교육 캐시를 생성합니다:
      python tools/generate_grounding_cache.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train_segm.json
      
    4. 교육을 실행합니다:
      python train_seg.py
      
    5. 효과를 확인합니다:
      python val.py
      

기타 도구

  • 웹 데모: Gradio로 인터페이스를 시작합니다:
    pip install gradio==4.42.0
    python app.py
    

    인터뷰 http://127.0.0.1:7860.

 

애플리케이션 시나리오

  1. 안전 모니터링
    영상에서 사람이나 사물을 실시간으로 감지하여 보안 관리를 위한 윤곽선을 표시합니다.
  2. 지능형 운송
    도로에서 차량과 보행자를 식별하여 교통 분석 또는 자율 주행을 지원합니다.
  3. 산업 품질 관리
    시각적 단서를 통해 부품 결함을 감지하면 생산성이 향상됩니다.
  4. 과학 연구
    실험 이미지를 처리하고, 개체에 자동으로 레이블을 지정하고, 데이터 처리를 가속화합니다.

 

QA

  1. YOLOE와 YOLOv8의 차이점은 무엇인가요?
    YOLOE는 개방형 장면 감지(텍스트, 시각, 프롬프트 없음)를 지원하는 반면, YOLOv8은 고정 카테고리로 제한되며, 추가 오버헤드 없이 YOLOE를 YOLOv8로 변환할 수도 있습니다.
  2. GPU가 필요하신가요?
    필요 없음.CPU는 실행할 수 있지만 GPU(예: CUDA)가 더 빠릅니다.
  3. 테스트가 정확하지 않으면 어떻게 하나요?
    신뢰도 임계값 낮추기(--conf 0.001) 또는 테스트 횟수를 늘리거나(--max_det 1000).
  4. 어떤 디바이스가 지원되나요?
    PC(TensorRT), iPhone(CoreML) 및 기타 여러 장치를 지원합니다.
© 저작권 정책
AiPPT

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...