コード例 #1
0
    def evaluate(self,
                 n=1000,
                 successAndPrecisionPlotName='',
                 histogramPlot=''):
        '''

        Evaluate the dataset

        :return: accuracy and precision
        '''

        completeMetricDict = dict()

        plotMetricsDict = dict()

        for run, experimentName in zip(self.listOfExperiments,
                                       self.experimentNames):

            fullP = 0
            fullS = 0

            ll = 0

            experimentDict = dict()

            for expName, experiment in run.data.iteritems():

                x_p_var = np.zeros((n, 1))
                y_p_var = np.zeros((n, 1))

                x_s_var = np.zeros((n, 1))
                y_s_var = np.zeros((n, 1))

                averageP = 0
                averageS = 0

                l = 0

                for videoData in experiment.data:

                    gt = [
                        x for x in self.dataset.data if x[0] == videoData[0]
                    ][0]

                    for expRunIndex in range(0, len(videoData[1])):
                        (x_pr, y_pr, x_s, y_s) = Evaluator.evaluateSingleVideo(
                            videoData, gt, experimentNumber=expRunIndex, n=n)

                        x_p_var = x_p_var + x_pr
                        y_p_var = y_p_var + y_pr

                        x_s_var = x_s_var + x_s
                        y_s_var = y_s_var + y_s

                        l = l + 1

                        (p1, s1) = Evaluator.getIntegralValues(
                            x_pr, y_pr, x_s, y_s)

                        averageP = averageP + p1
                        averageS = averageS + s1

                        if expName != 'default':
                            fullP = fullP + p1
                            fullS = fullS + s1
                            ll = ll + 1

                x_p_var = x_p_var / (float(l))
                y_p_var = y_p_var / (float(l))
                x_s_var = x_s_var / (float(l))
                y_s_var = y_s_var / (float(l))

                averageP = averageP / (float(l))
                averageS = averageS / (float(l))

                experimentDict[expName] = (x_p_var, y_p_var, x_s_var, y_s_var,
                                           averageP, averageS)

            fullP = fullP / (float(ll))
            fullS = fullS / (float(ll))

            completeMetricDict[experimentName] = (fullP, fullS)

            plotMetricsDict[experimentName] = experimentDict

            print experimentName
            print "===================="
            print "Precision: ", fullP
            print "Success: ", fullS

            for key, value in experimentDict.iteritems():
                print key
                print value[4], value[5]

            print "===================="

        # runEvaluation is

        self.createPlot(plotMetricsDict,
                        completeMetricDict,
                        savefilename=successAndPrecisionPlotName)
        self.createHistogramPlot(plotMetricsDict,
                                 completeMetricDict,
                                 savefilename=histogramPlot)
コード例 #2
0
    def evaluate(self, n=1000, successAndPrecisionPlotName='', histogramPlot=''):

        '''

        Evaluate the dataset

        :return: accuracy and precision
        '''



        completeMetricDict=dict()

        plotMetricsDict=dict()

        for run,experimentName in zip(self.listOfExperiments,self.experimentNames):

            fullP=0
            fullS=0

            ll=0

            experimentDict=dict()

            for expName, experiment in run.data.iteritems():


                x_p_var=np.zeros((n,1))
                y_p_var= np.zeros((n, 1))

                x_s_var= np.zeros((n, 1))
                y_s_var= np.zeros((n, 1))


                averageP=0
                averageS=0


                l=0

                for videoData in experiment.data:

                    gt = [x for x in self.dataset.data if x[0] == videoData[0]][0]



                    for expRunIndex in range(0, len(videoData[1])):
                        (x_pr, y_pr, x_s, y_s) = Evaluator.evaluateSingleVideo(videoData, gt, experimentNumber=expRunIndex,
                                                                               n=n)

                        x_p_var= x_p_var+x_pr
                        y_p_var= y_p_var+y_pr

                        x_s_var=x_s_var+x_s
                        y_s_var=y_s_var+y_s


                        l=l+1

                        (p1,s1)=Evaluator.getIntegralValues(x_pr,y_pr,x_s,y_s)

                        averageP=averageP+p1
                        averageS=averageS+s1


                        if expName!='default':
                            fullP= fullP+p1
                            fullS=fullS+s1;
                            ll=ll+1


                x_p_var=x_p_var/(float(l))
                y_p_var = y_p_var / (float(l))
                x_s_var = x_s_var / (float(l))
                y_s_var = y_s_var / (float(l))

                averageP= averageP/(float(l))
                averageS=averageS/(float(l))

                experimentDict[expName]=(x_p_var,y_p_var,x_s_var,y_s_var,averageP,averageS)

            fullP= fullP/(float(ll))
            fullS = fullS / (float(ll))

            completeMetricDict[experimentName]=(fullP,fullS)

            plotMetricsDict[experimentName]=experimentDict


            print experimentName
            print "===================="
            print "Precision: ",fullP
            print "Success: ",fullS

            for key,value in experimentDict.iteritems():
                print key
                print value[4],value[5]

            print "===================="






        # runEvaluation is

        self.createPlot(plotMetricsDict,completeMetricDict,savefilename=successAndPrecisionPlotName)
        self.createHistogramPlot(plotMetricsDict, completeMetricDict, savefilename=histogramPlot)
