class IndexTrainer(object): def __init__(self): self.index = InvertedIndex() self.bow = Bow() self.extractor = Extractor('surf') print self.index.author print self.index.description def load_feature(self, path='../models/feature.npy'): self.features = np.load(path) if len(self.features) > 200000: self.features = self.features[:200000] print "feature shape: ", self.features.shape return self.features def run(self, path): self.bow.load() self.index.reset(self.bow.centers) images = imutil.get_list_image(path) t = imutil.Timer(1) t.tic() for i,image in enumerate(images): descriptors = self.extractor.extract(image) self.index.append(image, descriptors) if (i+1)%1000 == 0: t.toc('finish 1000 images: ') t.tic()
class IndexTrainer(object): def __init__(self, centers): self.bow = Bow(centers) self.index = InvertedIndex() def load_feature(self, path='../models/feature.npy'): self.features = np.load(path) if len(self.features) > 500000: self.features = self.features[:500000] print "feature shape: ", self.features.shape return self.features def train(self): self.bow.load('../models/bow.pkl') self.index.reset(self.bow.centers) self.index.append('img1',self.features[:100]) self.index.append('img2',self.features[100:200]) self.index.append('img3',self.features[200:300]) print self.index