감지 스티치
여러 입력 이미지 조각에 대해 수행된 감지를 단일 감지로 병합합니다.
여러 이미지 슬라이스 또는 크롭에서 얻은 탐지를 좌표를 슬라이스/크롭 공간에서 원본 이미지 좌표로 변환하고, 모든 탐지를 결합한 뒤, 필요에 따라 겹치는 탐지를 필터링하여 SAHI 워크플로, 다단계 탐지 파이프라인, 그리고 하위 이미지에서 얻은 탐지를 마치 원본 이미지에서 탐지된 것처럼 재구성해야 하는 좌표 공간 병합 워크플로를 지원하기 위해 단일 통합 탐지 결과로 병합합니다.
이 블록의 작동 방식
이 블록은 동일한 입력 이미지의 여러 하위 부분(슬라이스 또는 크롭)에서 수행된 탐지를 원본 이미지 좌표 공간에서 단일 탐지 결과로 재구성하여 병합합니다. 이 블록은:
참조 이미지와 슬라이스/크롭 예측을 받습니다:
슬라이스되거나 크롭된 원본 참조 이미지를 가져옵니다
각 슬라이스/크롭을 처리한 탐지 모델의 예측을 받습니다
예측에는 슬라이스/크롭 위치를 나타내는 상위 좌표 메타데이터가 포함되어야 합니다
각 탐지에 대한 크롭 오프셋을 가져옵니다:
각 탐지의 메타데이터에서 상위 좌표를 추출합니다
각 슬라이스/크롭이 원본 이미지의 어디에 있었는지를 나타내는 오프셋(x, y 위치)을 가져옵니다
이 오프셋을 사용하여 좌표를 슬라이스 공간에서 원본 이미지 공간으로 변환합니다
크롭 메타데이터를 관리합니다:
탐지 메타데이터의 이미지 크기를 참조 이미지 크기에 맞게 업데이트합니다
탐지가 스케일되지 않았는지 검증합니다(스케일된 탐지는 지원되지 않음)
적절한 좌표 변환을 위해 탐지에 상위 좌표 정보를 연결합니다
좌표를 원본 이미지 공간으로 변환합니다:
경계 상자 좌표(xyxy)를 슬라이스/크롭 좌표에서 원본 이미지 좌표로 이동합니다
분할 마스크가 있는 경우 슬라이스/크롭 공간에서 원본 이미지 공간으로 변환합니다
오프셋을 적용하여 탐지를 원본 이미지에서의 위치에 정렬합니다
모든 변환된 탐지를 병합합니다:
모든 슬라이스/크롭에서 재정렬된 모든 탐지를 하나의 탐지 결과로 결합합니다
모든 하위 이미지의 모든 탐지를 포함하는 통합 탐지 출력을 생성합니다
겹침 필터링을 적용합니다(선택 사항):
없음 전략: 필터링 없이 병합된 모든 탐지를 반환합니다(겹치는 슬라이스의 중복이 포함될 수 있음)
NMS (비최대 억제): IoU가 임계값을 초과하면 신뢰도가 더 낮은 탐지를 제거하고, 각 겹치는 영역에서 가장 높은 신뢰도의 탐지만 유지합니다
NMM (비최대 병합): 탐지를 버리는 대신 겹치는 탐지를 결합하며, IoU 임계값을 초과하는 탐지를 병합합니다
병합된 탐지를 반환합니다:
원본 이미지 좌표 공간에서 통합 탐지 결과를 출력합니다
차원을 1만큼 줄입니다(여러 슬라이스 탐지 → 단일 이미지 탐지)
이제 모든 탐지가 원본 이미지의 크기와 좌표를 기준으로 참조됩니다
이 블록은 이미지를 슬라이스한 뒤 각 슬라이스를 별도로 처리하고 결과를 다시 병합해야 하는 SAHI(Slicing Adaptive Inference) 워크플로에 필수적입니다. 겹치는 슬라이스는 동일한 객체에 대해 중복 탐지를 생성할 수 있으므로, 겹침 필터링(NMS/NMM)이 이러한 중복을 정리하는 데 도움이 됩니다. 좌표 변환은 탐지 좌표가 슬라이스가 아니라 원본 이미지 기준으로 올바르게 배치되도록 보장합니다.
일반적인 사용 사례
SAHI 워크플로: 이미지 슬라이스에서 얻은 탐지를 원본 이미지 좌표로 다시 병합하여 SAHI 기법을 완성합니다(예: SAHI 처리에서 슬라이스 탐지를 병합, 전체 이미지 탐지를 슬라이스에서 재구성, 작은 객체 탐지 결과 결합)하여 SAHI 탐지 워크플로를 지원합니다
다단계 탐지: 동적으로 크롭된 영역에 적용된 보조 고해상도 모델에서 탐지를 병합합니다(예: 대략적 탐지 → 크롭 → 정밀 탐지 → 병합, 2단계 탐지 파이프라인, 계층적 탐지 워크플로)하여 다단계 탐지 워크플로를 지원합니다
작은 객체 탐지: 작은 객체 탐지를 위해 별도로 처리된 슬라이스 이미지의 탐지 결과를 결합합니다(예: 항공 이미지 슬라이스에서 탐지 병합, 슬라이스 탐지 결과 결합, 타일형 이미지에서 탐지 재구성)하여 작은 객체 탐지 워크플로를 지원합니다
고해상도 처리: 더 작은 청크로 처리된 고해상도 이미지의 탐지를 병합합니다(예: 위성 이미지 타일의 탐지 병합, 의료 이미지 영역의 결과 결합, 큰 이미지 세그먼트에서 탐지 재구성)하여 고해상도 탐지 워크플로를 지원합니다
좌표 공간 통합: 일관된 처리를 위해 여러 좌표 공간(슬라이스/크롭 공간)의 탐지를 단일 통합 좌표 공간(원본 이미지 공간)으로 변환합니다(예: 탐지 좌표 통합, 좌표 공간 병합, 탐지 위치 표준화)하여 좌표 통합 워크플로를 지원합니다
겹치는 영역 처리: 겹치는 슬라이스나 크롭에서 발생한 중복 탐지를 겹침 필터링으로 처리합니다(예: 겹치는 슬라이스에서 중복 탐지 제거, 겹치는 탐지 병합, 겹치는 결과 정리)하여 겹침 해결 워크플로를 지원합니다
다른 블록과 연결하기
이 블록은 슬라이스/크롭 예측과 참조 이미지를 받아 병합된 탐지를 생성합니다:
SAHI 워크플로 이후 탐지 모델에서 다음 패턴을 따라 Image Slicer → Detection Model → Detections Stitch로 슬라이스 탐지를 병합합니다(예: SAHI 슬라이스 탐지 병합, 전체 이미지 탐지 재구성, 슬라이스 결과 결합)하여 SAHI 완료 워크플로를 지원합니다
보조 탐지 모델 이후 다단계 파이프라인에서 Dynamic Crop → Detection Model → Detections Stitch 패턴을 따라 크롭된 탐지를 병합합니다(예: 크롭 영역 탐지 병합, 2단계 탐지 결과 결합, 다단계 출력 통합)하여 다단계 탐지 워크플로를 지원합니다
시각화 블록 앞에 병합된 탐지 결과를 원본 이미지에 시각화하기 위해(예: 병합된 탐지 시각화, 스티치된 결과 표시, 통합 탐지 출력 표시) 시각화 워크플로를 지원합니다
필터링 또는 분석 블록 전에 병합된 탐지 결과를 처리하기 위해(예: 병합된 탐지 필터링, 스티치된 결과 분석, 통합 출력 처리) 분석 워크플로를 지원합니다
저장소 또는 보관 블록 전에 병합된 탐지 결과를 저장하거나 내보내기 위해(예: 병합된 탐지 저장, 스티치된 결과 내보내기, 통합 출력 저장) 저장 워크플로를 지원합니다
워크플로 출력에서 최종 워크플로 출력으로 병합된 탐지를 제공하기 위해(예: 병합된 탐지 반환, 스티치된 결과 출력, 통합 탐지 출력 제공) 출력 워크플로를 지원합니다
요구 사항
이 블록은 참조 이미지(슬라이스/크롭된 원본 이미지)와 슬라이스/크롭을 처리한 탐지 모델의 예측을 필요로 합니다. 예측에는 원본 이미지에서 각 슬라이스/크롭의 위치를 나타내는 상위 좌표 메타데이터(PARENT_COORDINATES_KEY)가 포함되어야 합니다. 이 블록은 스케일된 탐지(상위 이미지에 비해 크기가 조정된 탐지)는 지원하지 않습니다. 예측은 객체 탐지 또는 인스턴스 분할 모델에서 나온 것이어야 합니다. 이 블록은 세 가지 겹침 필터링 전략을 지원합니다: "none"(필터링 없음, 중복이 포함될 수 있음), "nms"(비최대 억제, 신뢰도가 더 낮은 겹치는 탐지를 제거, 기본값), "nmm"(비최대 병합, 겹치는 탐지를 결합). IoU 임계값(기본값 0.3)은 탐지를 필터링 목적으로 겹치는 것으로 간주하는 시점을 결정합니다. SAHI 기법에 대한 자세한 내용은 다음을 참조하세요: https://ieeexplore.ieee.org/document/9897990.
유형 식별자
step에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/detections_stitch@v1 를 워크플로에 단계로 추가합니다.
속성
이름
유형
설명
참조
name
str
이 단계에 고유 식별자를 입력하세요..
❌
겹침 필터링 전략
str
겹치는 슬라이스/크롭의 결과를 병합할 때 겹치는 탐지를 처리하는 전략입니다. 'none': 필터링을 적용하지 않으며, 모든 탐지가 유지됩니다(겹치는 영역의 중복이 포함될 수 있음). 'nms'(비최대 억제, 기본값): IoU가 임계값을 초과하면 신뢰도가 더 낮은 탐지를 제거하고, 각 겹치는 영역에서 가장 높은 신뢰도의 탐지만 유지합니다. 'nmm'(비최대 병합): 탐지를 버리는 대신 겹치는 탐지를 결합하며, IoU 임계값을 초과하는 탐지를 병합합니다. 모든 탐지를 보존하려면 'none'을, 중복을 제거하려면 'nms'를(대부분의 경우 권장), 겹치는 탐지를 결합하려면 'nmm'을 사용하세요..
✅
iou_threshold
실수
겹침 필터링을 위한 Intersection over Union(IoU) 임계값입니다. 범위: 0.0~1.0. 겹침 필터링 전략이 'nms' 또는 'nmm'인 경우, IoU가 이 임계값을 초과하는 탐지는 겹치는 것으로 간주됩니다. NMS의 경우: 임계값을 초과하는 IoU를 가진 겹치는 탐지는 신뢰도가 더 낮은 탐지가 제거됩니다. NMM의 경우: 임계값을 초과하는 IoU를 가진 겹치는 탐지는 병합됩니다. 더 낮은 값(예: 0.2~0.3)은 더 공격적으로 더 많은 탐지를 제거/병합합니다. 더 높은 값(예: 0.5~0.7)은 더 관대하며, 겹침이 큰 탐지만 처리합니다. 기본값 0.3은 겹치는 슬라이스가 있는 대부분의 사용 사례에 잘 맞습니다..
✅
해당 참조 열은 워크플로 런타임에서 사용할 수 있는 동적 값으로 속성을 매개변수화할 수 있음을 나타냅니다. 자세한 내용은 워크플로 런타임. 자세한 내용은 바인딩 를 참조하세요.
입력 및 출력 바인딩
사용 가능한 연결은 바인딩 종류에 따라 달라집니다. 어떤 바인딩 종류가 있는지 확인하세요 감지 연결 버전 v1 가 있습니다.
입력 및 출력 바인딩
입력
reference_image(image): 입력 예측을 생성하기 위해 슬라이스되거나 크롭된 원본 참조 이미지입니다. 이 이미지는 병합된 탐지의 대상 좌표 공간과 이미지 크기를 결정하는 데 사용됩니다. 모든 탐지 좌표는 이 참조 이미지의 좌표계에 맞게 변환됩니다. 올바른 좌표 정렬을 보장하려면 Image Slicer 또는 Dynamic Crop 블록에 제공된 것과 동일한 이미지를 여기에서 사용해야 합니다..predictions(Union[instance_segmentation_prediction,object_detection_prediction]): 이미지 슬라이스 또는 크롭을 처리한 탐지 모델의 모델 예측(객체 탐지 또는 인스턴스 분할)입니다. 이러한 예측에는 원본 이미지에서 각 슬라이스/크롭의 위치를 나타내는 상위 좌표 메타데이터가 포함되어야 합니다. 예측은 여러 슬라이스/크롭에서 수집되어 단일 통합 탐지 결과로 병합됩니다. 이 블록은 좌표를 슬라이스/크롭 공간에서 원본 이미지 공간으로 변환하고 모든 탐지를 결합합니다..겹침 필터링 전략(문자열): 겹치는 슬라이스/크롭의 결과를 병합할 때 겹치는 탐지를 처리하는 전략입니다. 'none': 필터링을 적용하지 않으며, 모든 탐지가 유지됩니다(겹치는 영역의 중복이 포함될 수 있음). 'nms'(비최대 억제, 기본값): IoU가 임계값을 초과하면 신뢰도가 더 낮은 탐지를 제거하고, 각 겹치는 영역에서 가장 높은 신뢰도의 탐지만 유지합니다. 'nmm'(비최대 병합): 탐지를 버리는 대신 겹치는 탐지를 결합하며, IoU 임계값을 초과하는 탐지를 병합합니다. 모든 탐지를 보존하려면 'none'을, 중복을 제거하려면 'nms'를(대부분의 경우 권장), 겹치는 탐지를 결합하려면 'nmm'을 사용하세요..iou_threshold(float_zero_to_one): 겹침 필터링을 위한 Intersection over Union(IoU) 임계값입니다. 범위: 0.0~1.0. 겹침 필터링 전략이 'nms' 또는 'nmm'인 경우, IoU가 이 임계값을 초과하는 탐지는 겹치는 것으로 간주됩니다. NMS의 경우: 임계값을 초과하는 IoU를 가진 겹치는 탐지는 신뢰도가 더 낮은 탐지가 제거됩니다. NMM의 경우: 임계값을 초과하는 IoU를 가진 겹치는 탐지는 병합됩니다. 더 낮은 값(예: 0.2~0.3)은 더 공격적으로 더 많은 탐지를 제거/병합합니다. 더 높은 값(예: 0.5~0.7)은 더 관대하며, 겹침이 큰 탐지만 처리합니다. 기본값 0.3은 겹치는 슬라이스가 있는 대부분의 사용 사례에 잘 맞습니다..
출력
predictions(Union[object_detection_prediction,instance_segmentation_prediction]): 탐지된 경계 상자를 sv.Detections(...) 객체 형태로 반환하는 예측, 만약object_detection_prediction또는 탐지된 경계 상자와 세분화 마스크를 sv.Detections(...) 객체 형태로 반환하는 예측, 만약instance_segmentation_prediction.
마지막 업데이트
도움이 되었나요?