public void CaptureImage()
 {
     Debug.Log("Capture started");
     ScreenCapture.CaptureScreenshot("Assets/screenshot.jpg");
     fd.DetectFaces();
     // Application.persistentDataPath + "/screenshot.png"
 }
Ejemplo n.º 2
0
        private static void FindFaces(FaceDetector faceDetector, string imageFilePath, string outputFile, bool debug = true)
        {
            using Image <RgbaVector> image = Image.Load <RgbaVector>(imageFilePath);
            var predictions = faceDetector.DetectFaces(image, 0.8f, noneMaximaSuppression: false);

            Console.WriteLine($"found {predictions.Count} faces.");

            foreach (var prediction in predictions)
            {
                FaceDetector.DrawPrediction(image, prediction, Color.Green, 14);
                if (debug)
                {
                    FaceDetector.DrawYoloTiles(image, Color.Red);
                }
            }

            image.SaveAsPng(outputFile);
        }
Ejemplo n.º 3
0
 public int FaceDetection()
 {
     using var image = Image.Load<RgbaVector>(imagePath);
     return faceDetector.DetectFaces(image).Count;
 }
Ejemplo n.º 4
0
        private void OnRecognizeByPhotoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            StopVideoSource();

            using (var openFileDlg = new OpenFileDialog())
            {
                openFileDlg.Title            = "Выберите картинку";
                openFileDlg.InitialDirectory = Path.Combine(
                    Directory.GetCurrentDirectory(),
                    "Photo");
                openFileDlg.Filter = "Images|*.jpg;*.png;*.bmp|All files|*.*";

                if (openFileDlg.ShowDialog(this) == DialogResult.OK)
                {
                    /**/
                    var detector = new FaceDetector(openFileDlg.FileName);

                    detector.DetectFaces();

                    var trainDataPath = Path.Combine(
                        Directory.GetCurrentDirectory(),
                        "Samples",
                        "LBPFaces.xml");

                    foreach (var face in detector.FacesRepository)
                    {
                        int    result    = _recognizer.Recognize(face);
                        string resultStr = string.Empty;

                        if (result != -1)
                        {
                            try
                            {
                                var employeeLogRepository = _container.Resolve <EmployeesLogRepository>();
                                var filter = _container.Resolve <EmployeesLogRepositoryFilter>();
                                filter.PersonLabel = result;

                                var employeeRecord = employeeLogRepository.FetchRecords(filter)[0];

                                resultStr = "Распознан " + employeeRecord;

                                Log.Info(resultStr);
                            }
                            catch (Exception exc)
                            {
                                Log.Error("Ошибка в запросе к БД", exc);
                            }
                        }

                        else
                        {
                            resultStr = "Лицо не распознано";

                            Log.Info(resultStr);
                        }

                        MessageBox.Show(resultStr, "Recognizer", MessageBoxButtons.OK);
                    }

                    detector
                    .FacesRepository
                    .Clear();
                }

                StartVideoSource();
            }
        }
Ejemplo n.º 5
0
        public HttpResponseMessage Post()
        {
            //Logger.Write("Starting upload");

            HttpResponseMessage rm = new HttpResponseMessage(HttpStatusCode.OK);

            rm.PublicCache(true);
            JsonMediaTypeFormatter jmtf = new JsonMediaTypeFormatter();

            jmtf.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;

            string script;
            var    httpRequest = HttpContext.Current.Request;

            //Logger.Write($"Got {httpRequest.Files.Count} file(s)");

            if (httpRequest.Files.Count > 0)
            {
                var    postedFile = httpRequest.Files[0];
                string type       = "Images";           //postedFile.FileName.ToLower().EndsWith("jpg") || postedFile.FileName.ToLower().EndsWith("png") ? "Images" : "Documents";
                var    filePath   = HttpContext.Current.Server.MapPath($"~/UploadedFiles/{type}/{postedFile.FileName}");

                try
                {
                    Bitmap img = new Bitmap(postedFile.InputStream);
                    img.Dispose();
                }
                catch (Exception ex)
                {
                    type = "Documents";
                }

                postedFile.SaveAs(filePath);

                //Logger.Write($"Saved file - {filePath}");

                var requestType = httpRequest.Form["type"];

                //Logger.Write($"Request type is '{requestType}'");

                switch (requestType)
                {
                case "article":
                    script = $"<script type='text/javascript'>(function(){{" +
                             $"parent.model.NewArticle().FileUploadState({{FilePath:'UploadedFiles/{type}/{postedFile.FileName}',ErrorMessage:'',IsError:false}});}})();" +
                             $"parent.$.page.hideLoading();</script>";
                    break;

                case "author":
                    bool   isImage = true;
                    string error   = "";
                    try
                    {
                        //Logger.Write("Creating bitmap");

                        Bitmap img = new Bitmap(filePath);

                        //Logger.Write("Created bitmap");

                        //Logger.Write("Detecting faces");
                        var faces = FaceDetector.DetectFaces(new Image <Bgr, byte>(img).Mat);

                        //Logger.Write($"Detected {faces.Count} face(s)");

                        if (faces.Count < 1)
                        {
                            isImage = false;
                            error   = "לא זוהו פנים בתמונה שהועלתה";
                            img.Dispose();
                        }
                        else
                        {
                            //Logger.Write("Resizing image");
                            using (Image newImage = img.ToFixedSize(300, 300))
                            {
                                img.Dispose();
                                if (File.Exists(filePath))
                                {
                                    File.Delete(filePath);
                                }
                                newImage.Save(filePath, System.Drawing.Imaging.ImageFormat.Png);
                                //Logger.Write("Resized image");
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        while (ex != null)
                        {
                            Logger.Write(ex.Message);
                            ex = ex.InnerException;
                        }
                        error   = "הקובץ שהועלה אינו תמונה";
                        isImage = false;
                    }

                    if (!isImage)
                    {
                        if (File.Exists(filePath))
                        {
                            File.Delete(filePath);
                        }
                    }
                    else
                    {
                    }

                    script = $"<script type='text/javascript'>(function()" +
                             $"{{\r\n" +
                             //	$"	debugger\r\n" +
                             $"	parent.model.NewAuthorHolder.Author.FileUploadState(" +
                             $"		new parent.FileUploadState(\r\n"+
                             $"		{{"+
                             $"			FilePath:'{(isImage?$"UploadedFiles/{type}/{postedFile.FileName}":"Images/no-photo.jpg")}',\r\n"+
                             $"			ErrorMessage:'{error.Replace("'", "\\'")}',\r\n"+
                             $"			IsError:{(!isImage).ToString().ToLower()}"+
                             $"		}}));\r\n"+
                             $"}})();" +
                             $"parent.$.page.hideLoading();\r\n" +
                             $"</script>";
                    break;

                default:
                    script = "";
                    break;
                }
            }
            else
            {
                script = $"<script type='text/javascript'></script>";                 //(function(){{parent.model.NewArticle().FilePath('');}})();
            }

            rm.Content = new StringContent(script, Encoding.UTF8, "text/html");

            return(rm);
        }