스케일 불변 특징 변환(SIFT)이란 무엇인가요?
SIFT 알고리즘을 살펴보세요. SIFT의 정의와 스케일 불변 컴퓨터 비전을 위한 강력한 기능을 알아보고 이미지 처리를 향상해 보세요.

이 글에서 다루는 개념을 시각적으로 설명하는 영상은 아래에서 확인할 수 있습니다.
오늘날 우리가 사용하는 스마트폰과 카메라부터 스마트 홈 시스템에 이르기까지 많은 스마트 기기에는 얼굴, 객체, 심지어 전체 시각적 장면까지 인식할 수 있는 AI 솔루션이 탑재되어 있습니다. 이러한 기능은 머신이 이미지와 동영상을 이해하고 해석할 수 있도록 하는 인공지능 분야인 컴퓨터 비전에서 비롯됩니다.
예를 들어 어떤 각도나 거리에서 에펠탑을 촬영하더라도, 일반적으로 기기는 컴퓨터 비전을 사용해 에펠탑을 인식하고 갤러리의 올바른 폴더에 정리할 수 있습니다. 간단해 보이지만 객체 인식이 항상 쉬운 것은 아닙니다. 이미지의 크기, 각도, 스케일 또는 조명에 따라 이미지가 매우 다르게 보일 수 있으므로 머신이 객체를 일관되게 식별하기가 어렵습니다.
이 문제를 해결하기 위해 연구자들은 스케일 불변 특징 변환, 즉 SIFT라는 컴퓨터 비전 알고리즘을 개발했습니다. 이 알고리즘을 사용하면 다양한 관측 조건에서 객체를 감지할 수 있습니다. David Lowe가 1999년에 개발한 SIFT는 이미지가 크기 조정, 회전 또는 조명 변경을 겪더라도 인식 가능한 모서리, 에지 또는 패턴과 같은 이미지 내 고유한 키포인트를 찾고 설명하도록 설계되었습니다.
Ultralytics YOLO11과 같은 딥러닝 기반 컴퓨터 비전 모델이 인기를 얻기 전에는 SIFT가 컴퓨터 비전에서 널리 사용되는 기법이었습니다. SIFT는 사진에서 특정 항목을 식별하는 것이 목표인 객체 인식, 그리고 이미지 특징이 겹치는 부분을 찾아 사진을 정렬하는 이미지 매칭과 같은 작업의 표준적인 접근 방식이었습니다.
이 글에서는 SIFT가 무엇인지, 어떤 원리로 작동하는지 간략히 살펴보고, 컴퓨터 비전의 발전 과정에서 왜 중요한지 알아보겠습니다. 시작해 보겠습니다!
SIFT 알고리즘이 컴퓨터 비전에 필수적인 이유#
이미지에서 객체는 다양한 형태로 나타날 수 있습니다. 예를 들어 커피잔은 위에서, 옆에서, 밝은 햇빛 아래에서 또는 따뜻한 조명 아래에서 촬영될 수 있습니다. 같은 커피잔도 카메라에 가까우면 더 크게 보이고 멀리 있으면 더 작게 보일 수 있습니다.
이러한 모든 차이 때문에 컴퓨터가 객체를 인식하도록 학습시키는 일은 복잡한 작업이 됩니다. 객체 감지라고 하는 이 컴퓨터 비전 작업에서는 객체의 크기, 각도 또는 조명 조건이 변하더라도 Vision AI 모델이 객체를 정확하게 식별하고 위치를 찾을 수 있어야 합니다.
이를 가능하게 하기 위해 컴퓨터 비전은 특징 추출 또는 특징 감지라는 프로세스에 의존합니다. 모델은 전체 이미지를 한 번에 이해하려고 하는 대신, 각도, 스케일 및 조명 조건이 달라져도 인식 가능한 날카로운 모서리, 고유한 패턴 또는 텍스처와 같은 독특한 이미지 특징을 찾습니다.
특히 스케일 불변 특징 변환, 즉 SIFT는 이러한 작업을 수행하도록 설계되었습니다. SIFT는 이미지가 어떤 방식으로 촬영되었는지와 관계없이 이미지 속 객체를 안정적으로 식별할 수 있는 특징 감지 및 설명 알고리즘입니다.
스케일 불변성 구현#
SIFT 알고리즘에는 객체 인식에 유용한 몇 가지 중요한 특성이 있습니다. 핵심 특성 중 하나는 스케일 불변성입니다. 이는 객체가 카메라에 가까워 크게 보이든 멀리 있어 작게 보이든 SIFT가 객체의 다양한 부분을 인식할 수 있다는 의미입니다. 객체가 완전히 보이지 않더라도 알고리즘은 동일한 키포인트를 찾아낼 수 있습니다.
SIFT는 스케일 공간 이론이라는 개념을 사용해 이를 수행합니다. 간단히 말해 이미지에 서로 다른 수준의 블러를 적용하여 여러 버전을 생성합니다. 그런 다음 SIFT는 이러한 버전들을 살펴보며 이미지의 크기나 선명도가 어떻게 변하더라도 동일하게 유지되는 패턴과 세부 정보를 찾습니다.
예를 들어 몇 미터 떨어진 곳에서 촬영한 도로 표지판은 멀리서 촬영한 동일한 표지판보다 훨씬 크게 보이지만, SIFT는 여전히 동일한 독특한 특징을 감지할 수 있습니다. 따라서 표지판이 매우 다른 스케일로 나타나더라도 두 이미지를 올바르게 매칭할 수 있습니다.
회전 불변성 보장#
이미지 속 객체는 때로는 거꾸로 뒤집힌 상태를 포함해 회전된 형태로 나타날 수 있습니다. SIFT는 회전 불변성이라는 특성을 통해 이를 처리합니다. 알고리즘은 감지한 각 키포인트에 대해 로컬 이미지 그래디언트를 기반으로 일관된 방향을 할당합니다. 이를 통해 객체가 어떻게 회전되어 있더라도 동일한 객체를 인식할 수 있습니다.
각 키포인트에 어느 방향을 향하는지 보여 주는 작은 화살표를 표시한다고 생각하면 됩니다. SIFT는 특징을 이러한 방향에 맞춰 정렬하여 객체가 회전된 경우에도 키포인트가 정확하게 매칭되도록 합니다. 예를 들어 가로 방향 사진으로 촬영한 랜드마크는 다른 사진에서 카메라를 기울여 촬영했더라도 올바르게 식별할 수 있습니다.
기타 이미지 변형에 대한 강건성#
이미지는 크기와 회전 외에도 조명 변화처럼 다른 방식으로 변할 수 있습니다. 객체에 비치는 조명이 밝은 상태에서 어두운 상태로 바뀔 수 있고, 카메라 각도가 약간 달라질 수 있으며, 이미지가 흐릿하거나 노이즈가 낄 수도 있습니다.
SIFT는 이러한 변형을 처리하도록 설계되었습니다. 조명 변화나 관점의 작은 이동에 덜 영향을 받는 독특하고 대비가 높은 키포인트에 집중하여 이를 수행합니다. 그 결과 SIFT는 조건이 변하면 자주 실패하는 단순한 에지 또는 모서리 감지 방법보다 일반적으로 더 안정적입니다.

