OC-SORT 추적기
가려짐과 예측 불가능한 움직임을 통해 객체를 추적합니다.
비디오 프레임 전반의 객체를 추적합니다 OC-SORT roboflow/trackers 패키지의 알고리즘입니다.
OC-SORT는 SORT를 두 가지 핵심 메커니즘으로 확장합니다:
관측 중심 재갱신(OCR): 트랙이 가려짐 이후 다시 나타나면, OC-SORT는 간격 전후의 실제 관측값을 사용해 칼만 필터를 사후적으로 보정하여 누적 드리프트를 줄입니다.
관측 중심 모멘텀(OCM): 방향 일관성 비용이 매칭 과정에서 IoU와 함께 결합되어, 후보 검출이 트랙의 최근 운동과 일치하지 않는 방향에 있을 때 페널티를 부여합니다.
이로 인해 OC-SORT는 가려짐이 심하고, 움직임이 불규칙하며, 외형이 유사한 장면에서 SORT보다 훨씬 더 견고합니다.
OC-SORT를 사용할 때:
빈번하고 장시간 지속되는 가려짐이 있는 혼잡한 장면(예: 보행자, 창고 작업자).
비선형적이거나 불규칙한 움직임 패턴(예: 춤, 급격한 방향 전환이 있는 스포츠).
긴 시퀀스에서 개체 동일성 일관성이 원시 속도보다 더 중요할 때.
대안을 고려할 때:
혼합 신뢰도 검출이 있는 범용 추적에는 다음을 사용해 보세요 ByteTrack.
강력한 검출기를 사용해 최대한 단순하고 빠르게 하려면 다음을 사용해 보세요 SORT.
다음의 세 탐지 세트를 출력합니다:
tracked_detections: 할당된 트랙 ID가 있는 모든 확정된 추적 탐지.
new_instances: 트랙 ID가 처음 나타나는 탐지.
already_seen_instances: 이전 프레임에서 트랙 ID가 이미 확인된 탐지.
블록은 각 ...마다 별도의 트래커 상태와 인스턴스 캐시를 유지합니다 video_identifier, 단일 워크플로 내에서 여러 스트림 추적을 가능하게 합니다.
유형 식별자
단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/trackers_ocsort@v1 워크플로우에 이 블록을 단계로 추가하려면.
속성
이름
유형
설명
참조
name
str
이 단계에 대한 고유 식별자를 입력하세요..
❌
minimum_iou_threshold
float
기존 트랙과 탐지를 연결하는 데 필요한 최소 IoU입니다. 기본값: 0.3..
✅
minimum_consecutive_frames
정수
확정된 트랙으로 출력되기 전에 트랙이 일치해야 하는 연속 프레임 수(tracker_id != -1). 기본값: 3..
✅
lost_track_buffer
정수
일치하는 탐지를 잃은 후에도 트랙을 유지할 프레임 수입니다. 값이 높을수록 가림 복구가 향상됩니다. 기본값: 30..
✅
high_conf_det_threshold
float
연관에 사용되는 높은 신뢰도 탐지의 신뢰도 임계값입니다. 기본값: 0.6..
✅
direction_consistency_weight
float
OC-SORT 연결 비용에서 방향 일관성 항의 가중치입니다. 값이 높을수록 과거 운동 방향과 후보 검출 방향의 정렬을 더 우선시합니다. 기본값: 0.2..
✅
delta_t
정수
방향 일관성 모멘텀을 위해 OC-SORT가 각 트랙의 속도를 추정하는 데 사용하는 과거 프레임 수입니다. 기본값: 3..
✅
instances_cache_size
정수
new/already-seen 분류를 위해 인스턴스 캐시에 유지되는 최대 트랙 ID 수입니다. FIFO 방식으로 제거됩니다. 기본값: 16384..
❌
이 참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.
런타임 호환성
소프트 - 런타임 호스팅 서버리스, 전용 배포; 실행 원격; 입력 비디오 : 이 블록은 프로세스 메모리에서 비디오별 상태를 유지합니다(video_metadata.video_identifier로 키 지정). 상태 비저장 또는 다중 복제 HTTP 런타임에서 원격 단계 실행을 사용하면 연속 요청이 서로 다른 작업자 프로세스에서 처리될 수 있으므로, 상태가 호출 사이에 초기화되어 추적 / 카운팅 / 집계를 위한 출력은 의미가 없어집니다. 안정적인 프레임 간 결과를 위해 지속적인 WebRTC 세션에서 로컬 단계 실행을 사용하세요.
소프트 - 입력 이미지 : 이 블록은 비디오나 반복 프레임 워크플로의 시간적 문맥에 의존합니다. 정지 이미지/사진에는 추적, 비교, 집계 또는 시각화할 의미 있는 히스토리가 없으므로 이 블록은 거의 또는 전혀 이점을 제공하지 않습니다.
입력 및 출력 바인딩
사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 OC-SORT 추적기 버전 v1 을 가지고 있는지.
입력 및 출력 바인딩
입력
이미지(이미지): 비디오 메타데이터(fps 및 video_identifier)가 포함된 입력 이미지. 비디오별 트래커 상태를 초기화하고 조회하는 데 사용됩니다..detections(Union[rle_instance_segmentation_prediction,object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction]): 현재 프레임에서 추적할 탐지 예측값..minimum_iou_threshold(0에서 1 사이의 실수): 기존 트랙과 탐지를 연결하는 데 필요한 최소 IoU입니다. 기본값: 0.3..minimum_consecutive_frames(정수): 확정된 트랙으로 출력되기 전에 트랙이 일치해야 하는 연속 프레임 수(tracker_id != -1). 기본값: 3..lost_track_buffer(정수): 일치하는 탐지를 잃은 후에도 트랙을 유지할 프레임 수입니다. 값이 높을수록 가림 복구가 향상됩니다. 기본값: 30..high_conf_det_threshold(0에서 1 사이의 실수): 연관에 사용되는 높은 신뢰도 탐지의 신뢰도 임계값입니다. 기본값: 0.6..direction_consistency_weight(0에서 1 사이의 실수): OC-SORT 연결 비용에서 방향 일관성 항의 가중치입니다. 값이 높을수록 과거 운동 방향과 후보 검출 방향의 정렬을 더 우선시합니다. 기본값: 0.2..delta_t(정수): 방향 일관성 모멘텀을 위해 OC-SORT가 각 트랙의 속도를 추정하는 데 사용하는 과거 프레임 수입니다. 기본값: 3..
출력
tracked_detections(Union[object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction,rle_instance_segmentation_prediction]): sv.Detections(...) 객체 형태의 탐지된 바운딩 박스 예측, 다음 경우object_detection_prediction또는 sv.Detections(...) 객체 형태의 탐지된 바운딩 박스 및 세그멘테이션 마스크 예측, 다음 경우instance_segmentation_prediction또는 탐지된 바운딩 박스와 탐지된 키포인트가 포함된 sv.Detections(...) 객체 형태의 예측이며,keypoint_detection_prediction또는 탐지된 바운딩 박스와 RLE로 인코딩된 세그멘테이션 마스크를 포함한 sv.Detections(...) 객체 형태의 Prediction, 만약rle_instance_segmentation_prediction.new_instances(Union[object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction,rle_instance_segmentation_prediction]): sv.Detections(...) 객체 형태의 탐지된 바운딩 박스 예측, 다음 경우object_detection_prediction또는 sv.Detections(...) 객체 형태의 탐지된 바운딩 박스 및 세그멘테이션 마스크 예측, 다음 경우instance_segmentation_prediction또는 탐지된 바운딩 박스와 탐지된 키포인트가 포함된 sv.Detections(...) 객체 형태의 예측이며,keypoint_detection_prediction또는 탐지된 바운딩 박스와 RLE로 인코딩된 세그멘테이션 마스크를 포함한 sv.Detections(...) 객체 형태의 Prediction, 만약rle_instance_segmentation_prediction.already_seen_instances(Union[object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction,rle_instance_segmentation_prediction]): sv.Detections(...) 객체 형태의 탐지된 바운딩 박스 예측, 다음 경우object_detection_prediction또는 sv.Detections(...) 객체 형태의 탐지된 바운딩 박스 및 세그멘테이션 마스크 예측, 다음 경우instance_segmentation_prediction또는 탐지된 바운딩 박스와 탐지된 키포인트가 포함된 sv.Detections(...) 객체 형태의 예측이며,keypoint_detection_prediction또는 탐지된 바운딩 박스와 RLE로 인코딩된 세그멘테이션 마스크를 포함한 sv.Detections(...) 객체 형태의 Prediction, 만약rle_instance_segmentation_prediction.
마지막 업데이트
도움이 되었나요?