示例#1
0
def get_sift_descriptors(n_imgs=None, data_dir=None):
    objects = get_object_list()
    obj_descs = []
    for obj in objects:
        descs = load_siftdata(obj_name=obj,
                              return_pos=False,
                              data_dir=data_dir)
        if descs is None:
            continue
        if n_imgs is None:
            n_imgs = len(descs)
        p = np.random.randint(0, len(descs), size=n_imgs)
        descs = np.array(map(lambda x: x.astype('float16'), descs))
        obj_descs.append((obj, descs[p]))
    return obj_descs
示例#2
0
def get_sift_descriptors(n_imgs=None, data_dir=None):
    objects = jsk_apc2015_common.get_object_list()
    obj_descs = []
    for obj in objects:
        descs = load_siftdata(obj_name=obj,
                              return_pos=False,
                              data_dir=data_dir)
        if descs is None:
            continue
        if n_imgs is None:
            n_imgs = len(descs)
        p = np.random.randint(0, len(descs), size=n_imgs)
        descs = np.array(map(lambda x: x.astype('float16'), descs))
        obj_descs.append((obj, descs[p]))
    return obj_descs
 def _handle_siftdata_cache(self, obj_names):
     """Sift data cache handler
     if same obj_names set: don't update, else: update
     """
     for obj_name in obj_names:
         if obj_name in self.siftdata_cache:
             siftdata = self.siftdata_cache[obj_name]
         else:
             if len(self.siftdata_cache) > 3:
                 # free cache data to avoid becoming too big
                 del self.siftdata_cache[np.random.choice(self.siftdata_cache.keys())]
             siftdata = load_siftdata(obj_name)
             # set cache
             self.siftdata_cache[obj_name] = siftdata
         if siftdata is None:
             continue
         yield siftdata
示例#4
0
 def _handle_siftdata_cache(self, obj_names):
     """Sift data cache handler
     if same obj_names set: don't update, else: update
     """
     for obj_name in obj_names:
         if obj_name in self.siftdata_cache:
             siftdata = self.siftdata_cache[obj_name]
         else:
             if len(self.siftdata_cache) > 3:
                 # free cache data to avoid becoming too big
                 del self.siftdata_cache[np.random.choice(
                     self.siftdata_cache.keys())]
             siftdata = load_siftdata(obj_name)
             # set cache
             self.siftdata_cache[obj_name] = siftdata
         if siftdata is None:
             continue
         yield siftdata