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

SIFT 비교

여러 이미지의 SIFT 디스크립터를 비교합니다.

v2

구성 가능한 매처 알고리즘(FLANN 또는 완전 탐색)을 사용하여 두 이미지 또는 해당 SIFT 디스크립터를 비교하고, 이미지가 제공되면 SIFT 특성을 자동으로 계산하며, Lowe의 비율 테스트 필터링을 적용하고, 필요 시 키포인트와 매치의 시각화를 생성하여 이미지 매칭, 유사도 감지, 중복 감지, 특성 기반 이미지 비교 워크플로를 지원합니다.

이 블록의 작동 방식

이 블록은 두 이미지 또는 해당 SIFT 디스크립터를 비교하여 대응하는 특성을 찾고 좋은 매치 수를 세어 일치 여부를 판단합니다. 이 블록은:

  1. 이미지 또는 사전 계산된 SIFT 디스크립터일 수 있는 두 입력(input_1 및 input_2)을 받습니다

  2. 각 입력을 유형에 따라 처리합니다:

    • 입력이 이미지인 경우: OpenCV의 SIFT 검출기를 사용하여 SIFT 키포인트와 디스크립터를 자동으로 계산합니다

      • 이미지를 그레이스케일로 변환합니다

      • 키포인트를 검출하고 128차원 SIFT 디스크립터를 계산합니다

      • visualize=True인 경우 선택적으로 키포인트 시각화를 생성합니다

      • 출력용으로 키포인트를 딕셔너리 형식으로 변환합니다

    • 입력이 디스크립터인 경우: 제공된 디스크립터를 직접 사용합니다(SIFT 계산 생략)

  3. 두 디스크립터 배열 모두 최소 2개의 디스크립터를 포함하는지 검증합니다(비율 테스트 필터링에 필요)

  4. matcher 매개변수에 따라 매처 알고리즘을 선택합니다:

    • FlannBasedMatcher (기본값): 효율적인 근사 최근접 이웃 검색을 위해 FLANN을 사용하며, 대규모 디스크립터 집합에서 더 빠릅니다

    • BFMatcher: L2 노름을 사용한 완전 탐색 매칭을 수행하며, 정확한 매칭이지만 대규모 디스크립터 집합에서는 더 느립니다

  5. k-최근접 이웃 매칭(k=2)을 수행하여 input_1의 각 디스크립터에 대해 가장 가까운 2개의 디스크립터 매치를 찾습니다:

    • descriptors_1의 각 디스크립터에 대해 descriptors_2에서 가장 유사한 2개의 디스크립터를 찾습니다

    • 디스크립터 공간에서 유클리드 거리(L2 노름)를 사용하여 유사성을 측정합니다

    • 디스크립터가 얼마나 유사한지를 나타내는 거리 값을 가진 매치를 반환합니다

  6. Lowe의 비율 테스트를 사용하여 좋은 매치를 필터링합니다:

    • 각 매치에 대해 최적 매치의 거리(m.distance)와 두 번째로 좋은 매치의 거리(n.distance)를 비교합니다

    • m.distance < ratio_threshold * n.distance를 만족하는 매치만 유지합니다

    • 이 비율 테스트는 여러 디스크립터가 비슷하게 가까운 모호한 매치를 걸러냅니다

    • 낮은 ratio_threshold 값(예: 0.6)은 더 구별되는 매치를 요구합니다(더 엄격한 필터링)

    • 높은 ratio_threshold 값(예: 0.8)은 더 많은 매치를 허용합니다(더 느슨한 필터링)

  7. 비율 테스트 필터링 후 좋은 매치 수를 계산합니다

  8. good_matches_count를 good_matches_threshold와 비교하여 이미지가 일치하는지 판단합니다:

    • good_matches_count >= good_matches_threshold이면 images_match = True

    • good_matches_count < good_matches_threshold이면 images_match = False

  9. visualize=True이고 이미지가 제공된 경우 선택적으로 시각화를 생성합니다:

    • 각 이미지에 대한 키포인트 시각화를 생성합니다(키포인트가 그려진 이미지)

    • 두 이미지 사이의 대응 키포인트를 선으로 연결하여 보여주는 매치 시각화를 생성합니다

  10. 매치 결과, 키포인트, 디스크립터 및 선택적 시각화를 반환합니다

