YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Scale-Invariant Feature Transform (SIFT)

크기 불변 특징 변환(SIFT)은 키포인트를 찾고 스케일 및 회전 변화에도 안정적인 128개 값의 디스크립터를 생성하는 고전적인 알고리즘입니다.

크기 불변 특징 변환(SIFT)은 이미지에서 특징적인 로컬 키포인트를 찾고 각 키포인트를 이미지의 크기를 조정하거나 회전해도 대체로 동일하게 유지되는 128개 숫자의 벡터로 표현하는 고전적인 컴퓨터 비전 알고리즘입니다. 이러한 디스크립터를 매칭하면 소프트웨어가 서로 다른 거리와 각도에서 촬영한 동일한 장면의 사진 두 장을 연결할 수 있으며, 이 방식으로 서로 겹치는 사진을 이어 파노라마를 만듭니다. SIFT는 직접 설계한 특징 추출 방식으로, 합성곱 신경망이 학습한 특징 맵과는 다릅니다.

기원과 핵심 개념#

브리티시컬럼비아 대학교의 David Lowe는 1999년 ICCV 논문 로컬 스케일 불변 특징을 이용한 객체 인식에서 SIFT를 소개했으며, 2004년 국제 컴퓨터 비전 저널에 발표한 "스케일 불변 키포인트에서 얻은 특징적인 이미지 특징"에서 이를 상세히 설명했습니다. SIFT 특징은 스케일과 회전의 영향을 받지 않으며, 상당한 수준의 아핀 왜곡, 3D 시점 변화, 노이즈 및 조명 변화에도 강건하게 매칭됩니다. 이 방법은 특허를 받았으며 특허는 2020년에 만료되었습니다. OpenCV는 버전 4.4.0에서 SIFT를 contrib 저장소에서 메인 라이브러리로 옮겼습니다.

사진 속 객체의 크기는 고정되어 있지 않으므로 검출기는 모든 크기의 구조를 찾아야 합니다. SIFT는 강도를 점차 높여 가우시안 블러를 반복 적용하고 옥타브라고 하는 그룹 단위로 다운샘플링하여 스케일 공간을 구성합니다.

SIFT 작동 방식#

알고리즘은 네 단계로 실행됩니다:

  1. 스케일 공간 극값 검출: 인접한 블러 수준 간의 차이(가우시안 차분)는 블롭 검출기를 근사합니다. 픽셀은 공간과 스케일을 기준으로 26개의 이웃 픽셀 중 최댓값 또는 최솟값이면 후보로 선정됩니다.
  2. 키포인트 위치 지정: 후보를 서브픽셀 정확도로 정밀화합니다. 불안정한 저대비 점과 에지를 따라 있는 점은 제거합니다.
  3. 방향 할당: 각 키포인트 주변의 로컬 그래디언트 방향을 히스토그램으로 나타내 지배적인 방향을 결정하고, 이후의 모든 측정은 이 방향을 기준으로 수행합니다. 이를 통해 회전 불변성을 확보합니다.
  4. 디스크립터 구성: 이웃 영역을 4 x 4 그리드로 나누고 각 셀에 8개 빈의 그래디언트 히스토그램을 저장합니다. 이에 따라 총 4 x 4 x 8 = 128개의 값이 생성되며, 조명에 대한 민감도를 낮추도록 정규화합니다.

디스크립터 매칭은 유클리드 거리를 비교합니다. Lowe의 비율 테스트는 가장 가까운 이웃이 두 번째로 가까운 이웃보다 확실히 가까운 경우에만 매칭을 유지합니다. k-최근접 이웃 검색에서 k = 2로 설정하면 두 거리를 모두 구할 수 있습니다.

import cv2
from ultralytics.utils import ASSETS

# Load a sample image in grayscale and a half-size copy
img = cv2.imread(str(ASSETS / "bus.jpg"), cv2.IMREAD_GRAYSCALE)
small = cv2.resize(img, None, fx=0.5, fy=0.5)

# Detect keypoints and compute 128-dimensional descriptors
sift = cv2.SIFT_create()
kp1, des1 = sift.detectAndCompute(img, None)
kp2, des2 = sift.detectAndCompute(small, None)

# Match half-size descriptors to full-size ones, then apply Lowe's ratio test
pairs = cv2.BFMatcher().knnMatch(des2, des1, k=2)
good = [m for m, n in pairs if m.distance < 0.8 * n.distance]
print(f"{len(good)} of {len(kp2)} half-size keypoints matched at full size")

출력된 개수는 절반 크기의 이미지에서 찾은 키포인트 중 전체 크기 이미지에서도 다시 인식된 키포인트의 수를 보여 주며, 이는 스케일 불변성이 작동하는 예입니다.

응용 분야#

SIFT는 기하학적 비전 작업에서 기본 로컬 특징으로 자리 잡았습니다:

  • 파노라마 스티칭: Brown과 Lowe의 자동 파노라마 스티칭(IJCV 2007)은 겹치는 사진의 SIFT 특징을 매칭하고 호모그래피를 추정해 사진을 정렬합니다. 이 정렬 단계는 이미지 정합이라고 합니다.
  • 3D 재구성: Photo Tourism(Snavely, Seitz, Szeliski, 2006)은 관광 사진 전반의 SIFT 특징을 매칭하고 극선 기하학을 사용해 카메라 포즈와 희소한 3D 구조를 복원합니다.
  • 로봇 위치 추정: Se, Lowe, Little(2001)은 모바일 로봇의 위치 추정과 매핑에 SIFT 랜드마크를 사용했으며, 이는 현대적인 시각 SLAM의 전신입니다.
  • 인스턴스 인식: Lowe의 2004년 논문은 복잡하고 일부가 가려진 장면에서 매칭된 특징이 최소 3개만 있어도 장난감 기차와 개구리를 인식합니다.

Ultralytics YOLO 객체 추적에서 BoT-SORT는 프레임 간 카메라 움직임을 보정하며, 추적기 설정에서 gmc_method: sift을 설정하면 기본 희소 광학 흐름 대신 SIFT 매칭을 사용해 움직임을 추정합니다.

SIFT는 여러 뷰에서 동일한 실제 지점을 매칭하므로 대응점과 기하학적 분석에 적합합니다. 반면 객체 검출은 객체의 범주와 위치를 예측합니다. 템플릿 매칭은 고정된 패치를 이동해 비교하므로 스케일이나 회전이 바뀌면 성능이 저하됩니다.

SIFT는 ORB보다 느립니다. Rublee와 동료들이 2011년에 SIFT 및 SURF의 대안으로 소개한 ORB는 이진 디스크립터입니다. 또한 SIFT는 텍스처가 없는 표면과 큰 시점 변화에 취약하며, 범주 수준 인식에서는 대부분 학습 모델로 대체되었습니다.

Lowe의 2004년 테스트에서는 거리 비율이 0.8을 초과하는 매칭을 제거했을 때 무작위 스케일 및 회전 변화, 30도 깊이 회전, 2% 노이즈가 있는 이미지에서 40,000개의 키포인트를 대상으로 오매칭의 90%가 제거되고 정매칭은 5% 미만만 제외되었습니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요