지역 특징점 검출과 매칭

이주희·2022년 12월 9일
0

코너검출

특징 : 영상으로부터 추출할 수 있는 유용한 정보
평균 밝기, 히스토그램, 에지, 직선성분, 코너

  • 지역 특징
    특정 부분 특징
    에지, 직선성분, 코너,,,

코너 : 에지의 방향이 급격하게 변하는 부분 (삼각형의 꼭짓점)
특징점 : 코너처럼 한 점의 형태로 표현되는 특징

해리스 코너 검출


w(x,y)는 균일한 값을 갖는 사각형 윈도우 또는 가우시안 형태의 가중치 갖는 윈도우

E(x,y) 값이 크면 코너임! ( 주변 픽셀과 값의 차이가 크기 때문)

det(M) =
이를 검사하기 위해 테일러 급수, 고윳값 분석 등의 수학적 기법 적용하여 R을 유도

  • k는 보통 0.04 ~ 0.06 사이의 값 사용

  • Det()는 행렬식을, Tr()은 대각합을 의미

  • Det(M) = 람다1 * 람다2

  • Tr(M) = 람다1 + 람다2

  • R >0 코너점

  • R<0 enge

  • |R|이 매우 작으면 flat

fast 코너 검출

위의 해리스와 다르게 단순 픽셀값 비교를 통해 코너 검출
주변 16개의 픽셀값 비교를 해서 p보다 충분히 밝거나 어두운 픽셀이 9개 이상 존재하면 코너!

점 p에서의 밝기를 Ip 라 하면

  • Ip + t보다 큰 픽셀이 9개 이상이라면
    어두운 영역이 뾰족하게 돌출된 코너
  • Ip - t보다 큰 픽셀이 9개 이상이라면
    밝은 영역이 뾰족하게 돌출된 코너

점 주변 코너도 함께 코너로 도출하는 경우가 많다
-> 비최대 억제 작업 필요
16개의 점과 픽셀 값 차이 합을 코너 점수로 정의
인접 코너중 코너 점수가 가장 큰 코너만 최종코너로 선택

크기 불변 특징점 검출과 기술

코너는 화전 불변 특징점
크기가 변경될 경우 코너로 검출 안될수도 있다!

SIFT 알고리즘

  1. 스케일 스페이스 구성
    가우시안 블러링을 단계별로 적용하여 구성한 영상 집합
  2. 가로 세로 반 줄여가면서 옥타브 형성

크기 불변 특징점 검출 시
인접한 가우시안 블러링 영상끼리 차를 이용함
-> DoG 영상

인접한 DoG 영상을 고려한 지역 극값 위치 특징점으로 사용

특징점 검출뿐만 아니라 특징점 주변 픽셀 값을 이용한 기술자 계산법도 포함
특징점 기술자 : 특징점 주변 영상의 특성을 여러개의 실수값으로 표현
-> 특징 벡터!

서로 같은 특징점이면 실수 구성이 일치해야함

-> 특징점 부근 영상으로부터 그래디언트 방향 히스토그램 추출하여 기술자로 이용

  • 특징점 근방으로부터 특징점의 주된 방향성분 계산

이후

  • SURF 알고리즘
    DoG 영상을 단순 이진 패턴으로 단순화, 속도 향상
  • KAZE 알고리즘
    가우시안 함수 대신 비등방성 확산 필터 사용
    비선형 스케일 스페이스 구축하여 특징점 검출

기술자가 128개 또는 64개 실수값

  • ORB
    FAST 코너 검출 방법
    크기 변화에 취약하므로 영상 크기 점진적 변화시켜 특징점 추출
    긱 특징점에서 주된 방향성분 계산, 방향 고려한 BRIEF 알고리즘으로 이진 기술자 계산
    -> 순수하게 특징점 기술자만을 생성하는 알고리즘

    p 값과 비교했을 때 이진수 110 생성함
    -> 방향성분 도출
    회전 불변한 BRIEF 기술자 계산
    기본적으로 256개 비교함

특징점 사이 거리는 해밍 거리 방법 사용
XOR 논리합

특징점 매칭

두 영상에서 추출한 특징점 기술자 비교하여 비슷한 특징점 찾음

DMatch 클래스

-> 두 영상의 특징점 매칭 정보를 보여줌
두 특징점이 유사하면 distance 값이 0에 가깝고 다르면 distance 값이 크게 나타남

특징점 매칭 클래스

  • match : 가장 비슷한 기술자 쌍 하나 찾음

  • knnMatch() : 비슷한 기술자 쌍 k개 찾음

  • radiusMatch() : 지정한 거리 반경 안 기술자 쌍 모두 찾아 반환

  • BFMatcher : 전수조사 매칭 실행
    모두 계산한 후 거리 작은 기술자 찾아 매칭

  • FlannBasedMatcher
    근사화된 최근방 이웃 알고리즘 빠르게 구현
    해밍 거리 사용하는 이진 기술자 사용 불가

호모그래피

투시변환과 같음
네개의 대응되는 점 있다면 호모그래피 행렬 구할 수 있음

영상 이어붙이기

파노라마
같은 위치 분간을 위해 유효한 특징점이 많아야 한다
매칭 수행하여 호모그래피 구해야함
호모그래피 기반으로 입력 영상을 변형하여 서로 이어붙이는 작업 수행
블랜딩까지 함

stitcher = cv2.Stitcher_create()
status, dst = stitcher.stitch(imgs)

0개의 댓글