이 블록은 이미지(자동 SIFT 계산) 또는 사전 계산된 디스크립터를 모두 받아들이는 유연성을 제공합니다. 이미지가 제공되면 블록이 모든 SIFT 처리를 내부적으로 수행하므로 별도의 SIFT 특성 검출 단계 없이 더 쉽게 사용할 수 있습니다. 선택적 시각화 기능은 키포인트와 매치를 시각적으로 보여 주어 매칭 결과를 디버그하고 이해하는 데 도움이 됩니다. SIFT 디스크립터는 크기와 회전에 불변이므로, 서로 다른 크기, 회전 또는 시점의 이미지를 매칭하는 데 효과적입니다.

일반적인 사용 사례

  • 이미지 유사도 감지: 두 이미지가 서로 유사하거나 일치하는지 판단합니다(예: 컬렉션에서 유사한 이미지 탐지, 데이터베이스에서 일치하는 이미지 찾기, 중복 이미지 식별), 이미지 유사도 워크플로를 지원합니다

  • 중복 이미지 감지: 이미지 컬렉션에서 중복 또는 거의 중복된 이미지를 식별합니다(예: 사진 라이브러리에서 중복 이미지 찾기, 데이터셋에서 반복 이미지 탐지, 서로 다른 크기나 방향의 동일 이미지 식별), 중복 감지 워크플로를 지원합니다

  • 특성 기반 이미지 매칭: 시각적 특성과 키포인트를 기반으로 이미지를 매칭합니다(예: 유사한 콘텐츠를 가진 이미지 매칭, 서로 다른 시점의 대응 이미지 찾기, 이미지 시퀀스에서 일치하는 이미지 식별), 특성 기반 매칭 워크플로를 지원합니다

  • 이미지 검증: 이미지가 예상 패턴이나 참조와 일치하는지 검증합니다(예: 이미지 진위 확인, 참조 이미지와의 일치 여부 검사, 템플릿과 비교하여 이미지 내용 검증), 이미지 검증 워크플로를 지원합니다

  • 이미지 비교 및 분석: 이미지를 비교하여 유사점과 차이점을 분석합니다(예: 품질 관리를 위한 이미지 비교, 이미지 변형 분석, 이미지 유사도 점수 측정), 이미지 비교 분석 워크플로를 지원합니다

  • 콘텐츠 기반 이미지 검색: 특성 매칭을 사용하여 콘텐츠 기반 이미지 검색 및 조회를 수행합니다(예: 데이터베이스에서 유사한 이미지 찾기, 시각적 유사성으로 이미지 검색, 콘텐츠 매칭으로 이미지 검색), 콘텐츠 기반 조회 워크플로를 지원합니다

다른 블록과 연결하기

이 블록은 이미지 또는 SIFT 디스크립터를 입력받아 선택적 시각화와 함께 매치 결과를 생성합니다:

  • 이미지 입력 블록 뒤에서 이미지를 직접 비교하기 위해(예: 입력 이미지 비교, 카메라 피드의 이미지 매칭, 이미지 유사성 분석), 직접 이미지 비교 워크플로를 지원합니다

  • SIFT 특성 검출 블록 뒤에 사전 계산된 SIFT 디스크립터를 비교하기 위해(예: 서로 다른 이미지의 디스크립터 비교, 기존 SIFT 특성을 사용한 이미지 매칭, 사전 계산된 디스크립터로 이미지 유사성 분석), 디스크립터 기반 비교 워크플로를 지원합니다

  • 필터링 또는 로직 블록 앞에 매치 결과를 의사결정에 사용하는 경우(예: 이미지 매치를 기준으로 필터링, 유사도에 따라 결정, 매치 결과를 기반으로 로직 적용), 매치 기반 조건부 워크플로를 지원합니다

  • 데이터 저장 블록 앞에 매치 결과와 시각화를 저장하기 위해(예: 이미지 매치 결과 저장, 유사도 점수 저장, 시각화가 포함된 비교 데이터 기록), 매치 결과 저장 워크플로를 지원합니다

  • 시각화 블록 앞에 시각화를 추가로 처리하거나 표시하기 위해(예: 매치 시각화 표시, 키포인트 이미지 표시, 비교 결과 렌더링), 시각화 워크플로 출력을 지원합니다

  • 이미지 비교 파이프라인에서 여러 이미지를 비교해야 하는 경우(예: 시퀀스의 이미지 비교, 워크플로에서 이미지 유사성 분석, 파이프라인에서 이미지 비교 처리), 이미지 비교 파이프라인 워크플로를 지원합니다

