Skip to content

Feature detection

In computer vision and image processing the concept of feature detection refers to methods that aim at computing abstractions of image information and making local decisions at every image point whether there is an image feature of a given type at that point or not. The resulting features will be subsets of the image domain, often in the form of isolated points, continuous curves or connected regions.

Categories

간략한 특징

Harris, GFTT, FAST 코너 검출 방법의 문제점

Harris, GFTT, FAST 코너 검출 방법은 이동, 회전 변화에 강인하지만 크기 변환에 취약하다는 단점이 있습니다.

Edge detection

Corner detection

Blob detection

  • Laplacian of Gaussian (LoG)
  • Difference of Gaussians (DoG)
  • Determinant of Hessian (DoH)
  • Maximally stable extremal regions
  • PCBR
  • SimpleBlobDetector

Ridge detection

Hough transform

Structure tensor

  • Structure tensor
  • Generalized structure tensor

Affine invariant feature detection

  • Affine shape adaptation
  • Harris affine
  • Hessian affine

Scale space

  • Scale-space axioms
  • Implementation details
  • Pyramids

Feature description

이미지에서 Feature Detection (특징 검출) 하기 위해서는 이미지 내의 특이한 패턴이나 구조를 찾아내는 것이 중요하다. 이를 위해 SIFT, SURF, ORB 등의 알고리즘을 사용하는데 이 알고리즘들은 이미지에서 특징점을 검출하고, 이들 주변에서 지역적인 패턴을 추출하여 특징 디스크립터를 생성한다.

Scale-invariant feature transform (SIFT)
이미지의 크기와 회전에 대한 불변성을 가지는 특징점 검출 알고리즘
이미지의 크기와 회전에 강한 특징을 가지고 있어 대부분의 상황에서 안정적인 성능을 보여줌
하지만 SIFT는 컴퓨팅 리소스가 많이 소요
Speeded up robust features (SURF)
SIFT에서 특징점 검출 및 기술자 계산 속도를 개선한 알고리즘
SIFT와 비슷한 성능을 가지면서도 더 빠른 속도를 제공
Oriented FAST and Rotated BRIEF (ORB)
FAST와 BRIEF 알고리즘을 결합한 방식으로, SIFT와 SURF 대비 속도가 매우 빠르면서도 좋은 성능을 가진 알고리즘
이미지를 회전하거나 크기를 바꿨을 때 특징점 검출 결과가 바뀌지 않는 특징
특히, 임베디드 기기나 모바일 앱 등에서의 실시간 연산에 적합한 알고리즘이라 폭넓게 사용
Features from Accelerated Segment Test (FAST)
이미지에서 빠르게 특징점을 검출하는 알고리즘
단순하고 빠른 알고리즘이기 때문에 다른 알고리즘들과 함께 사용되어, 초기 특징점 검출 후, 보다 정확한 검출 알고리즘(예: BRIEF, SIFT, SURF)을 사용하는 경우가 많음
Binary Robust Invariant Scalable Keypoints (BRISK)
2011년에 논문으로 발표된 알고리즘으로, 이미지에서 특징점을 검출하기 위해 스케일 공간(scale space)에서 특정한 크기의 패치(patch)를 생성하고, 패치 내의 intensity difference를 이용하여 FAST 방법으로 특징점을 검출
특징점을 묘사하기 위해 intensity difference 값들의 분포를 이용하여 특징점을 기술하는 binary descriptor를 사용
Accelerated-KAZE (AKAZE)
2013년에 발표된 알고리즘으로, 이미지에서 특징점을 검출하기 위해 KAZE 방법을 사용
KAZE는 이미지의 스케일 공간에서 multiscale 방식으로 이미지를 블러링하고, Difference of Gaussian(DoG)를 사용하여 scale-space 내에서 극한 값(extrema)을 찾�음. 이후, extrema에서 Hessian matrix를 이용하여 특징점을 검출
AKAZE는 KAZE의 변형으로, 이를 더 빠르게 처리할 수 있도록 설계
AKAZE에서는 scale-space 내에서 특징점을 검출한 이후, 그 특징점에 대한 방향(direction)을 추출하여, 그 방향에 따라 특징점의 묘사(descriptor)를 생성
Gradient Location and Orientation Histogram (GLOH)
GLOH는 객체 인식 및 이미지 분류에서 강력한 특징을 추출하는 방법입니다. 특징 벡터는 이미지의 특정 지역 내에서 그라디언트의 방향과 위치 정보를 결합하여 생성됩니다.
Histogram of oriented gradients (HOG)
HOG는 주로 사람 인식, 객체 탐지 및 이미지 분류에 사용되는 특징 추출 방법입니다. 주어진 이미지에서 형태적인 특징을 추출하여 객체의 모양을 잘 반영하는 벡터를 생성합니다.

