예제 #1
0
 def update_metric_for_frame(self, correct_regions, predicted_regions):
     overlapping_matrix = Region.compare_exists_in_regions(correct_regions, predicted_regions)
     regions_count = len(correct_regions)
     count_of_predicted_regions_by_region = np.sum(overlapping_matrix, axis=1)
     for r in range(regions_count):
         if count_of_predicted_regions_by_region[r] > 0:
             overlapping_count = count_of_predicted_regions_by_region[r]
             metric = 1.0/(1.0 + math.log(overlapping_count))
             self.fragmentation_metrics.append(metric)
예제 #2
0
    def update_metric_for_frame(self, correct_regions, predicted_regions):
        overlapping_matrix = Region.compare_exists_in_regions(correct_regions, predicted_regions)
        predicted_regions_count = len(predicted_regions)
        correct_regions_count = len(correct_regions)

        for cr in range(correct_regions_count):
            correct_region = correct_regions[cr]
            assert isinstance(correct_region, Region)
            overlapping_regions = []

            for pr in range(predicted_regions_count):
                if overlapping_matrix[cr, pr]:
                    full_region_overlapping = predicted_regions[pr]
                    overlapping_region = correct_region.get_own_subregion(full_region_overlapping)
                    overlapping_regions.append(overlapping_region)

            overlapping_area = CoverArea.calculate(correct_region, overlapping_regions)
            metric = overlapping_area / correct_region.get_area()
            self.recall_aor_metrics.append(metric)