[CV] Feature Detection and Matching(4) - Descriptor(SIFT)

Yeontachi·2025년 8월 20일

Computer Vision Note

목록 보기
30/47
post-thumbnail

특징점을 찾아내는 것만으로는 서로 다른 이미지에서 동일한 물체를 정확히 대응시키기 어렵다. 왜냐하면 단순히 좌표 정보만으로는 영상의 크기 변화, 회전, 조명 변화에 따라 특징점이 달라져버리기 때문이다. 따라서 검출된 특징점을 서로 비교하고 매칭을 위해서는, 각 특징점 주변의 고유한 패턴을 일정한 규칙에 따라 수치적으로 표현할 필요가 있다. 이때 사용되는 것이 바로 Feature Descriptor이다.

Feature Descriptor의 역할은 각 특징점을 마치 지문처럼 고유한 벡터로 요약하는 것이다. 서로 다른 이미지에서 동일한 물체의 동일한 특징점이라면, 두 Descriptor는 유사한 값을 가져야 한다. 이를 통해 확대\cdot축소되거나 회전된 이미지에서도 안정적으로 같은 물체의 같은 위치를 대응시킬 수 있다.

이 가운데 대표적인 방법이 SIFT(Scale-Invariant Feature Transform) Descirptor이다. SIFT는 이름 그대로 스케일 불변성과 회전 불변성을 동시에 확보하여, 물체가 다른 크기로 나타나거나 회전된 경우에도 동일하게 특징을 표현할 수 있도록 설계되었다. 구체적으로는, 특징점 주변의 패치에서 그래디언트(방향과 크기)를 계산하고 이를 작은 셀 단위로 나눈 뒤, 각 셀 안에서 방향 분포를 히스토그램으로 표현한다. 마지막으로 모든 히스토그램을 연결하여 하나의 고차원 벡터(일반적으로 128차원)을 만들고, 이를 정규화하여 조명 변화에도 강건한 특징 표현을 얻는다.

결과적으로 Descriptor는 특징점을 설명하는 고유한 지문의 역할을 하며, 이를 통해 서로 다른 이미지에서 같은 물체를 안정적으로 매칭할 수 있다.

SIFT

SIFT 디스크립터는 특징점을 단순히 하나의 점으로 정의하는 데서 그치지 않고, 그 점을 중심으로 한 주변 영역의 패턴을 벡터 형태로 요약하는 과정이다. 이 과정을 통해 서로 다른 이미지에서도 같은 특징점을 안정적으로 비교할 수 있다.

디스크립터 생성 과정

특징점 주변의 일정한 크기 패치를 가져온 뒤, 각 픽셀의 기울기(gradient) 방향과 크기를 계산한다. 이를 작은 격자(Sub-patch)로 나누고, 각 격자마다 방향 히스토그램(orientation histogram)을 생성하낟. 히스토그램은 픽셀의 방향성을 일정한 구간으로 나누어 누적하는 방식으로 구성되며, 결과적으로 패치의 지역적인 구조가 요약된다.

이렇게 얻은 모든 격자들의 히스토그램을 연결(concatenate)하여 최종적으로 하나의 벡터를 형성한다. 이 벡터는 보통 128차원으로 표현되며, 정규화를 통해 조명 변화의 영향을 줄인다. 따라서 SIFT 디스크립터는 단순한 좌표 정보가 아니라, 주변 패턴의 방향성 분포를 요약한 고차원 벡터라고 할 수 있다.

회전 불변성


SIFT는 단순히 크기(Scale)에만 강건한 것이 아니라, 회전에 대해서도 불변성을 갖는다. 이를 위해 각 특징점 패치에서 지배적인 기울기 방향(dominant orientation)을 계산하고, 이 방향을 기준으로 패치를 회전시켜 정규화한다. 이렇게 하면 이미지가 회전하더라도 같은 특징점은 동일한 좌표계(canonical orientation)에서 기술되므로 안정적인 매칭이 가능하다.

Properties

SIFT 디스크립터는 다음과 같은 성질을 가진다.

  • 완전 불변 : 스케일(Scale), 회전(Rotation)
  • 부분 불변 : 조명 변화(illumination), 카메라 시점 변화(viewpoint), 가림(occulusion), 복잡한 배경(clutter)

이러한 특성 덕분에 SIFT는 단순한 확대/축소나 회전뿐 아니라, 60도 이내의 시점 변화\cdot야간 같은 조명 차이에도 안정적으로 동작한다. 또한 계산 효율성이 높아 실시간으로 동작할 수 있으며, 공개된 라이브러리(e.g. VLFeat)를 통해 손쉽게 사용할 수 있다.

정리하자면, SIFT 디스크립터는 영상의 특징점을 스케일, 회전, 조명변화 등에 강건한 고차원 벡터로 표현하는 기법으로, 두 영상에서 동일한 물체의 동일한 특징점을 안정적으로 매칭할 수 있게 한다는 점이 핵심이다.

Examples

References

Slide credit: Kristen Grauman

Image credit: Lana Lazebnik

profile
기초를 다지는 중입니다.📚🧑‍💻

0개의 댓글