버전 차이

이 버전(v2)은 v1에 비해 여러 가지 향상점을 포함합니다:

  • 유연한 입력 유형: 이미지와 사전 계산된 SIFT 디스크립터를 모두 입력으로 받습니다(v1은 디스크립터만 허용). 별도의 SIFT 특성 검출 단계 없이 직접 이미지 비교가 가능합니다

  • 자동 SIFT 계산: 이미지가 제공되면 SIFT 키포인트와 디스크립터를 자동으로 계산하여, 간단한 워크플로에서 별도의 SIFT 특성 검출 블록이 필요하지 않게 합니다

  • 매처 선택: FlannBasedMatcher(기본값, 더 빠름)와 BFMatcher(정확, 더 느림) 중에서 선택할 수 있도록 구성 가능한 matcher 매개변수를 추가하여, 다양한 성능 요구에 유연하게 대응합니다

  • 시각화 지원: 이미지가 제공되면 키포인트 시각화와 매치 시각화를 생성하는 선택적 시각화 기능을 추가하여, 매칭 결과를 디버그하고 이해하는 데 도움을 줍니다

  • 향상된 출력: 두 이미지의 키포인트와 디스크립터를 반환하며, 선택적 시각화(키포인트 이미지 및 매치 시각화)도 함께 제공하여 후속 처리에 더 포괄적인 출력 데이터를 제공합니다

유형 식별자

step에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/sift_comparison@v2 를 워크플로에 단계로 추가합니다.

속성

이름

유형

설명

참조

name

str

이 단계에 고유 식별자를 입력하세요..

good_matches_threshold

int

이미지가 일치하는 것으로 간주하기 위해 필요한 최소 좋은 매치 수입니다. 양의 정수여야 합니다. 좋은 매치 수(비율 테스트 필터링 후)가 이 임계값 이상이면 images_match는 True가 됩니다. 낮은 값(예: 20~30)은 더 관대하며 더 적은 특성 대응만으로도 이미지를 일치시킵니다. 높은 값(예: 80~100)은 더 엄격하며 더 많은 특성 매치를 요구합니다. 기본값은 50이며, 균형이 좋습니다. 이미지 내용, 예상 유사도 수준, 오탐/미탐 허용 범위에 따라 조정하세요. 특성이 적은 이미지는 더 낮은 임계값을, 질감이 풍부하고 특성이 많은 이미지는 더 높은 임계값을 사용하세요..

ratio_threshold

실수

모호한 매치를 필터링하는 데 사용하는 Lowe의 비율 테스트용 비율 임계값입니다. 비율 테스트는 최적 매치까지의 거리와 두 번째로 좋은 매치까지의 거리를 비교합니다. best_match_distance < ratio_threshold * second_best_match_distance인 경우에만 매치가 유지됩니다. 낮은 값(예: 0.6)은 더 구별되는 매치를 요구하며 더 엄격합니다(더 많은 매치를 걸러내고 높은 신뢰도의 매치만 남김). 높은 값(예: 0.8)은 더 관대하여 일부 모호한 매치도 포함해 더 많은 매치를 허용합니다. 기본값은 0.7이며, 매치 품질과 수량 사이의 균형이 좋습니다. 일반적인 범위는 0.6~0.8입니다. 높은 신뢰도의 매치만 필요하면 더 낮은 값을, 더 많은 매치가 필요하거나 특성이 희소한 이미지를 다룰 때는 더 높은 값을 사용하세요..

matcher

str

