OWLv2

OWLv2는 Google Research가 개발한 오픈 보캐뷸러리 객체 탐지기로, CLIP 방식 인코더의 텍스트 임베딩을 기준으로 이미지 영역의 점수를 계산합니다. LibreYOLO는 이를 오픈 보캐뷸러리 탐지기 계층의 예측 전용 계열로 래핑합니다.

작업
detection
크기
b16, l14 at 960 to 1008 px
설치
pip install libreyolo
지원 티어
별도 티어, v부터 지원. 자체 팩토리와 계약을 갖춘 별도의 제품 영역입니다.
업스트림
Google Research의 OWLv2, Apache-2.0. 논문, 소스
라이선스
코드 MIT, 가중치 Apache-2.0. 상업적 사용

설치

OWLv2는 openvocab extra가 필요한 LibreYOLO의 오픈 보캐뷸러리 탐지기 계층으로 불러옵니다.

bash
pip install "libreyolo[openvocab]"

이 extra는 해당 계층이 호출하는 Hugging Face 라이브러리인 transformerstimm을 가져옵니다.

예측

OWLv2는 LibreYOLO가 LibreYOLO()로 불러오는 체크포인트가 아닙니다. 형제 팩토리인 LibreOpenVocab으로 불러오며, 처음 사용할 때 Hugging Face 스냅샷을 내려받아 weights/ 아래에 캐시합니다.

Python
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("owlv2-b16")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.1)for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
기본 보캐뷸러리
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE # set_classes()를 생략하면 계층의 기본 COCO-80 보캐뷸러리를 유지합니다.model = LibreOpenVocab("owlv2-l14")result = model.predict(SAMPLE_IMAGE, conf=0.1)print(result.names)

set_classes()는 유지되는 텍스트 보캐뷸러리를 설정합니다. 목록을 바꾸려면 다시 호출하고 기본 COCO-80 레이블을 유지하려면 생략합니다. 각 레이블은 텍스트 타워에 도달하기 전에 고정 프롬프트 템플릿으로 래핑되며, 이는 transformersOwlv2ForObjectDetection 학습 방식과 일치합니다.

OWLv2에는 텍스트 토큰 임계값이 없습니다. conf만 탐지를 필터링하며 text_threshold를 전달하면 오류가 발생합니다. API 호환성을 위해 iou를 허용하지만 경고만 표시하고 아무것도 하지 않습니다. 여기서는 NMS를 실행하지 않기 때문입니다. imgszaugment=True는 즉시 거부됩니다. transformers 프로세서가 크기 조정을 담당하며 테스트 시점 증강은 이 계층의 범위를 벗어납니다. 단일 이미지의 predict()는 목록이 아닌 하나의 Results를 반환합니다. 여러 결과를 얻으려면 디렉터리나 이미지 목록을 전달하거나 비디오 소스에 stream=True를 사용합니다. 이 계열에는 CLI 경로가 없습니다. libreyolo predictLibreYOLO()를 통해 .pt 체크포인트만 불러오므로 LibreOpenVocab 계열은 Python에서 실행합니다. 소스 유형과 스트리밍은 예측을 참조합니다.

변형

체크포인트는 b16(base, 패치 크기 16)과 l14(large, 패치 크기 14) 두 가지입니다. 크기를 지정하지 않으면 b16이 이 계층의 기본값입니다. 두 체크포인트 모두 transformersOwlv2ForObjectDetection을 통해 공식 Google Research 릴리스를 미러링하며, 업스트림 파일을 보존하는 LibreYOLO 호스팅 Hugging Face 스냅샷으로 한 번 내려받습니다. 이 계열의 정확도 또는 지연 시간 수치는 아직 게시되지 않았습니다.

학습, 데이터셋 검증, 내보내기는 모두 이 계층의 범위를 벗어납니다. train(), val(), export()는 모두 조건 없이 NotImplementedError를 일으킵니다. 공개된 체크포인트를 감싼 예측 전용 래퍼입니다.

체크포인트

이 계열에서 공개된 모든 가중치 파일입니다.

파일입력(px)가중치 라이선스
Detection
LibreOWLv2b16.pt960apache-2.0
LibreOWLv2l14.pt1008apache-2.0

위의 모든 파일은 현재 LibreYOLO 조직에 있으며 처음 사용할 때 내려받습니다.

라이선스

내려받는 특정 가중치의 Hugging Face 저장소에서 라이선스를 확인하십시오. LibreYOLO 조직의 모든 체크포인트에는 라이선스가 있으며 한 계열 안에서도 항상 같지는 않습니다. 해당 저장소가 신뢰할 수 있는 기준입니다. 아래 요약은 이 페이지를 마지막으로 검증했을 때 적용된 내용을 설명합니다.

관련 라이선스에 관한 설명이며 법률 자문이 아닙니다. 상업적으로 중요한 사안이라면 라이선스를 직접 읽고 별도의 법률 자문을 받으십시오.

원작
OWLv2, Google Research
업스트림 라이선스
Apache-2.0
LibreYOLO 코드
MIT
가중치
Apache-2.0, huggingface.co/LibreYOLO에 다시 게시됨
해석
Apache-2.0 is a permissive license, so these checkpoints can be used in commercial and closed-source products. It asks you to keep the license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. LibreYOLO vendors no OWLv2 model source of its own: LibreOWLv2 calls the Apache-2.0 `transformers` implementation, `Owlv2ForObjectDetection`, directly, and downloads the official checkpoints into a LibreYOLO-hosted mirror repository that preserves the upstream snapshot files.

인용

@article{minderer2023scaling,
  title={Scaling Open-Vocabulary Object Detection},
  author={Matthias Minderer, Alexey Gritsenko, Neil Houlsby},
  journal={NeurIPS},
  year={2023},
}

github.com/google-research/scenic/blob/main/scenic/projects/owl_vit/README.md#references에 있는 저자의 인용 블록에서 복사했습니다.

LibreYOLO v1.5.0에서 검증되었습니다. 이 페이지의 지원 표, 체크포인트, 벤치마크 수치는 출시된 라이브러리와 공개된 가중치에서 생성되며 수동으로 작성되지 않습니다.