public static void SaveResultVideosLocally(List <SatyamResultsTableEntry> entries, string directoryName, int fps = 10) { directoryName = directoryName + "\\Raw"; if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } SatyamJobStorageAccountAccess satyamStorage = new SatyamJobStorageAccountAccess(); for (int i = 0; i < entries.Count; i++) { SatyamResultsTableEntry entry = entries[i]; SatyamResult satyamResult = JSonUtils.ConvertJSonToObject <SatyamResult>(entry.ResultString); SatyamTask task = JSonUtils.ConvertJSonToObject <SatyamTask>(satyamResult.TaskParametersString); MultiObjectTrackingSubmittedJob job = JSonUtils.ConvertJSonToObject <MultiObjectTrackingSubmittedJob>(task.jobEntry.JobParameters); string blobDir = URIUtilities.localDirectoryFullPathFromURI(task.SatyamURI); //VATIC_DVA_CrowdsourcedResult taskr = new VATIC_DVA_CrowdsourcedResult(satyamResult.TaskResult, task.SatyamURI, start, end, task.SatyamJobSubmissionsTableEntryID.ToString()); VATIC_DVA_CrowdsourcedResult taskr = MultiObjectTrackingAggregator.createVATIC_DVA_CrowdsourcedResultUsingSatyamBlobImageCount(satyamResult.TaskResult, blobDir, entry.ID.ToString(), job.FrameRate); MultiObjectTrackingResult res = taskr.getCompressedTracksInTimeSegment(); List <string> ImageURLs = satyamStorage.getURLListOfSpecificExtensionUnderSubDirectoryByURI(blobDir, new List <string>() { "jpg", "png" }); string videoName = URIUtilities.localDirectoryNameFromURI(blobDir) + "_" + URIUtilities.filenameFromURINoExtension(task.SatyamURI) + "_" + entry.ID; MultiObjectTrackingAnalyzer.generateVideoForEvaluation(ImageURLs, res, directoryName, videoName, job.FrameRate); } }
public static void SaveResultVideosLocally(List <SatyamResultsTableEntry> entries, string directoryName, int fps = 10) { directoryName = directoryName + "\\Raw"; if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } SatyamJobStorageAccountAccess satyamStorage = new SatyamJobStorageAccountAccess(); for (int i = 0; i < entries.Count; i++) { SatyamResultsTableEntry entry = entries[i]; SatyamResult satyamResult = JSonUtils.ConvertJSonToObject <SatyamResult>(entry.ResultString); SatyamTask task = JSonUtils.ConvertJSonToObject <SatyamTask>(satyamResult.TaskParametersString); MultiObjectTrackingSubmittedJob job = JSonUtils.ConvertJSonToObject <MultiObjectTrackingSubmittedJob>(task.jobEntry.JobParameters); //VATIC_DVA_CrowdsourcedResult taskr = new VATIC_DVA_CrowdsourcedResult(satyamResult.TaskResult, task.SatyamURI, start, end, task.SatyamJobSubmissionsTableEntryID.ToString()); VATIC_DVA_CrowdsourcedResult taskr = MultiObjectTrackingAggregator.createVATIC_DVA_CrowdsourcedResultUsingSatyamBlobImageCount(satyamResult.TaskResult, task.SatyamURI, entry.ID.ToString(), job.FrameRate); MultiObjectTrackingResult res = taskr.getCompressedTracksInTimeSegment(); List <string> ImageURLs = satyamStorage.getURLListOfSubDirectoryByURL(task.SatyamURI); string[] names = task.SatyamURI.Split('/'); string videoName = names[names.Length - 2] + "_" + entry.ID; generateVideoForEvaluation(ImageURLs, res, directoryName, videoName, job.FrameRate); } }
public static bool IsAcceptable(SatyamAggregatedResultsTableEntry aggEntry, SatyamResultsTableEntry result) { switch (result.JobTemplateType) { case TaskConstants.Classification_Image: case TaskConstants.Classification_Image_MTurk: case TaskConstants.Classification_Video: case TaskConstants.Classification_Video_MTurk: return(SingleObjectLabelingAggregator.IsAcceptable(aggEntry, result)); case TaskConstants.Counting_Image: case TaskConstants.Counting_Image_MTurk: case TaskConstants.Counting_Video: case TaskConstants.Counting_Video_MTurk: return(ObjectCountingAggregator.IsAcceptable(aggEntry, result)); case TaskConstants.Detection_Image: case TaskConstants.Detection_Image_MTurk: return(MultiObjectLocalizationAndLabelingAggregator.IsAcceptable(aggEntry, result)); case TaskConstants.Tracking: case TaskConstants.Tracking_MTurk: return(MultiObjectTrackingAggregator.IsAcceptable(aggEntry, result)); case TaskConstants.Segmentation_Image: case TaskConstants.Segmentation_Image_MTurk: return(ImageSegmentationAggregator.IsAcceptable(aggEntry, result)); case TaskConstants.OpenEndedQuestion_Image: case TaskConstants.OpenEndedQuestion_Image_MTurk: return(true); //TBD case TaskConstants.TrackletLabeling: case TaskConstants.TrackletLabeling_MTurk: return(TrackletLabelingAggregator.IsAcceptable(aggEntry, result)); } return(false); }
//public static void Aggregate() //{ // //first get all the results that are not aggregated // SatyamResultsTableAccess resultsDB = new SatyamResultsTableAccess(); // List<SatyamResultsTableEntry> results = resultsDB.getEntriesByStatus(); // //first group all the results by the tasks since wach task may ahve multiple entries // Dictionary<int, List<SatyamResultsTableEntry>> collectedResults = new Dictionary<int, List<SatyamResultsTableEntry>>(); // foreach (SatyamResultsTableEntry entry in results) // { // int taskID = entry.SatyamTaskTableEntryID; // if (!collectedResults.ContainsKey(taskID)) // { // collectedResults.Add(taskID, new List<SatyamResultsTableEntry>()); // } // collectedResults[taskID].Add(entry); // } // //now aggreagate the results for eacht ask. // List<int> taskIDList = collectedResults.Keys.ToList(); // List<SatyamAggregatedResultsTableEntry> aggEntries = new List<SatyamAggregatedResultsTableEntry>(); // foreach (int taskId in taskIDList) // { // SatyamAggregatedResultsTableEntry aggEntry = GetAggregatedResultString(taskId, collectedResults[taskId]); // if (aggEntry != null) // { // aggEntries.Add(aggEntry); // } // } // SatyamAggregatedResultsTableAccess aggDB = new SatyamAggregatedResultsTableAccess(); // aggDB.AddEntries(aggEntries); // resultsDB.close(); // aggDB.close(); //} public static SatyamAggregatedResultsTableEntry GetAggregatedResultString(int taskId, List <SatyamResultsTableEntry> resultEntries) { SatyamAggregatedResultsTableEntry aggEntry = null; string templateType = resultEntries[0].JobTemplateType; string aggResultString = null; switch (templateType) { case TaskConstants.Classification_Image: case TaskConstants.Classification_Image_MTurk: case TaskConstants.Classification_Video: case TaskConstants.Classification_Video_MTurk: aggResultString = SingleObjectLabelingAggregator.GetAggregatedResultString(resultEntries); break; case TaskConstants.Counting_Image: case TaskConstants.Counting_Image_MTurk: case TaskConstants.Counting_Video: case TaskConstants.Counting_Video_MTurk: aggResultString = ObjectCountingAggregator.GetAggregatedResultString(resultEntries); break; case TaskConstants.Detection_Image: case TaskConstants.Detection_Image_MTurk: aggResultString = MultiObjectLocalizationAndLabelingAggregator.GetAggregatedResultString(resultEntries); break; case TaskConstants.Tracking: aggResultString = null; //Done testing, marked null so it becomes a demo page. break; case TaskConstants.Tracking_MTurk: aggResultString = MultiObjectTrackingAggregator.GetAggregatedResultString(resultEntries); break; case TaskConstants.TrackletLabeling: case TaskConstants.TrackletLabeling_MTurk: aggResultString = TrackletLabelingAggregator.GetAggregatedResultString(resultEntries); break; case TaskConstants.Segmentation_Image: aggResultString = null; //Done testing, marked null so it becomes a demo page. break; case TaskConstants.Segmentation_Image_MTurk: aggResultString = ImageSegmentationAggregator.GetAggregatedResultString(resultEntries); break; case TaskConstants.OpenEndedQuestion_Image: case TaskConstants.OpenEndedQuestion_Image_MTurk: break; } if (aggResultString != null) { aggEntry = new SatyamAggregatedResultsTableEntry(); aggEntry.JobGUID = resultEntries[0].JobGUID; aggEntry.JobTemplateType = resultEntries[0].JobTemplateType; aggEntry.SatyamTaskTableEntryID = resultEntries[0].SatyamTaskTableEntryID; aggEntry.UserID = resultEntries[0].UserID; aggEntry.ResultString = aggResultString; } return(aggEntry); }