SIFT 디스크립터 비교에 사용할 매처 알고리즘입니다: 'FlannBasedMatcher'(기본값)는 효율적인 근사 최근접 이웃 검색을 위해 FLANN을 사용합니다 - 대규모 디스크립터 집합에서 더 빠르며 대부분의 사용 사례에 적합합니다. 'BFMatcher'는 L2 노름을 사용한 완전 탐색 매칭을 사용합니다 - 정확한 매칭이지만 대규모 디스크립터 집합에서는 더 느리며, 정확한 결과가 필요하거나 작은 디스크립터 집합을 사용할 때 유용합니다. 최적의 성능을 위해 기본값은 'FlannBasedMatcher'입니다. 정확한 매칭이 필요하거나 완전 탐색이 유리한 성능 제약이 있을 때만 BFMatcher를 선택하세요..

visualize

bool

키포인트와 매치의 시각화를 생성할지 여부입니다. True이고 이미지가 입력으로 제공되면, 블록은 다음을 생성합니다: (1) 각 이미지에 키포인트가 그려진 visualization_1 및 visualization_2, (2) 두 이미지 사이의 대응 키포인트를 선으로 연결한 visualization_matches. 시각화는 이미지(디스크립터가 아님)가 제공될 때만 생성됩니다. 기본값은 False입니다. 매칭 결과를 디버그하거나, 이미지가 왜 일치하거나 일치하지 않는지 이해하거나, 표시 또는 분석용 시각적 출력이 필요할 때 True로 설정하세요..

해당 참조 열은 워크플로 런타임에서 사용할 수 있는 동적 값으로 속성을 매개변수화할 수 있음을 나타냅니다. 자세한 내용은 워크플로 런타임. 자세한 내용은 바인딩 를 참조하세요.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 종류에 따라 달라집니다. 어떤 바인딩 종류가 있는지 확인하세요 SIFT 비교 버전 v2 가 있습니다.

