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

키포인트탐지예측 종류

sv.Detections(...) 객체 형태의 감지된 경계 상자와 감지된 키포인트가 포함된 예측.

탐지된 바운딩 박스와 탐지된 키포인트가 포함된 sv.Detections(...) 객체 형식의 예측

데이터 표현

외부

외부 데이터 표현은 Workflows 클라이언트와 관련이 있으며, 데이터의 입력 및 출력 형식을 규정합니다.

유형: dict

내부

내부 데이터 표현은 Workflows 블록 제작자와 관련이 있습니다 - 이는 실행 엔진이 런타임에 이러한 종류의 입력을 받는 블록에 제공하는 유형입니다.

유형: sv.Detections

세부 정보

이 유형은 다음 형식의 단일 키포인트 예측을 나타냅니다 sv.Detections(...) 객체.

예시:

sv.Detections(
    xyxy=array([[        127,         189,         322,         303]]), 
    mask=None, 
    confidence=array([    0.95898]), 
    class_id=array([6]), 
    tracker_id=None, 
    data={
        'class_name': array(['G'], dtype='<U1'),
        'detection_id': array(['51dfa8d5-261c-4dcb-ab30-9aafe9b52379'], dtype='<U36'),
        'parent_id': array(['image.[0]'], dtype='<U9'),
        'image_dimensions': array([[425, 640]]),
        'inference_id': array(['51dfa8d5-261c-4dcb-ab30-9aafe9b52379'], dtype='<U36'),
        'prediction_type': array(['instance-segmentation'], dtype='<U16'),
        'root_parent_id': array(['image.[0]'], dtype='<U9'),
        'root_parent_coordinates': array([[0, 0]]),
        'root_parent_dimensions': array([[425, 640]]),
        'parent_coordinates': array([[0, 0]]),
        'parent_dimensions': array([[425, 640]]),
        'scaling_relative_to_parent': array([1]),
        'scaling_relative_to_root_parent': array([1]),
        'keypoints_class_name': array(),  # 객체 타입의 가변 길이 배열 - 각 박스마다 문자열 1D 배열 하나
        'keypoints_class_id': array(),  # 객체 타입의 가변 길이 배열 - 각 박스마다 int 1D 배열 하나
        'keypoints_confidence': array(),  # 객체 타입의 가변 길이 배열 - 각 박스마다 float 1D 배열 하나
        'keypoints_xy': array(),  # 객체 타입의 가변 길이 배열 - bbox마다 (x, y) 좌표를 가진 2D 배열 하나
    }
)

전에 sv.Keypoints(...) 우리는 다음을 기반으로 한 키포인트 탐지를 도입했습니다 sv.Detections(...) 객체입니다. 이 결정은 최적이 아니었으므로 나중에 되돌려야 하겠지만, 현재로서는 이것이 키포인트 탐지용 데이터 형식입니다.

메타데이터 설계 역시 최적이 아닙니다(전체 이미지에 대한 메타데이터가 모든 바운딩 박스에 걸쳐 중복되고, 빈 예측에 대한 메타데이터를 저장할 방법이 없기 때문입니다). 우리는 GH 이슈 를 통해 이 문제를 전달했습니다.

추가 필드의 세부 사항:

  • detection_id - 각 감지에 대한 고유 식별자로, 특정 감지를 기반으로 종속 요소가 생성될 때 사용됩니다(예: Dynamic Crop은 새 이미지의 부모 id로 이 값을 사용함)

  • parent_id - 예측을 생성한 이미지의 식별자(다음에서 가져와야 함 WorkflowImageData object)

  • image_dimensions - 예측의 기준이 된 이미지의 크기 - 형식: (height, width)

  • inference_id - 추론 요청의 식별자(선택 사항이며, Roboflow 모델과 관련됨)

  • 예측 유형 - 예측 유형

  • root_parent_id - 하위 예측의 책임을 진 주요 Workflow 입력의 식별자(다음에서 가져와야 함 WorkflowImageData object) - 보통 Workflow 입력 플레이스홀더의 식별자

  • root_parent_coordinates - 원본 입력에 대한 오프셋 - 형식 (offset_x, offset_y)

  • root_parent_dimensions - 원본 입력 이미지의 크기 (height, width)

  • parent_coordinates - 부모에 대한 오프셋 - 형식 (offset_x, offset_y)

  • parent_dimensions - 부모 이미지의 크기 (height, width)

  • scaling_relative_to_parent - 부모 이미지에 대한 스케일링 계수

  • scaling_relative_to_root_parent - 원본 입력 이미지에 대한 스케일링 계수

  • keypoints_class_name 키포인트 클래스 이름을 담은 문자열 1D 배열의 가변 크기 배열

  • keypoints_class_id 키포인트 클래스 ID를 담은 int 1D 배열의 가변 크기 배열

  • keypoints_confidence 키포인트 신뢰도를 담은 float 1D 배열의 가변 크기 배열

  • keypoints_xy 키포인트 좌표를 담은 가변 크기 2D 배열 (x, y) 형식

직렬화:

API 뒤의 Execution Engine은 이러한 종류의 선택자가 Workflow 출력으로 선언되면 기본 데이터를 직렬화할 것입니다 - 직렬화는 다음과 같이 수행됩니다 sv.Detections.from_inference(...) 출력을 디코딩할 수 있지만 키포인트 세부 정보가 손실됩니다 - 출력 JSON 필드가 파싱되면 복구할 수 있습니다. 엔터티 세부 정보: KeypointsDetectionInferenceResponse

마지막 업데이트

도움이 되었나요?