public static string GetAggregatedResultString(List <SatyamResultsTableEntry> results,
                                                       int MinResults = TaskConstants.SINGLE_OBJECT_LABLING_MTURK_MIN_RESULTS_TO_AGGREGATE,
                                                       int MaxResults = TaskConstants.SINGLE_OBJECT_LABLING_MTURK_MAX_RESULTS_TO_AGGREGATE,
                                                       double probabilityThreshold = TaskConstants.SINGLE_OBJECT_LABLING_MTURK_MAJORITY_THRESHOLD)
        {
            string resultString = null;
            List <SingleObjectLabelingResult> resultList = new List <SingleObjectLabelingResult>();

            foreach (SatyamResultsTableEntry entry in results)
            {
                SatyamResult res = JSonUtils.ConvertJSonToObject <SatyamResult>(entry.ResultString);
                SingleObjectLabelingResult taskr = JSonUtils.ConvertJSonToObject <SingleObjectLabelingResult>(res.TaskResult);
                resultList.Add(taskr);
            }


            SingleObjectLabelingAggregatedResult r = getAggregatedResult(resultList, MinResults, MaxResults, probabilityThreshold);

            if (r != null)
            {
                string rString = JSonUtils.ConvertObjectToJSon <SingleObjectLabelingAggregatedResult>(r);
                SatyamAggregatedResult aggResult = new SatyamAggregatedResult();
                aggResult.SatyamTaskTableEntryID = results[0].SatyamTaskTableEntryID;
                aggResult.AggregatedResultString = rString;
                SatyamResult res = JSonUtils.ConvertJSonToObject <SatyamResult>(results[0].ResultString);
                aggResult.TaskParameters = res.TaskParametersString;
                resultString             = JSonUtils.ConvertObjectToJSon <SatyamAggregatedResult>(aggResult);
            }
            return(resultString);
        }
