BFMatcher
bf = cv2.BFMatcher()
matches = bf.knnMatch(des1, des2, k=2)
そもそもBFとは「Brute Force」の略。つまり総当りでマッチを見つける。
FlannBasedMatcher
flann = cv2.FlannBasedMatcher(dict(algorithm = 0, trees = 5), dict(checks = 50)) matches = bf.knnMatch(des1, des2, k=2)
通称「FLANN」。てっきりFLANNって人名かと思ってたらFast Library for Approximate Nearest Neighborsの略だった(ソース)
Approximate Nearest Neighbors=近似最近傍探索であり、つまり最近傍探索することで効率が上がるよね、ってやつ
速度は上がるっぽいけどパラメータは自分で調節しなきゃいけない