입력 및 출력 바인딩
  • 입력

    • input_1 (Union[image, numpy_array]): 비교를 위한 첫 번째 입력 - 이미지 또는 사전 계산된 SIFT 디스크립터(numpy 배열)일 수 있습니다. 이미지가 제공되면 SIFT 키포인트와 디스크립터가 자동으로 계산됩니다. 디스크립터가 제공되면 직접 사용됩니다. 입력 또는 워크플로 단계의 이미지, 또는 SIFT 특성 검출 블록의 디스크립터를 지원합니다. 이미지는 표준 이미지 형식이어야 하며, 디스크립터는 128차원 SIFT 디스크립터의 numpy 배열이어야 합니다..

    • input_2 (Union[image, numpy_array]): 비교를 위한 두 번째 입력 - 이미지 또는 사전 계산된 SIFT 디스크립터(numpy 배열)일 수 있습니다. 이미지가 제공되면 SIFT 키포인트와 디스크립터가 자동으로 계산됩니다. 디스크립터가 제공되면 직접 사용됩니다. 입력 또는 워크플로 단계의 이미지, 또는 SIFT 특성 검출 블록의 디스크립터를 지원합니다. 이미지는 표준 이미지 형식이어야 하며, 디스크립터는 128차원 SIFT 디스크립터의 numpy 배열이어야 합니다. 이 입력은 이미지 유사도를 판단하기 위해 input_1과 매칭됩니다..

    • good_matches_threshold (정수): 이미지가 일치하는 것으로 간주하기 위해 필요한 최소 좋은 매치 수입니다. 양의 정수여야 합니다. 좋은 매치 수(비율 테스트 필터링 후)가 이 임계값 이상이면 images_match는 True가 됩니다. 낮은 값(예: 20~30)은 더 관대하며 더 적은 특성 대응만으로도 이미지를 일치시킵니다. 높은 값(예: 80~100)은 더 엄격하며 더 많은 특성 매치를 요구합니다. 기본값은 50이며, 균형이 좋습니다. 이미지 내용, 예상 유사도 수준, 오탐/미탐 허용 범위에 따라 조정하세요. 특성이 적은 이미지는 더 낮은 임계값을, 질감이 풍부하고 특성이 많은 이미지는 더 높은 임계값을 사용하세요..

    • ratio_threshold (float_zero_to_one): 모호한 매치를 필터링하는 데 사용하는 Lowe의 비율 테스트용 비율 임계값입니다. 비율 테스트는 최적 매치까지의 거리와 두 번째로 좋은 매치까지의 거리를 비교합니다. best_match_distance < ratio_threshold * second_best_match_distance인 경우에만 매치가 유지됩니다. 낮은 값(예: 0.6)은 더 구별되는 매치를 요구하며 더 엄격합니다(더 많은 매치를 걸러내고 높은 신뢰도의 매치만 남김). 높은 값(예: 0.8)은 더 관대하여 일부 모호한 매치도 포함해 더 많은 매치를 허용합니다. 기본값은 0.7이며, 매치 품질과 수량 사이의 균형이 좋습니다. 일반적인 범위는 0.6~0.8입니다. 높은 신뢰도의 매치만 필요하면 더 낮은 값을, 더 많은 매치가 필요하거나 특성이 희소한 이미지를 다룰 때는 더 높은 값을 사용하세요..

    • matcher (문자열): SIFT 디스크립터 비교에 사용할 매처 알고리즘입니다: 'FlannBasedMatcher'(기본값)는 효율적인 근사 최근접 이웃 검색을 위해 FLANN을 사용합니다 - 대규모 디스크립터 집합에서 더 빠르며 대부분의 사용 사례에 적합합니다. 'BFMatcher'는 L2 노름을 사용한 완전 탐색 매칭을 사용합니다 - 정확한 매칭이지만 대규모 디스크립터 집합에서는 더 느리며, 정확한 결과가 필요하거나 작은 디스크립터 집합을 사용할 때 유용합니다. 최적의 성능을 위해 기본값은 'FlannBasedMatcher'입니다. 정확한 매칭이 필요하거나 완전 탐색이 유리한 성능 제약이 있을 때만 BFMatcher를 선택하세요..

    • visualize (boolean): 키포인트와 매치의 시각화를 생성할지 여부입니다. True이고 이미지가 입력으로 제공되면, 블록은 다음을 생성합니다: (1) 각 이미지에 키포인트가 그려진 visualization_1 및 visualization_2, (2) 두 이미지 사이의 대응 키포인트를 선으로 연결한 visualization_matches. 시각화는 이미지(디스크립터가 아님)가 제공될 때만 생성됩니다. 기본값은 False입니다. 매칭 결과를 디버그하거나, 이미지가 왜 일치하거나 일치하지 않는지 이해하거나, 표시 또는 분석용 시각적 출력이 필요할 때 True로 설정하세요..

  • 출력

    • images_match (boolean): 불리언 플래그.

    • good_matches_count (정수): 정수 값.

    • keypoints_1 (image_keypoints): 고전적 컴퓨터 비전 방법으로 검출된 이미지 키포인트입니다.

    • descriptors_1 (numpy_array): Numpy 배열.

    • keypoints_2 (image_keypoints): 고전적 컴퓨터 비전 방법으로 검출된 이미지 키포인트입니다.

    • descriptors_2 (numpy_array): Numpy 배열.

    • visualization_1 (image): 워크플로의 이미지.

    • visualization_2 (image): 워크플로의 이미지.

    • visualization_matches (image): 워크플로의 이미지.

예시 JSON 정의

v1

FLANN 기반 매칭과 Lowe의 비율 테스트를 사용하여 두 이미지의 SIFT(Scale Invariant Feature Transform) 디스크립터를 비교하고, 특성 매치를 세어 이미지 유사도를 판단하며, 이미지 매칭, 유사도 감지, 중복 감지, 특성 기반 이미지 비교 워크플로를 위해 구성 가능한 임계값에 따라 불리언 매치 결과를 반환합니다.

이 블록의 작동 방식

