ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코너 검출
    컴퓨터 비젼(Computer Vision)/특징점 검출과 매칭 2022. 2. 21. 13:35

    코너

    • 객체의 뾰족한 부분
    • 영상의 고유한 특징을 지님

    코너의 특징

    • 평탄한 영역과 에지 영역은 고유한 위치를 찾기 어려움
    • 코너는 변별력이 높은 편이며, 영상의 이동, 회전 변환에 강인함

    코너 검출 방법

    해리스(Harris)

    • 영상 내부 작은 영역이 모두 방향에 대해 변화가 큰 경우 코너로 규정
    • cv2.cornerHarris()를 이용하며 코너 응답 함수 R을 반환, R이 충분히 크면 코너로 구분
    • Local Maxima가 아닌 값이 검출 될 수 있음

    Fast Features To Track

    • Harris 코너 검출 방법의 향상된 버전
    • NMS 수행
    • cv2.goodFeaturesToTrack()을 사용하며, 이는 코너점 자체를 반환

     

    FAST(Features from Acclerated Segment Test)

    • 주변 16개 픽셀 값 크기를 분석하여 기준 픽셀보다 충분히 밝거나 또는 충분히 어두운 픽셀이 n개 연속으로 나타나면 코너로 인식 (보통 n=9)

     

    해리스 코너 응답 함수

    cv2.cornerHarris(src, blockSize, ksize, k, dst=None, borderType=None) -> dst
    • src: 입력 단일채널 8비트 또는 실수형 영상
    • blockSize: 코너 응답 함수 계산에서 고려할 이웃 픽셀 크기. 보통 2~5.
    • ksize: (미분을 위한) 소벨 연산자를 위한 커널 크기. 보통 3.
    • k: 해리스 코너 검출 상수. 보통 0.04~0.06. 0.04를 많이 씀
    • dst: 해리스 코너 응답 계수. src와 같은 크기의 행렬, np.ndarray, dtype=np.float32.
    • borderType: 가장자리 픽셀 확장 빙식. 기본값은 cv2.BORDER_DEFAULT.

     

    Good Features To Track

    cv2.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, 
    						corners=None, mask=None, blockSize=None,
    						useHarrisDetector=None, k=None) -> corners
    • image: 8비트 또는 32비트 실수, 단일채널 영상
    • maxCorners: 최대 코너 개수. 0 이하이면 무제한.
    • qualityLevel: 코너점 결정을 위한 값. 보통 0.01~0.1. (0.01을 많이 씀)
    • minDistance: 코너점 사이의 최소 거리 px // 너무 근접하면 가장 높은 값을 빼고 나머진 버린다 것을 의미
    • corners: 검출된 코너점 좌표. np.ndarray, shape=(N, 1, 2), dtype=np.float32
    • mask: 마스크 영상
    • blockSize: 코너 검출을 위한 블록 크기. 기본값은 3.
    • useHarrisDetector: 해리스 코너 방법 사용 여부. 기본값은 False
    • k: 해리스 코너 검출 시 사용할 k 값.

     

    FAST

    cv2.FastFeatureDetector_create(, threshold=None, nonmaxSuppression=None, type=None) -> retval
    • threshold:  중심 픽셀 값과 주변 픽셀 값과의 차이 임계값. 기본은 10.
    • nonmaxSuppression: 비최대 억제 수행 여부. 기본은 True
    • type: 코너 검출 방법. 기본값은 cv2.FAST_FEATURE_DETECTOR_TYPE_9_16
    • retval: FastFeatureDetector 객체
    cv2.FastFeatureDetector.detect(image) -> keypoints
    • image: 그레이스케일 영상
    • keypoints: 검출된 코너점 정보. cv2.KeyPoint 객체를 담은 리스트. cv2.KeyPoint의 pt 멤버를 이용하여 코너 좌표 검출. 
      pt는 float 자료형의 튜플이며 pt[0]은 x좌표, pt[1]은 y좌표를 나타냄.

     

    결론

    • FAST 방법의 반복 검출률이 대체로 높음
    • 다만 FAST 방법은 노이즈에 민감함

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

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

    댓글

Designed by Tistory.