오늘날 휴대폰과 카메라부터 스마트 홈 시스템에 이르기까지 우리가 사용하는 많은 스마트 기기에는 얼굴, 사물, 심지어 전체 시각적 장면을 인식할 수 있는 AI 솔루션이 탑재되어 있습니다. 이러한 기능은 기계가 이미지와 동영상을 이해하고 해석할 수 있도록 하는 인공지능의 한 분야인 컴퓨터 비전에서 비롯됩니다.
예를 들어 에펠탑의 사진을 어느 각도나 거리에서 찍어도 일반적으로 기기는 컴퓨터 비전을 사용하여 이를 인식하고 갤러리의 올바른 폴더에 정리할 수 있습니다. 간단해 보이지만 사물을 인식하는 것이 항상 간단한 것은 아닙니다. 이미지는 크기, 각도, 배율 또는 조명에 따라 매우 다르게 보일 수 있기 때문에 기계가 일관되게 식별하기는 어렵습니다.
이 문제를 해결하기 위해 연구원들은 스케일 불변 특징 변환(SIFT)이라는 컴퓨터 비전 알고리즘을 개발했습니다. 이 알고리즘을 사용하면 다양한 시야 조건에서 물체를 감지할 수 있습니다. 1999년에 데이비드 로우가 개발한 SIFT는 이미지의 크기를 조정하거나 회전하거나 조명을 달리해도 인식할 수 있는 모서리, 가장자리 또는 패턴과 같은 이미지의 고유한 키포인트를 찾아 설명하도록 설계되었습니다.
Ultralytics YOLO11과 같은 딥러닝 기반 컴퓨터 비전 모델이 대중화되기 전, SIFT는 컴퓨터 비전 분야에서 널리 사용되던 기법입니다. 사진에서 특정 항목을 식별하는 것이 목표인 객체 인식과 겹치는 이미지 특징을 찾아 사진을 정렬하는 이미지 매칭과 같은 작업에서 표준적인 접근 방식이었습니다.
이 글에서는 SIFT가 무엇인지, 높은 수준에서 어떻게 작동하는지, 컴퓨터 비전의 진화에서 왜 중요한지 간략하게 살펴보겠습니다. 그럼 시작해 보겠습니다!
이미지에서 물체는 여러 가지 방식으로 나타날 수 있습니다. 예를 들어 커피잔을 위에서, 옆에서, 밝은 햇빛 아래에서, 따뜻한 램프 아래에서 촬영할 수 있습니다. 또한 같은 머그잔이라도 카메라에 가까이 있을 때는 더 크게, 멀리 떨어져 있을 때는 더 작게 보일 수 있습니다.
이러한 모든 차이점 때문에 컴퓨터가 사물을 인식하도록 가르치는 것은 복잡한 작업입니다. 객체 감지라고 하는 이 컴퓨터 비전 작업에는 크기, 각도 또는 조명 조건이 변경되더라도 객체를 정확하게 식별하고 위치를 파악할 수 있는 Vision AI 모델이 필요합니다.
이를 가능하게 하기 위해 컴퓨터 비전은 특징 추출 또는 감지라는 프로세스에 의존합니다. 모델은 전체 이미지를 한 번에 이해하는 대신 각도, 축척, 조명 조건에 관계없이 인식할 수 있는 날카로운 모서리, 독특한 패턴, 질감과 같은 독특한 이미지 특징을 찾습니다.
특히 스케일 불변 특징 변환(SIFT)은 이러한 기능을 수행하기 위해 고안되었습니다. SIFT는 캡처 방식에 관계없이 이미지에서 물체를 안정적으로 식별할 수 있는 특징 감지 및 설명 알고리즘입니다.
SIFT 알고리즘에는 물체 인식에 유용한 몇 가지 중요한 속성이 있습니다. 주요 속성 중 하나는 축척 불변성이라는 것입니다. 이는 물체가 크고 카메라에 가까워 보이든, 작고 멀리 떨어져 있든 상관없이 SIFT가 물체의 다양한 부분을 인식할 수 있다는 것을 의미합니다. 물체가 완전히 보이지 않더라도 알고리즘은 동일한 핵심 포인트를 찾아낼 수 있습니다.
스케일-공간 이론이라는 개념을 사용하여 이를 수행합니다. 간단히 말해, 이미지를 여러 단계로 흐리게 처리하여 여러 버전을 생성합니다. 그런 다음 SIFT는 이러한 버전을 살펴보고 이미지의 크기나 선명도에 관계없이 동일하게 유지되는 패턴과 디테일을 찾습니다.
예를 들어, 몇 미터 떨어진 곳에서 촬영한 도로 표지판은 멀리서 촬영한 동일한 표지판보다 훨씬 더 크게 보이지만 SIFT는 여전히 동일한 특징을 감지할 수 있습니다. 따라서 표지판이 매우 다른 축척으로 나타나더라도 두 이미지를 정확하게 일치시킬 수 있습니다.
이미지의 객체는 회전되어 보일 수도 있고 때로는 거꾸로 보일 수도 있습니다. SIFT는 회전 불변성이라는 속성을 통해 이를 처리합니다. 알고리즘은 감지한 모든 키포인트에 대해 로컬 이미지 그라데이션을 기반으로 일관된 방향을 할당합니다. 이렇게 하면 물체가 어떻게 회전하더라도 동일한 물체를 인식할 수 있습니다.
각 키포인트가 어느 방향을 향하고 있는지 작은 화살표로 표시하는 것과 같다고 생각하면 됩니다. 이러한 방향에 따라 기능을 정렬함으로써 SIFT는 개체를 회전해도 키포인트가 정확하게 일치하도록 보장합니다. 예를 들어, 풍경 사진에 캡처된 랜드마크는 카메라를 비스듬히 기울여 다른 사진을 찍어도 정확하게 식별할 수 있습니다.
이미지의 크기와 회전 외에도 조도 변화와 같은 다른 방식으로도 이미지가 변경될 수 있습니다. 물체의 조명이 밝은 곳에서 어두운 곳으로 바뀌거나 카메라 각도가 약간 바뀌거나 이미지가 흐려지거나 노이즈가 발생할 수 있습니다.
SIFT는 이러한 종류의 변형을 처리하도록 설계되었습니다. 이러한 특징은 조명 변화나 작은 시점의 변화에 영향을 덜 받기 때문에 뚜렷하고 대비가 높은 키포인트에 초점을 맞춰 이를 수행합니다. 따라서 SIFT는 조건이 변하면 종종 실패하는 단순한 가장자리 또는 모서리 감지 방법보다 더 안정적인 경향이 있습니다.
갤러리의 그림을 생각해 보세요. 부드러운 햇빛 아래에서 촬영했든, 밝은 인공 스포트라이트 아래에서 촬영했든, 핸드헬드 카메라로 약간의 모션 블러가 있더라도 여전히 인식할 수 있습니다. 키포인트는 이러한 차이에도 불구하고 정확한 매칭을 위해 충분히 안정적으로 유지됩니다.
다음으로 SIFT 알고리즘이 어떻게 작동하는지 살펴봅시다. 이 프로세스는 키포인트 감지, 키포인트 로컬라이제이션, 방향 할당, 키포인트 설명의 네 가지 주요 단계로 나눌 수 있습니다.
첫 번째 단계는 물체를 추적하거나 인식하는 데 도움이 되는 이미지의 모서리나 텍스처의 급격한 변화와 같은 특징적인 지점인 키포인트를 찾아서 감지하는 것입니다.
이러한 잠재적 키포인트를 어떤 크기에서도 인식할 수 있도록 하기 위해 SIFT는 스케일 스페이스라는 것을 구축합니다. 이는 평활화 기법인 가우시안 필터로 원본 이미지를 점차적으로 흐리게 처리하고 그 결과를 옥타브라는 레이어로 그룹화하여 만든 이미지 모음입니다. 각 옥타브에는 흐림 수준이 높아질수록 동일한 이미지가 포함되며, 다음 옥타브는 이미지의 작은 버전입니다.
SIFT는 흐릿한 이미지에서 다른 이미지를 빼서 밝기가 급격하게 변하는 영역을 강조하는 가우시안 차이(DoG)를 계산합니다. 이러한 영역은 이미지를 확대하거나 축소할 때 일관성을 유지하기 때문에 후보 키포인트로 선택됩니다.
일부 후보 키포인트는 약하거나 불안정할 수 있으므로 모든 후보 키포인트가 유용한 것은 아닙니다. 이를 개선하기 위해 SIFT는 테일러 급수 확장이라는 수학적 방법을 사용하여 키포인트의 정확한 위치를 보다 정확하게 추정할 수 있도록 합니다.
이 단계에서는 신뢰할 수 없는 키포인트가 제거됩니다. 주변과 혼합되어 대비가 낮은 키포인트는 삭제되며, 가장자리에 직접 위치한 키포인트는 너무 쉽게 이동할 수 있으므로 삭제됩니다. 이 필터링 단계를 거치면 가장 안정적이고 특징적인 키포인트만 남게 됩니다.
안정적인 키포인트가 식별되면 SIFT는 회전 불변성을 유지하므로 이미지를 옆으로 돌리거나 거꾸로 돌려도 일치시킬 수 있습니다. 이를 위해 SIFT는 각 키포인트 주변의 밝기가 어떻게 변하는지를 분석하는데, 이를 그라데이션이라고 합니다. 그라데이션은 픽셀 강도의 변화 방향과 강도를 모두 보여주며, 함께 포인트 주변의 국부적인 구조를 포착합니다.
각 키포인트에 대해 SIFT는 주변 영역 내의 기울기를 고려하고 이를 방향 히스토그램으로 그룹화합니다. 이 히스토그램에서 가장 높은 피크는 강도 변화의 주된 방향을 나타내며, 이 방향이 키포인트의 방향으로 지정됩니다. 강도가 변화하는 방향을 나타내는 그라데이션 방향과 그 변화의 강도를 나타내는 그라데이션 크기가 모두 이 히스토그램을 만드는 데 사용됩니다.
거의 비슷한 강도의 다른 피크가 있는 경우, SIFT는 동일한 키포인트에 여러 방향을 할당합니다. 이렇게 하면 개체가 비정상적인 각도로 나타날 때 중요한 특징이 손실되는 것을 방지할 수 있습니다. 각 키포인트를 방향에 맞게 정렬함으로써 SIFT는 다음 단계에서 생성되는 설명자가 일관성을 유지하도록 합니다.
즉, 동일한 물체의 두 이미지가 서로 다르게 회전하더라도 방향이 정렬된 키포인트는 여전히 올바르게 일치합니다. 이 단계는 SIFT가 회전을 처리하는 강력한 기능을 제공하고 이전의 특징 감지 방법보다 훨씬 더 강력하게 만드는 요소입니다.
SIFT의 마지막 단계는 다른 이미지에서 인식할 수 있도록 각 키포인트에 대한 설명을 작성하는 것입니다.
SIFT는 각 키포인트 주위에 약 16×16픽셀 크기의 작은 정사각형 패치가 있는 것을 보고 이를 구현합니다. 이 패치는 먼저 키포인트의 방향에 맞춰 정렬되므로 회전에 영향을 받지 않습니다. 그런 다음 패치는 4개의 작은 사각형으로 이루어진 격자로 나뉩니다.
각각의 작은 사각형에서 SIFT는 밝기가 다른 방향으로 어떻게 변하는지를 측정합니다. 이러한 변화는 히스토그램이라는 형태로 저장되는데, 히스토그램은 가장 일반적인 방향을 보여주는 차트와 같습니다. 각 사각형은 고유한 히스토그램을 가지며, 16개의 사각형이 합쳐지면 16개의 히스토그램이 생성됩니다.
마지막으로, 이러한 히스토그램은 총 128개의 단일 숫자 목록으로 결합됩니다. 이 목록을 특징 벡터라고 하며, 키포인트의 지문과 같은 역할을 합니다. 이 지문은 포인트 주변의 고유한 질감과 구조를 캡처하기 때문에 이미지의 크기, 회전, 조명이 다르더라도 동일한 키포인트를 여러 이미지에 걸쳐 일치시킬 수 있습니다.
이제 SIFT의 정의와 작동 방식에 대해 더 잘 이해했으니 컴퓨터 비전에서 실제 적용되는 몇 가지 사례를 살펴봅시다.
SIFT의 주요 용도 중 하나는 물체 인식 및 감지입니다. 여기에는 물체가 항상 똑같아 보이지 않더라도 이미지에서 물체를 인식하고 위치를 찾도록 컴퓨터에게 학습시키는 것이 포함됩니다. 예를 들어, SIFT는 책이 카메라에 가까이 있든, 멀리 있든, 비스듬히 회전되어 있든 상관없이 책을 감지할 수 있습니다.
이것이 작동하는 이유는 SIFT가 매우 독특하고 안정적인 키포인트를 추출하기 때문입니다. 이러한 키포인트가 SIFT 디스크립터와 짝을 이루면 SIFT 특징을 형성하여 여러 이미지에서 동일한 물체를 안정적으로 일치시킬 수 있는 방법을 제공합니다. 이러한 특징은 일관성을 유지하는 물체의 고유한 세부 사항을 캡처하여 물체의 크기, 위치 또는 방향이 변경되더라도 이미지 전반에서 신뢰할 수 있는 특징 매칭을 가능하게 합니다.
딥러닝이 대중화되기 전, SIFT는 객체 인식 시스템을 구축하는 가장 신뢰할 수 있는 방법 중 하나였습니다. 대규모 이미지 데이터 세트에서 객체를 매칭해야 하는 연구 및 애플리케이션에서 널리 사용되었지만, 상당한 컴퓨팅 리소스를 필요로 하는 경우가 많았습니다.
여러 장의 사진을 이어 붙여 만든 넓은 사진인 파노라마 이미지를 만드는 데도 SIFT를 사용할 수 있습니다. SIFT를 사용하면 서로 다른 이미지의 겹치는 부분에서 특징적인 키포인트를 찾은 다음 서로 일치시킵니다. 이러한 일치점은 사진을 어떻게 정렬해야 하는지에 대한 스티칭 과정을 안내하는 앵커 역할을 합니다.
매칭이 완료되면 스티칭 알고리즘을 사용하여 올바른 정렬을 계산할 수 있으며, 종종 한 이미지를 다른 이미지에 매핑하는 기하학적 변환을 사용합니다. 그런 다음 이미지를 블렌딩하여 이음새가 사라지도록 합니다. 최종 결과물은 여러 장의 사진으로 만들어졌지만 하나의 와이드 사진처럼 보이는 매끄러운 파노라마 사진입니다.
SIFT의 또 다른 흥미로운 응용 분야는 서로 다른 각도에서 찍은 여러 장의 2D 사진을 결합하여 3차원 모델을 구축하는 3D 재구성입니다. SIFT는 이러한 이미지에서 동일한 점을 찾아 일치시키는 방식으로 작동합니다.
일치하는 점이 발견되면 삼각 측량(서로 다른 시점에서 깊이를 계산하는 방법)을 사용하여 해당 점의 3D 위치를 추정할 수 있습니다. 이 프로세스는 여러 개의 겹치는 이미지를 사용하여 사진을 촬영한 카메라의 위치와 함께 장면의 3D 모양을 추정하는 기술인 모션에서 구조화(SfM)의 일부입니다.
그 결과 일반적으로 객체나 환경의 윤곽을 나타내는 공간의 포인트 모음인 3D 포인트 클라우드가 생성됩니다. SIFT는 움직임으로부터 구조를 실용적으로 만든 최초의 도구 중 하나였습니다. 오늘날에는 최신 기술이 더 빠르고 일반화되었지만, 속도보다 정확성이 더 중요한 경우에는 SIFT가 계속 적용됩니다.
SIFT는 로봇 공학, 특히 시각적 SLAM(동시 위치 파악 및 매핑)에도 사용되었습니다. SLAM을 사용하면 로봇이 자신의 위치를 파악하는 동시에 주변 환경의 지도를 구축할 수 있습니다.
SIFT 키포인트는 조명이나 각도가 바뀌어도 로봇이 여러 프레임에서 인식할 수 있는 신뢰할 수 있는 랜드마크 역할을 합니다. 로봇은 이러한 랜드마크를 추적하여 위치를 추정하고 즉시 지도를 업데이트할 수 있습니다. 오늘날 로봇 공학에서는 더 빠른 특징점 감지기가 더 자주 사용되지만, SIFT는 초기 SLAM 시스템에서 중요한 역할을 했으며 속도보다 견고성이 더 중요한 경우에는 여전히 핵심적인 역할을 합니다.
SIFT 알고리즘은 컴퓨터 비전에서 널리 사용되어 왔으며 신뢰할 수 있는 방법으로 알려져 있지만, 몇 가지 단점도 있습니다. 그렇기 때문에 프로젝트에 적합한지 결정하기 전에 장단점을 잘 따져보는 것이 중요합니다. 이제 주요 강점과 한계를 살펴보겠습니다.
다음은 SIFT 알고리즘 사용의 몇 가지 장점입니다:
다음은 SIFT 알고리즘 사용의 몇 가지 단점입니다:
SIFT의 장단점을 살펴보는 과정에서 많은 한계가 더 발전된 기술을 위한 길을 열어주었다는 것을 알 수 있습니다. 특히 컨볼루션 신경망(CNN)이 강력한 대안으로 떠올랐습니다.
CNN은 인간의 시각 시스템에서 영감을 얻은 딥러닝 모델의 일종입니다. 가장자리와 질감과 같은 단순한 패턴부터 시작하여 점차 복잡한 모양과 물체까지 이미지를 레이어 단위로 처리합니다. SIFT의 수작업 특징 규칙과 달리 CNN은 데이터에서 직접 특징 표현을 학습합니다.
이러한 데이터 기반 학습은 CNN이 설명자 매칭과 분류 작업에서 SIFT보다 뛰어난 성능을 발휘할 수 있음을 의미합니다. 또한 CNN은 더 표현력이 풍부하고 강력하여 시각적 데이터의 가변성과 복잡성에 더 잘 적응할 수 있습니다.
예를 들어, CNN 기반 모델은 수천 개의 카테고리에 걸쳐 수백만 개의 라벨이 지정된 이미지가 포함된 대규모 벤치마크 데이터 세트인 ImageNet에서 획기적인 결과를 달성했습니다. 알고리즘이 사물을 얼마나 잘 인식하고 분류할 수 있는지 테스트하기 위해 설계된 ImageNet은 기존의 특징 기반 방법과 딥러닝 간의 격차를 강조할 수 있습니다.
CNN은 훨씬 더 풍부하고 유연한 표현을 학습하여 변화하는 조명 아래에서, 다양한 시점에서, 심지어 부분적으로 가려진 상태에서도 물체를 인식할 수 있어 SIFT가 종종 어려움을 겪는 시나리오에서 빠르게 SIFT를 능가했습니다.
스케일 불변 특징 변환 알고리즘은 컴퓨터 비전의 역사에서 중요한 위치를 차지하고 있습니다. 변화하는 환경에서도 특징을 감지할 수 있는 안정적인 방법을 제공했으며 오늘날 사용되는 많은 방법에 영향을 미쳤습니다.
최신 기술은 더 빠르고 효율적이지만, SIFT가 그 토대를 마련했습니다. SIFT는 오늘날 컴퓨터 비전의 발전이 어디에서 시작되었는지 보여주고 최첨단 AI 시스템이 얼마나 발전했는지 강조합니다.
글로벌 커뮤니티에 참여하여 컴퓨터 비전에 대해 자세히 알아보려면 GitHub 리포지토리를 확인하세요. 솔루션 페이지에서 농업 분야의 AI와 소매업의 컴퓨터 비전과 같은 혁신 사례를 살펴보세요. 라이선스 옵션을 확인하고 나만의 컴퓨터 비전 모델 구축을 시작하세요.