def build_flann_index(features, config): FLANN_INDEX_LINEAR = 0 FLANN_INDEX_KDTREE = 1 FLANN_INDEX_KMEANS = 2 FLANN_INDEX_COMPOSITE = 3 FLANN_INDEX_KDTREE_SINGLE = 4 FLANN_INDEX_HIERARCHICAL = 5 FLANN_INDEX_LSH = 6 if features.dtype.type is np.float32: algorithm_type = config['flann_algorithm'].upper() if algorithm_type == 'KMEANS': FLANN_INDEX_METHOD = FLANN_INDEX_KMEANS elif algorithm_type == 'KDTREE': FLANN_INDEX_METHOD = FLANN_INDEX_KDTREE else: raise ValueError('Unknown flann algorithm type ' 'must be KMEANS, KDTREE') else: FLANN_INDEX_METHOD = FLANN_INDEX_LSH flann_params = dict(algorithm=FLANN_INDEX_METHOD, branching=config['flann_branching'], iterations=config['flann_iterations'], tree=config['flann_tree']) return context.flann_Index(features, flann_params)
def build_flann_index(features: np.ndarray, config: Dict[str, Any]) -> Any: # FLANN_INDEX_LINEAR = 0 FLANN_INDEX_KDTREE = 1 FLANN_INDEX_KMEANS = 2 # FLANN_INDEX_COMPOSITE = 3 # FLANN_INDEX_KDTREE_SINGLE = 4 # FLANN_INDEX_HIERARCHICAL = 5 FLANN_INDEX_LSH = 6 if features.dtype.type is np.float32: algorithm_type = config["flann_algorithm"].upper() if algorithm_type == "KMEANS": FLANN_INDEX_METHOD = FLANN_INDEX_KMEANS elif algorithm_type == "KDTREE": FLANN_INDEX_METHOD = FLANN_INDEX_KDTREE else: raise ValueError("Unknown flann algorithm type " "must be KMEANS, KDTREE") else: FLANN_INDEX_METHOD = FLANN_INDEX_LSH flann_params = { "algorithm": FLANN_INDEX_METHOD, "branching": config["flann_branching"], "iterations": config["flann_iterations"], "tree": config["flann_tree"], } return context.flann_Index(features, flann_params)
def __init__(self, words, frequencies): self.words = words self.frequencies = frequencies self.weights = np.log(frequencies.sum() / frequencies) FLANN_INDEX_KDTREE = 1 flann_params = {"algorithm": FLANN_INDEX_KDTREE, "trees": 8, "checks": 300} self.index = context.flann_Index(words, flann_params)
def load_feature_index(self, image, features): if not self.feature_index_exists(image): raise IOError( "FLANN index file for {} doesn't exists.".format(image)) index = context.flann_Index() index.load(features, self._feature_index_file(image)) return index
def __init__(self, words, frequencies): self.words = words self.frequencies = frequencies self.weights = np.log(frequencies.sum() / frequencies) FLANN_INDEX_KDTREE = 1 flann_params = dict(algorithm=FLANN_INDEX_KDTREE, trees=8, checks=300) self.index = context.flann_Index(words, flann_params)
def build_flann_index(descriptors: np.ndarray, config: Dict[str, Any]) -> Any: # FLANN_INDEX_LINEAR = 0 FLANN_INDEX_KDTREE = 1 FLANN_INDEX_KMEANS = 2 # FLANN_INDEX_COMPOSITE = 3 # FLANN_INDEX_KDTREE_SINGLE = 4 # FLANN_INDEX_HIERARCHICAL = 5 if descriptors.dtype.type is np.float32: algorithm_type = config["flann_algorithm"].upper() if algorithm_type == "KMEANS": FLANN_INDEX_METHOD = FLANN_INDEX_KMEANS elif algorithm_type == "KDTREE": FLANN_INDEX_METHOD = FLANN_INDEX_KDTREE else: raise ValueError("Unknown flann algorithm type " "must be KMEANS, KDTREE") flann_params = { "algorithm": FLANN_INDEX_METHOD, "branching": config["flann_branching"], "iterations": config["flann_iterations"], "tree": config["flann_tree"], } else: raise ValueError( "FLANN isn't supported for binary features because of poor-performance. Use BRUTEFORCE instead." ) return context.flann_Index(descriptors, flann_params)
def build_flann_index(features, config): FLANN_INDEX_LINEAR = 0 FLANN_INDEX_KDTREE = 1 FLANN_INDEX_KMEANS = 2 FLANN_INDEX_COMPOSITE = 3 FLANN_INDEX_KDTREE_SINGLE = 4 FLANN_INDEX_HIERARCHICAL = 5 FLANN_INDEX_LSH = 6 if features.dtype.type is np.float32: FLANN_INDEX_METHOD = FLANN_INDEX_KMEANS else: FLANN_INDEX_METHOD = FLANN_INDEX_LSH flann_params = dict(algorithm=FLANN_INDEX_METHOD, branching=config['flann_branching'], iterations=config['flann_iterations']) return context.flann_Index(features, flann_params)
def load_feature_index(self, image, features): index = context.flann_Index() index.load(features, self._feature_index_file(image)) return index