전체 글

전체 글

    [OpenCV with Python] 특징점 검출과 매칭 : 특징점 매칭

    [OpenCV with Python] 특징점 검출과 매칭 : 특징점 매칭

    특징점 매칭 - Feature point matching 특징점 매칭은 두 영상에서 추출한 특징점 기술자를 비교하여 서로 유사한 기술자를 찾는 작업이다. 왼쪽은 4개의 기술자, 오른쪽은 3개의 기술자를 계산했으며, 가장 비슷한 것을 찾으므로 4개의 점은 다 매칭이 된다. 위 그림에서 #3이 잘못 매칭된 것을 확인할 수 있는데 알고리즘은 가장 거리가 짧은 곳을 찾아서 매칭을 한다. 따라서 이처럼 잘못 연결된 매칭을 걸러내는 작업을 해야한다. 특징 벡터 유사도 측정 방법 실수 특징 벡터 : L2 노름(L2 norm) 사용 이진 특징 벡터 : 해밍 거리(hamming distance) 사용 OpenCV 특징점 매칭 클래스 match는 가장 비슷한거 1개를 매칭 knnMatch는 비슷한거 k개를 매칭 radiu..

    [OpenCV with Python] 특징점 검출과 매칭 : 특징점 기술

    [OpenCV with Python] 특징점 검출과 매칭 : 특징점 기술

    기술자 - Descriptor, Feature vector 기술자는 특징벡터라고 불리며, 검출된 특징점 근방의 부분 영상을 표현하는 실수 또는 이진 벡터를 의미한다. 실수값으로 표현한 영상의 모양 혹은 색상 분포로 이해하면 되며, OpenCV에서는 2차원 행렬(numpy.ndarray)로 표현한다. 행 개수는 특징점 개수, 열 개수는 특징점 기술자 알고리즘에 의해 다르게 정의된다. 표현 방법 실수 기술자: numpy.float32 이진 기술자: numpy.uint8 실수 기술자 numpy.float32 자료형을 사용하여 실수 정보를 저장하는 방식으로, 사용하는 알고리즘은 SIFT, SURF, KAZE 등이 있다. 실수 기술자는 보통 L2 노름(L2 norm)을 사용하여 유사도를 판단한다. 특징점 부근에 ..

    [OpenCV with Python] 특징점 검출과 매칭 : 특징점 검출

    [OpenCV with Python] 특징점 검출과 매칭 : 특징점 검출

    Harris, GFTT, FAST 코너 검출 방법의 문제점 Harris, GFTT, FAST 코너 검출 방법은 이동, 회전 변화에 강인하지만 크기 변환에 취약하다는 단점이 있다. 확대된 영상에서 작은 사각형으로 코너를 찾으려하면 기존의 코너가 에지처럼 보이게 되며, 이 경우에 다양한 크기 관점에서 특징점을 검출하는 것이 필요하다. 고유한 특징을 나타내는 점들을 집합한 것을 특징점(feature point) or 키포인트(keypoint) or 관심점(interest point) 라고 한다. 특징점 주변의 부분 영상을 잘라서 특징점에 대한 특징을 기술하는 방법을 기술자(descriptor) or 특징 벡터(feature vector)이라고 한다. 두 개의 영상이 같은지 다른지 판별하기 위해 매칭을 할 때 ..

    [OpenCV with Python] 특징점 검출과 매칭 : 코너 검출

    [OpenCV with Python] 특징점 검출과 매칭 : 코너 검출

    코너 검출 코너는 영상안에서 그림이 나타날 때 객체가 뾰족하게 튀어나온 부분이다. 코너는 변별력이 높은 편이며, 영상의 이동, 회전 변환에 강하다. 이와 반대로 평탄한 영역(flat)과 에지(edge) 영역은 고유한 위치를 찾기 어렵다. A : 평탄 B : 엣지 C : 코너 평탄한 영역은 하늘에서 추출한 부분 영상으로, 이 부분 영상이 원본 영상에서 어느 부분인지 명확하지 않다. 모호한 부분이 많아 변별력이 떨어지며, 영상의 특징을 설명하는 데 적합하지 않다. 에지는 바다와 하늘이 만나는 부분으로, 원본 영상에서 x좌표가 명확하게 어느 부분인지 정확하게 찾기가 어렵다. 고유성과 변별성이 떨어진다. 코너는 로컬한 특징을 갖고있어서 변별성이 있고 고유성이 있다. 코너점을 찾아서 점들의 특징을 이용하여 두 개..