public void LoadRecognizerData()
 {
     _faceRecognizer.Load(_recognizerFilePath);
 }
Beispiel #2
0
        /// <summary>
        /// Loads the trained Eigen Recogniser from specified location
        /// </summary>
        /// <param name="filename"></param>
        public void Load_Eigen_Recogniser(string filename)
        {
            //Lets get the recogniser type from the file extension
            string ext = Path.GetExtension(filename);

            switch (ext)
            {
            case (".LBPH"):
                Recognizer_Type = "EMGU.CV.LBPHFaceRecognizer";
                recognizer      = new LBPHFaceRecognizer(1, 8, 8, 8, 100);//50
                break;

            case (".FFR"):
                Recognizer_Type = "EMGU.CV.FisherFaceRecognizer";
                recognizer      = new FisherFaceRecognizer(0, 3500);//4000
                break;

            case (".EFR"):
                Recognizer_Type = "EMGU.CV.EigenFaceRecognizer";
                recognizer      = new EigenFaceRecognizer(80, double.PositiveInfinity);
                break;
            }

            //introduce error checking
            recognizer.Load(filename);

            //Now load the labels
            string direct = Path.GetDirectoryName(filename);

            Names_List.Clear();
            if (File.Exists(direct + "/Labels.xml"))
            {
                FileStream filestream = File.OpenRead(direct + "/Labels.xml");
                long       filelength = filestream.Length;
                byte[]     xmlBytes   = new byte[filelength];
                filestream.Read(xmlBytes, 0, (int)filelength);
                filestream.Close();

                MemoryStream xmlStream = new MemoryStream(xmlBytes);

                using (XmlReader xmlreader = XmlTextReader.Create(xmlStream))
                {
                    while (xmlreader.Read())
                    {
                        if (xmlreader.IsStartElement())
                        {
                            switch (xmlreader.Name)
                            {
                            case "NAME":
                                if (xmlreader.Read())
                                {
                                    Names_List.Add(xmlreader.Value.Trim());
                                }
                                break;
                            }
                        }
                    }
                }
                ContTrain = NumLabels;
            }
            _IsTrained = true;
        }