ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 특징점 기술
    컴퓨터 비젼(Computer Vision)/특징점 검출과 매칭 2022. 2. 22. 11:37

    기술자(descriptor, feature vector)

    • 특징점 근방의 부분 영상을 표현하는 실수 또는 이진 벡터
    • OpenCV에서는 2차원 행렬(np.ndarray)로 표현
      • 행 개수: 특징점 개수
      • 열 개수: 특징점 기술자 알고리즘에 의해 정의됨

     

    실수 기술자

    주로 특징점 부근 부분 영상의 방향 히스토그램을 사용

    https://www.codeproject.com/articles/619039/bag-of-features-descriptor-on-sift-features-with-o?fid=1836776&df=90&mpp=25&sort=Position&view=Normal&spc=Relaxed&prof=True&fr=151

    • 특징점 근방 부분 영상의 주 방향 성분을 계산하여 보정
    • 보정된 사각형 영역을 4x4구역으로 분할 -> 각 구역에서 8방향 히스토그램을 구함
    • 16x8 = 128 차원의 실수 벡터 생성 (알고리즘 마다 다름)
    • SIFT, SURF, KAZE 등이 있음
    • L2 Norm을 사용하여 유사도 판단

    이진 기술자

    • 이진 테스트(binary test)를 이용하여 부분 영상의 특징을 기술
    • 특징점주변 부분 영상을 잘라내어 미리 정의한 점을 이용해 밝기 비교를 통해 계산
    • 위 예시에서
      • 1번과 2번 중 1번이 더 밝으므로 1
      • 2번과 3번 중 3번이 더 밝으므로 0
      • 1번과 3번 중 1번이 더 밝으므로 1
      • 위 비트를 취합하여 101 (3비트) 자료를 생성하여 이진 테스트를 통해 부분 영상의 특징을 기술
    •  
    • 보통 np.uint8 자료형을 사용하여 비트 단위로 영상 특징 정보를 저장
    • 이진 기술자를 사용하는 알고리즘은 AKAZE, ORB, BRIEF 등이 있다.
    • Hamming distance를 사용하여 유사도를 판단 

     

    특징점 기술자 계산 함수

    cv2.Feature2D.Compute(image, keypoints, descriptor=None) -> keypoints, descriptors
    • image: 입력 영상
    • keypoints: 검출된 특징점 정보. cv2.KeyPoint 객체 리스트
    • descriptors: 특징점 기술자 행렬

    특징점 검출 및 기술자 계산 함수

    cv2.Feature2D.detectAndCompute(image, mask=None, descriptor=None) -> keypoints, descriptors
    • image: 입력 영상
    • mask: 마스크 영상
    • keypoints: 검출된 특징점 정보. cv2.KeyPoint 객체 리스트
    • descriptors: 특징점 기술자 행렬

     

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

    특징점 알고리즘 기술자 차원 데이터 타입 이진 기술자 Extra Moduel 비고
    SIFT 128 np.float32 X O 특허 만료
    SURF 64 np.float32 X O 특허
    KAZE 64 np.float32 X X  
    AKAZE 61 np.uint8 O X  
    ORB 32 np.uint8 O X 가장 빠름
    BRISK 64 np.uint8 O X  

     

     

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

    연산 시간 비용

    Tareen, Shaharyar Ahmed Khan, and Zahra Saleem. "A comparative analysis of sift, surf, kaze, akaze, orb, and brisk."  2018 International conference on computing, mathematics and engineering technologies (iCoMET) . IEEE, 2018.

    위 기술된 알고리즘중 ORB(1000)의 경우가 가장 나은 성능을 보여준다. 내부적으로 FAST 알고리즘을 통해 개발되서 그렇다.

     

    반복 검출율

    Tareen, Shaharyar Ahmed Khan, and Zahra Saleem. "A comparative analysis of sift, surf, kaze, akaze, orb, and brisk."  2018 International conference on computing, mathematics and engineering technologies (iCoMET) . IEEE, 2018.

     

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

    http://www.diva-portal.org/smash/get/diva2:927480/FULLTEXT01.pdf

     

    참고

    https://docs.opencv.org/4.3.0/db/d27/tutorial_py_table_of_contents_feature2d.html

    '컴퓨터 비젼(Computer Vision) > 특징점 검출과 매칭' 카테고리의 다른 글

    좋은 매칭 선별  (0) 2022.02.22
    특징점 매칭  (0) 2022.02.22
    특징점 검출  (0) 2022.02.21
    코너 검출  (0) 2022.02.21

    댓글

Designed by Tistory.