コード例 #1
0
ファイル: object_index.py プロジェクト: rhina/web_obret
class ObjectIndex():
    def __init__(self, dbfile, code_len):
        self.db = ObjectTable(dbfile, code_len)
        self.quantizer = SQ()

    def assign_data(self, X, boxes, img_ids):
        codes = self.quantizer.encode(X)
        self.ivf.insert_bulk_data(img_ids, boxes, codes)

    def clear_all_data(self):
        self.db.reset_table()

    def __scan_child_level_data(self, query, code):
        for i in range(256):
            scores[i] = self.__get_classifier_score(query, [code, i])
        return scores

    def __get_highest_child_code(self, query, code, num = 1):
        scores = self.__scan_child_level_data(query, code)
        sort(scores)
        # numこ選んでくる
        return code

    def get_top_ranked_list(self, query, num):
        """
        Main code to get result by query
        Assume M=4, 
        code with highest score is selected at 1st and 2nd level
        *num* highest score are selected at 3rd level
        all entry are selected at 4th (final) level
        """
        first_code  = self.__get_highest_child_code(query, [])
        second_code = self.__get_highest_child_code(query, [first_code])
        third_codes = self.__get_highest_child_code(query, [first_code], num)
        alldata = []
        for c in third_codes:
            # data = __get_children_data([first_code, second_code, c])
            fine_codes, boxes, img_ids = self.ivf.fetch_data_from_code(
                    [first_code, second_code, c])
        scores = get_scores(fine_codes, query)

        return scores, boxes, img_ids
コード例 #2
0
ファイル: object_index.py プロジェクト: rhina/web_obret
 def __init__(self, dbfile, code_len):
     self.db = ObjectTable(dbfile, code_len)
     self.quantizer = SQ()