def main(mode): path = "/local/attale00/extracted_pascal__4__Multi-PIE" path_ea = path + "/color128/" allLabelFiles = utils.getAllFiles("/local/attale00/a_labels") labeledImages = [i[0:16] + ".png" for i in allLabelFiles] # labs=utils.parseLabelFiles(path+'/Multi-PIE/labels','mouth',labeledImages,cutoffSeq='.png',suffix='_face0.labels') labs = utils.parseLabelFiles( "/local/attale00/a_labels", "mouth", labeledImages, cutoffSeq=".png", suffix="_face0.labels" ) testSet = fg.dataContainer(labs) roi = (50, 74, 96, 160) X = fg.getAllImagesFlat(path_ea, testSet.fileNames, (128, 256), roi=roi) # perform ICA if mode not in ["s", "v"]: ica = FastICA(n_components=100, whiten=True) ica.fit(X) meanI = np.mean(X, axis=0) X1 = X - meanI data = ica.transform(X1) filters = ica.components_ elif mode in ["s", "v"]: W = np.load("/home/attale00/Desktop/classifiers/ica/filter1.npy") m = np.load("/home/attale00/Desktop/classifiers/ica/meanI1.npy") X1 = X - m data = np.dot(X1, W.T) for i in range(len(testSet.data)): testSet.data[i].extend(data[i, :]) strel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) # fg.getHogFeature(testSet,roi,path=path_ea,ending='.png',extraMask = None,orientations = 3, cells_per_block=(6,2),maskFromAlpha=False) # fg.getColorHistogram(testSet,roi,path=path_ea,ending='.png',colorspace='lab',bins=10) testSet.targetNum = map(utils.mapMouthLabels2Two, testSet.target) rf = classifierUtils.standardRF(max_features=np.sqrt(len(testSet.data[0])), min_split=5, max_depth=40) if mode in ["s", "v"]: print "Classifying with loaded classifier" classifierUtils.classifyWithOld( path, testSet, mode, clfPath="/home/attale00/Desktop/classifiers/ica/rf128ICA_1" ) elif mode in ["c"]: print "cross validation of data" print "Scores" # print classifierUtils.standardCrossvalidation(rf,testSet,n_jobs=5) # _cvDissect(testSet,rf) classifierUtils.dissectedCV(rf, testSet) print "----" elif mode in ["save"]: print "saving new classifier" _saveRF(testSet) else: print "not doing anything"
def main(mode): poses = multiPiePose() #poses = multiPiePoseOriginal() poseDict=splitByPose(poses,binmax=75, stepsize = 30) for k,v in poseDict.iteritems(): fn = [i[0] for i in v] labs=utils.parseLabelFiles(path_label,'mouth',fn,cutoffSeq='.png',suffix='_face0.labels') labs=dict((lk,lv) for (lk,lv) in labs.iteritems() if not lv.startswith('narr')) testSet = fg.dataContainer(labs) fg.getHogFeature(testSet,None,path=path_ea,ending='.png',extraMask = None,orientations = 9, cells_per_block=(3,3),pixels_per_cell=(24,8),maskFromAlpha=False) testSet.targetNum=map(utils.mapMouthLabels2Two,testSet.target) rf=classifierUtils.standardRF(max_features = 30,min_split=12,max_depth=70) if mode in ['s','v']: print 'Classifying with loaded classifier' print '------------------- pose {}-----------------'.format(k) plt.figure() #obj=classifierUtils.classifyWithOld(path,testSet,mode,clfPath = '/home/attale00/Desktop/classifiers/thesis/poseSplit/pose{}'.format(k)) obj=classifierUtils.classifyWithOld(path,testSet,mode,clfPath = '/home/attale00/Desktop/classifiers/thesis/mirror/rfHogMirror'.format(k)) obj.plot(title='Mirrored,Pose: {}, ntot: {}, nOpen{}'.format(k,len(testSet.data),testSet.targetNum.count(1))) pickle.dump(obj,open('multiPie_mirror_aggregate{}'.format(k),'w')) elif mode in ['c']: print 'cross validation of data' rValues = classifierUtils.dissectedCV(rf,testSet) plt.title('Pose: {}, n: {}'.format(k,len(v))) #pickle.dump(rValues,open('patches_pose_hog_{}'.format(k),'w')) elif mode in ['save']: print 'saving new classifier' _saveRF(testSet,rf,identifier = k)
def main(mode): path = '/local/attale00/AFLW_ALL/' path_ea = '/local/attale00/AFLW_cropped/multiPIE_cropped3/' allLabelFiles = utils.getAllFiles('/local/attale00/a_labels') labeledImages = [i[0:16]+'.png' for i in allLabelFiles] #labs=utils.parseLabelFiles(path+'/Multi-PIE/labels','mouth',labeledImages,cutoffSeq='.png',suffix='_face0.labels') labs=utils.parseLabelFiles('/local/attale00/a_labels','mouth',labeledImages,cutoffSeq='.png',suffix='_face0.labels') #labs=dict((k,v) for (k,v) in labs.iteritems() if not v.startswith('narr')) # # minr = 10000; # for f in fileNames: # im = cv2.imread(path_ea+f,-1) # if im.shape[0]!=40 or im.shape[1]!=120: # print f # print im.shape # minr = minr if im.shape[0]>= minr else im.shape[0] # # print minr # testSet = fg.dataContainer(labs) roi=(0,37,0,115) roi=None #roi=(44,84,88,168) # eM=np.load('/home/attale00/Desktop/mouthMask.npy') # m=cv2.resize(np.uint8(eM),(256,256)); # strel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)) # dil = cv2.dilate(m,strel) # # m=dil>0; X=fg.getAllImagesFlat(path_ea,testSet.fileNames,(40,120),roi=roi) # perform ICA if mode not in ['s','v']: ica = FastICA(n_components=100,whiten=True) ica.fit(X) meanI=np.mean(X,axis=0) X1=X-meanI data=ica.transform(X1) filters=ica.components_ elif mode in ['s','v']: W=np.load('/home/attale00/Desktop/classifiers/patches/filter2.npy') m=np.load('/home/attale00/Desktop/classifiers/patches/meanI2.npy') X1=X-m data=np.dot(X1,W.T) for i in range(len(testSet.fileNames)): testSet.data[i].extend(data[i,:]) strel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)) fg.getHogFeature(testSet,roi,path=path_ea,ending='.png',extraMask = None,orientations = 5, pixels_per_cell=(24,8),cells_per_block=(3,3),maskFromAlpha=False) fg.getColorHistogram(testSet,roi,path=path_ea,ending='.png',colorspace='lab',bins=20) #fg.getImagePatchStat(testSet,path='/local/attale00/AFLW_cropped/mouth_img_error_multiPie/',patchSize =(4,12)) #pca # n_samples, n_features = X.shape # # mean_ = np.mean(X, axis=0) # X -= mean_ # U, S, V = linalg.svd(X) # explained_variance_ = (S ** 2) / n_samples # explained_variance_ratio_ = (explained_variance_ /explained_variance_.sum()) # K=V / S[:, np.newaxis] * np.sqrt(n_samples) # filters=K[:100] # data=np.dot(X,filters.T) testSet.targetNum=map(utils.mapMouthLabels2Two,testSet.target) rf=classifierUtils.standardRF(max_features = 27,min_split=13,max_depth=40) #rf = svm.NuSVC() #rf = linear_model.SGDClassifier(loss='perceptron', eta0=1, learning_rate='constant', penalty=None) if mode in ['s','v']: print 'Classifying with loaded classifier' classifierUtils.classifyWithOld(path,testSet,mode,clfPath = '/home/attale00/Desktop/classifiers/patches/rfICAHogColor') elif mode in ['c']: print 'cross validation of data' classifierUtils.dissectedCV(rf,testSet) elif mode in ['save']: print 'saving new classifier' _saveRF(testSet,rf,filters=filters,meanI=meanI) else: print 'not doing anything'
def main(mode): labelFiles='/local/attale00/aflw_original_labels' path_ea = '/local/attale00/AFLW_cropped/eyes/' fileNames = utils.getAllFiles(path_ea) goods = [] for f in fileNames: im = cv2.imread(path_ea+f) if im.shape[0] == 40 and im.shape[1] ==120: goods.append(f) fileNames = goods labs=utils.parseLabelFiles(labelFiles,'glasses',fileNames,cutoffSeq='.png',suffix='.labels') testSet = fg.dataContainer(labs) # # X=fg.getAllImagesFlat(path_ea,testSet.fileNames,(40,120),roi=roi) # # # # perform ICA # if mode not in ['s','v']: # ica = FastICA(n_components=100,whiten=True) # ica.fit(X) # meanI=np.mean(X,axis=0) # X1=X-meanI # data=ica.transform(X1) # filters=ica.components_ # # elif mode in ['s','v']: # W=np.load('/home/attale00/Desktop/classifiers/patches/filter2.npy') # m=np.load('/home/attale00/Desktop/classifiers/patches/meanI2.npy') # X1=X-m # data=np.dot(X1,W.T) # # for i in range(len(testSet.fileNames)): # testSet.data[i].extend(data[i,:]) # # strel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)) fg.getHogFeature(testSet,None,path=path_ea,ending='.png',extraMask = None,orientations = 5, pixels_per_cell=(24,8),cells_per_block=(3,3),maskFromAlpha=False) #testSet.targetNum=map(lambda x: 1 if x=='light' else 0,testSet.target) #rf = svm.NuSVC() #rf = linear_model.SGDClassifier(loss='perceptron', eta0=1, learning_rate='constant', penalty=None) if mode in ['s','v']: print 'Classifying with loaded classifier' obj=classifierUtils.classifyWithOld(path,testSet,mode,clfPath = '/home/attale00/Desktop/classifiers/thesis/color_only') #pickle.dump(obj,open('color_only','w')) elif mode in ['c']: print 'cross validation of data' testSet.targetNum=map(lambda x: 1 if x=='1' else 0,testSet.target) rf=classifierUtils.standardRF(max_features = 27,min_split=5,max_depth=60,n_estimators = 500) rValues = classifierUtils.dissectedCV(rf,testSet) plt.title('No glasses against rest') plt.show() #pickle.dump(rValues,open('patches_mp_','w')) elif mode in ['save']: print 'saving new classifier' testSet.targetNum=map(lambda x: 1 if x=='1' else 0,testSet.target) rf=classifierUtils.standardRF(max_features = 27,min_split=5,max_depth=60,n_estimators = 500) _saveRF(testSet,rf) else: print 'not doing anything'
def main(mode): path = '/local/attale00/extracted_pascal__4__Multi-PIE' path_ea = path+'/color128/' allLabelFiles = utils.getAllFiles('/local/attale00/a_labels') labeledImages = [i[0:16]+'.png' for i in allLabelFiles] #labs=utils.parseLabelFiles(path+'/Multi-PIE/labels','mouth',labeledImages,cutoffSeq='.png',suffix='_face0.labels') labs=utils.parseLabelFiles('/local/attale00/a_labels','mouth',labeledImages,cutoffSeq='.png',suffix='_face0.labels') testSet = fg.dataContainer(labs) roi=(50,74,96,160) # X=fg.getAllImagesFlat(path_ea,testSet.fileNames,(128,256),roi=roi) # # # # perform ICA # if mode not in ['s','v']: # ica = FastICA(n_components=50,whiten=True) # ica.fit(X) # meanI=np.mean(X,axis=0) # X1=X-meanI # data=ica.transform(X1) # filters=ica.components_ # # elif mode in ['s','v']: # W=np.load('/home/attale00/Desktop/classifiers/thesis/filter3.npy') # m=np.load('/home/attale00/Desktop/classifiers/thesis/meanI3.npy') # X1=X-m # data=np.dot(X1,W.T) # # for i in range(len(testSet.data)): # testSet.data[i].extend(data[i,:]) ### # # # # # strel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)) fg.getHogFeature(testSet,roi,path=path_ea,ending='.png',extraMask = None,orientations = 4, cells_per_block=(6,2),maskFromAlpha=False) fg.getPoseLabel(testSet,pathToPoseFiles='/local/attale00/poseLabels/multipie/') #fg.getColorHistogram(testSet,roi,path=path_ea,ending='.png',colorspace='lab',bins=40) testSet.targetNum=map(utils.mapMouthLabels2Two,testSet.target) rf=classifierUtils.standardRF(max_features = np.sqrt(len(testSet.data[0])),min_split=5,max_depth=40) if mode in ['s','v']: print 'Classifying with loaded classifier' obj=classifierUtils.classifyWithOld(path,testSet,mode,clfPath = '/home/attale00/Desktop/classifiers/thesis/texture/hog_pose') pickle.dump(obj,open('hog_pose','w')) elif mode in ['c']: print 'cross validation of data' rValues = classifierUtils.dissectedCV(rf,testSet) pickle.dump(rValues,open('texture_mp_','w')) elif mode in ['save']: print 'saving new classifier' _saveRF(testSet) else: print 'not doing anything'
def main(mode): path = '/local/attale00/AFLW_ALL/' path_ea = '/local/attale00/AFLW_cropped/mouth_img_error_multiPie/' allLabelFiles = utils.getAllFiles('/local/attale00/a_labels') labeledImages = [i[0:16]+'.png' for i in allLabelFiles] #labs=utils.parseLabelFiles(path+'/Multi-PIE/labels','mouth',labeledImages,cutoffSeq='.png',suffix='_face0.labels') labs=utils.parseLabelFiles('/local/attale00/a_labels','mouth',labeledImages,cutoffSeq='.png',suffix='_face0.labels') # fileNames = labeledImages; # minr = 10000; # for f in fileNames: # im = cv2.imread(path_ea+f,-1) # if im.shape[0]!=40 or im.shape[1]!=120: # print f # print im.shape # minr = minr if im.shape[0]>= minr else im.shape[0] # # print minr # # testSet = fg.dataContainer(labs) roi=(0,37,0,115) roi=None fg.getImagePatchStat(testSet,path=path_ea,patchSize=(4,12),overlap = 2) #pca # n_samples, n_features = X.shape # # mean_ = np.mean(X, axis=0) # X -= mean_ # U, S, V = linalg.svd(X) # explained_variance_ = (S ** 2) / n_samples # explained_variance_ratio_ = (explained_variance_ /explained_variance_.sum()) # K=V / S[:, np.newaxis] * np.sqrt(n_samples) # filters=K[:100] # data=np.dot(X,filters.T) testSet.targetNum=map(utils.mapMouthLabels2Two,testSet.target) rf=classifierUtils.standardRF(max_features = 27,min_split=13,max_depth=40) #rf = svm.NuSVC() #rf = linear_model.SGDClassifier(loss='perceptron', eta0=1, learning_rate='constant', penalty=None) if mode in ['s','v']: print 'Classifying with loaded classifier' classifierUtils.classifyWithOld(path,testSet,mode,clfPath = '/home/attale00/Desktop/classifiers/errorpatches/rferror') elif mode in ['c']: print 'cross validation of data' classifierUtils.dissectedCV(rf,testSet) print classifierUtils.standardCrossvalidation(rf,testSet) elif mode in ['save']: print 'saving new classifier' _saveRF(testSet,rf,filters=filters,meanI=meanI) else: print 'not doing anything'
def main(mode): path = '/local/attale00/AFLW_ALL/' path_ea = '/local/attale00/AFLW_cropped/mouth_img_error_multiPie/' allLabelFiles = utils.getAllFiles('/local/attale00/a_labels') labeledImages = [i[0:16]+'.png' for i in allLabelFiles] #labs=utils.parseLabelFiles(path+'/Multi-PIE/labels','mouth',labeledImages,cutoffSeq='.png',suffix='_face0.labels') labs=utils.parseLabelFiles('/local/attale00/a_labels','mouth',labeledImages,cutoffSeq='.png',suffix='_face0.labels') labs=dict((k,v) for (k,v) in labs.iteritems() if not v.startswith('narr')) # fileNames = labeledImages; # roi=None testSet = fg.dataContainer(labs) X=fg.getAllImagesFlat(path_ea,testSet.fileNames,(40,120),roi=roi) fgmode = 0 #fg.getImagePatchStat(testSet,path=path_ea,patchSize=(8,24),overlap = 2,mode=fgmode) roi=None orientations = 9 #fg.getHogFeature(testSet,roi,path=path_ea,ending='.png',extraMask = None,orientations = orientations, cells_per_block=(3,3),pixels_per_cell=(24,8),maskFromAlpha=False) # perform ICA if mode not in ['s','v']: ica = FastICA(n_components=100,whiten=True) ica.fit(X) meanI=np.mean(X,axis=0) X1=X-meanI data=ica.transform(X1) filters=ica.components_ elif mode in ['s','v']: W=np.load('/home/attale00/Desktop/classifiers/thesis/errorpatches/filter1.npy') m=np.load('/home/attale00/Desktop/classifiers/thesis/errorpatches/meanI1.npy') X1=X-m data=np.dot(X1,W.T) for i in range(len(testSet.fileNames)): testSet.data[i].extend(data[i,:]) testSet.targetNum=map(utils.mapMouthLabels2Two,testSet.target) rf=classifierUtils.standardRF(max_features = 27,min_split=13,max_depth=40) #rf = svm.NuSVC() #rf = linear_model.SGDClassifier(loss='perceptron', eta0=1, learning_rate='constant', penalty=None) if mode in ['s','v']: print 'Classifying with loaded classifier' #r=classifierUtils.classifyWithOld(path,testSet,mode,clfPath = '/home/attale00/Desktop/classifiers/thesis/errorpatches/mode{}'.format(fgmode)) r=classifierUtils.classifyWithOld(path,testSet,mode,clfPath='/home/attale00/Desktop/classifiers/thesis/errorpatches/errorpatch_ica') pickle.dump(r,open('errorpatch_test_ica'.format(fgmode),'w')) elif mode in ['c']: print 'cross validation of data' classifierUtils.dissectedCV(rf,testSet) print classifierUtils.standardCrossvalidation(rf,testSet) elif mode in ['save']: print 'saving new classifier' _saveRF(testSet,rf,filters=filters,meanI=meanI) else: print 'not doing anything'