메인페이지로  namespace cv 페이지로

namespace cv::xfeatures2d 페이지로

you in cv
you in xfeatures2d

cv::xfeatures2d::SIFT

Class SIFT : SIFF알고리즘을 사용하여 키포인트 및 컴퓨팅 설명자를 추출하는 클래스

typedef SIFT SiftDescriptorExtractor
typedef SIFT SiftFeatureDetector
정의된 헤더 : #include “nonfree.hpp”

상속된 다이어그램: cv::Algorithm >> cv::Feature2D >> cv::xfeatures2d::SIFT

맴버 함수 설명:

  SIFT 포인터를 반환하는 create함수

  static Ptr cv::xfeatures2d::SIFT::create	(
  		int 	nfeatures = 0,
  		int 	nOctaveLayers = 3,
  		double 	contrastThreshold = 0.04,
  		double 	edgeThreshold = 10,
  		double 	sigma = 1.6
  	)

변수의 의미:

nfeatures

The number of best features to retain. The features are ranked by their scores (measured in SIFT algorithm as the local contrast) 남길 특징점의 개수(SIFT의 지역대비로 측정)

nOctaveLayers

The number of layers in each octave. 3 is the value used in D. Lowe paper. The number of octaves is computed automatically from the image resolution.옥타브 층의 수이다 기본값 3은 D. Lowe의 논문에서 발표한 값이다.

contrastThreshold

The contrast threshold used to filter out weak features in semi-uniform (low-contrast) regions. The larger the threshold, the less features are produced by the detector. 임계값 (책의 191페이지를 보면 SIFT알고리즘은 특징점을 찾을 때 DOG를 이용하는데 DOG영상에서 특징점을 취할 때 이웃 점 중 최대 또는 최소가 되는 점을 취한다. 이러한 비교가 어려울 때(균일하지 않은, 대비가 적은 영역) 임계값을 이용해 특징점을 검출하는 것 같다.

edgeThreshold

The threshold used to filter out edge-like features. Note that the its meaning is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are filtered out (more features are retained). 모서리 모양의 특징을 걸러내는데 사용되는 임계값이다. 이 값이 클수록 더 적은 특징이 걸러진다. 즉 더 많은 특징을 반환한다.

sigma

The sigma of the Gaussian applied to the input image at the octave #0. If your image is captured with a weak camera with soft lenses, you might want to reduce the number. 0층의 옥타브의 이미지(토대 영상)에 적용되는 분산값로 영상의 품질에 따라 조절 가능하다. 기본값은 1.6으로 실험을 통한 결과이다.


알고리즘 설명:


위는 스케일 공간을 구축하는 방법에 대한 사진이다
  이렇게 구축한 공간에서 정규 라플라시안과 유사한 DOG(different of gaussian)식을 통해  한 옥타브에서 5개의 DOG영상을 얻는다.(DOG는 이웃한 두 영상의 같은 위치의 화소간의 차)
  이 5개의 영상 중 맨 앞과 맨끝을 제외한 3개의 영상에서 이웃한 화소 중 최대 또는 최소값을  특징점으로 취하되, 임계값보다 작은 극점은 제외한다.
  이렇게 검출된 극점은 정보를 갖고  이를 변환하여 을 얻을 수 있다.

더 많은 정보