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)
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)