키포인트 감지

Roboflow에 호스팅된 객체 감지 모델에서 추론을 실행하세요.

Python을 사용하여 호스팅된 API를 통해 추론을 실행하려면, 다음을 사용하세요. roboflow Python 패키지:

from roboflow import Roboflow
rf = Roboflow(api_key="API_KEY")
project = rf.workspace().project("MODEL_ENDPOINT")
model = project.version(VERSION).model

# 로컬 이미지에서 추론
print(model.predict("your_image.jpg", confidence=40, overlap=30).json())

# 예측 시각화
# model.predict("your_image.jpg", confidence=40, overlap=30).save("prediction.jpg")

# 외부에 호스팅된 이미지에서 추론
# print(model.predict("URL_OF_YOUR_IMAGE", hosted=True, confidence=40, overlap=30).json())

응답 객체 형식

호스팅된 API 추론 경로는 JSON 예측 배열이 포함된 객체를 반환합니다. 각 예측에는 다음 속성이 있습니다:

  • x = 감지된 객체의 수평 중심점

  • y = 감지된 객체의 수직 중심점

  • width = 바운딩 박스의 너비

  • height = 바운딩 박스의 높이

  • class = 감지된 객체의 클래스 라벨

  • confidence = 감지된 객체가 올바른 라벨과 위치 좌표를 가질 확률에 대한 모델의 신뢰도

  • keypoints = 키포인트 예측 배열

    • x = 키포인트의 수평 중심 (이미지 좌상단 기준)

    • y = 키포인트의 수직 중심 (이미지 좌상단 기준)

    • class_name = 키포인트 이름

    • class_id = 키포인트의 id, skeleton에 매핑됨 vertices 버전 레코드에서, 버텍스 색상과 skeleton 엣지를 매핑하려면, Project Version 보기

    • confidence = 키포인트가 올바른 위치에 있고, 보이는지(가려지거나 삭제되지 않음)에 대한 신뢰도

REST API의 예시 응답 객체는 다음과 같습니다:

{
    "predictions": [
        {
            "x": 189.5,
            "y": 100,
            "width": 163,
            "height": 186,
            "class": "helmet",
            "confidence": 0.544,
            "keypoints": [
                {
                    "x": 189, 
                    "y": 20,
                    "class_name": "top",
                    "class_id": 0,
                    "confidence": 0.91
                },
                {
                    "x": 188, 
                    "y": 180,
                    "class_name": "bottom",
                    "class_id": 1,
                    "confidence": 0.93
                }
            ]
        }
    ],
    "image": {
        "width": 2048,
        "height": 1371
    }
}

해당 이미지 속성에는 추론에 보낸 이미지의 높이와 너비가 포함됩니다. 바운딩 박스 계산에 이 값을 사용할 수 있습니다.

Inference API 매개변수

Inference API 사용하기

POST https://detect.roboflow.com/:datasetSlug/:versionNumber

base64로 인코딩된 이미지를 직접 모델 엔드포인트에 POST할 수 있습니다. 또는 이미 다른 곳에 호스팅된 이미지라면, 이미지 쿼리 문자열의 파라미터로 URL을 전달할 수 있습니다.

경로 파라미터

이름
유형
설명

datasetSlug

string

데이터셋 이름의 url-safe 버전입니다. 웹 UI의 메인 프로젝트 뷰에서 URL을 확인하거나, 모델 학습 후 데이터셋 버전의 학습 결과 섹션에서 "Get curl command" 버튼을 클릭하여 찾을 수 있습니다.

version

number

데이터셋 버전을 식별하는 버전 번호입니다.

쿼리 파라미터

이름
유형
설명

이미지

string

추가할 이미지의 URL입니다. 이미지가 외부에 호스팅된 경우 사용하세요. (요청 본문에 base64 인코딩 이미지를 POST하지 않을 때 필수) 참고: URL 인코딩을 잊지 마세요.

classes

string

특정 클래스의 예측만 제한합니다. 콤마로 구분된 문자열로 제공합니다. 예시: dog,cat 기본값: 없음 (모든 클래스 표시)

overlap

number

동일 클래스의 바운딩 박스 예측이 하나의 박스로 합쳐지기 전에 허용되는 최대 중첩 비율(0-100 기준)입니다. 기본값: 30

confidence

number

반환된 예측의 임계값(0-100 기준)입니다. 낮은 숫자는 더 많은 예측을 반환하고, 높은 숫자는 더 적지만 높은 확신의 예측만 반환합니다. 기본값: 40

stroke

number

예측 주위에 표시되는 바운딩 박스의 너비(픽셀 단위)입니다 ( format 일 때만 적용) 이미지). 기본값: 1

labels

boolean

예측에 텍스트 라벨을 표시할지 여부 ( format 일 때만 적용) 이미지). 기본값: false

format

string

json - JSON 예측 배열을 반환합니다. (응답 형식 탭 참조). 이미지 - 주석이 달린 예측이 포함된 이미지를 바이너리 blob으로 반환합니다. Content-Typeimage/jpeg. image_and_json - base64로 시각화 필드를 포함한 JSON 예측 배열을 반환합니다. 기본값: json

api_key

string

API 키 (워크스페이스 API 설정 페이지에서 획득)

요청 본문

이름
유형
설명

string

base64로 인코딩된 이미지입니다. (쿼리 파라미터에 이미지 URL을 전달하지 않을 때 필수)

{
    "predictions": [{
        "x": 234.0,
        "y": 363.5,
        "width": 160,
        "height": 197,
        "class": "hand",
        "confidence": 0.943
    }, {
        "x": 504.5,
        "y": 363.0,
        "width": 215,
        "height": 172,
        "class": "hand",
        "confidence": 0.917
    }, {
        "x": 1112.5,
        "y": 691.0,
        "width": 139,
        "height": 52,
        "class": "hand",
        "confidence": 0.87
    }, {
        "x": 78.5,
        "y": 700.0,
        "width": 139,
        "height": 34,
        "class": "hand",
        "confidence": 0.404
    }]
}

Last updated

Was this helpful?