이 블록은 두 이미지의 SIFT 디스크립터를 비교하여 대응하는 특성을 찾고 좋은 매치 수를 세어 일치 여부를 판단합니다. 이 블록은:

  1. 두 이미지의 SIFT 디스크립터(descriptor_1 및 descriptor_2)를 받습니다 - 이 디스크립터는 이미 두 이미지의 키포인트를 추출하고 디스크립터를 계산한 SIFT 특성 검출 단계에서 나온 것이어야 합니다

  2. 두 디스크립터 배열 모두 최소 2개의 디스크립터를 포함하는지 검증합니다(비율 테스트 필터링에 필요 - 최소 2개의 최근접 이웃이 필요)

  3. FLANN(Fast Library for Approximate Nearest Neighbors) 기반 매처를 생성합니다:

    • 고차원 디스크립터 공간에서 효율적인 근사 최근접 이웃 검색을 위해 FLANN 알고리즘을 사용합니다

    • SIFT 디스크립터에 최적화된 알고리즘 매개변수(algorithm=1, trees=5, checks=50)로 FLANN을 구성합니다

    • FLANN은 대규모 디스크립터 집합에서 완전 탐색 매칭보다 빠르면서도 좋은 정확도를 유지합니다

  4. k-최근접 이웃 매칭(k=2)을 수행하여 이미지 1의 각 디스크립터에 대해 가장 가까운 2개의 디스크립터 매치를 찾습니다:

    • descriptor_1의 각 디스크립터에 대해 descriptor_2에서 가장 유사한 2개의 디스크립터를 찾습니다

    • 디스크립터 공간에서 유클리드 거리를 사용하여 유사성을 측정합니다

    • 디스크립터가 얼마나 유사한지를 나타내는 거리 값을 가진 매치를 반환합니다

  5. Lowe의 비율 테스트를 사용하여 좋은 매치를 필터링합니다:

    • 각 매치에 대해 최적 매치의 거리(m.distance)와 두 번째로 좋은 매치의 거리(n.distance)를 비교합니다

    • m.distance < ratio_threshold * n.distance를 만족하는 매치만 유지합니다

    • 이 비율 테스트는 여러 디스크립터가 비슷하게 가까운 모호한 매치를 걸러냅니다

    • 낮은 ratio_threshold 값(예: 0.6)은 더 구별되는 매치를 요구합니다(더 엄격한 필터링)

    • 높은 ratio_threshold 값(예: 0.8)은 더 많은 매치를 허용합니다(더 느슨한 필터링)

  6. 비율 테스트 필터링 후 좋은 매치 수를 계산합니다

  7. good_matches_count를 good_matches_threshold와 비교하여 이미지가 일치하는지 판단합니다:

    • good_matches_count >= good_matches_threshold이면 images_match = True

    • good_matches_count < good_matches_threshold이면 images_match = False

  8. 좋은 매치 수와 불리언 매치 결과를 반환합니다

이 블록은 크기와 회전에 불변인 SIFT 디스크립터를 사용하므로, 서로 다른 크기, 회전 또는 시점의 이미지를 매칭하는 데 효과적입니다. FLANN 매칭은 대규모 디스크립터 집합을 빠르게 비교하기 위해 효율적인 근사 최근접 이웃 검색을 제공합니다. Lowe의 비율 테스트는 최적 매치가 대안보다 크게 더 좋지 않은 모호한 매치를 필터링하여 매치 품질을 향상시킵니다. 임계값 기반 매칭은 구성 가능한 민감도를 허용합니다 - 낮은 임계값은 더 적은 매치를 요구하고(더 관대함), 높은 임계값은 더 많은 매치를 요구합니다(더 엄격함).

일반적인 사용 사례

  • 이미지 유사도 감지: 두 이미지가 서로 유사하거나 일치하는지 판단합니다(예: 컬렉션에서 유사한 이미지 탐지, 데이터베이스에서 일치하는 이미지 찾기, 중복 이미지 식별), 이미지 유사도 워크플로를 지원합니다

  • 중복 이미지 감지: 이미지 컬렉션에서 중복 또는 거의 중복된 이미지를 식별합니다(예: 사진 라이브러리에서 중복 이미지 찾기, 데이터셋에서 반복 이미지 탐지, 서로 다른 크기나 방향의 동일 이미지 식별), 중복 감지 워크플로를 지원합니다

  • 특성 기반 이미지 매칭: 시각적 특성과 키포인트를 기반으로 이미지를 매칭합니다(예: 유사한 콘텐츠를 가진 이미지 매칭, 서로 다른 시점의 대응 이미지 찾기, 이미지 시퀀스에서 일치하는 이미지 식별), 특성 기반 매칭 워크플로를 지원합니다

  • 이미지 검증: 이미지가 예상 패턴이나 참조와 일치하는지 검증합니다(예: 이미지 진위 확인, 참조 이미지와의 일치 여부 검사, 템플릿과 비교하여 이미지 내용 검증), 이미지 검증 워크플로를 지원합니다

  • 이미지 비교 및 분석: 이미지를 비교하여 유사점과 차이점을 분석합니다(예: 품질 관리를 위한 이미지 비교, 이미지 변형 분석, 이미지 유사도 점수 측정), 이미지 비교 분석 워크플로를 지원합니다

  • 콘텐츠 기반 이미지 검색: 특성 매칭을 사용하여 콘텐츠 기반 이미지 검색 및 조회를 수행합니다(예: 데이터베이스에서 유사한 이미지 찾기, 시각적 유사성으로 이미지 검색, 콘텐츠 매칭으로 이미지 검색), 콘텐츠 기반 조회 워크플로를 지원합니다

