Source code for rastervision.core.evaluation.semantic_segmentation_evaluator

from typing import TYPE_CHECKING
import logging

from rastervision.core.evaluation import (ClassificationEvaluator,
                                          SemanticSegmentationEvaluation)

log = logging.getLogger(__name__)

if TYPE_CHECKING:
    from rastervision.core.data import Scene


[docs]class SemanticSegmentationEvaluator(ClassificationEvaluator): """Evaluates predictions for a set of scenes."""
[docs] def create_evaluation(self) -> SemanticSegmentationEvaluation: return SemanticSegmentationEvaluation(self.class_config)
[docs] def evaluate_scene(self, scene: 'Scene') -> SemanticSegmentationEvaluation: """Override to pass null_class_id to filter_by_aoi().""" null_class_id = self.class_config.null_class_id ground_truth = scene.label_source.get_labels() predictions = scene.label_store.get_labels() if scene.aoi_polygons: ground_truth = ground_truth.filter_by_aoi(scene.aoi_polygons, null_class_id) predictions = predictions.filter_by_aoi(scene.aoi_polygons, null_class_id) evaluation = self.evaluate_predictions(ground_truth, predictions) return evaluation