static void Main(String[] args) { // train(2,3,16,8,1); Console.WriteLine("done train"); //create an object o the algorithm //ModularFaceRecognitionAlgorithms mpca = new ModularFaceRecognitionAlgorithms(); //mpca.loadTrainingData("E:/trainMPCA.txt"); //string testPath = @"E:\test\s3\10.bmp"; //Matrix test = FileManager.GetBitMapColorMatrix(testPath); //Console.WriteLine(mpca.test(test)); //EigenFaceRecognizer pca = new EigenFaceRecognizer(); //pca.loadTrainingData("E:/trainPCA.txt"); //string testPath = @"E:\test\s4\10.bmp"; //Matrix test = ImageGrapper.GetMatrixGivenPath(testPath); //test = convertTo1D(test); //Console.WriteLine(pca.test(test)); //LinearDescriminantAnalysis lda = new LinearDescriminantAnalysis(); //lda.loadTrainingData("E:/trainLDA.txt"); //string testPath = @"E:\test\s3\10.bmp"; //Matrix test = ImageGrapper.GetMatrixGivenPath(testPath); //test = convertTo1D(test); //Console.WriteLine(lda.test(test)); LaplacianFaceRecognizer lpp = new LaplacianFaceRecognizer(); lpp.loadTrainingData("E:/trainLDA.txt"); string testPath = @"E:\test\s5\10.bmp"; Matrix test = ImageGrapper.GetMatrixGivenPath(testPath); test = convertTo1D(test); Console.WriteLine(lpp.test(test)); Console.ReadLine(); }
static void train(int metricType, int recognizer, int noOfComponents, int trainNums, int knn_k) { //set trainSet and testSet Dictionary <String, List <int> > trainMap = new Dictionary <string, List <int> >(); Dictionary <String, List <int> > testMap = new Dictionary <string, List <int> >(); for (int i = 1; i <= 5; i++) { String label = "s" + i; List <int> train = generateTrainNums(trainNums); List <int> test = generateTestNums(train); trainMap[label] = train; testMap[label] = test; } //trainingSet & respective labels List <Matrix> trainingSet = new List <Matrix>(); List <String> labels = new List <String>(); HashSet <String> labelSet = new HashSet <string>(trainMap.Keys); foreach (String label in labelSet) { List <int> cases = trainMap[label]; for (int i = 0; i < cases.Count; i++) { String filePath = "E:/faces/" + label + "/" + cases[i] + ".bmp"; Matrix temp; try { temp = ImageGrapper.GetMatrixGivenPath(filePath); if (recognizer != 0) { temp = convertTo1D(temp); } trainingSet.Add(temp); labels.Add(label); } catch (Exception e) {} } } FaceRecognizer fr = null; if (recognizer == 0) { fr = new ModularFaceRecognitionAlgorithms(trainingSet, labels, 200, 16, trainNums); } else if (recognizer == 1) { fr = new EigenFaceRecognizer(trainingSet, labels, 40); } else if (recognizer == 2) { fr = new LinearDescriminantAnalysis(trainingSet, labels); } else if (recognizer == 3) { fr = new LaplacianFaceRecognizer(trainingSet, labels, 20); } fr.saveTrainingData(@"E:\trainLPP.txt"); }