Skip to content

Evaluation

Evaluation joins each synthetic anomaly to its real parent through real_anomaly_id. Placement ROI comparisons use the full Original → Hybrid → Placement → Synthetic → Real join. The CSV output contains all relevant IDs, so multiple variants cannot overwrite or masquerade as one pair.

evaluate_study(config) compares each explicit real/synthetic cutout pair using GLCM contrast, homogeneity, energy and correlation, plus mask volume and center of mass. GLCMs quantize each channel to 32 levels and aggregate immediate-neighbor pairs over four 2D or thirteen 3D directions. When placement ROI artifacts are available, the same GLCM features are also compared between the original real ROI and the fused placement ROI.

For every metric the evaluator records the absolute pair difference. Outliers default to the 1.5 * IQR rule and can be overridden per metric with config.evaluation.outlier_thresholds. Each run replaces evaluation_results/metric_diffs.csv, writes up to three histogram images (cutout texture, cutout morphology and placement-ROI texture), prints real and synthetic means, and summarizes outlier overlaps.

Evaluation reads the normalized repository relations directly and does not construct a generation orchestrator.