public User RecognizeFace(Image <Gray, byte> face)
        {
            using (var context = new FaceRecognitionContext())
            {
                var faces = new List <Image <Gray, byte> >();
                var ids   = new List <string>();

                foreach (var user in context.Users)
                {
                    var reconogizedFace = new Image <Gray, byte>(user.Face.GetBitmap());
                    var id = user.Id.ToString(CultureInfo.InvariantCulture);

                    faces.Add(reconogizedFace);
                    ids.Add(id);
                }

                if (ids.Any())
                {
                    var termCrit        = new MCvTermCriteria(ids.Count(), 0.001);
                    var recognizedFaces = new EigenObjectRecognizer(faces.ToArray(), ids.ToArray(), 2500, ref termCrit);

                    var label = recognizedFaces.Recognize(face);

                    if (!String.IsNullOrEmpty(label))
                    {
                        var id = int.Parse(label);
                        return(context.Users.SingleOrDefault(x => x.Id == id));
                    }
                }

                return(null);
            }
        }
Esempio n. 2
0
 public ImageLabel Get(int id)
 {
     using (var context = new FaceRecognitionContext())
     {
         return(context.ImageLabels.FirstOrDefault(e => e.ImageLabelId == id));
     }
 }
        public void SaveNewDetectedFace(string name, Image <Gray, byte> detectedFace)
        {
            using (var context = new FaceRecognitionContext())
            {
                byte[] pixelData;
                using (var ms = new MemoryStream())
                {
                    detectedFace.Bitmap.Save(ms, ImageFormat.Bmp);
                    pixelData = ms.ToArray();
                }

                var recognizedFace = new RecognizedFace
                {
                    Height    = detectedFace.Height,
                    Width     = detectedFace.Width,
                    PixelData = pixelData
                };
                var user = new User
                {
                    Face     = recognizedFace,
                    NickName = name
                };

                context.Users.Add(user);
                context.SaveChanges();
            }
        }
Esempio n. 4
0
 public void Add(ImageLabel image)
 {
     using (var context = new FaceRecognitionContext())
     {
         context.ImageLabels.Add(image);
         context.SaveChanges();
     }
 }
Esempio n. 5
0
 public void Add(IEnumerable <ImageLabel> images)
 {
     using (var context = new FaceRecognitionContext())
     {
         context.ImageLabels.AddRange(images);
         context.SaveChanges();
     }
 }
Esempio n. 6
0
 public IEnumerable <ImageLabel> GetImages()
 {
     using (var context = new FaceRecognitionContext())
     {
         var imageLabels = context.ImageLabels.AsNoTracking();
         return(imageLabels.ToList());
     }
 }
Esempio n. 7
0
 public void SetLabel(int imageLabelId, string label)
 {
     using (var context = new FaceRecognitionContext())
     {
         var imageLabelToSetLabel = context.ImageLabels.FirstOrDefault(e => e.ImageLabelId == imageLabelId);
         if (imageLabelToSetLabel != null)
         {
             imageLabelToSetLabel.Label = label;
             context.SaveChanges();
         }
     }
 }
Esempio n. 8
0
 public void Delete(int id)
 {
     using (var context = new FaceRecognitionContext())
     {
         var imageLabelToDelete = context.ImageLabels.FirstOrDefault(e => e.ImageLabelId == id);
         if (imageLabelToDelete != null)
         {
             context.ImageLabels.Remove(imageLabelToDelete);
             context.SaveChanges();
         }
     }
 }
Esempio n. 9
0
        public Dictionary <string, int> GetLabelMap()
        {
            var labelsDict = new Dictionary <string, int>();

            using (var context = new FaceRecognitionContext())
            {
                labelsDict = context.ImageLabels.AsNoTracking()
                             .ToDictionary(a => a.Label, b => b.ImageLabelId);
            }
            labelsDict["unknown"] = 0;
            return(labelsDict);
        }
Esempio n. 10
0
        static void Main(string[] args)
        {
            using (var db = new FaceRecognitionContext())
            {
                var query = from u in db.Students
                            orderby u.StudentId
                            select u;

                foreach (var item in query)
                {
                    Console.WriteLine(item.StudentId + ": " + item.FullName);
                }

                Console.WriteLine("Press any key to exit...");
                Console.ReadKey();
            }
        }
 public SlotManagement()
 {
     _context = new FaceRecognitionContext();
 }
 public AttendanceManagement()
 {
     _context = new FaceRecognitionContext();
 }