각각의 알고리즘 비교

OpenCV 주요 특징점 알고리즘과 기술자 특성

Feature_detection_-_compare_1.png

연산 속도 비교

Feature_detection_-_compare_2.png

ORB는 내부적으로 FAST 알고리즘이 구현되어 있기 때문에 제일 빠릅니다.

반복 검출율 비교

Feature_detection_-_compare_3.png

특징점 검출 알고리즘 성능 비교

Feature_detection_-_compare_4.png

ORB는 매칭 퀄리티, 검출 결과가 안좋지만 속도가 빨라 자주 이용하고 있습니다.

매칭하는 성능에 있어서는 AKAZE가 더 좋습니다.

매칭 성능은 SHIFT가 가장 좋지만 연산 시간이 제일 느립니다.

Feature matching

두 이미지에서 추출한 특징 디스크립터 (Feature Descriptor)를 비교하여 대응되는 특징점 쌍을 찾아내는 것이 Feature Matching (특징 매칭)의 핵심이다. 매칭 방법에는 주로 최근접 이웃(Nearest Neighbor) 매칭과 RANSAC(Random Sample Consensus)을 이용한 매칭이 사용된다.

OpenCV APIs

cv2.BFMatcher()
브루트 포스 매칭(brute-force matching) 알고리즘을 사용하여 특징 매칭을 수행
특히 작은 데이터 셋에서 높은 정확도를 보이며, 대부분의 경우에는 cv2.FlannBasedMatcher() 보다 느리지만 더 나은 결과를 얻을 수 있음
cv2.FlannBasedMatcher()
빠른 Nearest Neighbor 검색을 위한 특징 매칭 알고리즘 중 하나
FLANN (Fast Library for Approximate Nearest Neighbors) 알고리즘을 사용하여 특징 디스크립터 사이의 가장 가까운 이웃(Nearest Neighbor)을 찾음
특징 기술자들의 집합에서 k-NN(k-Nearest Neighbor)을 검색하여 두 이미지에서 유사한 특징을 매칭. 기본적으로, cv2.FlannBasedMatcher는 k=2로 설정
  • index_params: Flann 기반 매칭에서 인덱스를 설정하는 파라미터. 딕셔너리 형태로 전달되며, algorithm과 trees 두 가지 하위 파라미터를 가짐
    • algorithm : 매칭에 사용할 알고리즘을 나타내며, 보통은 cv2.flann.IndexParams 클래스의 상수 중 하나를 사용
    • trees : 매칭에 사용될 트리의 개수
  • search_params: 매칭을 수행할 때 검색할 이웃의 개수와 검색할 최대 거리를 설정하는 파라미터. 딕셔너리 형태로 전달되며, checks와 eps 두 가지 하위 파라미터를 가짐
    • checks : 검색할 이웃의 개수
    • eps : 검색할 최대 거리

Deep learning based

  • LoFTR - 트랜스포머를 사용한 감지기 없는 로컬 피쳐 매칭

Feature point

어떤 특정한 점들의 corresponding point를 얻기 위해선 점의 reliable과 distinctive가 필요하다. (corresponding 되는 점들끼리만 matching 되야 하므로)

이러한 feature point는

  • Image alignment (homography, fundamental matrix)
  • 3D reconstruction
  • Motion tracking
  • Object recognition
  • Indexing and database retrieval
  • Robot navigation

등에 사용이 가능하다.

See also

Favorite site

References


  1. UpdateOnFeatures_StefanHaller.pdf 

  2. Datascienceschool.net_-_7eb4b2a440824bb0a8c2c7ce3da7a4e2.ipynb.zip