For the complete documentation index, see llms.txt. This page is also available as Markdown.

OwlV2

Dedicated Deployment 또는 self-hosted Inference에서 OwlV2를 사용해 one-shot object detection을 수행합니다.

OwlV2는 Google의 open-vocabulary object detector입니다. 참조 이미지에 하나 이상의 예시 bounding box를 제공하면, OwlV2는 별도의 학습 없이 대상 이미지에서 유사한 객체를 감지합니다.

OwlV2는 Serverless Hosted API에서 사용할 수 없습니다. 다음에서 실행하세요 Dedicated Deployment 또는 자체 호스팅 Inference.

코드 샘플

1

API Key를 받으세요

Roboflow 계정을 만들고, 다음에서 키를 찾으세요: Roboflow API 설정 페이지 그리고 이를 셸에서 사용할 수 있도록 설정하세요:

export ROBOFLOW_API_KEY="your-key-here"
2

종속성을 설치하세요

이 패키지들은 API를 호출하고 결과를 그립니다:

pip install requests supervision opencv-python
3

모델을 실행하세요

아래 예제는 입력 이미지의 단일 예시 박스를 프롬프트로 사용하여 같은 이미지에서 일치하는 객체를 감지합니다. 실제로는 일반적으로 별도의 참조 이미지를 전달합니다. 설정하세요 URL 를 Dedicated Deployment URL 또는 로컬 Inference server에.

import base64
import os
import cv2
import numpy as np
import requests
import supervision as sv

URL = "https://your-deployment.roboflow.cloud"
content = requests.get("https://media.roboflow.com/notebooks/examples/dog.jpeg").content
image = cv2.imdecode(np.frombuffer(content, np.uint8), cv2.IMREAD_COLOR)
_, buffer = cv2.imencode(".jpg", image)
image_base64 = base64.b64encode(buffer).decode("utf-8")

response = requests.post(
    f"{URL}/owlv2/infer",
    json={
        "api_key": os.environ["ROBOFLOW_API_KEY"],
        "image": {"type": "base64", "value": image_base64},
        "training_data": [{
            "image": {"type": "base64", "value": image_base64},
            "boxes": [{"x": 360, "y": 800, "w": 500, "h": 500, "cls": "dog"}],
        }],
        "confidence": 0.99,
    },
)
preds = response.json()["predictions"]

xyxys = [
    [p["x"] - p["width"] / 2, p["y"] - p["height"] / 2,
     p["x"] + p["width"] / 2, p["y"] + p["height"] / 2]
    for p in preds
]
detections = sv.Detections(
    xyxy=np.array(xyxys, dtype=float),
    class_id=np.array([p.get("class_id", 0) for p in preds]),
    confidence=np.array([p["confidence"] for p in preds], dtype=float),
    data={"class_name": np.array([p["class"] for p in preds])},
)
labels = [f"{p['class']} {p['confidence']:.2f}" for p in preds]
annotated = sv.BoxAnnotator().annotate(image.copy(), detections)
annotated = sv.LabelAnnotator().annotate(annotated, detections, labels=labels)
cv2.imwrite("dog_annotated.png", annotated)

추론 속도

다음 기준으로 측정한 지연 시간 Roboflow Inference 1x NVIDIA L4에서, 배치 크기 1로, 워밍업 이후 평균값입니다.

모델
지연 시간(ms)

owlv2

541.2

다음에서 측정됨 owlv2-large-patch14-ensemble 텍스트 프롬프트 두 개를 사용한 상태에서.

설정 URL 을 배포 대상에 맞게 설정하세요:

OwlV2의 confidence는 일반적으로 매우 높습니다(0.99 이상). confidence 파라미터를 그에 맞게 조정하세요.

마지막 업데이트

도움이 되었나요?