그림 1. (a) 비가 내리는 이미지와 (b) 이에 해당하는 깨끗한 입력 이미지에서 추출한 SIFT 키포인트. (출처)
미술관에 있는 그림을 생각해 보겠습니다. 은은한 자연광 아래에서 촬영하든, 밝은 인공 스포트라이트 아래에서 촬영하든, 또는 손에 든 카메라의 약간의 모션 블러가 있든 그림을 인식할 수 있습니다. 이러한 차이에도 키포인트는 정확한 매칭이 가능할 만큼 안정적으로 유지됩니다.
스케일 불변 특징 변환(SIFT) 알고리즘의 작동 원리#
다음으로 SIFT 알고리즘의 작동 원리를 살펴보겠습니다. 이 프로세스는 키포인트 감지, 키포인트 위치 지정, 방향 할당 및 키포인트 설명이라는 네 가지 주요 단계로 나눌 수 있습니다.
1단계: 스케일 공간 극값 감지#
첫 번째 단계는 객체를 추적하거나 인식하는 데 도움이 되는 모서리 또는 텍스처의 급격한 변화와 같은 이미지 내 독특한 지점인 키포인트를 찾고 감지하는 것입니다.
이러한 잠재적 키포인트를 어떤 크기에서도 인식할 수 있도록 SIFT는 스케일 공간을 구축합니다. 스케일 공간은 원본 이미지에 가우시안 필터라는 평활화 기법을 사용해 점진적으로 블러를 적용하여 생성한 이미지 모음이며, 그 결과를 옥타브라는 레이어로 그룹화합니다. 각 옥타브에는 블러 수준이 증가하는 동일한 이미지가 포함되고, 다음 옥타브는 이미지의 더 작은 버전입니다.
블러가 적용된 이미지에서 다른 블러 이미지 하나를 빼면 SIFT는 밝기가 급격히 변하는 영역을 강조하는 가우시안 차분(DoG)을 계산합니다. 이러한 영역은 이미지를 확대하거나 축소해도 일관되게 유지되므로 후보 키포인트로 선택됩니다.

