def test_addfromfile_pca(self, bigimageset_rw, imgfile): "Adding a file should still work after reducing the set" sample = bigimageset_rw.sample() extractor = PCAFeatures.create(sample) bigimageset_rw.add_feature_set(extractor) prev_len = len(bigimageset_rw) bigimageset_rw.add_from_file(imgfile) assert(len(bigimageset_rw) == prev_len+1) assert(len(bigimageset_rw.feature_sets['pca']) == prev_len+1)
def test_reduce_fewimg(self, bigimageset_rw): "More pixels than images should lead to less components than images" prev_length = len(bigimageset_rw) sample = bigimageset_rw.sample() extractor = PCAFeatures.create(sample) bigimageset_rw.add_feature_set(extractor) img0 = bigimageset_rw.get_pixels_at(0, 'pca') # FIXME pca is hardcoded assert(len(bigimageset_rw) == prev_length) assert('pca' in bigimageset_rw.feature_sets) assert(len(img0) <= len(bigimageset_rw) < IMG_SIZE*IMG_SIZE)
def test_reduce_smallsample(self, bigimageset_rw): "More images than sample size" prev_length = len(bigimageset_rw) sample_size = prev_length / 2 sample = bigimageset_rw.sample(sample_size) extractor = PCAFeatures.create(sample, None) bigimageset_rw.add_feature_set(extractor) img0 = bigimageset_rw.get_pixels_at(0, 'pca') # FIXME pca is hardcoded assert(len(bigimageset_rw) == prev_length) assert('pca' in bigimageset_rw.feature_sets) assert(len(img0) == sample_size)
def test_reduce_manyimg(self, bigimageset_rw, tmpdir_factory): """More images than pixels but less than sample size won't reduce the dimensionality""" images = [make_filedict(t, True) for t in range(6000, 30000, 60)] for img in images: img['name'] = imgfile(tmpdir_factory, img['img_time']) bigimageset_rw._add_image(**img) bigimageset_rw.fileh.flush() prev_length = len(bigimageset_rw) sample = bigimageset_rw.sample(450) extractor = PCAFeatures.create(sample, None) bigimageset_rw.add_feature_set(extractor) img0 = bigimageset_rw.get_pixels_at(0, 'pca') # FIXME pca is hardcoded assert(len(bigimageset_rw) == prev_length) assert(len(img0) == IMG_SIZE*IMG_SIZE)
def task(webcam_id, feat_type): with self.open_dataset(webcam_id) as dataset: if feat_type == 'raw': img_shape = dataset.imgset.img_shape w, h = settings.DEFAULT_FEATURES_SIZE feat_shape = h, w, 3 extractor = RawFeatures(feat_shape, img_shape) elif feat_type == 'pca': logger.info("Starting computation of a PCM model") sample = dataset.imgset.sample() extractor = PCAFeatures.create(sample) else: # rbm logger.info("Starting computation of a RBM model") sample = dataset.imgset.sample() extractor = RBMFeatures.create(sample) if extractor.name in dataset.imgset.feature_sets: raise ValueError("The feature set %s already exists" % extractor.name) logger.info("Adding a new set of features %s to webcam %s", feat_type, webcam_id) dataset.imgset.add_feature_set(extractor)
def test_pixelsat_seq_pca(self, imageset): "Read reduced pixels from a tuple of indices" sample = imageset.sample() extractor = PCAFeatures.create(sample) fset = imageset.add_feature_set(extractor) self.test_pixelsat_seq(imageset, fset.name)