9-1. 코너 검출

코너(Corner)

    평탄한 영역(flat) 또는 에지(edge) 영역보다 변별력이 높은 편이며, 영상의 이동 및 회전 변환에 강인함

    OpenCV에서는 다양한 코너 검출 방식을 지원한다

     그 중 아래 3가지 방식을 알아보았다.

  해리스
(Harris)
추적하기 좋은 특징
(Good Features to Track)
FAST
(Features from Accelerated Segment Test)
특징 - 해리스 코너 검출 방법을 기반으로 향상된 방법 해리스, GFTT 방법보다 매우 빠르게 동작
검출 방식 영상 내부 작은 영역이 모든 방향에 대해 변화가 큰 경우 코너로 규정

코너 응답 함수 R을 반환 하여 R(x,y)가 충분히 크면 코너로 구분
코너 품질 함수를 정의 후 가장 값이 큰 순서대로 정렬하여 반환 주변 16개 픽셀 값 크기를 분석하여 기준 픽셀(p)보다 충분히 밝거나 충분히 어두운 픽셀이 n개 연속으로 나타나면 코너로 인식 (n은 보통 9) (링크)
함수 cv2.cornerHarris(src, blockSize, ksize, k, dst, borderType) -> dst cv2.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, corners, mask, blockSize, useHarrisDetector, k) -> corners cv2.FastFeatureDetector_create(threshold, nonmaxSuppression, type) -> <FastFeature Detector Object>

<FastFeature Detector Oject>.detect(image) -> keypoints
함수 인자 설명 src는 단일채널 8비트 또는 실수형 입력 영상
dst는 src와 같은 크기의 numpy.float32 형식의 해리스 코너 응답 계수
blockSize는 코너 응답 함수 계산에서 고려할 이웃 픽셀 크기로 보통 2~5로 지정
ksize는 미분에 사용될 소벨 연산자를 위한 커널 크기로 보통 3으로 지정
k는 해리스 코너 검출 상수로 보통 0.04~0.06으로 지정
borderType는 가장자리 픽셀 확장 방식으로 기본값은 cv2.BORDER_DEFAULT
image는 단일채널 8비트 또는 실수형 입력 영상
maxCorners는 최대 코너 개수로 0보다 작거나 같으면 무제한으로 지정
qualityLevel는 코너점 결정을 위한 값으로 보통 0.01~0.1
minDistance는 코너점 사이의 최소 거리
mask는 마스크 영상
blockSize는 코너 검출을 위한 블록 크기로 기본값은 3
useHarrisDetector는 해리스 코너 방법 사용 영부로 기본값은 False
k는 해리스 코너 검출 시 사용할 k값
corners는 검출된 코너점 좌표로 numpy.float32와 (N,1,2)의 numpy.ndarray 형태
threshold는 중심 픽셀 값과 주변 픽셀 값과의 차이 임계값으로 기본값은 10
nonmaxSuppression은 비최대 억제 수행 여부로 기본값은 True
type는 코너 검출 방법으로 기본값은 cv2.FAST_FEATURE_DETECTOR_TYPE_9_16
image는 그레이스케일 영상
keypoints는 검출된 코너점 정보로 cv2.KeyPoint 객체를 담은 리스트. 객체의 pt 멤버를 이용하여 좌표를 추출하는데 pt[0]이 x 좌표, pt[1]이 y좌표
코너 검출 반복성 FAST 방법의 검출률이 대체로 높은 가운데 노이즈에 민감하다.

GFTT와 FAST 수행 비교 영상. GFTT의 경우 Harris를 사용하면 더 빠르게 수행되는 모습이 보였는데 검출된 코너는 오히려 적다. FAST의 경우 비최대 억제 수행 여부에 따른 시간이 상당이 다르게 나왔는데 수행하게 되면 더 많은 코너가 검출된 것으로 보인다. FAST가 GFTT에 비해 이파리 에지 검출이 더 된 것으로 보이는데 또 FAST에서 검출되지 않은 코너가 GFTT에서 검출된 것이 보인다.


인증 타임

특징점 검출 전 저번 에지 검출 방식에 이어서 코너 검출 방식에 대하여 배워 보았다. 다양한 함수를 지원하고 방식별로 지정할 파라미터도 다양하여 입력 영상에 따라 코너 검출하는데 있어 적당한 방법과 파라미터 찾는게 중요해 보인다.

 

9-1. 공부 인증 사진

 


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online

 

패스트캠퍼스(FastCampus) 강의 둘러보러 가기 

   

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.


 

+ Recent posts