다른 블록과 연결하기

이 블록은 두 이미지의 SIFT 디스크립터를 받아 매치 결과를 생성합니다:

  • SIFT 특성 검출 블록 뒤에 서로 다른 이미지의 SIFT 디스크립터를 비교하기 위해(예: 여러 이미지의 디스크립터 비교, SIFT 특성을 사용한 이미지 매칭, SIFT 기반 이미지 유사성 분석), SIFT 기반 이미지 비교 워크플로를 지원합니다

  • 필터링 또는 로직 블록 앞에 매치 결과를 의사결정에 사용하는 경우(예: 이미지 매치를 기준으로 필터링, 유사도에 따라 결정, 매치 결과를 기반으로 로직 적용), 매치 기반 조건부 워크플로를 지원합니다

  • 데이터 저장 블록 앞에 매치 결과를 저장하기 위해(예: 이미지 매치 결과 저장, 유사도 점수 저장, 비교 데이터 기록), 매치 결과 저장 워크플로를 지원합니다

  • 이미지 비교 파이프라인에서 여러 이미지를 비교해야 하는 경우(예: 시퀀스의 이미지 비교, 워크플로에서 이미지 유사성 분석, 파이프라인에서 이미지 비교 처리), 이미지 비교 파이프라인 워크플로를 지원합니다

  • 시각화 블록 앞에 매치 결과를 시각화하기 위해(예: 매치 결과 표시, 유사한 이미지 시각화, 비교 결과 보여주기), 매치 시각화 워크플로를 지원합니다

  • 중복 감지 워크플로에서 이미지 중복 여부를 확인해야 하는 경우(예: 이미지 컬렉션에서 중복 탐지, 반복 이미지 찾기, 동일 이미지 식별), 중복 감지 워크플로를 지원합니다

유형 식별자

step에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/sift_comparison@v1 를 워크플로에 단계로 추가합니다.

속성

이름

유형

설명

참조

name

str

이 단계에 고유 식별자를 입력하세요..

good_matches_threshold

int

이미지가 일치하는 것으로 간주하기 위해 필요한 최소 좋은 매치 수입니다. 양의 정수여야 합니다. 좋은 매치 수(비율 테스트 필터링 후)가 이 임계값 이상이면 images_match는 True가 됩니다. 낮은 값(예: 20~30)은 더 관대하며 더 적은 특성 대응만으로도 이미지를 일치시킵니다. 높은 값(예: 80~100)은 더 엄격하며 더 많은 특성 매치를 요구합니다. 기본값은 50이며, 균형이 좋습니다. 이미지 내용, 예상 유사도 수준, 오탐/미탐 허용 범위에 따라 조정하세요. 특성이 적은 이미지는 더 낮은 임계값을, 질감이 풍부하고 특성이 많은 이미지는 더 높은 임계값을 사용하세요..

ratio_threshold

실수

모호한 매치를 필터링하는 데 사용하는 Lowe의 비율 테스트용 비율 임계값입니다. 비율 테스트는 최적 매치까지의 거리와 두 번째로 좋은 매치까지의 거리를 비교합니다. best_match_distance < ratio_threshold * second_best_match_distance인 경우에만 매치가 유지됩니다. 낮은 값(예: 0.6)은 더 구별되는 매치를 요구하며 더 엄격합니다(더 많은 매치를 걸러내고 높은 신뢰도의 매치만 남김). 높은 값(예: 0.8)은 더 관대하여 일부 모호한 매치도 포함해 더 많은 매치를 허용합니다. 기본값은 0.7이며, 매치 품질과 수량 사이의 균형이 좋습니다. 일반적인 범위는 0.6~0.8입니다. 높은 신뢰도의 매치만 필요하면 더 낮은 값을, 더 많은 매치가 필요하거나 특성이 희소한 이미지를 다룰 때는 더 높은 값을 사용하세요..