그림 2. 서로 다른 수준으로 블러 처리한 이미지를 빼서 주요 구조를 강조하는 DoG. (출처)
2단계: 키포인트 위치 지정#
일부 후보 키포인트는 약하거나 불안정할 수 있으므로 모두 유용한 것은 아닙니다. 이를 정제하기 위해 SIFT는 테일러 급수 전개라는 수학적 방법을 사용하여 키포인트의 정확한 위치를 더 정밀하게 추정합니다.
이 단계에서는 신뢰할 수 없는 지점을 제거합니다. 주변 영역에 섞이는 낮은 대비의 키포인트는 물론, 너무 쉽게 이동할 수 있으므로 에지에 직접 놓인 키포인트도 삭제합니다. 이 필터링 단계를 거치면 가장 안정적이고 독특한 키포인트만 남습니다.
3단계: 방향 할당#
안정적인 키포인트가 식별되면 SIFT는 이미지가 옆으로 또는 거꾸로 회전해도 매칭할 수 있도록 키포인트를 회전 불변으로 만듭니다. 이를 위해 SIFT는 각 키포인트 주변의 밝기 변화, 즉 그래디언트를 분석합니다. 그래디언트는 픽셀 강도 변화의 방향과 세기를 모두 보여 주며, 이를 함께 사용해 해당 지점 주변의 로컬 구조를 표현합니다.
SIFT는 각 키포인트에 대해 주변 영역 내 그래디언트를 고려하고 이를 방향 히스토그램으로 그룹화합니다. 이 히스토그램에서 가장 높은 피크는 강도 변화의 지배적인 방향을 나타내며, 이를 키포인트의 방향으로 할당합니다. 강도가 어느 방향으로 변하는지 보여 주는 그래디언트 방향과 그 변화가 얼마나 강한지 나타내는 그래디언트 크기를 모두 사용해 이 히스토그램을 구축합니다.
거의 비슷한 세기의 다른 피크가 있으면 SIFT는 동일한 키포인트에 여러 방향을 할당합니다. 이는 객체가 일반적이지 않은 각도로 나타날 때 중요한 특징이 손실되는 것을 방지합니다. SIFT는 각 키포인트를 해당 방향에 맞춰 정렬하여 다음 단계에서 생성되는 디스크립터가 일관성을 유지하도록 합니다.
다시 말해 동일한 객체를 촬영한 두 이미지가 서로 다르게 회전되어 있어도 방향에 맞춰 정렬된 키포인트는 올바르게 매칭됩니다. 이 단계 덕분에 SIFT는 회전을 강력하게 처리할 수 있으며, 이전의 특징 감지 방법보다 훨씬 더 강건합니다.

