コード例 #1
0
ファイル: features.py プロジェクト: zabula/OpenSfM
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)
コード例 #2
0
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)
コード例 #3
0
ファイル: bow.py プロジェクト: originlake/OpenSfM
 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)
コード例 #4
0
 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
コード例 #5
0
ファイル: bow.py プロジェクト: smarvar/sfm_smarvar
 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)
コード例 #6
0
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)
コード例 #7
0
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)
コード例 #8
0
ファイル: features.py プロジェクト: dakotabenjamin/OpenSfM
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)
コード例 #9
0
ファイル: dataset.py プロジェクト: mapillary/OpenSfM
 def load_feature_index(self, image, features):
     index = context.flann_Index()
     index.load(features, self._feature_index_file(image))
     return index
コード例 #10
0
ファイル: dataset.py プロジェクト: sunbingfengPI/OpenSFM_Test
 def load_feature_index(self, image, features):
     index = context.flann_Index()
     index.load(features, self._feature_index_file(image))
     return index