def __init__(self, face_dir="", nonface_dir="", train=True, limit=30): #tot_samples = 0 self.Face = ImageSet(face_dir, sampleNum=POSITIVE_SAMPLE) self.nonFace = ImageSet(nonface_dir, sampleNum=NEGATIVE_SAMPLE) tot_samples = self.Face.sampleNum + self.nonFace.sampleNum self.classifier = AdaBoost self.haar = Feature(TRAINING_IMG_WIDTH, TRAINING_IMG_HEIGHT) if os.path.isfile(FEATURE_FILE_TRAINING + ".npy"): self._mat = numpy.load(FEATURE_FILE_TRAINING + ".npy") else: if DEBUG_MODEL is True: self._mat = numpy.zeros((self.haar.featuresNum, tot_samples)) for i in xrange(self.Face.sampleNum): print(i) featureVec = self.haar.calFeatureForImg( self.Face.images[i]) for j in xrange(self.haar.featuresNum): self._mat[j][i] = featureVec[j] for i in xrange(self.nonFace.sampleNum): featureVec = self.haar.calFeatureForImg( self.nonFace.images[i]) print(i) for j in xrange(self.haar.featuresNum): self._mat[j][i + self.Face.sampleNum] = featureVec[j] numpy.save(FEATURE_FILE_TRAINING, self._mat) else: from mapReduce import map from mapReduce import reduce map(self.Face, self.nonFace) self._mat = reduce() featureNum, sampleNum = self._mat.shape assert sampleNum == (POSITIVE_SAMPLE + NEGATIVE_SAMPLE) assert featureNum == FEATURE_NUM Label_Face = [+1 for i in xrange(POSITIVE_SAMPLE)] Label_NonFace = [-1 for i in xrange(NEGATIVE_SAMPLE)] self._label = numpy.array(Label_Face + Label_NonFace) self.limit = limit self.classifierNum = 0 self.strong_classifier = [None for i in xrange(limit)]
def __init__(self, face_dir = "", nonface_dir = "", train = True, limit = 30): #tot_samples = 0 self.Face = ImageSet(face_dir, sampleNum = POSITIVE_SAMPLE) self.nonFace = ImageSet(nonface_dir, sampleNum = NEGATIVE_SAMPLE) tot_samples = self.Face.sampleNum + self.nonFace.sampleNum self.classifier = AdaBoost self.haar = Feature(TRAINING_IMG_WIDTH, TRAINING_IMG_HEIGHT) if os.path.isfile(FEATURE_FILE_TRAINING + ".npy"): self._mat = numpy.load(FEATURE_FILE_TRAINING + ".npy") else: if DEBUG_MODEL is True: self._mat = numpy.zeros((self.haar.featuresNum, tot_samples)) for i in xrange(self.Face.sampleNum): featureVec = self.haar.calFeatureForImg(self.Face.images[i]) for j in xrange(self.haar.featuresNum): self._mat[j][i ] = featureVec[j] for i in xrange(self.nonFace.sampleNum): featureVec = self.haar.calFeatureForImg(self.nonFace.images[i]) for j in xrange(self.haar.featuresNum): self._mat[j][i + self.Face.sampleNum] = featureVec[j] numpy.save(FEATURE_FILE_TRAINING, self._mat) else: from mapReduce import map from mapReduce import reduce map(self.Face, self.nonFace) self._mat = reduce() featureNum, sampleNum = self._mat.shape assert sampleNum == (POSITIVE_SAMPLE + NEGATIVE_SAMPLE) assert featureNum == FEATURE_NUM Label_Face = [+1 for i in xrange(POSITIVE_SAMPLE)] Label_NonFace = [-1 for i in xrange(NEGATIVE_SAMPLE)] self._label = numpy.array(Label_Face + Label_NonFace) self.limit = limit self.classifierNum = 0 self.strong_classifier = [None for i in xrange(limit)]
featureVec = haar.calFeatureForImg(Face.images[i]) for j in xrange(haar.featuresNum): _mat[j][i ] = featureVec[j] for i in xrange(nonFace.sampleNum): featureVec = haar.calFeatureForImg(nonFace.images[i]) for j in xrange(haar.featuresNum): _mat[j][i + Face.sampleNum] = featureVec[j] numpy.save(FEATURE_FILE_TRAINING, _mat) else: from mapReduce import map from mapReduce import reduce map(Face, nonFace) _mat = reduce() mat = _mat featureNum, sampleNum = _mat.shape assert sampleNum == (POSITIVE_SAMPLE + NEGATIVE_SAMPLE) assert featureNum == FEATURE_NUM Label_Face = [+1 for i in xrange(POSITIVE_SAMPLE)] Label_NonFace = [-1 for i in xrange(NEGATIVE_SAMPLE)] label = numpy.array(Label_Face + Label_NonFace) cache_filename = ADABOOST_CACHE_FILE + str(0)