Ejemplo n.º 2
0
        public static bool SingleObjectLabelingResultEqualsGroundTruth(string satyamUri, string resultString)
        {
            //string[] uri_parts = satyamUri.Split('/');
            //string[] name_parts = uri_parts[uri_parts.Length - 1].Split('_');
            //string imageName = name_parts[0];
            string fileName                   = URIUtilities.filenameFromURI(satyamUri);
            string imageCategoryName          = fileName.Split('_')[0];
            SingleObjectLabelingResult result = JSonUtils.ConvertJSonToObject <SingleObjectLabelingResult>(resultString);

            return(result.Category.Equals(GroundTruth[imageCategoryName], StringComparison.InvariantCultureIgnoreCase));
        }
        public static bool SingleObjectLabelingResultEqualsGroundTruth(string satyamUri, string resultString)
        {
            string fileName = URIUtilities.filenameFromURINoExtension(satyamUri);

            string VideoCategory = getVideoCategoryFromFileName(fileName);

            if (VideoCategory == "")
            {
                Console.WriteLine("this video doesn't have valid category in filename");
            }

            SingleObjectLabelingResult result = JSonUtils.ConvertJSonToObject <SingleObjectLabelingResult>(resultString);

            return(result.Category.Equals(VideoCategory, StringComparison.InvariantCultureIgnoreCase));
        }
        public static bool IsAcceptable(SatyamAggregatedResultsTableEntry aggResult, SatyamResultsTableEntry result)
        {
            SatyamResult           res    = JSonUtils.ConvertJSonToObject <SatyamResult>(result.ResultString);
            SatyamAggregatedResult aggres = JSonUtils.ConvertJSonToObject <SatyamAggregatedResult>(aggResult.ResultString);

            SingleObjectLabelingResult           r    = JSonUtils.ConvertJSonToObject <SingleObjectLabelingResult>(res.TaskResult);
            SingleObjectLabelingAggregatedResult ragg = JSonUtils.ConvertJSonToObject <SingleObjectLabelingAggregatedResult>(aggres.AggregatedResultString);

            if (r.Category == ragg.Category)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            DateTime SubmitTime   = DateTime.Now;
            DateTime PageLoadTime = Convert.ToDateTime(Hidden_PageLoadTime.Value);


            if (CategorySelection_RadioButtonList.SelectedIndex != -1)
            {
                SatyamTaskTableEntry taskEntry = JSonUtils.ConvertJSonToObject <SatyamTaskTableEntry>(Hidden_TaskEntryString.Value);

                SatyamResult result = new SatyamResult();

                result.TaskParametersString = taskEntry.TaskParametersString;
                result.TaskStartTime        = PageLoadTime;
                result.TaskEndTime          = SubmitTime;
                result.TaskTableEntryID     = taskEntry.ID;

                AmazonTaskResultInfo amazonInfo = new AmazonTaskResultInfo();
                amazonInfo.AssignmentID = "";
                amazonInfo.WorkerID     = "";
                amazonInfo.HITID        = "";

                result.amazonInfo = amazonInfo;

                SingleObjectLabelingResult sresult = new SingleObjectLabelingResult();
                sresult.Category = CategorySelection_RadioButtonList.Items[CategorySelection_RadioButtonList.SelectedIndex].Text;
                string sresultString = JSonUtils.ConvertObjectToJSon <SingleObjectLabelingResult>(sresult);
                result.TaskResult = sresultString;

                string resultString = JSonUtils.ConvertObjectToJSon <SatyamResult>(result);

                SatyamResultsTableAccess resultdb = new SatyamResultsTableAccess();
                resultdb.AddEntry(taskEntry.JobTemplateType, taskEntry.UserID, taskEntry.JobGUID, resultString, taskEntry.ID, PageLoadTime, SubmitTime);
                resultdb.close();
                //SatyamTaskTableAccess taskDB = new SatyamTaskTableAccess();
                //taskDB.IncrementDoneScore(taskEntry.ID);

                bool status = getNewRandomJob();
                if (!status)
                {
                    Response.Redirect("AllJobsDone.aspx");
                }
            }
        }
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            DateTime SubmitTime   = DateTime.Now;
            DateTime PageLoadTime = Convert.ToDateTime(Hidden_PageLoadTime.Value);


            if (CategorySelection_RadioButtonList.SelectedIndex != -1)
            {
                SatyamTaskTableEntry taskEntry = JSonUtils.ConvertJSonToObject <SatyamTaskTableEntry>(Hidden_TaskEntryString.Value);

                SatyamResult result = new SatyamResult();

                result.TaskParametersString = taskEntry.TaskParametersString;
                result.TaskStartTime        = PageLoadTime;
                result.TaskEndTime          = SubmitTime;
                result.TaskTableEntryID     = taskEntry.ID;

                AmazonTaskResultInfo amazonInfo = new AmazonTaskResultInfo();
                amazonInfo.AssignmentID = Hidden_AmazonAssignmentID.Value;
                amazonInfo.WorkerID     = Hidden_AmazonWorkerID.Value;
                amazonInfo.HITID        = Hidden_HITID.Value;
                amazonInfo.PricePerHIT  = Convert.ToDouble(Hidden_Price.Value);


                result.amazonInfo = amazonInfo;

                SingleObjectLabelingResult sresult = new SingleObjectLabelingResult();
                sresult.Category = CategorySelection_RadioButtonList.Items[CategorySelection_RadioButtonList.SelectedIndex].Text;
                string sresultString = JSonUtils.ConvertObjectToJSon <SingleObjectLabelingResult>(sresult);
                result.TaskResult = sresultString;

                string resultString = JSonUtils.ConvertObjectToJSon <SatyamResult>(result);

                SatyamResultsTableAccess resultdb = new SatyamResultsTableAccess();
                resultdb.AddEntry(taskEntry.JobTemplateType, taskEntry.UserID, taskEntry.JobGUID, resultString, taskEntry.ID, PageLoadTime, SubmitTime);
                resultdb.close();
                SatyamTaskTableManagement.UpdateResultNumber(taskEntry.ID);

                //SatyamTaskTableAccess taskDB = new SatyamTaskTableAccess();
                //taskDB.IncrementDoneScore(taskEntry.ID);

                int noDone = Convert.ToInt32(Hidden_NoImagesDone.Value);
                noDone++;
                Hidden_NoImagesDone.Value = noDone.ToString();

                int noTasksPerJob = Convert.ToInt32(Hidden_TasksPerJob.Value);

                bool NotDone = false;

                if (noDone < noTasksPerJob)
                {
                    NotDone = getNewRandomJob();
                }
                if (NotDone == false)
                {
                    if (!Testing)
                    {
                        SatyamAmazonHITTableAccess HITdb = new SatyamAmazonHITTableAccess();
                        string HITID = result.amazonInfo.HITID;
                        HITdb.UpdateStatusByHITID(HITID, HitStatus.submitted);
                        HITdb.close();
                        AmazonMTurkNotification.submitAmazonTurkHit(result.amazonInfo.AssignmentID, result.amazonInfo.WorkerID, false);
                    }
                    Response.Redirect("MTurkTaskDonePage.aspx");
                }
            }
        }