BoT-SORT 추적기
선택적 카메라 움직임 보정을 포함한 ByteTrack 스타일의 연관 방식(BoT-SORT)입니다.
다음을 사용하여 비디오 프레임 간 객체를 추적합니다 BoT-SORT roboflow/trackers 패키지의 알고리즘입니다.
BoT-SORT는 ByteTrack 스타일의 연관 파이프라인(고신뢰도 및 저신뢰도 검출, Kalman 트랙 상태)을 따르며 다음을 적용할 수 있습니다 카메라 모션 보상(CMC) 활성화되어 있으면 연관 전에 적용됩니다. CMC는 프레임 간 전역 아핀 모션을 추정하여 카메라가 움직일 때 예측 박스가 더 잘 정렬되도록 합니다.
BoT-SORT를 사용할 때:
다음과 같은 장면: 움직이거나 흔들리는 카메라 (다음을 활성화) 카메라 모션 보상).
밀집된 검출 노이즈에서 ByteTrack 스타일의 2단계 매칭이 도움이 됩니다.
옵션 모션 보상 단계가 있는 ByteTrack 유사 동작을 원할 때.
대안을 고려할 때:
고정 카메라이고 속도만 필요할 때: ByteTrack 또는 SORT 가 더 간단할 수 있습니다.
카메라 모션 없이 심한 가림과 불규칙한 객체 움직임이 있는 경우: OC-SORT.
희소 특징 CMC가 신뢰할 수 없는 저텍스처 배경.
카메라 모션 보상: 활성화되면 블록이 매 프레임 워크플로 이미지 픽셀을 추적기에 전달합니다. 이미지를 numpy 배열로 디코딩할 수 없으면, 해당 프레임에서는 CMC 없이 추적기가 실행됩니다(경고가 기록됨).
즉시 첫 프레임 활성화 기본값은 꺼짐이며, 다른 핵심 추적기 블록과 동작이 new_instances / already_seen_instances. 이를 활성화하면 프레임 1의 트랙에 즉시 안정적인 ID가 부여됩니다(원래 BoT-SORT 논문 방식).
세 가지 검출 세트를 출력합니다:
tracked_detections: 할당된 트랙 ID가 있는 모든 확정된 추적 검출입니다.
new_instances: 트랙 ID가 처음 나타나는 검출입니다.
already_seen_instances: 트랙 ID가 이전 프레임에서 이미 관측된 검출입니다.
블록은 각 video_identifier에 대해 별도의 추적기 상태와 인스턴스 캐시를 유지하여 단일 워크플로 내에서 다중 스트림 추적을 가능하게 합니다.
유형 식별자
step에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/trackers_botsort@v1 를 워크플로에 단계로 추가합니다.
속성
이름
유형
설명
참조
name
str
이 단계에 고유 식별자를 입력하세요..
❌
minimum_iou_threshold_first_assoc
실수
첫 번째(고신뢰도) 연관 단계에서의 최소 융합 유사도(IoU × confidence). 기본값: 0.2..
✅
minimum_iou_threshold_second_assoc
실수
두 번째(저신뢰도) 연관 단계에서의 최소 IoU. 기본값: 0.5..
✅
minimum_iou_threshold_unconfirmed_assoc
실수
확정되지 않은 트랙을 남은 고신뢰도 검출과 매칭하기 위한 최소 융합 유사도. 기본값: 0.3..
✅
minimum_consecutive_frames
int
트랙이 확정된 트랙(tracker_id != -1)으로 출력되기 전에 연속으로 매칭되어야 하는 프레임 수입니다. 기본값: 2..
✅
lost_track_buffer
int
매칭된 검출을 잃은 후 트랙을 유지할 프레임 수입니다. 값이 높을수록 가림 복구가 향상됩니다. 기본값: 30..
✅
track_activation_threshold
실수
새 트랙을 생성하는 데 필요한 최소 검출 신뢰도입니다. 이 임계값 미만의 검출은 새 트랙 생성에 사용되지 않습니다. 기본값: 0.7..
✅
high_conf_det_threshold
실수
연관에 사용되는 고신뢰도 검출의 신뢰도 임계값입니다. 기본값: 0.6..
✅
enable_cmc
bool
카메라 모션 보상을 활성화합니다(프레임별 이미지 픽셀 사용). 움직이는 카메라에 권장됩니다..
✅
cmc_method
str
카메라 모션 추정기입니다. 다음 중 하나: orb, sift, sparseOptFlow, ecc. 기본값: {DEFAULT_CMC_METHOD!r}..
❌
cmc_downscale
int
속도와 견고성을 위해 CMC 내부에 적용되는 다운스케일 계수입니다. 기본값: 2..
✅
instant_first_frame_activation
bool
true이면 첫 번째 프레임의 트랙에 즉시 ID가 부여됩니다(논문 방식). 기본값 false이며, 이는 new/already-seen 출력이 다른 핵심 추적기와 일치하도록 합니다..
✅
instances_cache_size
int
new/already-seen 분류를 위해 인스턴스 캐시에 보관되는 최대 트랙 ID 수입니다. FIFO 방식으로 제거됩니다. 기본값: 16384..
❌
해당 참조 열은 워크플로 런타임에서 사용할 수 있는 동적 값으로 속성을 매개변수화할 수 있음을 나타냅니다. 자세한 내용은 워크플로 런타임. 자세한 내용은 바인딩 를 참조하세요.
입력 및 출력 바인딩
사용 가능한 연결은 바인딩 종류에 따라 달라집니다. 어떤 바인딩 종류가 있는지 확인하세요 BoT-SORT 트래커 버전 v1 가 있습니다.
입력 및 출력 바인딩
입력
image(image): 비디오 메타데이터(fps 및 video_identifier)가 포함된 입력 이미지입니다. 비디오별 추적기 상태를 초기화하고 가져오는 데 사용됩니다. 카메라 모션 보상이 활성화된 경우 프레임 픽셀은 이 이미지에서 읽습니다..감지 결과(Union[instance_segmentation_prediction,keypoint_detection_prediction,object_detection_prediction,rle_instance_segmentation_prediction]): 현재 프레임에서 추적할 검출 예측입니다..minimum_iou_threshold_first_assoc(float_zero_to_one): 첫 번째(고신뢰도) 연관 단계에서의 최소 융합 유사도(IoU × confidence). 기본값: 0.2..minimum_iou_threshold_second_assoc(float_zero_to_one): 두 번째(저신뢰도) 연관 단계에서의 최소 IoU. 기본값: 0.5..minimum_iou_threshold_unconfirmed_assoc(float_zero_to_one): 확정되지 않은 트랙을 남은 고신뢰도 검출과 매칭하기 위한 최소 융합 유사도. 기본값: 0.3..minimum_consecutive_frames(정수): 트랙이 확정된 트랙(tracker_id != -1)으로 출력되기 전에 연속으로 매칭되어야 하는 프레임 수입니다. 기본값: 2..lost_track_buffer(정수): 매칭된 검출을 잃은 후 트랙을 유지할 프레임 수입니다. 값이 높을수록 가림 복구가 향상됩니다. 기본값: 30..track_activation_threshold(float_zero_to_one): 새 트랙을 생성하는 데 필요한 최소 검출 신뢰도입니다. 이 임계값 미만의 검출은 새 트랙 생성에 사용되지 않습니다. 기본값: 0.7..high_conf_det_threshold(float_zero_to_one): 연관에 사용되는 고신뢰도 검출의 신뢰도 임계값입니다. 기본값: 0.6..enable_cmc(boolean): 카메라 모션 보상을 활성화합니다(프레임별 이미지 픽셀 사용). 움직이는 카메라에 권장됩니다..cmc_downscale(정수): 속도와 견고성을 위해 CMC 내부에 적용되는 다운스케일 계수입니다. 기본값: 2..instant_first_frame_activation(boolean): true이면 첫 번째 프레임의 트랙에 즉시 ID가 부여됩니다(논문 방식). 기본값 false이며, 이는 new/already-seen 출력이 다른 핵심 추적기와 일치하도록 합니다..
출력
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(...) 객체 형식으로 제공됩니다.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(...) 객체 형식으로 제공됩니다.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(...) 객체 형식으로 제공됩니다.rle_instance_segmentation_prediction.
마지막 업데이트
도움이 되었나요?