def _cvDissect(testSet,rf,mapping): for i in range(3): train,test = testSet.splitInTestAndTraining(frac=.7) rf.fit(train.data,train.targetNum) test.classifiedAs=rf.predict(test.data) test.hasBeenClassified = True classifierUtils.evaluateClassification(test,{0:'closed or narrow',1:'open or wide open'})
def main(): path='/local/attale00/' allFiles = utils.getAllFiles(path+'Multi-PIE/extracted') allLabelFiles = utils.getAllFiles(path+'Multi-PIE/db_labels') np.random.shuffle(allLabelFiles) #get the labels from the database, for each person sliceat=250 labelstest=utils.parseLabelFiles(path+'Multi-PIE/db_labels','sex',allLabelFiles[0:sliceat],cutoffSeq='',suffix='') labelstraining = utils.parseLabelFiles(path+'Multi-PIE/db_labels','sex',allLabelFiles[sliceat:],cutoffSeq='',suffix='') #now generate the label dict for each file labsTest={} labsTraining={} for f in allFiles: if labelstest.has_key(f[0:3]+'.labels'): labsTest[f]=labelstest[f[0:3]+'.labels'] elif labelstraining.has_key(f[0:3]+'.labels'): labsTraining[f]=labelstraining[f[0:3]+'.labels' ] testSet = fg.dataContainer(labsTest) trainingSet = fg.dataContainer(labsTraining) roi=(0,64,0,64) ppc=(8,8) cpb=(8,8) fg.getHogFeature(testSet,roi,path=path+'Multi-PIE_grayScale64/',ending=None,extraMask = None,pixels_per_cell=ppc,cells_per_block=cpb) fg.getHogFeature(trainingSet,roi,path=path+'Multi-PIE_grayScale64/',ending=None,extraMask = None,pixels_per_cell=ppc, cells_per_block=cpb) testSet.targetNum=map(utils.mapSexLabel2Two,testSet.target) trainingSet.targetNum = map(utils.mapSexLabel2Two,trainingSet.target) rf1=classifierUtils.standardRF(max_features=np.sqrt(len(testSet.data[0]))) rf2=classifierUtils.standardRF(max_features=np.sqrt(len(trainingSet.data[0]))) rf1.fit(testSet.data,testSet.targetNum) s=rf1.score(trainingSet.data,trainingSet.targetNum) trainingSet.classifiedAs=rf1.predict(trainingSet.data) trainingSet.hasBeenClassified=True classifierUtils.evaluateClassification(trainingSet,{0:'male',1:'female'}) print 'Score: {}'.format(s) print '----------other way around ----\n' rf2.fit(trainingSet.data,trainingSet.targetNum) s=rf2.score(testSet.data,testSet.targetNum) testSet.classifiedAs=rf2.predict(testSet.data) testSet.hasBeenClassified=True classifierUtils.evaluateClassification(testSet,{0:'male',1:'female'}) print 'Score: {}'.format(s)
def _score(clf,testSet): score = clf.score(testSet.data,testSet.targetNum) testSet.hasBeenClassified = True classifierUtils.evaluateClassification(testSet,{0:'closed or narrow',1:'open or wide open'}) print 'Overall Score: {:.3f}'.format(score) return
def main(nJobs = 1): path = '/local/attale00/GoodPose' path_ea = path+'/extracted_alpha' path_adata = path_ea + '/a_data' fileNames = utils.getAllFiles(path+'/targets'); attribute = 'mouth' attribute_values = utils.parseLabelINIFile(path+'/mouth_labels/labels.ini',attribute); print('------------Attribute: \t'+attribute+' ---------------') for i in attribute_values: print('Value: \t'+i) print('----------------------------') print('----------parsing label files------') labs=utils.parseLabelFiles(path+'/mouth_labels','mouth',fileNames,cutoffSeq='.png',suffix='_face0.labels') #labs=utils.parseLabelFiles(path+'/mouth_labels/labels','glasses',fileNames,cutoffSeq='.png',suffix='_face0.labels') print('-----computing Features-----') #make 10 bin hist for each mouth #roi = (40,200,100,200) roi = (50,190,110,402) roi2=(0,128,0,256) roi=(0,64,0,128) #roi2=(128,256,0,256) mouthSet = fg.dataContainer(labs) #fg.getHistogram(20,roi,hrange=(0,255),dataC = mouthSet,path = path+'/extracted/gradients/Direction/',ending='_0.png') 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; # em=m[roi[0]:roi[1],roi[2]:roi[3]] # m= m !=True fg.getHogFeature(mouthSet,roi2,path=path_ea+'/grayScale128/',ending='_0.png',extraMask = None) #fg.getPixelValues(mouthSet,roi,path=path_ea+'/',ending='_0.png',mask =m, scaleFactor = 10) #fg.getColorHistogram(mouthSet,roi,path=path_ea+'/',ending='_0.png',colorspace=None,range=(1.0,255.0),bins = 20) mouthSet.targetNum=map(utils.mapMouthLabels2Two,mouthSet.target) #mouthSet.targetNum=map(utils.mapGlassesLabels2Two,mouthSet.target) score=[] frac=np.arange(0.2,1.0,.05) for i in frac: trainingSet,testSet=mouthSet.splitInTestAndTraining(frac=i) rf=classifierUtils.standardRF(max_features = np.sqrt(len(mouthSet.data[0]))) rf.fit(trainingSet.data,trainingSet.targetNum) score.append(rf.score(testSet.data,testSet.targetNum)) testSet.hasBeenClassified=True testSet.classifiedAs=rf.predict(testSet.data) print '---------------- {} -----------'.format(i) classifierUtils.evaluateClassification(testSet,{0:'closed',1:'open'}) plt.plot(frac,score,'-*') plt.show() return