해당 참조 열은 워크플로 런타임에서 사용할 수 있는 동적 값으로 속성을 매개변수화할 수 있음을 나타냅니다. 자세한 내용은 워크플로 런타임. 자세한 내용은 바인딩 를 참조하세요.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 종류에 따라 달라집니다. 어떤 바인딩 종류가 있는지 확인하세요 SIFT 비교 버전 v1 가 있습니다.

입력 및 출력 바인딩
  • 입력

    • descriptor_1 (numpy_array): 첫 번째 이미지에서 비교할 SIFT 디스크립터입니다. SIFT 디스크립터의 numpy 배열이어야 합니다(일반적으로 SIFT 특성 검출 블록에서 생성됨). 각 디스크립터는 키포인트 주변의 시각적 특성을 설명하는 128차원 벡터입니다. 두 이미지 모두 동일한 SIFT 매개변수로 디스크립터를 계산해야 합니다. 비율 테스트를 사용하려면 최소 2개의 디스크립터가 필요합니다. 첫 번째 이미지를 처리한 SIFT 특성 검출 단계의 디스크립터를 사용하세요..

    • descriptor_2 (numpy_array): 두 번째 이미지에서 비교할 SIFT 디스크립터입니다. SIFT 디스크립터의 numpy 배열이어야 합니다(일반적으로 SIFT 특성 검출 블록에서 생성됨). 각 디스크립터는 키포인트 주변의 시각적 특성을 설명하는 128차원 벡터입니다. 두 이미지 모두 동일한 SIFT 매개변수로 디스크립터를 계산해야 합니다. 비율 테스트를 사용하려면 최소 2개의 디스크립터가 필요합니다. 두 번째 이미지를 처리한 SIFT 특성 검출 단계의 디스크립터를 사용하세요. 이 디스크립터는 이미지 유사도를 판단하기 위해 descriptor_1과 매칭됩니다..

    • good_matches_threshold (정수): 이미지가 일치하는 것으로 간주하기 위해 필요한 최소 좋은 매치 수입니다. 양의 정수여야 합니다. 좋은 매치 수(비율 테스트 필터링 후)가 이 임계값 이상이면 images_match는 True가 됩니다. 낮은 값(예: 20~30)은 더 관대하며 더 적은 특성 대응만으로도 이미지를 일치시킵니다. 높은 값(예: 80~100)은 더 엄격하며 더 많은 특성 매치를 요구합니다. 기본값은 50이며, 균형이 좋습니다. 이미지 내용, 예상 유사도 수준, 오탐/미탐 허용 범위에 따라 조정하세요. 특성이 적은 이미지는 더 낮은 임계값을, 질감이 풍부하고 특성이 많은 이미지는 더 높은 임계값을 사용하세요..

    • ratio_threshold (정수): 모호한 매치를 필터링하는 데 사용하는 Lowe의 비율 테스트용 비율 임계값입니다. 비율 테스트는 최적 매치까지의 거리와 두 번째로 좋은 매치까지의 거리를 비교합니다. best_match_distance < ratio_threshold * second_best_match_distance인 경우에만 매치가 유지됩니다. 낮은 값(예: 0.6)은 더 구별되는 매치를 요구하며 더 엄격합니다(더 많은 매치를 걸러내고 높은 신뢰도의 매치만 남김). 높은 값(예: 0.8)은 더 관대하여 일부 모호한 매치도 포함해 더 많은 매치를 허용합니다. 기본값은 0.7이며, 매치 품질과 수량 사이의 균형이 좋습니다. 일반적인 범위는 0.6~0.8입니다. 높은 신뢰도의 매치만 필요하면 더 낮은 값을, 더 많은 매치가 필요하거나 특성이 희소한 이미지를 다룰 때는 더 높은 값을 사용하세요..

  • 출력

    • good_matches_count (정수): 정수 값.

    • images_match (boolean): 불리언 플래그.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?