SIFT
이미지에 SIFT를 적용합니다.
SIFT(Scale-Invariant Feature Transform)를 사용하여 이미지에서 고유한 시각적 특징을 감지하고 설명하며, 키포인트(관심점)를 추출하고 스케일, 회전, 조명 조건에 대해 불변인 128차원 특징 디스크립터를 계산하여, 특징 기반 이미지 매칭, 객체 인식, 이미지 유사도 감지 워크플로를 가능하게 합니다.
이 블록의 작동 방식
이 블록은 SIFT를 사용하여 이미지에서 고유한 시각적 특징을 감지하고 각 감지된 키포인트에 대한 특징 디스크립터를 계산합니다. 이 블록은:
특징 감지를 위해 분석할 입력 이미지를 받습니다
이미지를 그레이스케일로 변환합니다(SIFT는 효율성과 견고성을 위해 그레이스케일 이미지에서 작동합니다)
OpenCV의 SIFT 구현을 사용하여 SIFT 검출기를 생성합니다
detectAndCompute를 사용하여 키포인트와 디스크립터를 동시에 감지합니다:
키포인트 감지: 이미지에서 서로 다른 관찰 조건에서도 안정적인 고유 관심점(키포인트)을 식별합니다
키포인트는 스케일 변화를 처리하기 위해 여러 스케일(스케일-공간 이미지 피라미드)에서 감지됩니다
키포인트는 회전 변화를 처리하기 위해 방향 할당과 함께 감지됩니다
각 키포인트는 다음 속성을 가집니다: 위치(x, y 좌표), 크기(감지된 스케일), 각도(방향), 응답값(강도), 옥타브(스케일 수준), class_id
디스크립터 계산: 키포인트 주변의 국소 이미지 영역을 설명하는 각 키포인트에 대해 128차원 특징 디스크립터를 계산합니다
디스크립터는 국소 영역의 기울기 정보를 인코딩하여, 조명 변화에 대해 고유하고 견고하게 만듭니다
디스크립터는 조명 변화에 대해 부분적으로 불변이 되도록 정규화됩니다
시각화를 위해 원본 이미지에 키포인트를 그립니다:
OpenCV의 drawKeypoints를 사용하여 이미지 위에 키포인트 마커를 오버레이합니다
키포인트 위치, 방향, 크기를 시각화합니다
특징이 감지된 위치를 보여주는 시각적 표현을 만듭니다
키포인트를 딕셔너리 형식으로 변환합니다:
키포인트 속성(위치, 크기, 각도, 응답값, 옥타브, class_id)을 딕셔너리로 추출합니다
후속 처리와 분석을 위해 키포인트 데이터를 사용할 수 있게 합니다
키포인트가 그려진 이미지, 키포인트 데이터(딕셔너리 형식), 그리고 디스크립터(numpy 배열)를 반환합니다
SIFT 특징은 스케일 불변적이며(다른 확대/축소 수준에서 작동), 회전 불변적이며(회전된 이미지를 처리), 조명 변화에 대해서도 부분적으로 불변적입니다(조명 변화에 견고). 따라서 서로 다른 시점, 거리, 각도 또는 조명 조건에서 촬영된 여러 이미지에서 동일한 객체나 장면을 매칭하는 데 매우 효과적입니다. 128차원 디스크립터는 국소 이미지 영역에 대한 풍부한 정보를 제공하여, 견고한 특징 매칭과 비교를 가능하게 합니다.
일반적인 사용 사례
특징 기반 이미지 매칭: 서로 다른 이미지에서 객체나 장면을 매칭하기 위한 특징을 감지합니다(예: 여러 이미지의 객체를 매칭하고, 다양한 시점에서 대응되는 특징을 찾고, 이미지 쌍에서 일치하는 영역을 식별), 특징 기반 매칭 워크플로를 가능하게 합니다
객체 인식: SIFT 특징을 객체 인식 및 식별에 사용합니다(예: 특징 매칭을 통해 객체를 인식하고, 고유한 특징으로 객체를 식별하며, 분류를 위해 객체 특징을 매칭), 특징 기반 객체 인식 워크플로를 가능하게 합니다
이미지 유사도 감지: SIFT 특징을 비교하여 유사한 이미지를 감지합니다(예: 데이터베이스에서 유사한 이미지를 찾고, 중복 이미지를 감지하며, 일치하는 장면을 식별), 이미지 유사도 워크플로를 가능하게 합니다
분석을 위한 특징 추출: 추가 분석을 위해 이미지에서 고유한 특징을 추출합니다(예: 처리용 특징 추출, 이미지 특성 분석, 관심 영역 식별), 특징 추출 워크플로를 가능하게 합니다
시각적 위치 추정: 시각적 위치 추정과 매핑에 SIFT 특징을 사용합니다(예: 장면에서 객체를 위치 추정하고, 프레임 간 특징을 추적하며, 특징 대응 관계를 매핑), 시각적 위치 추정 워크플로를 가능하게 합니다
이미지 정합: SIFT 특징 대응 관계를 사용하여 이미지를 정렬합니다(예: 스티칭을 위해 이미지를 정합하고, 서로 다른 시점의 이미지를 정렬하며, 정렬을 위해 이미지를 매칭), 이미지 정합 워크플로를 가능하게 합니다
다른 블록에 연결하기
이 블록은 이미지를 받아 SIFT 키포인트와 디스크립터를 생성합니다:
이미지 입력 블록 뒤에 입력 이미지에서 SIFT 특징을 추출하기 위해(예: 카메라 피드에서 특징 감지, 이미지 입력에서 특징 추출, 이미지의 특징 분석), SIFT 특징 추출 워크플로를 가능하게 합니다
전처리 블록 뒤에 전처리된 이미지에서 특징을 추출하기 위해(예: 필터링 후 특징 감지, 향상된 이미지에서 특징 추출, 전처리 후 특징 분석), 전처리된 특징 추출 워크플로를 가능하게 합니다
SIFT 비교 블록 앞 이미지 비교를 위한 SIFT 디스크립터를 제공하기 위해(예: 매칭용 디스크립터 제공, 비교용 특징 준비, 유사도 감지를 위한 디스크립터 공급), SIFT 기반 이미지 비교 워크플로를 가능하게 합니다
필터링 또는 로직 블록 전에 특징 수나 속성을 의사 결정에 사용하는 경우(예: 특징 수를 기준으로 필터링, 감지된 특징을 기반으로 결정 내리기, 특징 속성에 따라 로직 적용), 특징 기반 조건부 워크플로를 가능하게 합니다
데이터 저장 블록 앞에서 특징 데이터를 저장하기 위해(예: 키포인트와 디스크립터 저장, 특징 정보 보관, 분석용 특징 데이터 기록), 특징 데이터 저장 워크플로를 가능하게 합니다
시각화 블록 이전 감지된 특징을 표시하기 위해(예: 키포인트 시각화, 특징 위치 표시, 특징 분석 결과 표시), 특징 시각화 워크플로를 가능하게 합니다
유형 식별자
단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/sift@v1 워크플로우에 이 블록을 단계로 추가하려면.
속성
이름
유형
설명
참조
name
str
이 단계에 대한 고유 식별자를 입력하세요..
❌
이 참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.
입력 및 출력 바인딩
사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 SIFT 버전 v1 을 가지고 있는지.
입력 및 출력 바인딩
입력
이미지(이미지): 입력 이미지에서 SIFT 특징 감지를 위해 분석할 이미지. 이미지는 SIFT 처리를 위해 내부적으로 그레이스케일로 변환됩니다. SIFT는 질감과 세부 정보가 좋은 이미지에서 가장 잘 작동합니다. 시각적 내용이 풍부한 이미지(에지, 코너, 패턴)는 균일하거나 매끄러운 이미지보다 더 많은 키포인트를 생성합니다. 감지된 각 키포인트에는 128차원 디스크립터가 계산됩니다. 출력에는 시각화를 위해 키포인트가 그려진 이미지, 키포인트 데이터(위치, 크기, 각도, 응답값, 옥타브), 그리고 매칭 및 비교를 위한 디스크립터 배열이 포함됩니다. SIFT 특징은 스케일과 회전에 대해 불변이어서, 서로 다른 시점과 조건에서의 매칭에 효과적입니다..
출력
이미지(이미지): 워크플로의 이미지입니다.키포인트(image_keypoints): 고전적인 컴퓨터 비전 방법으로 감지된 이미지 키포인트.디스크립터(numpy_array): Numpy 배열.
마지막 업데이트
도움이 되었나요?