Пример #1
0
 public static double[,] computeTrackSimilarityMatrix(MultiObjectTrackingResult cts1, MultiObjectTrackingResult cts2, ICompressedTrackSimilarityMetric metric)
 {
     double[,] ret = new double[cts1.tracks.Count, cts2.tracks.Count];
     for (int i = 0; i < cts1.tracks.Count; i++)
     {
         CompressedTrack t1 = cts1.tracks[i];
         for (int j = 0; j < cts2.tracks.Count; j++)
         {
             CompressedTrack t2 = cts2.tracks[j];
             ret[i, j] = metric.getMetric(t1, t2);
         }
     }
     return(ret);
 }
Пример #2
0
        public static MultipartiteWeightTensor computeTrackSimilarityTensor(List <MultiObjectTrackingResult> cts_list, ICompressedTrackSimilarityMetric metric)
        {
            MultipartiteWeightTensor ret = new MultipartiteWeightTensor(cts_list.Count);

            for (int i = 0; i < cts_list.Count; i++)
            {
                ret.setNumPartitionElements(i, cts_list[i].tracks.Count);
            }
            for (int i = 0; i < cts_list.Count; i++)
            {
                double[,] sim = computeTrackSimilarityMatrix(cts_list[i], cts_list[i], metric);
                ret.setWeightMatrix(i, i, sim);

                for (int j = i + 1; j < cts_list.Count; j++)
                {
                    sim = computeTrackSimilarityMatrix(cts_list[i], cts_list[j], metric);
                    ret.setWeightMatrix(i, j, sim);
                    double[,] sim_t = MatrixOperations.Transpose(sim);
                    ret.setWeightMatrix(j, i, sim_t);
                }
            }
            return(ret);
        }
Пример #3
0
 public static double[,] computeTrackSimilarityMatrix(List <CompressedTrack> trackList, ICompressedTrackSimilarityMetric metric)
 {
     double[,] ret = new double[trackList.Count, trackList.Count];
     for (int i = 0; i < trackList.Count; i++)
     {
         ret[i, i] = ((double)(trackList[i].endTime - trackList[i].startTime).TotalMilliseconds) / 1000;
         for (int j = i + 1; j < trackList.Count; j++)
         {
             ret[i, j] = metric.getMetric(trackList[i], trackList[j]);
             ret[j, i] = ret[i, j];
         }
     }
     return(ret);
 }