그림 3. SIFT 알고리즘 3단계 자세히 살펴보기 (출처)
4단계: 키포인트 디스크립터#
SIFT의 마지막 단계는 각 키포인트에 대한 설명을 생성하여 다른 이미지에서도 인식할 수 있도록 하는 것입니다.
SIFT는 각 키포인트 주변의 약 16×16 픽셀 크기의 작은 정사각형 패치를 살펴봄으로써 이를 수행합니다. 먼저 이 패치를 키포인트의 방향에 맞춰 정렬하여 회전의 영향을 받지 않도록 합니다. 그런 다음 패치를 4×4 크기의 더 작은 정사각형 격자로 나눕니다.
각 작은 정사각형에서 SIFT는 여러 방향의 밝기 변화를 측정합니다. 이러한 변화는 가장 일반적인 방향을 보여 주는 차트와 같은 히스토그램에 저장됩니다. 각 정사각형은 자체 히스토그램을 가지며, 16개의 정사각형이 함께 16개의 히스토그램을 생성합니다.
마지막으로 이러한 히스토그램을 하나의 숫자 목록으로 결합하며, 총 128개의 숫자가 생성됩니다. 이 목록을 특징 벡터라고 하며 키포인트의 지문과 같은 역할을 합니다. 이 지문은 해당 지점 주변의 고유한 텍스처와 구조를 포착하므로 이미지의 크기, 회전 또는 조명이 달라져도 서로 다른 이미지에서 동일한 키포인트를 매칭할 수 있습니다.

그림 4. SIFT 작동 원리 개요 (출처)
컴퓨터 비전에서 SIFT의 주요 활용 분야#
이제 SIFT가 무엇이며 어떻게 작동하는지 더 잘 이해했으므로 컴퓨터 비전에서의 실제 활용 사례를 살펴보겠습니다.
객체 인식 및 감지#
SIFT의 주요 활용 분야 중 하나는 객체 인식 및 감지입니다. 이는 객체의 모습이 항상 동일하지 않더라도 컴퓨터가 이미지에서 객체를 인식하고 위치를 찾도록 학습시키는 작업입니다. 예를 들어 SIFT는 책이 카메라에 가까이 있든 멀리 있든 또는 비스듬히 회전되어 있든 관계없이 책을 감지할 수 있습니다.
이것이 가능한 이유는 SIFT가 매우 독특하고 안정적인 키포인트를 추출하기 때문입니다. 이러한 키포인트를 SIFT 디스크립터와 결합하면 SIFT 특징이 형성되며, 이를 통해 서로 다른 이미지에서 동일한 객체를 안정적으로 매칭할 수 있습니다. 이러한 특징은 일관되게 유지되는 객체의 고유한 세부 정보를 포착하므로 객체의 크기, 위치 또는 방향이 변하더라도 이미지 간에 안정적인 특징 매칭이 가능합니다.

