Exemplo n.º 1
0
class PredictableModelWrapper(object):

    def __init__(self, model):
        self.model = model
        self.numeric_dataset = NumericDataSet()
        
    def compute(self):
        X,y = self.numeric_dataset.get()
        self.model.compute(X,y)

    def set_data(self, numeric_dataset):
        self.numeric_dataset = numeric_dataset

    def predict(self, image):
        prediction_result = self.model.predict(image)
        # Only take label right now:
        num_label = prediction_result[0]
        str_label = self.numeric_dataset.resolve_by_num(num_label)
        return str_label

    def update(self, name, image):
        self.numeric_dataset.add(name, image)
        class_label = self.numeric_dataset.resolve_by_str(name)
        extracted_feature = self.feature.extract(image)
        self.classifier.update(extracted_feature, class_label)

    def __repr__(self):
        return "PredictableModelWrapper (Inner Model=%s)" % (str(self.model))
Exemplo n.º 2
0
class PredictableModelWrapper(object):

    def __init__(self, model):
        self.model = model
        self.numeric_dataset = NumericDataSet()

    def compute(self):
        X,y = self.numeric_dataset.get()
        self.model.compute(X,y)

    def set_data(self, numeric_dataset):
        self.numeric_dataset = numeric_dataset

    def predict(self, image):
        prediction_result = self.model.predict(image)
        # Only take label right now:
        num_label = prediction_result[0]
        str_label = self.numeric_dataset.resolve_by_num(num_label)
        return str_label

    def update(self, name, image):
        self.numeric_dataset.add(name, image)
        class_label = self.numeric_dataset.resolve_by_str(name)
        extracted_feature = self.feature.extract(image)
        self.classifier.update(extracted_feature, class_label)

    def __repr__(self):
        return "PredictableModelWrapper (Inner Model=%s)" % (str(self.model))
Exemplo n.º 3
0
def read_from_file(image_paths, identifier):
    numeric_dataset = NumericDataSet()
    if not isinstance(image_paths, list):
        image_paths = [image_paths]
    for path in image_paths:
        read_image(path, identifier, numeric_dataset)
    return numeric_dataset
Exemplo n.º 4
0
def read_from_csv(filename):
    numeric_dataset = NumericDataSet()
    with open(filename, 'rb') as csvfile:
        reader = csv.reader(csvfile, delimiter=';', quotechar='#')
        for row in reader:
            identifier = row[0]
            path = row[1]
            read_images(path, identifier, numeric_dataset)
    return numeric_dataset
Exemplo n.º 5
0
def read_from_folder(folder_path):
    numeric_dataset = NumericDataSet()
    if os.path.isdir(folder_path):
        for subdir, dirs, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.abspath("%s/%s"% (subdir, file))
                sub_dir_parts = os.path.abspath(subdir).split("\\")
                identifier = subdir
                if sub_dir_parts:
                    identifier = sub_dir_parts[-1]
                read_image(file_path, identifier, numeric_dataset)
    return numeric_dataset
Exemplo n.º 6
0
 def __init__(self, model):
     self.model = model
     self.numeric_dataset = NumericDataSet()
Exemplo n.º 7
0
 def __init__(self, model):
     self.model = model
     self.numeric_dataset = NumericDataSet()
Exemplo n.º 8
0
import numpy as np
# import matplotlib colormaps
import matplotlib.cm as cm
# import for logging
import logging, sys
# set up a handler for logging
handler = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter(
    '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
# add handler to facerec modules
logger = logging.getLogger("facerec")
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
# load a dataset (e.g. AT&T Facedatabase)
dataSet = NumericDataSet("/home/philipp/facerec/data/yalefaces_recognition")
# define Fisherfaces as feature extraction method
feature = Fisherfaces()
# define a 1-NN classifier with Euclidean Distance
classifier = NearestNeighbor(dist_metric=EuclideanDistance(), k=1)
# define the model as the combination
model = PredictableModel(feature=feature, classifier=classifier)
# show fisherfaces
model.compute(dataSet.data, dataSet.labels)
# turn the first (at most) 16 eigenvectors into grayscale
# images (note: eigenvectors are stored by column!)
E = []
for i in xrange(min(model.feature.eigenvectors.shape[1], 16)):
    e = model.feature.eigenvectors[:, i].reshape(dataSet.data[0].shape)
    E.append(minmax_normalize(e, 0, 255, dtype=np.uint8))
# plot them and store the plot to "python_fisherfaces_fisherfaces.pdf"