OpenCV ORB detector detects very few key points

I am trying to use an ORB keypoint detector, and it seems to return far fewer points than a SIFT detector and a FAST detector.

This image shows the key points found by the ORB detector:

enter image description here

and this image shows the key points found during the SIFT detection phase (FAST returns a similar number of points).

enter image description here

The presence of such a small number of points leads to very poor results of the comparison of signs in the images. I'm just curious about the ORB detection phase right now, because it seems like I'm getting the wrong results. I tried using the ORB detector with default parameters, as well as with user parameters described in detail below.

Why is there such a big difference?

Code:

orb = cv2.ORB_create(edgeThreshold=15, patchSize=31, nlevels=8, fastThreshold=20, scaleFactor=1.2, WTA_K=2,scoreType=cv2.ORB_HARRIS_SCORE, firstLevel=0, nfeatures=500)
#orb = cv2.ORB_create()
kp2 = orb.detect(img2)
img2_kp = cv2.drawKeypoints(img2, kp2, None, color=(0,255,0), \
        flags=cv2.DrawMatchesFlags_DEFAULT)

plt.figure()
plt.imshow(img2_kp)
plt.show()
+7
3

nfeatures . . , FAST Harris, , , .

orb = cv2.ORB_create(scoreType=cv2.ORB_FAST_SCORE)

enter image description here

orb = cv2.ORB_create(nfeatures=100000, scoreType=cv2.ORB_FAST_SCORE)

enter image description here

+7

, , - :

, FAST Harris, , , .

Rublee et al. "ORB: SIFT SURF". , , 2565 " 2011 ":

FAST , , . [11] FAST. N , , , N , N .

0

.

0

Source: https://habr.com/ru/post/1608361/


All Articles