ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Shi-Tomasi Corner Detector & Good Features to Track
    Robotics/Open CV python 2019. 7. 19. 15:36

    Shi-Tomasi Corner Detector & Good Features to Track

    • 또다른 corner detector: Shi-Tomasi Corner Detector 에 대해 학습합니다.
    • function:cv2.goodFeaturesToTrack() 에 대해서 알아봅니다.

    Theory

    이전 챕터에서 우리는 Harris Corner Detector에 대해서 살펴 보았습니다. 1994년도 후반, J. Shi and C. Tomasi 는 그들의 논문에서 Good Features to Track 라는 작은 수정을 했는데 이는 Harris Corner Detector에 비해서 더 좋은 성능을 나타내었습니다. Harris Corner Detector 의 scoring function 은 다음과 같습니다.:

    대신, Shi-Tomasi 가 제한한 함수는:

    입니다. 이것이 만약 threshold value 보다 크다면, 이를 코너라고 생각하는 것입니다. 만약 우리가 이를

    라는 공간 아래에 그린다면, Harris Corner Detector에서 보았던 공간 그림과 같을 것이다. 우리는 아래와 같은 이미지를 얻습니다.

    이 그림에서 당신은, $\lambda_1$ 과 $\lambda_2$ 가 최소값 $\lambda_{min}$ 위일때만 , corner 라고 고려하면 됩니다. (green region).

    Code

    open cv 에서는,cv2.goodFeaturesToTrack() 함수를 제공하는데 Shi-Tomasi 방법 (또는 Harris Corner Detection 으로 지정할 수도 있다.)을 사용하여 이미지에서 N 개의 가장 강한 코너를 찾습니다. 일반적으로 이미지는 gray scale 이미지 여야합니다. 그런 다음 찾을 코너 수와 품질 수준을 지정합니다. 품질 수준은 0-1 사이의 값으로, 품질 수준 값 아래에서 모퉁이의 최소 품질을 나타냅니다. 그런 다음 감지 된 코너 사이의 최소 유클리드 거리를 지정합니다.

    이 모든 정보를 통해 함수는 이미지의 코너를 찾습니다. 품질 수준 이하의 모든 코너가 제외됩니다. 그런 다음 품질에 따라 내림차순으로 나머지 모서리를 정렬합니다. 그런 다음 함수는 가장 강한 모서리를 가져 와서 최소 거리의 범위보다 가까운 모든 모서리를 버리고 N 개의 가장 강한 모서리를 반환합니다.

    아래 예에서 우리는 25 개의 최고의 모서리를 찾으려고 노력할 것입니다.

    import numpy as np
    import cv2
    from matplotlib import pyplot as plt
    
    img = cv2.imread('simple.jpg')
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    
    corners = cv2.goodFeaturesToTrack(gray,25,0.01,10)
    corners = np.int0(corners)
    
    for i in corners:
        x,y = i.ravel()
        cv2.circle(img,(x,y),3,255,-1)
    
    plt.imshow(img),plt.show()

    결과는 아래와 같았습니다.

    이 함수는 tracking에 더 적절하기도 합니다.

    https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_shi_tomasi/py_shi_tomasi.html

    'Robotics > Open CV python' 카테고리의 다른 글

    FAST Algorithm for Corner Detection  (0) 2019.07.23
    SURF  (0) 2019.07.22
    SIFT  (0) 2019.07.19
    Harris Corner Detection  (0) 2019.07.19
    Understanding Features  (0) 2019.07.19

    댓글

Designed by Tistory.