So, now we have arrived at the best combination out of all the combinations that we have discussed so far. This algorithm came out of the OpenCV Labs. It's fast, robust, and open-source! Both SIFT and SURF algorithms are patented and you can't use them for commercial purposes. This is why ORB is good in many ways.
If you run the ORB keypoint extractor on one of the images shown earlier, you will see something like the following:
import cv2 import numpy as np input_image = cv2.imread('input.jpg') gray_image = cv2.cvtColor(input_image, cv2.COLOR_BGR2GRAY) # Initiate ORB object orb = cv2.ORB() # find the keypoints with ORB keypoints = orb.detect(gray_image, None) # compute the descriptors with ORB keypoints, descriptors = orb.compute(gray_image, keypoints) # draw only the location of the keypoints without size or orientation final_keypoints = cv2.drawKeypoints(input_image, keypoints, color=(0,255,0), flags=0) cv2.imshow('ORB keypoints', final_keypoints) cv2.waitKey()