그림 5. 원본과 다른 방향에서 촬영한 새 이미지에서 SIFT를 사용해 책 표지 인식하기. 이미지 작성자 제공.
딥러닝이 인기를 얻기 전에는 SIFT가 객체 인식 시스템 구축에 사용된 가장 안정적인 방법 중 하나였습니다. 상당한 컴퓨팅 리소스가 필요한 경우가 많았지만, 대규모 이미지 데이터셋에서 객체를 매칭해야 하는 연구 및 애플리케이션에 널리 사용되었습니다.
이미지 스티칭 및 파노라마 생성#
SIFT는 여러 사진을 이어 붙여 만든 넓은 이미지인 파노라마 이미지를 생성하는 데에도 사용할 수 있습니다. SIFT를 사용하면 서로 다른 이미지의 겹치는 부분에서 독특한 키포인트를 찾은 다음 서로 매칭합니다. 이러한 매칭 결과는 앵커 역할을 하여 사진을 어떻게 정렬해야 하는지 스티칭 프로세스를 안내합니다.
매칭이 완료되면 스티칭 알고리즘을 사용해 올바른 정렬을 계산할 수 있으며, 이때 한 이미지를 다른 이미지에 매핑하는 기하학적 변환을 사용하는 경우가 많습니다. 그런 다음 이미지들을 블렌딩하여 이음매가 사라지도록 합니다. 최종 결과는 여러 장의 사진으로 만들었음에도 하나의 넓은 사진처럼 보이는 매끄러운 파노라마입니다.
3D 재구성 및 로보틱스#
SIFT의 또 다른 흥미로운 활용 분야는 3D 재구성입니다. 3D 재구성에서는 서로 다른 각도에서 촬영한 여러 2D 사진을 결합하여 3차원 모델을 구축합니다. SIFT는 이러한 이미지에서 동일한 지점을 찾고 매칭하는 방식으로 작동합니다.
매칭이 완료되면 삼각 측량을 사용해 해당 지점의 3D 위치를 추정할 수 있습니다. 삼각 측량은 서로 다른 관점에서 깊이를 계산하는 방법입니다. 이 프로세스는 여러 겹치는 이미지를 사용해 장면의 3D 형태와 사진을 촬영한 카메라의 위치를 함께 추정하는 기법인 움직임으로부터의 구조(SfM)의 일부입니다.
그 결과는 일반적으로 객체나 환경의 윤곽을 나타내는 공간상의 점 모음인 3D 포인트 클라우드입니다. SIFT는 움직임으로부터의 구조를 실용적으로 구현할 수 있게 한 최초의 도구 중 하나였습니다. 오늘날에는 더 새로운 기법이 더 빠르고 일반적으로 사용되지만, SIFT는 속도보다 정확도가 중요한 경우에 계속 활용되고 있습니다.
SIFT는 특히 시각적 SLAM(동시적 위치 추정 및 매핑)에서 로보틱스에도 사용되어 왔습니다. SLAM을 사용하면 로봇이 주변 환경의 지도를 구축하는 동시에 자신의 위치를 파악할 수 있습니다.
SIFT 키포인트는 조명이나 각도가 변하더라도 로봇이 여러 프레임에서 인식할 수 있는 안정적인 랜드마크 역할을 합니다. 로봇은 이러한 랜드마크를 추적하여 자신의 위치를 추정하고 지도를 실시간으로 업데이트할 수 있습니다. 오늘날 로보틱스에서는 더 빠른 특징 감지기가 더 자주 사용되지만, SIFT는 초기 SLAM 시스템에서 중요한 역할을 했으며 속도보다 강건성이 더 중요한 경우에는 여전히 핵심적인 기법입니다.
SIFT의 장점 및 고려 사항#
SIFT 알고리즘은 컴퓨터 비전에서 널리 사용되어 왔으며 안정적인 방법으로 알려져 있지만, 몇 가지 트레이드오프도 있습니다. 따라서 프로젝트에 적합한지 결정하기 전에 장단점을 비교하는 것이 중요합니다. 이제 SIFT의 주요 강점과 한계를 살펴보겠습니다.
SIFT의 핵심 장점#
다음은 SIFT 알고리즘을 사용할 때의 몇 가지 장점입니다.
- 스케일 및 회전 불변성: SIFT는 객체가 서로 다른 크기나 방향으로 나타날 때도 비교적 안정적으로 유지되는 스케일 불변 키포인트를 제공하며, 이는 이전 특징 감지기와 비교해 크게 발전한 부분입니다.
- 조명 및 관점 변화에 대한 중간 수준의 강건성: SIFT는 밝기, 대비 또는 관점의 작은 변화는 처리할 수 있지만, 더 극단적인 조건에서는 신뢰성이 떨어집니다.
- 복잡하거나 부분적으로 가려진 장면에서 작동하는 능력: SIFT는 많은 로컬 키포인트를 감지하므로 객체의 일부가 가려져 있거나 배경이 복잡하더라도 객체를 식별할 수 있는 경우가 많습니다.
성능 고려 사항 및 대안#
다음은 SIFT 알고리즘을 사용할 때의 몇 가지 단점입니다.
- 높은 계산 비용: SIFT의 다단계 프로세스와 상세한 디스크립터 때문에 최신 특징 감지기보다 속도가 느리고 더 많은 리소스를 사용합니다. 이를 개선하기 위해 연구자들은 특징을 더 빠르게 찾고 설명하는 계산 방식을 사용하는 SURF(가속화된 강건 특징) 알고리즘을 개발했습니다. SURF는 일부 경우 SIFT보다 정밀도가 낮지만 훨씬 빠르게 실행되므로 시간에 민감한 작업에 더 실용적입니다.
- 실시간 사용에 적합하지 않음: 계산 비용 때문에 SIFT는 실시간 추적이나 모바일 로보틱스처럼 속도가 중요한 애플리케이션에서 성능이 떨어집니다.
- 제한적인 범용성: 다양한 경우에 강건하지만 SIFT는 극심한 조명 변화, 큰 관점 이동 또는 최신 알고리즘이나 머신러닝 방법이 더 뛰어난 성능을 보이는 매우 동적인 장면에서는 효과가 떨어집니다.
SIFT의 장단점을 살펴보면 많은 한계가 더 발전된 기법의 등장으로 이어졌다는 점을 알 수 있습니다. 특히 합성곱 신경망(CNNs)이 강력한 대안으로 등장했습니다.
CNN은 인간의 시각 시스템 작동 방식에서 영감을 받은 딥러닝 모델의 한 유형입니다. CNN은 에지와 텍스처 같은 단순한 패턴부터 시작해 이미지를 여러 레이어로 처리하고 점차 더 복잡한 형태와 객체를 학습합니다. 사람이 설계한 SIFT의 특징 규칙과 달리 CNN은 데이터에서 직접 특징 표현을 학습합니다.
이러한 데이터 기반 학습 덕분에 CNN은 디스크립터 매칭 및 분류 작업에서 SIFT보다 뛰어난 성능을 보일 수 있습니다. CNN은 표현력이 더 뛰어나고 강건하므로 시각 데이터의 가변성과 복잡성에도 더 잘 적응합니다.
예를 들어 CNN 기반 모델은 수천 개 범주에 걸쳐 수백만 개의 라벨링된 이미지가 포함된 대규모 벤치마크 데이터셋인 ImageNet에서 획기적인 성과를 달성했습니다. 알고리즘이 객체를 얼마나 잘 인식하고 분류하는지 테스트하도록 설계된 ImageNet은 기존 특징 기반 방법과 딥러닝 사이의 격차를 명확하게 보여 줍니다.
CNN은 훨씬 더 풍부하고 유연한 표현을 학습하여 SIFT를 빠르게 능가했습니다. 이를 통해 조명이 변하거나 관점이 달라진 상황, 심지어 객체가 부분적으로 가려진 상황에서도 객체를 인식할 수 있었으며, 이러한 상황은 SIFT가 자주 어려움을 겪는 경우입니다.
핵심 요점#
스케일 불변 특징 변환 알고리즘은 컴퓨터 비전의 역사에서 중요한 위치를 차지합니다. 이 알고리즘은 환경이 변하더라도 특징을 안정적으로 감지할 수 있는 방법을 제공했으며 오늘날 사용되는 많은 방법에 영향을 미쳤습니다.
새로운 기법이 더 빠르고 효율적이지만 SIFT는 이러한 기법의 기반을 마련했습니다. SIFT는 오늘날 컴퓨터 비전의 발전이 어디에서 시작되었는지를 보여 주며 최첨단 AI 시스템이 얼마나 발전했는지를 강조합니다.
글로벌 커뮤니티에 참여하고 GitHub 저장소를 확인하여 컴퓨터 비전에 대해 자세히 알아보세요. 솔루션 페이지를 살펴보고 농업 분야의 AI 및 소매업의 컴퓨터 비전과 같은 혁신 사례를 확인해 보세요. 라이선스 옵션을 살펴보고 나만의 컴퓨터 비전 모델 구축을 시작해 보세요.









