private void ComputeObjectsFromFolder() { if (!VerifyWebConfigVariables()) { return; } var emotionMapper = new MLMapper(); var sourceFolder = ConfigurationManager.AppSettings["SourceFolder"].ToString(); var saveFolder = ConfigurationManager.AppSettings["SaveFolder"].ToString(); var files = Directory.GetFiles(sourceFolder); foreach (var file in files) { string lastFolderName = Path.GetFileName(Path.GetDirectoryName(file)); InfoDTO dto = new InfoDTO() { Category = lastFolderName, Image = file }; Console.WriteLine(string.Format("Processing {0}", file)); Thread.Sleep(_pauseParameter); byte[] imgdata = System.IO.File.ReadAllBytes(file); ObjectInfoDTO objectsDTOs = _mlService.GetObjectsFromImage(imgdata); } }
private void ComputeAllCharacteristicsFromFolder() { if (!VerifyWebConfigVariables()) { return; } var emotionMapper = new MLMapper(); var sourceFolder = ConfigurationManager.AppSettings["SourceFolder"].ToString(); var saveFolder = ConfigurationManager.AppSettings["SaveFolder"].ToString(); string[] dirs = Directory.GetDirectories(sourceFolder); foreach (var dir in dirs) { string[] files = Directory.GetFiles(dir); Parallel.ForEach(files, new ParallelOptions { MaxDegreeOfParallelism = 4 }, (file) => { var mlService = new MLService(new ServiceProxyCognitiveAzure()); string lastFolderName = Path.GetFileName(Path.GetDirectoryName(file)); string fileName = Path.GetFileName(file); Console.WriteLine(string.Format("Processing {0}", file)); byte[] imgdata = System.IO.File.ReadAllBytes(file); FaceEmotionDTO[] emotionDTOs = mlService.GetEmotionsFromImage(imgdata); if (emotionDTOs != null && emotionDTOs.Count() > 0) { FaceInfoDTO[] faceInfo = mlService.GetFacesFromImage(imgdata); ObjectInfoDTO objectsDTOs = mlService.GetObjectsFromImage(imgdata); var imageinfo = new ImageInfoDTO() { Emotions = emotionDTOs, Faces = faceInfo, Objects = objectsDTOs, Category = lastFolderName, ImageUrl = fileName, Anger = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Anger : 0), Contempt = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Contempt : 0), Disgust = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Disgust : 0), Fear = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Fear : 0), Happiness = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Happiness : 0), Neutral = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Neutral : 0), Sadness = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Sadness : 0), Surprise = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Surprise : 0) }; if (imageinfo != null) { _emotionService.AddEmotion(imageinfo); } Thread.Sleep(_pauseParameter); } } ); } }