박민혀기

CELLON II(Feature matching) 본문

CELLON II/Ref

CELLON II(Feature matching)

박민혀기 2023. 1. 13. 14:30

이미지 특징점

서로 매칭이 되는지 확인 할 때 특징점을 비교하는 경우가 多

보통 특징점이 되는 부분은 물체의 모서리나 코너

 

코너를 검출하기 위한 방법(OpenCV에서 제공)

1. Harris corner detection 알고리즘

경계값의 경사도 변화량을 측정하여 변화량이 수직, 수평, 대각선 방향으로 크게 변화하는 것을 코너로 판단

Harris corner detection 알고리즘 KeyPoint 출력 값

2. Harris corner detection보다 더 개선된 Shi & Tomasi Detection 알고리즘

Harris corner detection 보다 더 많은 KeyPoint를 감지한 Shi & Tomasi Detection

3. detector.detect() 함수

  • keypoints = detector.detect(img, mask): 특징점 검출 함수
    img: 입력 이미지
    mask(optional): 검출 제외 마스크
    keypoints: 특징점 검출 결과 (KeyPoint의 리스트)
  • Keypoint: 특징점 정보를 담는 객체
    pt: 특징점 좌표(x, y), float 타입으로 정수 변환 필요
    size: 의미 있는 특징점 이웃의 반지름
    angle: 특징점 방향 (시계방향, -1=의미 없음)
    response: 특징점 반응 강도 (추출기에 따라 다름)
    octave: 발견된 이미지 피라미드 계층
    class_id: 특징점이 속한 객체 ID
  • outImg = cv2.drawKeypoints(img, keypoints, outImg, color, flags)
    img: 입력 이미지
    keypoints: 표시할 특징점 리스트
    outImg: 특징점이 그려진 결과 이미지
    color(optional): 표시할 색상 (default: 랜덤)
    flags(optional): 표시 방법 (cv2.DRAW_MATCHES_FLAGS_DEFAULT: 좌표 중심에 동그라미만 그림(default), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS: 동그라미의 크기를 size와 angle을 반영해서 그림)

위에 2개의 알고리즘 보다 더 많은 KeyPoint를 검출

 

FAST(Feature from Accelerated Segment Test)

기존 검출기보다 속도가 빠른 검출기이다. 코너를 검출할 때 미분 연산X

FAST 알고리즘 연산
FAST 알고리즘 결과

 

SimpleBlobDetector

BLOB(Binary Large Object)는 이진 스케일로 연결된 픽셀 그룹을 말함 SimpleBlobDetector는 자잘한 객체는 노이즈로 여기고 특정 크기 이상의 큰 객체만 찾아내는 검출기이다.

SimpleBlobDetector 결과
알고리즘별 RunTime 비교

참고 : https://bkshin.tistory.com/entry/OpenCV-26-%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%9D%98-%ED%8A%B9%EC%A7%95%EA%B3%BC-%ED%82%A4-%ED%8F%AC%EC%9D%B8%ED%8A%B8?category=0

'CELLON II > Ref' 카테고리의 다른 글

CELLON II(Video Reference)  (0) 2023.01.21
CELLON II(Simple Blob Detector)  (0) 2023.01.13
CELLON II(FindContours, minRect)  (0) 2023.01.13