コード例 #3
0
    def calculateMetricsAndSave(self, savePath, n=1000):
        completeMetricDict = dict()

        plotMetricsDict = dict()

        for run, experimentName in zip(self.listOfExperiments,
                                       self.experimentNames):

            fullP = 0
            fullS = 0

            ll = 0

            experimentDict = dict()

            for expName, experiment in run.data.iteritems():

                # if there is only one experiment
                if len(experiment.data) == 0:
                    continue

                x_p_var = np.zeros(n)
                y_p_var = np.zeros(n)

                x_s_var = np.zeros(n)
                y_s_var = np.zeros(n)

                averageP = 0
                averageS = 0

                l = 0

                for videoData in experiment.data:

                    gt = [
                        x for x in self.dataset.data if x[0] == videoData[0]
                    ][0]

                    for expRunIndex in range(0, len(videoData[1])):
                        (x_pr, y_pr, x_s, y_s) = Evaluator.evaluateSingleVideo(
                            videoData, gt, experimentNumber=expRunIndex, n=n)

                        x_p_var = np.add(x_p_var, x_pr)
                        y_p_var = np.add(y_p_var, y_pr)

                        x_s_var = np.add(x_s_var, x_s)
                        y_s_var = np.add(y_s_var, y_s)

                        l = l + 1

                        (p1, s1) = Evaluator.getIntegralValues(
                            x_pr, y_pr, x_s, y_s)

                        averageP = averageP + p1
                        averageS = averageS + s1

                        if expName != 'default':
                            fullP = fullP + p1
                            fullS = fullS + s1
                            ll = ll + 1

                x_p_var = x_p_var / (float(l))
                y_p_var = y_p_var / (float(l))
                x_s_var = x_s_var / (float(l))
                y_s_var = y_s_var / (float(l))

                averageP = averageP / (float(l))
                averageS = averageS / (float(l))

                experimentDict[expName] = (x_p_var, y_p_var, x_s_var, y_s_var,
                                           averageP, averageS)

            if ll == 0:
                fullP = 0
                fullS = 0
            else:
                fullP = fullP / (float(ll))
                fullS = fullS / (float(ll))

            completeMetricDict[experimentName] = (fullP, fullS)

            plotMetricsDict[experimentName] = experimentDict

            print experimentName
            print "===================="
            print "Precision: ", fullP
            print "Success: ", fullS

            for key, value in experimentDict.iteritems():
                print key
                print value[4], value[5]

            print "===================="

            e = Evaluated(plotMetricsDict[experimentName],
                          completeMetricDict[experimentName], experimentName)

            e.save(savePath + "/" + experimentName + ".p")
コード例 #4
0
    def calculateMetricsAndSave(self,savePath,n=1000):
        completeMetricDict = dict()

        plotMetricsDict = dict()

        for run, experimentName in zip(self.listOfExperiments, self.experimentNames):

            fullP = 0
            fullS = 0

            ll = 0

            experimentDict = dict()

            for expName, experiment in run.data.iteritems():


                x_p_var = np.zeros(n)
                y_p_var = np.zeros(n)

                x_s_var = np.zeros(n)
                y_s_var = np.zeros(n)

                averageP = 0
                averageS = 0

                l = 0

                for videoData in experiment.data:

                    gt = [x for x in self.dataset.data if x[0] == videoData[0]][0]

                    for expRunIndex in range(0, len(videoData[1])):
                        (x_pr, y_pr, x_s, y_s) = Evaluator.evaluateSingleVideo(videoData, gt,
                                                                               experimentNumber=expRunIndex,
                                                                               n=n)

                        x_p_var =np.add(x_p_var, x_pr)
                        y_p_var = np.add(y_p_var,y_pr)

                        x_s_var = np.add(x_s_var,x_s)
                        y_s_var = np.add(y_s_var,y_s)

                        l = l + 1

                        (p1, s1) = Evaluator.getIntegralValues(x_pr, y_pr, x_s, y_s)

                        averageP = averageP + p1
                        averageS = averageS + s1

                        if expName != 'default':
                            fullP = fullP + p1
                            fullS = fullS + s1;
                            ll = ll + 1

                x_p_var = x_p_var / (float(l))
                y_p_var = y_p_var / (float(l))
                x_s_var = x_s_var / (float(l))
                y_s_var = y_s_var / (float(l))

                averageP = averageP / (float(l))
                averageS = averageS / (float(l))

                experimentDict[expName] = (x_p_var, y_p_var, x_s_var, y_s_var, averageP, averageS)

            fullP = fullP / (float(ll))
            fullS = fullS / (float(ll))

            completeMetricDict[experimentName] = (fullP, fullS)

            plotMetricsDict[experimentName] = experimentDict

            print experimentName
            print "===================="
            print "Precision: ", fullP
            print "Success: ", fullS

            for key, value in experimentDict.iteritems():
                print key
                print value[4], value[5]

            print "===================="

            e=Evaluated(plotMetricsDict[experimentName],completeMetricDict[experimentName],experimentName)

            e.save(savePath+"/"+experimentName+".p")