2022.06.20 금일은 특징점 검출과 매칭 특징점검출에 관한 강의였다.
지난 시간 Harris , GFTT, FAST 코너에 대한 설명 중 문제점이 있었다.이동, 회전 변환에는 강인하지만 크기 변환에는 취약하다. 비교 영상에서 확대가 되거나 축소가 되면 코너가 아닌 것처럼 보일 수 있기 때문
작은 객체를 봤을때는 코너처럼 보이기는 하지만 크기를 키우거나 확대하면 엣지로 보일 수 있다.그래서 다양한 크기 관점에서 특징 검출이 필요하다. * 특징점(feature point) = 키포인트(keypoint) = 관심점(interest point)
* 기술자(descriptor) = 특징벡터(feature vector)
* 특징 벡터(feature vector) : 패턴 인식에서는 인식 대상이 되는 객체가 특징으로 표현되고, 특징은 차원을 가진 벡터로 표현되는데 이를 특징벡터라고 한다.
크기 불변 특징점 검출 방법
- ISFT,KAZE,AKAZE,ORB 등 다양한 특징점 검출 방법에서 스케일 스페이스 ( Scale-space ) , 이미지 피라미드 ( image
pyramid ) 를 구성하여 크기 불변 특징점을 검출
- 내부적으로 영상을 리사이즈 해가면서 초점이 안맞는거 같은 사진을 가상으로 만들어내서 ( Sclae-space * 가우시안
필터링을 포함한 리사이즈 기법) 반복적으로 검출이되는 코너를 정확하게 판단하는 검출방법
OpenCV 특징점 검출 클래스 : Feature2D 클래스와 파생 클래스
기존에는 xfeatureds2d.SIFT 와 cv2.xfeatures2d.SURF 알고리즘에는 특허가 걸려있어 상업적으로
이용할 시에는 특허사용료를 지불해야 했었는데 현재 SIFT 알고리즘은 특허가 만료되어
OpenCV 4.4 버젼 이후로는 무료로 사용할 수 있다.
위 방법들이 특징점을 검출하는 방법, 특징점을 기술하는 방법이 있는데특징점을 기술할 수 없는 알고리즘에 기술을 하라고 명령을 주면 프로그램이 죽을 수 있으니 조심해야한다.
위 클래스들을 사용하기 위해서는 각 객체를 생성해줘야한다.
cv2.KAZE_creat(, ...) ->retval
cv2.AKAZE_create(, ...)->retval
cv2.ORB_create(, ...)->retval
cv2.xfeatures2d.SIFT_create(, ...)->retval
이와같이 각각의 클래스들의 객체를 생성해주고 실제 특징점 검출 함수를 사용한다.
cv2.Feature2D.detect ( image, mask=None ) -> keypoints
image : 입력 영상
mask : 마스크 영상
keypoints : 검출된 특징점 정보. cv2.KeyPoint 객체의 리스트
( pt, size, angle )
검출된 특징점 그리기 함수
cv2.drawKeypoints ( image, keypoints, outImage, color=None, flags = None ) -> outImage
image : 입력 영상
keypoints : 검출된 특징점 정보
outImage : 출력 영상
color : 특징점 표현 색상.
기본값은 ( -1,-1,-1,-1 )이며, 이경우 임의의 색상으로 표현.
flags : 특징점 표현 방법
* cv2.DRAW_MATCHES_FLAGS_DEFUALT : 특징점 위치를 표현하는 작은 크기의 원
cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS : keyPoints 에 있는 size, angle을 기반으로 하여
원으로 표현
위 결과영상들을 보면 방향성이 없는 결과도 볼 수 있다. ( KAZE는 방향성분이 0도로 표현 )
좌측에 있는 영상은 정면을 찍은 사진이고 , 우측에 있는 영상은 기울인 상태로 측면에서 찍은 사진인데두개의 영상에서 공통적으로 찾아지는 코너들이 있다. ( 특징점 ) 위 영상은 특징점들이 너무 많아 확인하기는 어렵지만 이렇듯 2개의 영상을 다른 각도와 다른 방향에서 찍어도위 알고리즘들을 통해 고유 특징점들을 찾아내어 비교할 수 있다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
'Program > OPEN_CV' 카테고리의 다른 글
[Open CV] 특징점 검출과 매칭 _ 특징점 매칭 (0) | 2022.06.22 |
---|---|
[Open CV] 특징점 검출과 매칭 _ 특징점 기술 (0) | 2022.06.21 |
[Open CV] 특징점 검출과 매칭 _ 코너 검출 (0) | 2022.06.19 |
[Open CV] 영상 분할과 객체 검출 _ 실전코딩 ( 스노우앱 ) (0) | 2022.06.18 |
[Open CV] 영상 분할과 객체 검출 _ HOG 보행자 검출 (0) | 2022.06.17 |