make building results authority-first after V74 evaluation
This commit is contained in:
BIN
Binary file not shown.
|
After Width: | Height: | Size: 10 MiB |
+289
@@ -0,0 +1,289 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"model": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"summary": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/yolo_tile_dataset_summary.json",
|
||||||
|
"threshold": 0.3,
|
||||||
|
"match_iou": 0.25,
|
||||||
|
"samples": [
|
||||||
|
"v72-zandhoven-lowrise-cal",
|
||||||
|
"v72-assenede-field-cal-bg",
|
||||||
|
"v72-libramont-lowrise-cal",
|
||||||
|
"v72-havelange-field-cal-bg",
|
||||||
|
"v72-ganshoren-lowrise-cal",
|
||||||
|
"v72-laeken-park-cal-bg"
|
||||||
|
],
|
||||||
|
"legend": {
|
||||||
|
"reference": "yellow",
|
||||||
|
"matched_prediction": "green",
|
||||||
|
"false_positive": "red",
|
||||||
|
"false_negative": "magenta"
|
||||||
|
},
|
||||||
|
"geometry": {
|
||||||
|
"reference": {
|
||||||
|
"area_share": {
|
||||||
|
"count": 348,
|
||||||
|
"median": 0.008302689057617198,
|
||||||
|
"p90": 0.022865294687500003,
|
||||||
|
"p95": 0.038036347509765596,
|
||||||
|
"p99": 0.10563659499999999,
|
||||||
|
"max": 0.380516048828125
|
||||||
|
},
|
||||||
|
"aspect_ratio": {
|
||||||
|
"count": 348,
|
||||||
|
"median": 1.1538463659172016,
|
||||||
|
"p90": 2.0588235294117645,
|
||||||
|
"p95": 2.548386968907398,
|
||||||
|
"p99": 3.111111996049629,
|
||||||
|
"max": 8.600004915202515
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"matched": {
|
||||||
|
"area_share": {
|
||||||
|
"count": 97,
|
||||||
|
"median": 0.015811838169121906,
|
||||||
|
"p90": 0.03523627635466653,
|
||||||
|
"p95": 0.08015326985225713,
|
||||||
|
"p99": 0.10632651335649834,
|
||||||
|
"max": 0.1267303712638128
|
||||||
|
},
|
||||||
|
"aspect_ratio": {
|
||||||
|
"count": 97,
|
||||||
|
"median": 1.1681283370262416,
|
||||||
|
"p90": 1.6504031418485514,
|
||||||
|
"p95": 1.8264904530848893,
|
||||||
|
"p99": 2.047274588985069,
|
||||||
|
"max": 2.132431315224294
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"false_positive": {
|
||||||
|
"area_share": {
|
||||||
|
"count": 292,
|
||||||
|
"median": 0.0018011374421038062,
|
||||||
|
"p90": 0.028208259408568637,
|
||||||
|
"p95": 0.07724808180330967,
|
||||||
|
"p99": 0.12387540370893509,
|
||||||
|
"max": 0.12652627555299745
|
||||||
|
},
|
||||||
|
"aspect_ratio": {
|
||||||
|
"count": 292,
|
||||||
|
"median": 1.0897888782459404,
|
||||||
|
"p90": 1.4005369425270608,
|
||||||
|
"p95": 1.720561010708864,
|
||||||
|
"p99": 2.167934539644849,
|
||||||
|
"max": 4.5864901518951715
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"false_negative": {
|
||||||
|
"area_share": {
|
||||||
|
"count": 251,
|
||||||
|
"median": 0.006526946728515598,
|
||||||
|
"p90": 0.019935608671874994,
|
||||||
|
"p95": 0.024063111093749995,
|
||||||
|
"p99": 0.07019043124999999,
|
||||||
|
"max": 0.380516048828125
|
||||||
|
},
|
||||||
|
"aspect_ratio": {
|
||||||
|
"count": 251,
|
||||||
|
"median": 1.1489361076324167,
|
||||||
|
"p90": 2.25,
|
||||||
|
"p95": 2.5833335466666654,
|
||||||
|
"p99": 3.111111996049629,
|
||||||
|
"max": 8.600004915202515
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tiles": [
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-zandhoven-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-zandhoven-lowrise-cal_0000_r0_c0.png",
|
||||||
|
"label_count": 60,
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 34,
|
||||||
|
"false_negative": 54
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-zandhoven-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-zandhoven-lowrise-cal_0001_r0_c512.png",
|
||||||
|
"label_count": 28,
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 17,
|
||||||
|
"false_negative": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-zandhoven-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-zandhoven-lowrise-cal_0003_r512_c0.png",
|
||||||
|
"label_count": 22,
|
||||||
|
"true_positive": 3,
|
||||||
|
"false_positive": 25,
|
||||||
|
"false_negative": 19
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-zandhoven-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-zandhoven-lowrise-cal_0004_r512_c512.png",
|
||||||
|
"label_count": 9,
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-assenede-field-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-assenede-field-cal-bg_0000_r0_c0.png",
|
||||||
|
"label_count": 0,
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-assenede-field-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-assenede-field-cal-bg_0001_r0_c512.png",
|
||||||
|
"label_count": 0,
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-assenede-field-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-assenede-field-cal-bg_0003_r512_c0.png",
|
||||||
|
"label_count": 0,
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-assenede-field-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-assenede-field-cal-bg_0004_r512_c512.png",
|
||||||
|
"label_count": 4,
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 4,
|
||||||
|
"false_negative": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-libramont-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-libramont-lowrise-cal_0000_r0_c0.png",
|
||||||
|
"label_count": 13,
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 17,
|
||||||
|
"false_negative": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-libramont-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-libramont-lowrise-cal_0001_r0_c512.png",
|
||||||
|
"label_count": 2,
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 46,
|
||||||
|
"false_negative": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-libramont-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-libramont-lowrise-cal_0003_r512_c0.png",
|
||||||
|
"label_count": 11,
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 7,
|
||||||
|
"false_negative": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-libramont-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-libramont-lowrise-cal_0004_r512_c512.png",
|
||||||
|
"label_count": 0,
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 23,
|
||||||
|
"false_negative": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-havelange-field-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-havelange-field-cal-bg_0000_r0_c0.png",
|
||||||
|
"label_count": 48,
|
||||||
|
"true_positive": 21,
|
||||||
|
"false_positive": 20,
|
||||||
|
"false_negative": 27
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-havelange-field-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-havelange-field-cal-bg_0001_r0_c512.png",
|
||||||
|
"label_count": 14,
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-havelange-field-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-havelange-field-cal-bg_0003_r512_c0.png",
|
||||||
|
"label_count": 24,
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 28,
|
||||||
|
"false_negative": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-havelange-field-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-havelange-field-cal-bg_0004_r512_c512.png",
|
||||||
|
"label_count": 48,
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 24,
|
||||||
|
"false_negative": 36
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-ganshoren-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-ganshoren-lowrise-cal_0000_r0_c0.png",
|
||||||
|
"label_count": 7,
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 10,
|
||||||
|
"false_negative": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-ganshoren-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-ganshoren-lowrise-cal_0001_r0_c512.png",
|
||||||
|
"label_count": 28,
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 16
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-ganshoren-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-ganshoren-lowrise-cal_0003_r512_c0.png",
|
||||||
|
"label_count": 17,
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 8,
|
||||||
|
"false_negative": 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-ganshoren-lowrise-cal",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-ganshoren-lowrise-cal_0004_r512_c512.png",
|
||||||
|
"label_count": 10,
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 9,
|
||||||
|
"false_negative": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-laeken-park-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-laeken-park-cal-bg_0000_r0_c0.png",
|
||||||
|
"label_count": 3,
|
||||||
|
"true_positive": 1,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-laeken-park-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-laeken-park-cal-bg_0001_r0_c512.png",
|
||||||
|
"label_count": 0,
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-laeken-park-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-laeken-park-cal-bg_0003_r512_c0.png",
|
||||||
|
"label_count": 0,
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sample_slug": "v72-laeken-park-cal-bg",
|
||||||
|
"image_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/images/val/v72-laeken-park-cal-bg_0004_r512_c512.png",
|
||||||
|
"label_count": 0,
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"status": "all_v74_candidates_rejected",
|
||||||
|
"active_model_sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
||||||
|
"active_model_changed": false,
|
||||||
|
"human_review_complete": false,
|
||||||
|
"review_type": "ai_assisted_visual_error_analysis",
|
||||||
|
"promotion_allowed": false,
|
||||||
|
"release_claim_allowed": false,
|
||||||
|
"decisions": [
|
||||||
|
{
|
||||||
|
"candidate": "proposal-filter-v74",
|
||||||
|
"sha256": "a4570a6257e5f234730fc03b75d53251afdeb830ea3c96dfff45604b23786260",
|
||||||
|
"decision": "reject_global_production",
|
||||||
|
"reason": "best detector-plus-filter V72 F1 0.2200 is below unfiltered active F1 0.2504"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"candidate": "v74-rehearsal-controlled-e10",
|
||||||
|
"sha256": "8473f09234bbad9175d5540e2f298e57c902c332fa5729561774b01a98c355d3",
|
||||||
|
"decision": "reject",
|
||||||
|
"reason": "optimizer auto overrode requested learning rate; V72 metrics regressed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"candidate": "v74-rehearsal-low-lr-e6",
|
||||||
|
"sha256": "be9881ad734f60f8779e9a08dc9112b993cf87e7cc888709c6f695bcf200dffc",
|
||||||
|
"decision": "reject",
|
||||||
|
"reason": "explicit AdamW low-learning-rate run remained below active V72 baseline"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"product_mitigation": "authority_first_grb_evidence_overlay",
|
||||||
|
"claim_boundary": "AI detections remain proposals; GRB validation is authoritative for registered Flemish buildings within source coverage and edition."
|
||||||
|
}
|
||||||
@@ -0,0 +1,732 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"model": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"summary": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/yolo_tile_dataset_summary.json",
|
||||||
|
"split": "val",
|
||||||
|
"match_iou": 0.25,
|
||||||
|
"test_time_augmentation": false,
|
||||||
|
"inference_imgsz": 640,
|
||||||
|
"inference_batch": 8,
|
||||||
|
"max_detections_per_tile": 1000,
|
||||||
|
"nms_iou": 0.7,
|
||||||
|
"containment_nms": 1.0,
|
||||||
|
"box_scale": 1.0,
|
||||||
|
"box_offset_x": 0.0,
|
||||||
|
"box_offset_y": 0.0,
|
||||||
|
"additional_model": null,
|
||||||
|
"regional_models": {},
|
||||||
|
"regional_model_tile_counts": {},
|
||||||
|
"ensemble_mode": null,
|
||||||
|
"ensemble_match_iou": null,
|
||||||
|
"proposal_classifier": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/proposal-filter-v74/proposal-filter.experimental.torchscript.pt",
|
||||||
|
"proposal_classifier_threshold": 0.1,
|
||||||
|
"proposal_crop_scale": 1.4,
|
||||||
|
"proposal_classifier_batch": 64,
|
||||||
|
"tile_count": 24,
|
||||||
|
"sweeps": [
|
||||||
|
{
|
||||||
|
"threshold": 0.05,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 95,
|
||||||
|
"false_positive": 438,
|
||||||
|
"false_negative": 253,
|
||||||
|
"precision": 0.17823639774859287,
|
||||||
|
"recall": 0.27298850574712646,
|
||||||
|
"f1": 0.2156640181611805
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 25,
|
||||||
|
"false_positive": 42,
|
||||||
|
"false_negative": 40,
|
||||||
|
"precision": 0.373134328358209,
|
||||||
|
"recall": 0.38461538461538464,
|
||||||
|
"f1": 0.3787878787878788
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 15,
|
||||||
|
"false_positive": 127,
|
||||||
|
"false_negative": 108,
|
||||||
|
"precision": 0.1056338028169014,
|
||||||
|
"recall": 0.12195121951219512,
|
||||||
|
"f1": 0.11320754716981132
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 55,
|
||||||
|
"false_positive": 269,
|
||||||
|
"false_negative": 105,
|
||||||
|
"precision": 0.1697530864197531,
|
||||||
|
"recall": 0.34375,
|
||||||
|
"f1": 0.2272727272727273
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 5,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 25,
|
||||||
|
"false_positive": 41,
|
||||||
|
"false_negative": 37,
|
||||||
|
"precision": 0.3787878787878788,
|
||||||
|
"recall": 0.4032258064516129,
|
||||||
|
"f1": 0.39062499999999994
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 42,
|
||||||
|
"false_positive": 87,
|
||||||
|
"false_negative": 92,
|
||||||
|
"precision": 0.32558139534883723,
|
||||||
|
"recall": 0.31343283582089554,
|
||||||
|
"f1": 0.3193916349809886
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 13,
|
||||||
|
"false_positive": 182,
|
||||||
|
"false_negative": 13,
|
||||||
|
"precision": 0.06666666666666667,
|
||||||
|
"recall": 0.5,
|
||||||
|
"f1": 0.11764705882352941
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 15,
|
||||||
|
"false_positive": 122,
|
||||||
|
"false_negative": 104,
|
||||||
|
"precision": 0.10948905109489052,
|
||||||
|
"recall": 0.12605042016806722,
|
||||||
|
"f1": 0.1171875
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.1,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 78,
|
||||||
|
"false_positive": 283,
|
||||||
|
"false_negative": 270,
|
||||||
|
"precision": 0.21606648199445982,
|
||||||
|
"recall": 0.22413793103448276,
|
||||||
|
"f1": 0.22002820874471088
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 20,
|
||||||
|
"false_positive": 24,
|
||||||
|
"false_negative": 45,
|
||||||
|
"precision": 0.45454545454545453,
|
||||||
|
"recall": 0.3076923076923077,
|
||||||
|
"f1": 0.3669724770642202
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 71,
|
||||||
|
"false_negative": 112,
|
||||||
|
"precision": 0.13414634146341464,
|
||||||
|
"recall": 0.08943089430894309,
|
||||||
|
"f1": 0.1073170731707317
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 47,
|
||||||
|
"false_positive": 188,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.2,
|
||||||
|
"recall": 0.29375,
|
||||||
|
"f1": 0.2379746835443038
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 20,
|
||||||
|
"false_positive": 23,
|
||||||
|
"false_negative": 42,
|
||||||
|
"precision": 0.46511627906976744,
|
||||||
|
"recall": 0.3225806451612903,
|
||||||
|
"f1": 0.380952380952381
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 35,
|
||||||
|
"false_positive": 58,
|
||||||
|
"false_negative": 99,
|
||||||
|
"precision": 0.3763440860215054,
|
||||||
|
"recall": 0.26119402985074625,
|
||||||
|
"f1": 0.30837004405286345
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 130,
|
||||||
|
"false_negative": 14,
|
||||||
|
"precision": 0.08450704225352113,
|
||||||
|
"recall": 0.46153846153846156,
|
||||||
|
"f1": 0.14285714285714285
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 68,
|
||||||
|
"false_negative": 108,
|
||||||
|
"precision": 0.13924050632911392,
|
||||||
|
"recall": 0.09243697478991597,
|
||||||
|
"f1": 0.1111111111111111
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.15,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 63,
|
||||||
|
"false_positive": 213,
|
||||||
|
"false_negative": 285,
|
||||||
|
"precision": 0.22826086956521738,
|
||||||
|
"recall": 0.1810344827586207,
|
||||||
|
"f1": 0.2019230769230769
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 19,
|
||||||
|
"false_negative": 51,
|
||||||
|
"precision": 0.42424242424242425,
|
||||||
|
"recall": 0.2153846153846154,
|
||||||
|
"f1": 0.28571428571428575
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 56,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.15151515151515152,
|
||||||
|
"recall": 0.08130081300813008,
|
||||||
|
"f1": 0.10582010582010581
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 39,
|
||||||
|
"false_positive": 138,
|
||||||
|
"false_negative": 121,
|
||||||
|
"precision": 0.22033898305084745,
|
||||||
|
"recall": 0.24375,
|
||||||
|
"f1": 0.2314540059347181
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 18,
|
||||||
|
"false_negative": 48,
|
||||||
|
"precision": 0.4375,
|
||||||
|
"recall": 0.22580645161290322,
|
||||||
|
"f1": 0.2978723404255319
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 30,
|
||||||
|
"false_positive": 41,
|
||||||
|
"false_negative": 104,
|
||||||
|
"precision": 0.4225352112676056,
|
||||||
|
"recall": 0.22388059701492538,
|
||||||
|
"f1": 0.29268292682926833
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 97,
|
||||||
|
"false_negative": 17,
|
||||||
|
"precision": 0.08490566037735849,
|
||||||
|
"recall": 0.34615384615384615,
|
||||||
|
"f1": 0.13636363636363638
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 54,
|
||||||
|
"false_negative": 109,
|
||||||
|
"precision": 0.15625,
|
||||||
|
"recall": 0.08403361344537816,
|
||||||
|
"f1": 0.10928961748633881
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.2,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 54,
|
||||||
|
"false_positive": 156,
|
||||||
|
"false_negative": 294,
|
||||||
|
"precision": 0.2571428571428571,
|
||||||
|
"recall": 0.15517241379310345,
|
||||||
|
"f1": 0.19354838709677422
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 13,
|
||||||
|
"false_positive": 16,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.4482758620689655,
|
||||||
|
"recall": 0.2,
|
||||||
|
"f1": 0.27659574468085113
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 42,
|
||||||
|
"false_negative": 114,
|
||||||
|
"precision": 0.17647058823529413,
|
||||||
|
"recall": 0.07317073170731707,
|
||||||
|
"f1": 0.10344827586206896
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 32,
|
||||||
|
"false_positive": 98,
|
||||||
|
"false_negative": 128,
|
||||||
|
"precision": 0.24615384615384617,
|
||||||
|
"recall": 0.2,
|
||||||
|
"f1": 0.22068965517241382
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 13,
|
||||||
|
"false_positive": 16,
|
||||||
|
"false_negative": 49,
|
||||||
|
"precision": 0.4482758620689655,
|
||||||
|
"recall": 0.20967741935483872,
|
||||||
|
"f1": 0.2857142857142857
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 25,
|
||||||
|
"false_positive": 26,
|
||||||
|
"false_negative": 109,
|
||||||
|
"precision": 0.49019607843137253,
|
||||||
|
"recall": 0.1865671641791045,
|
||||||
|
"f1": 0.27027027027027023
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 72,
|
||||||
|
"false_negative": 19,
|
||||||
|
"precision": 0.08860759493670886,
|
||||||
|
"recall": 0.2692307692307692,
|
||||||
|
"f1": 0.13333333333333336
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 41,
|
||||||
|
"false_negative": 110,
|
||||||
|
"precision": 0.18,
|
||||||
|
"recall": 0.07563025210084033,
|
||||||
|
"f1": 0.10650887573964496
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.25,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 49,
|
||||||
|
"false_positive": 109,
|
||||||
|
"false_negative": 299,
|
||||||
|
"precision": 0.310126582278481,
|
||||||
|
"recall": 0.14080459770114942,
|
||||||
|
"f1": 0.19367588932806323
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 11,
|
||||||
|
"false_negative": 53,
|
||||||
|
"precision": 0.5217391304347826,
|
||||||
|
"recall": 0.18461538461538463,
|
||||||
|
"f1": 0.2727272727272727
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 31,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.20512820512820512,
|
||||||
|
"recall": 0.06504065040650407,
|
||||||
|
"f1": 0.09876543209876544
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 29,
|
||||||
|
"false_positive": 67,
|
||||||
|
"false_negative": 131,
|
||||||
|
"precision": 0.3020833333333333,
|
||||||
|
"recall": 0.18125,
|
||||||
|
"f1": 0.2265625
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 11,
|
||||||
|
"false_negative": 50,
|
||||||
|
"precision": 0.5217391304347826,
|
||||||
|
"recall": 0.1935483870967742,
|
||||||
|
"f1": 0.2823529411764706
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 22,
|
||||||
|
"false_positive": 18,
|
||||||
|
"false_negative": 112,
|
||||||
|
"precision": 0.55,
|
||||||
|
"recall": 0.16417910447761194,
|
||||||
|
"f1": 0.2528735632183908
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 49,
|
||||||
|
"false_negative": 19,
|
||||||
|
"precision": 0.125,
|
||||||
|
"recall": 0.2692307692307692,
|
||||||
|
"f1": 0.17073170731707316
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 30,
|
||||||
|
"false_negative": 111,
|
||||||
|
"precision": 0.21052631578947367,
|
||||||
|
"recall": 0.06722689075630252,
|
||||||
|
"f1": 0.10191082802547771
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.3,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 44,
|
||||||
|
"false_positive": 77,
|
||||||
|
"false_negative": 304,
|
||||||
|
"precision": 0.36363636363636365,
|
||||||
|
"recall": 0.12643678160919541,
|
||||||
|
"f1": 0.18763326226012794
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 7,
|
||||||
|
"false_negative": 53,
|
||||||
|
"precision": 0.631578947368421,
|
||||||
|
"recall": 0.18461538461538463,
|
||||||
|
"f1": 0.2857142857142857
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 22,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.21428571428571427,
|
||||||
|
"recall": 0.04878048780487805,
|
||||||
|
"f1": 0.07947019867549668
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 26,
|
||||||
|
"false_positive": 48,
|
||||||
|
"false_negative": 134,
|
||||||
|
"precision": 0.35135135135135137,
|
||||||
|
"recall": 0.1625,
|
||||||
|
"f1": 0.22222222222222224
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 7,
|
||||||
|
"false_negative": 50,
|
||||||
|
"precision": 0.631578947368421,
|
||||||
|
"recall": 0.1935483870967742,
|
||||||
|
"f1": 0.2962962962962963
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 20,
|
||||||
|
"false_positive": 13,
|
||||||
|
"false_negative": 114,
|
||||||
|
"precision": 0.6060606060606061,
|
||||||
|
"recall": 0.14925373134328357,
|
||||||
|
"f1": 0.2395209580838323
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 35,
|
||||||
|
"false_negative": 20,
|
||||||
|
"precision": 0.14634146341463414,
|
||||||
|
"recall": 0.23076923076923078,
|
||||||
|
"f1": 0.17910447761194032
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 21,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.2222222222222222,
|
||||||
|
"recall": 0.05042016806722689,
|
||||||
|
"f1": 0.08219178082191782
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.35,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 33,
|
||||||
|
"false_positive": 56,
|
||||||
|
"false_negative": 315,
|
||||||
|
"precision": 0.3707865168539326,
|
||||||
|
"recall": 0.09482758620689655,
|
||||||
|
"f1": 0.15102974828375285
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 4,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.7142857142857143,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.25316455696202533
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 16,
|
||||||
|
"false_negative": 121,
|
||||||
|
"precision": 0.1111111111111111,
|
||||||
|
"recall": 0.016260162601626018,
|
||||||
|
"f1": 0.028368794326241138
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 21,
|
||||||
|
"false_positive": 36,
|
||||||
|
"false_negative": 139,
|
||||||
|
"precision": 0.3684210526315789,
|
||||||
|
"recall": 0.13125,
|
||||||
|
"f1": 0.1935483870967742
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 4,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.7142857142857143,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.2631578947368421
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 15,
|
||||||
|
"false_positive": 8,
|
||||||
|
"false_negative": 119,
|
||||||
|
"precision": 0.6521739130434783,
|
||||||
|
"recall": 0.11194029850746269,
|
||||||
|
"f1": 0.1910828025477707
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 28,
|
||||||
|
"false_negative": 20,
|
||||||
|
"precision": 0.17647058823529413,
|
||||||
|
"recall": 0.23076923076923078,
|
||||||
|
"f1": 0.20000000000000004
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 15,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.11764705882352941,
|
||||||
|
"recall": 0.01680672268907563,
|
||||||
|
"f1": 0.029411764705882353
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.4,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 26,
|
||||||
|
"false_positive": 36,
|
||||||
|
"false_negative": 322,
|
||||||
|
"precision": 0.41935483870967744,
|
||||||
|
"recall": 0.07471264367816093,
|
||||||
|
"f1": 0.12682926829268293
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.8333333333333334,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.25974025974025977
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 12,
|
||||||
|
"false_negative": 121,
|
||||||
|
"precision": 0.14285714285714285,
|
||||||
|
"recall": 0.016260162601626018,
|
||||||
|
"f1": 0.029197080291970802
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 22,
|
||||||
|
"false_negative": 146,
|
||||||
|
"precision": 0.3888888888888889,
|
||||||
|
"recall": 0.0875,
|
||||||
|
"f1": 0.14285714285714285
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.8333333333333334,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.27027027027027023
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 4,
|
||||||
|
"false_negative": 124,
|
||||||
|
"precision": 0.7142857142857143,
|
||||||
|
"recall": 0.07462686567164178,
|
||||||
|
"f1": 0.13513513513513511
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 18,
|
||||||
|
"false_negative": 22,
|
||||||
|
"precision": 0.18181818181818182,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.16666666666666669
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 12,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.14285714285714285,
|
||||||
|
"recall": 0.01680672268907563,
|
||||||
|
"f1": 0.030075187969924814
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,732 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"model": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"summary": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/yolo_tile_dataset_summary.json",
|
||||||
|
"split": "val",
|
||||||
|
"match_iou": 0.25,
|
||||||
|
"test_time_augmentation": false,
|
||||||
|
"inference_imgsz": 640,
|
||||||
|
"inference_batch": 8,
|
||||||
|
"max_detections_per_tile": 1000,
|
||||||
|
"nms_iou": 0.7,
|
||||||
|
"containment_nms": 1.0,
|
||||||
|
"box_scale": 1.0,
|
||||||
|
"box_offset_x": 0.0,
|
||||||
|
"box_offset_y": 0.0,
|
||||||
|
"additional_model": null,
|
||||||
|
"regional_models": {},
|
||||||
|
"regional_model_tile_counts": {},
|
||||||
|
"ensemble_mode": null,
|
||||||
|
"ensemble_match_iou": null,
|
||||||
|
"proposal_classifier": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/proposal-filter-v74/proposal-filter.experimental.torchscript.pt",
|
||||||
|
"proposal_classifier_threshold": 0.15,
|
||||||
|
"proposal_crop_scale": 1.4,
|
||||||
|
"proposal_classifier_batch": 64,
|
||||||
|
"tile_count": 24,
|
||||||
|
"sweeps": [
|
||||||
|
{
|
||||||
|
"threshold": 0.05,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 85,
|
||||||
|
"false_positive": 415,
|
||||||
|
"false_negative": 263,
|
||||||
|
"precision": 0.17,
|
||||||
|
"recall": 0.2442528735632184,
|
||||||
|
"f1": 0.20047169811320756
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 25,
|
||||||
|
"false_positive": 42,
|
||||||
|
"false_negative": 40,
|
||||||
|
"precision": 0.373134328358209,
|
||||||
|
"recall": 0.38461538461538464,
|
||||||
|
"f1": 0.3787878787878788
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 115,
|
||||||
|
"false_negative": 109,
|
||||||
|
"precision": 0.10852713178294573,
|
||||||
|
"recall": 0.11382113821138211,
|
||||||
|
"f1": 0.1111111111111111
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 46,
|
||||||
|
"false_positive": 258,
|
||||||
|
"false_negative": 114,
|
||||||
|
"precision": 0.1513157894736842,
|
||||||
|
"recall": 0.2875,
|
||||||
|
"f1": 0.1982758620689655
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 5,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 25,
|
||||||
|
"false_positive": 41,
|
||||||
|
"false_negative": 37,
|
||||||
|
"precision": 0.3787878787878788,
|
||||||
|
"recall": 0.4032258064516129,
|
||||||
|
"f1": 0.39062499999999994
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 34,
|
||||||
|
"false_positive": 79,
|
||||||
|
"false_negative": 100,
|
||||||
|
"precision": 0.3008849557522124,
|
||||||
|
"recall": 0.2537313432835821,
|
||||||
|
"f1": 0.27530364372469635
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 179,
|
||||||
|
"false_negative": 14,
|
||||||
|
"precision": 0.06282722513089005,
|
||||||
|
"recall": 0.46153846153846156,
|
||||||
|
"f1": 0.11059907834101382
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 110,
|
||||||
|
"false_negative": 105,
|
||||||
|
"precision": 0.11290322580645161,
|
||||||
|
"recall": 0.11764705882352941,
|
||||||
|
"f1": 0.11522633744855967
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.1,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 70,
|
||||||
|
"false_positive": 266,
|
||||||
|
"false_negative": 278,
|
||||||
|
"precision": 0.20833333333333334,
|
||||||
|
"recall": 0.20114942528735633,
|
||||||
|
"f1": 0.2046783625730994
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 20,
|
||||||
|
"false_positive": 24,
|
||||||
|
"false_negative": 45,
|
||||||
|
"precision": 0.45454545454545453,
|
||||||
|
"recall": 0.3076923076923077,
|
||||||
|
"f1": 0.3669724770642202
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 63,
|
||||||
|
"false_negative": 112,
|
||||||
|
"precision": 0.14864864864864866,
|
||||||
|
"recall": 0.08943089430894309,
|
||||||
|
"f1": 0.11167512690355329
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 39,
|
||||||
|
"false_positive": 179,
|
||||||
|
"false_negative": 121,
|
||||||
|
"precision": 0.17889908256880735,
|
||||||
|
"recall": 0.24375,
|
||||||
|
"f1": 0.20634920634920637
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 20,
|
||||||
|
"false_positive": 23,
|
||||||
|
"false_negative": 42,
|
||||||
|
"precision": 0.46511627906976744,
|
||||||
|
"recall": 0.3225806451612903,
|
||||||
|
"f1": 0.380952380952381
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 28,
|
||||||
|
"false_positive": 51,
|
||||||
|
"false_negative": 106,
|
||||||
|
"precision": 0.35443037974683544,
|
||||||
|
"recall": 0.208955223880597,
|
||||||
|
"f1": 0.2629107981220657
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 128,
|
||||||
|
"false_negative": 15,
|
||||||
|
"precision": 0.07913669064748201,
|
||||||
|
"recall": 0.4230769230769231,
|
||||||
|
"f1": 0.1333333333333333
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 60,
|
||||||
|
"false_negative": 108,
|
||||||
|
"precision": 0.15492957746478872,
|
||||||
|
"recall": 0.09243697478991597,
|
||||||
|
"f1": 0.11578947368421053
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.15,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 58,
|
||||||
|
"false_positive": 198,
|
||||||
|
"false_negative": 290,
|
||||||
|
"precision": 0.2265625,
|
||||||
|
"recall": 0.16666666666666666,
|
||||||
|
"f1": 0.19205298013245034
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 19,
|
||||||
|
"false_negative": 51,
|
||||||
|
"precision": 0.42424242424242425,
|
||||||
|
"recall": 0.2153846153846154,
|
||||||
|
"f1": 0.28571428571428575
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 49,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.1694915254237288,
|
||||||
|
"recall": 0.08130081300813008,
|
||||||
|
"f1": 0.10989010989010989
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 34,
|
||||||
|
"false_positive": 130,
|
||||||
|
"false_negative": 126,
|
||||||
|
"precision": 0.2073170731707317,
|
||||||
|
"recall": 0.2125,
|
||||||
|
"f1": 0.20987654320987653
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 18,
|
||||||
|
"false_negative": 48,
|
||||||
|
"precision": 0.4375,
|
||||||
|
"recall": 0.22580645161290322,
|
||||||
|
"f1": 0.2978723404255319
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 25,
|
||||||
|
"false_positive": 35,
|
||||||
|
"false_negative": 109,
|
||||||
|
"precision": 0.4166666666666667,
|
||||||
|
"recall": 0.1865671641791045,
|
||||||
|
"f1": 0.25773195876288657
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 95,
|
||||||
|
"false_negative": 17,
|
||||||
|
"precision": 0.08653846153846154,
|
||||||
|
"recall": 0.34615384615384615,
|
||||||
|
"f1": 0.13846153846153844
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 47,
|
||||||
|
"false_negative": 109,
|
||||||
|
"precision": 0.17543859649122806,
|
||||||
|
"recall": 0.08403361344537816,
|
||||||
|
"f1": 0.11363636363636363
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.2,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 50,
|
||||||
|
"false_positive": 142,
|
||||||
|
"false_negative": 298,
|
||||||
|
"precision": 0.2604166666666667,
|
||||||
|
"recall": 0.14367816091954022,
|
||||||
|
"f1": 0.1851851851851852
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 13,
|
||||||
|
"false_positive": 16,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.4482758620689655,
|
||||||
|
"recall": 0.2,
|
||||||
|
"f1": 0.27659574468085113
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 36,
|
||||||
|
"false_negative": 114,
|
||||||
|
"precision": 0.2,
|
||||||
|
"recall": 0.07317073170731707,
|
||||||
|
"f1": 0.10714285714285712
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 28,
|
||||||
|
"false_positive": 90,
|
||||||
|
"false_negative": 132,
|
||||||
|
"precision": 0.23728813559322035,
|
||||||
|
"recall": 0.175,
|
||||||
|
"f1": 0.2014388489208633
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 13,
|
||||||
|
"false_positive": 16,
|
||||||
|
"false_negative": 49,
|
||||||
|
"precision": 0.4482758620689655,
|
||||||
|
"recall": 0.20967741935483872,
|
||||||
|
"f1": 0.2857142857142857
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 21,
|
||||||
|
"false_positive": 20,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.5121951219512195,
|
||||||
|
"recall": 0.15671641791044777,
|
||||||
|
"f1": 0.24000000000000002
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 70,
|
||||||
|
"false_negative": 19,
|
||||||
|
"precision": 0.09090909090909091,
|
||||||
|
"recall": 0.2692307692307692,
|
||||||
|
"f1": 0.1359223300970874
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 35,
|
||||||
|
"false_negative": 110,
|
||||||
|
"precision": 0.20454545454545456,
|
||||||
|
"recall": 0.07563025210084033,
|
||||||
|
"f1": 0.11042944785276074
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.25,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 46,
|
||||||
|
"false_positive": 101,
|
||||||
|
"false_negative": 302,
|
||||||
|
"precision": 0.3129251700680272,
|
||||||
|
"recall": 0.13218390804597702,
|
||||||
|
"f1": 0.18585858585858586
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 11,
|
||||||
|
"false_negative": 53,
|
||||||
|
"precision": 0.5217391304347826,
|
||||||
|
"recall": 0.18461538461538463,
|
||||||
|
"f1": 0.2727272727272727
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 27,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.22857142857142856,
|
||||||
|
"recall": 0.06504065040650407,
|
||||||
|
"f1": 0.10126582278481014
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 26,
|
||||||
|
"false_positive": 63,
|
||||||
|
"false_negative": 134,
|
||||||
|
"precision": 0.29213483146067415,
|
||||||
|
"recall": 0.1625,
|
||||||
|
"f1": 0.20883534136546184
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 11,
|
||||||
|
"false_negative": 50,
|
||||||
|
"precision": 0.5217391304347826,
|
||||||
|
"recall": 0.1935483870967742,
|
||||||
|
"f1": 0.2823529411764706
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 19,
|
||||||
|
"false_positive": 15,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.5588235294117647,
|
||||||
|
"recall": 0.1417910447761194,
|
||||||
|
"f1": 0.2261904761904762
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 48,
|
||||||
|
"false_negative": 19,
|
||||||
|
"precision": 0.12727272727272726,
|
||||||
|
"recall": 0.2692307692307692,
|
||||||
|
"f1": 0.1728395061728395
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 26,
|
||||||
|
"false_negative": 111,
|
||||||
|
"precision": 0.23529411764705882,
|
||||||
|
"recall": 0.06722689075630252,
|
||||||
|
"f1": 0.10457516339869281
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.3,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 41,
|
||||||
|
"false_positive": 71,
|
||||||
|
"false_negative": 307,
|
||||||
|
"precision": 0.36607142857142855,
|
||||||
|
"recall": 0.11781609195402298,
|
||||||
|
"f1": 0.1782608695652174
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 7,
|
||||||
|
"false_negative": 53,
|
||||||
|
"precision": 0.631578947368421,
|
||||||
|
"recall": 0.18461538461538463,
|
||||||
|
"f1": 0.2857142857142857
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 19,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.24,
|
||||||
|
"recall": 0.04878048780487805,
|
||||||
|
"f1": 0.08108108108108109
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 23,
|
||||||
|
"false_positive": 45,
|
||||||
|
"false_negative": 137,
|
||||||
|
"precision": 0.3382352941176471,
|
||||||
|
"recall": 0.14375,
|
||||||
|
"f1": 0.20175438596491227
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 7,
|
||||||
|
"false_negative": 50,
|
||||||
|
"precision": 0.631578947368421,
|
||||||
|
"recall": 0.1935483870967742,
|
||||||
|
"f1": 0.2962962962962963
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 17,
|
||||||
|
"false_positive": 11,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.6071428571428571,
|
||||||
|
"recall": 0.12686567164179105,
|
||||||
|
"f1": 0.20987654320987653
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 34,
|
||||||
|
"false_negative": 20,
|
||||||
|
"precision": 0.15,
|
||||||
|
"recall": 0.23076923076923078,
|
||||||
|
"f1": 0.18181818181818185
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 18,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.25,
|
||||||
|
"recall": 0.05042016806722689,
|
||||||
|
"f1": 0.08391608391608392
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.35,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 32,
|
||||||
|
"false_positive": 51,
|
||||||
|
"false_negative": 316,
|
||||||
|
"precision": 0.3855421686746988,
|
||||||
|
"recall": 0.09195402298850575,
|
||||||
|
"f1": 0.14849187935034802
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 4,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.7142857142857143,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.25316455696202533
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 14,
|
||||||
|
"false_negative": 121,
|
||||||
|
"precision": 0.125,
|
||||||
|
"recall": 0.016260162601626018,
|
||||||
|
"f1": 0.02877697841726619
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 20,
|
||||||
|
"false_positive": 33,
|
||||||
|
"false_negative": 140,
|
||||||
|
"precision": 0.37735849056603776,
|
||||||
|
"recall": 0.125,
|
||||||
|
"f1": 0.18779342723004694
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 4,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.7142857142857143,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.2631578947368421
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 120,
|
||||||
|
"precision": 0.7,
|
||||||
|
"recall": 0.1044776119402985,
|
||||||
|
"f1": 0.18181818181818182
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 27,
|
||||||
|
"false_negative": 20,
|
||||||
|
"precision": 0.18181818181818182,
|
||||||
|
"recall": 0.23076923076923078,
|
||||||
|
"f1": 0.2033898305084746
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 13,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.13333333333333333,
|
||||||
|
"recall": 0.01680672268907563,
|
||||||
|
"f1": 0.029850746268656716
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.4,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 26,
|
||||||
|
"false_positive": 34,
|
||||||
|
"false_negative": 322,
|
||||||
|
"precision": 0.43333333333333335,
|
||||||
|
"recall": 0.07471264367816093,
|
||||||
|
"f1": 0.12745098039215688
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.8333333333333334,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.25974025974025977
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 11,
|
||||||
|
"false_negative": 121,
|
||||||
|
"precision": 0.15384615384615385,
|
||||||
|
"recall": 0.016260162601626018,
|
||||||
|
"f1": 0.029411764705882356
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 21,
|
||||||
|
"false_negative": 146,
|
||||||
|
"precision": 0.4,
|
||||||
|
"recall": 0.0875,
|
||||||
|
"f1": 0.14358974358974355
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.8333333333333334,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.27027027027027023
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 4,
|
||||||
|
"false_negative": 124,
|
||||||
|
"precision": 0.7142857142857143,
|
||||||
|
"recall": 0.07462686567164178,
|
||||||
|
"f1": 0.13513513513513511
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 17,
|
||||||
|
"false_negative": 22,
|
||||||
|
"precision": 0.19047619047619047,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.1702127659574468
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 11,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.15384615384615385,
|
||||||
|
"recall": 0.01680672268907563,
|
||||||
|
"f1": 0.0303030303030303
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,732 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"model": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"summary": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/yolo_tile_dataset_summary.json",
|
||||||
|
"split": "val",
|
||||||
|
"match_iou": 0.25,
|
||||||
|
"test_time_augmentation": false,
|
||||||
|
"inference_imgsz": 640,
|
||||||
|
"inference_batch": 8,
|
||||||
|
"max_detections_per_tile": 1000,
|
||||||
|
"nms_iou": 0.7,
|
||||||
|
"containment_nms": 1.0,
|
||||||
|
"box_scale": 1.0,
|
||||||
|
"box_offset_x": 0.0,
|
||||||
|
"box_offset_y": 0.0,
|
||||||
|
"additional_model": null,
|
||||||
|
"regional_models": {},
|
||||||
|
"regional_model_tile_counts": {},
|
||||||
|
"ensemble_mode": null,
|
||||||
|
"ensemble_match_iou": null,
|
||||||
|
"proposal_classifier": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/proposal-filter-v74/proposal-filter.experimental.torchscript.pt",
|
||||||
|
"proposal_classifier_threshold": 0.2,
|
||||||
|
"proposal_crop_scale": 1.4,
|
||||||
|
"proposal_classifier_batch": 64,
|
||||||
|
"tile_count": 24,
|
||||||
|
"sweeps": [
|
||||||
|
{
|
||||||
|
"threshold": 0.05,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 79,
|
||||||
|
"false_positive": 390,
|
||||||
|
"false_negative": 269,
|
||||||
|
"precision": 0.16844349680170576,
|
||||||
|
"recall": 0.22701149425287356,
|
||||||
|
"f1": 0.193390452876377
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 24,
|
||||||
|
"false_positive": 37,
|
||||||
|
"false_negative": 41,
|
||||||
|
"precision": 0.39344262295081966,
|
||||||
|
"recall": 0.36923076923076925,
|
||||||
|
"f1": 0.38095238095238093
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 105,
|
||||||
|
"false_negative": 111,
|
||||||
|
"precision": 0.10256410256410256,
|
||||||
|
"recall": 0.0975609756097561,
|
||||||
|
"f1": 0.1
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 43,
|
||||||
|
"false_positive": 248,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.14776632302405499,
|
||||||
|
"recall": 0.26875,
|
||||||
|
"f1": 0.19068736141906875
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 5,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 24,
|
||||||
|
"false_positive": 36,
|
||||||
|
"false_negative": 38,
|
||||||
|
"precision": 0.4,
|
||||||
|
"recall": 0.3870967741935484,
|
||||||
|
"f1": 0.39344262295081966
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 32,
|
||||||
|
"false_positive": 74,
|
||||||
|
"false_negative": 102,
|
||||||
|
"precision": 0.3018867924528302,
|
||||||
|
"recall": 0.23880597014925373,
|
||||||
|
"f1": 0.26666666666666666
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 174,
|
||||||
|
"false_negative": 15,
|
||||||
|
"precision": 0.05945945945945946,
|
||||||
|
"recall": 0.4230769230769231,
|
||||||
|
"f1": 0.1042654028436019
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 100,
|
||||||
|
"false_negative": 107,
|
||||||
|
"precision": 0.10714285714285714,
|
||||||
|
"recall": 0.10084033613445378,
|
||||||
|
"f1": 0.10389610389610389
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.1,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 66,
|
||||||
|
"false_positive": 249,
|
||||||
|
"false_negative": 282,
|
||||||
|
"precision": 0.20952380952380953,
|
||||||
|
"recall": 0.1896551724137931,
|
||||||
|
"f1": 0.1990950226244344
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 19,
|
||||||
|
"false_positive": 20,
|
||||||
|
"false_negative": 46,
|
||||||
|
"precision": 0.48717948717948717,
|
||||||
|
"recall": 0.2923076923076923,
|
||||||
|
"f1": 0.36538461538461536
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 57,
|
||||||
|
"false_negative": 114,
|
||||||
|
"precision": 0.13636363636363635,
|
||||||
|
"recall": 0.07317073170731707,
|
||||||
|
"f1": 0.09523809523809522
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 38,
|
||||||
|
"false_positive": 172,
|
||||||
|
"false_negative": 122,
|
||||||
|
"precision": 0.18095238095238095,
|
||||||
|
"recall": 0.2375,
|
||||||
|
"f1": 0.20540540540540542
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 19,
|
||||||
|
"false_positive": 19,
|
||||||
|
"false_negative": 43,
|
||||||
|
"precision": 0.5,
|
||||||
|
"recall": 0.3064516129032258,
|
||||||
|
"f1": 0.38
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 28,
|
||||||
|
"false_positive": 47,
|
||||||
|
"false_negative": 106,
|
||||||
|
"precision": 0.37333333333333335,
|
||||||
|
"recall": 0.208955223880597,
|
||||||
|
"f1": 0.2679425837320574
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 125,
|
||||||
|
"false_negative": 16,
|
||||||
|
"precision": 0.07407407407407407,
|
||||||
|
"recall": 0.38461538461538464,
|
||||||
|
"f1": 0.12422360248447205
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 54,
|
||||||
|
"false_negative": 110,
|
||||||
|
"precision": 0.14285714285714285,
|
||||||
|
"recall": 0.07563025210084033,
|
||||||
|
"f1": 0.0989010989010989
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.15,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 54,
|
||||||
|
"false_positive": 183,
|
||||||
|
"false_negative": 294,
|
||||||
|
"precision": 0.22784810126582278,
|
||||||
|
"recall": 0.15517241379310345,
|
||||||
|
"f1": 0.18461538461538463
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 13,
|
||||||
|
"false_positive": 15,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.4642857142857143,
|
||||||
|
"recall": 0.2,
|
||||||
|
"f1": 0.27956989247311825
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 43,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.1568627450980392,
|
||||||
|
"recall": 0.06504065040650407,
|
||||||
|
"f1": 0.09195402298850575
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 33,
|
||||||
|
"false_positive": 125,
|
||||||
|
"false_negative": 127,
|
||||||
|
"precision": 0.2088607594936709,
|
||||||
|
"recall": 0.20625,
|
||||||
|
"f1": 0.20754716981132076
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 13,
|
||||||
|
"false_positive": 14,
|
||||||
|
"false_negative": 49,
|
||||||
|
"precision": 0.48148148148148145,
|
||||||
|
"recall": 0.20967741935483872,
|
||||||
|
"f1": 0.29213483146067415
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 25,
|
||||||
|
"false_positive": 33,
|
||||||
|
"false_negative": 109,
|
||||||
|
"precision": 0.43103448275862066,
|
||||||
|
"recall": 0.1865671641791045,
|
||||||
|
"f1": 0.2604166666666667
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 92,
|
||||||
|
"false_negative": 18,
|
||||||
|
"precision": 0.08,
|
||||||
|
"recall": 0.3076923076923077,
|
||||||
|
"f1": 0.126984126984127
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 41,
|
||||||
|
"false_negative": 111,
|
||||||
|
"precision": 0.16326530612244897,
|
||||||
|
"recall": 0.06722689075630252,
|
||||||
|
"f1": 0.09523809523809523
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.2,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 47,
|
||||||
|
"false_positive": 132,
|
||||||
|
"false_negative": 301,
|
||||||
|
"precision": 0.26256983240223464,
|
||||||
|
"recall": 0.13505747126436782,
|
||||||
|
"f1": 0.17836812144212524
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 13,
|
||||||
|
"false_negative": 53,
|
||||||
|
"precision": 0.48,
|
||||||
|
"recall": 0.18461538461538463,
|
||||||
|
"f1": 0.2666666666666667
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 33,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.1951219512195122,
|
||||||
|
"recall": 0.06504065040650407,
|
||||||
|
"f1": 0.0975609756097561
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 27,
|
||||||
|
"false_positive": 86,
|
||||||
|
"false_negative": 133,
|
||||||
|
"precision": 0.23893805309734514,
|
||||||
|
"recall": 0.16875,
|
||||||
|
"f1": 0.19780219780219782
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 13,
|
||||||
|
"false_negative": 50,
|
||||||
|
"precision": 0.48,
|
||||||
|
"recall": 0.1935483870967742,
|
||||||
|
"f1": 0.2758620689655172
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 21,
|
||||||
|
"false_positive": 19,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.525,
|
||||||
|
"recall": 0.15671641791044777,
|
||||||
|
"f1": 0.2413793103448276
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 67,
|
||||||
|
"false_negative": 20,
|
||||||
|
"precision": 0.0821917808219178,
|
||||||
|
"recall": 0.23076923076923078,
|
||||||
|
"f1": 0.12121212121212122
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 32,
|
||||||
|
"false_negative": 111,
|
||||||
|
"precision": 0.2,
|
||||||
|
"recall": 0.06722689075630252,
|
||||||
|
"f1": 0.10062893081761007
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.25,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 43,
|
||||||
|
"false_positive": 92,
|
||||||
|
"false_negative": 305,
|
||||||
|
"precision": 0.31851851851851853,
|
||||||
|
"recall": 0.1235632183908046,
|
||||||
|
"f1": 0.1780538302277433
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 8,
|
||||||
|
"false_negative": 54,
|
||||||
|
"precision": 0.5789473684210527,
|
||||||
|
"recall": 0.16923076923076924,
|
||||||
|
"f1": 0.2619047619047619
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 24,
|
||||||
|
"false_negative": 116,
|
||||||
|
"precision": 0.22580645161290322,
|
||||||
|
"recall": 0.056910569105691054,
|
||||||
|
"f1": 0.0909090909090909
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 25,
|
||||||
|
"false_positive": 60,
|
||||||
|
"false_negative": 135,
|
||||||
|
"precision": 0.29411764705882354,
|
||||||
|
"recall": 0.15625,
|
||||||
|
"f1": 0.20408163265306123
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 8,
|
||||||
|
"false_negative": 51,
|
||||||
|
"precision": 0.5789473684210527,
|
||||||
|
"recall": 0.1774193548387097,
|
||||||
|
"f1": 0.2716049382716049
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 19,
|
||||||
|
"false_positive": 14,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.5757575757575758,
|
||||||
|
"recall": 0.1417910447761194,
|
||||||
|
"f1": 0.22754491017964074
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 46,
|
||||||
|
"false_negative": 20,
|
||||||
|
"precision": 0.11538461538461539,
|
||||||
|
"recall": 0.23076923076923078,
|
||||||
|
"f1": 0.15384615384615388
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 23,
|
||||||
|
"false_negative": 112,
|
||||||
|
"precision": 0.23333333333333334,
|
||||||
|
"recall": 0.058823529411764705,
|
||||||
|
"f1": 0.09395973154362415
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.3,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 38,
|
||||||
|
"false_positive": 66,
|
||||||
|
"false_negative": 310,
|
||||||
|
"precision": 0.36538461538461536,
|
||||||
|
"recall": 0.10919540229885058,
|
||||||
|
"f1": 0.168141592920354
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 54,
|
||||||
|
"precision": 0.6470588235294118,
|
||||||
|
"recall": 0.16923076923076924,
|
||||||
|
"f1": 0.2682926829268293
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 5,
|
||||||
|
"false_positive": 17,
|
||||||
|
"false_negative": 118,
|
||||||
|
"precision": 0.22727272727272727,
|
||||||
|
"recall": 0.04065040650406504,
|
||||||
|
"f1": 0.0689655172413793
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 22,
|
||||||
|
"false_positive": 43,
|
||||||
|
"false_negative": 138,
|
||||||
|
"precision": 0.3384615384615385,
|
||||||
|
"recall": 0.1375,
|
||||||
|
"f1": 0.19555555555555557
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 51,
|
||||||
|
"precision": 0.6470588235294118,
|
||||||
|
"recall": 0.1774193548387097,
|
||||||
|
"f1": 0.2784810126582279
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 17,
|
||||||
|
"false_positive": 10,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.6296296296296297,
|
||||||
|
"recall": 0.12686567164179105,
|
||||||
|
"f1": 0.2111801242236025
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 5,
|
||||||
|
"false_positive": 33,
|
||||||
|
"false_negative": 21,
|
||||||
|
"precision": 0.13157894736842105,
|
||||||
|
"recall": 0.19230769230769232,
|
||||||
|
"f1": 0.15625
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 5,
|
||||||
|
"false_positive": 16,
|
||||||
|
"false_negative": 114,
|
||||||
|
"precision": 0.23809523809523808,
|
||||||
|
"recall": 0.04201680672268908,
|
||||||
|
"f1": 0.07142857142857142
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.35,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 30,
|
||||||
|
"false_positive": 47,
|
||||||
|
"false_negative": 318,
|
||||||
|
"precision": 0.38961038961038963,
|
||||||
|
"recall": 0.08620689655172414,
|
||||||
|
"f1": 0.1411764705882353
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.7692307692307693,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.2564102564102564
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 1,
|
||||||
|
"false_positive": 13,
|
||||||
|
"false_negative": 122,
|
||||||
|
"precision": 0.07142857142857142,
|
||||||
|
"recall": 0.008130081300813009,
|
||||||
|
"f1": 0.014598540145985401
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 19,
|
||||||
|
"false_positive": 31,
|
||||||
|
"false_negative": 141,
|
||||||
|
"precision": 0.38,
|
||||||
|
"recall": 0.11875,
|
||||||
|
"f1": 0.18095238095238095
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.7692307692307693,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.26666666666666666
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 5,
|
||||||
|
"false_negative": 120,
|
||||||
|
"precision": 0.7368421052631579,
|
||||||
|
"recall": 0.1044776119402985,
|
||||||
|
"f1": 0.1830065359477124
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 5,
|
||||||
|
"false_positive": 26,
|
||||||
|
"false_negative": 21,
|
||||||
|
"precision": 0.16129032258064516,
|
||||||
|
"recall": 0.19230769230769232,
|
||||||
|
"f1": 0.17543859649122806
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 1,
|
||||||
|
"false_positive": 12,
|
||||||
|
"false_negative": 118,
|
||||||
|
"precision": 0.07692307692307693,
|
||||||
|
"recall": 0.008403361344537815,
|
||||||
|
"f1": 0.01515151515151515
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.4,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 24,
|
||||||
|
"false_positive": 31,
|
||||||
|
"false_negative": 324,
|
||||||
|
"precision": 0.43636363636363634,
|
||||||
|
"recall": 0.06896551724137931,
|
||||||
|
"f1": 0.11910669975186104
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.8333333333333334,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.25974025974025977
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 1,
|
||||||
|
"false_positive": 10,
|
||||||
|
"false_negative": 122,
|
||||||
|
"precision": 0.09090909090909091,
|
||||||
|
"recall": 0.008130081300813009,
|
||||||
|
"f1": 0.01492537313432836
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 13,
|
||||||
|
"false_positive": 19,
|
||||||
|
"false_negative": 147,
|
||||||
|
"precision": 0.40625,
|
||||||
|
"recall": 0.08125,
|
||||||
|
"f1": 0.13541666666666669
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.8333333333333334,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.27027027027027023
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 124,
|
||||||
|
"precision": 0.7692307692307693,
|
||||||
|
"recall": 0.07462686567164178,
|
||||||
|
"f1": 0.13605442176870747
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 3,
|
||||||
|
"false_positive": 16,
|
||||||
|
"false_negative": 23,
|
||||||
|
"precision": 0.15789473684210525,
|
||||||
|
"recall": 0.11538461538461539,
|
||||||
|
"f1": 0.13333333333333333
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 1,
|
||||||
|
"false_positive": 10,
|
||||||
|
"false_negative": 118,
|
||||||
|
"precision": 0.09090909090909091,
|
||||||
|
"recall": 0.008403361344537815,
|
||||||
|
"f1": 0.015384615384615384
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,732 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"model": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"summary": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/yolo_tile_dataset_summary.json",
|
||||||
|
"split": "val",
|
||||||
|
"match_iou": 0.25,
|
||||||
|
"test_time_augmentation": false,
|
||||||
|
"inference_imgsz": 640,
|
||||||
|
"inference_batch": 8,
|
||||||
|
"max_detections_per_tile": 1000,
|
||||||
|
"nms_iou": 0.7,
|
||||||
|
"containment_nms": 1.0,
|
||||||
|
"box_scale": 1.0,
|
||||||
|
"box_offset_x": 0.0,
|
||||||
|
"box_offset_y": 0.0,
|
||||||
|
"additional_model": null,
|
||||||
|
"regional_models": {},
|
||||||
|
"regional_model_tile_counts": {},
|
||||||
|
"ensemble_mode": null,
|
||||||
|
"ensemble_match_iou": null,
|
||||||
|
"proposal_classifier": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/proposal-filter-v74/proposal-filter.experimental.torchscript.pt",
|
||||||
|
"proposal_classifier_threshold": 0.3,
|
||||||
|
"proposal_crop_scale": 1.4,
|
||||||
|
"proposal_classifier_batch": 64,
|
||||||
|
"tile_count": 24,
|
||||||
|
"sweeps": [
|
||||||
|
{
|
||||||
|
"threshold": 0.05,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 71,
|
||||||
|
"false_positive": 356,
|
||||||
|
"false_negative": 277,
|
||||||
|
"precision": 0.16627634660421545,
|
||||||
|
"recall": 0.20402298850574713,
|
||||||
|
"f1": 0.18322580645161288
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 22,
|
||||||
|
"false_positive": 35,
|
||||||
|
"false_negative": 43,
|
||||||
|
"precision": 0.38596491228070173,
|
||||||
|
"recall": 0.3384615384615385,
|
||||||
|
"f1": 0.36065573770491804
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 85,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.10526315789473684,
|
||||||
|
"recall": 0.08130081300813008,
|
||||||
|
"f1": 0.09174311926605504
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 39,
|
||||||
|
"false_positive": 236,
|
||||||
|
"false_negative": 121,
|
||||||
|
"precision": 0.14181818181818182,
|
||||||
|
"recall": 0.24375,
|
||||||
|
"f1": 0.1793103448275862
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 22,
|
||||||
|
"false_positive": 34,
|
||||||
|
"false_negative": 40,
|
||||||
|
"precision": 0.39285714285714285,
|
||||||
|
"recall": 0.3548387096774194,
|
||||||
|
"f1": 0.3728813559322034
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 29,
|
||||||
|
"false_positive": 68,
|
||||||
|
"false_negative": 105,
|
||||||
|
"precision": 0.29896907216494845,
|
||||||
|
"recall": 0.21641791044776118,
|
||||||
|
"f1": 0.2510822510822511
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 168,
|
||||||
|
"false_negative": 16,
|
||||||
|
"precision": 0.056179775280898875,
|
||||||
|
"recall": 0.38461538461538464,
|
||||||
|
"f1": 0.09803921568627451
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 82,
|
||||||
|
"false_negative": 109,
|
||||||
|
"precision": 0.10869565217391304,
|
||||||
|
"recall": 0.08403361344537816,
|
||||||
|
"f1": 0.0947867298578199
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.1,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 57,
|
||||||
|
"false_positive": 225,
|
||||||
|
"false_negative": 291,
|
||||||
|
"precision": 0.20212765957446807,
|
||||||
|
"recall": 0.16379310344827586,
|
||||||
|
"f1": 0.18095238095238095
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 16,
|
||||||
|
"false_positive": 19,
|
||||||
|
"false_negative": 49,
|
||||||
|
"precision": 0.45714285714285713,
|
||||||
|
"recall": 0.24615384615384617,
|
||||||
|
"f1": 0.32
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 44,
|
||||||
|
"false_negative": 116,
|
||||||
|
"precision": 0.13725490196078433,
|
||||||
|
"recall": 0.056910569105691054,
|
||||||
|
"f1": 0.08045977011494253
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 34,
|
||||||
|
"false_positive": 162,
|
||||||
|
"false_negative": 126,
|
||||||
|
"precision": 0.17346938775510204,
|
||||||
|
"recall": 0.2125,
|
||||||
|
"f1": 0.19101123595505617
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 16,
|
||||||
|
"false_positive": 18,
|
||||||
|
"false_negative": 46,
|
||||||
|
"precision": 0.47058823529411764,
|
||||||
|
"recall": 0.25806451612903225,
|
||||||
|
"f1": 0.3333333333333333
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 25,
|
||||||
|
"false_positive": 42,
|
||||||
|
"false_negative": 109,
|
||||||
|
"precision": 0.373134328358209,
|
||||||
|
"recall": 0.1865671641791045,
|
||||||
|
"f1": 0.24875621890547264
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 120,
|
||||||
|
"false_negative": 17,
|
||||||
|
"precision": 0.06976744186046512,
|
||||||
|
"recall": 0.34615384615384615,
|
||||||
|
"f1": 0.11612903225806451
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 42,
|
||||||
|
"false_negative": 112,
|
||||||
|
"precision": 0.14285714285714285,
|
||||||
|
"recall": 0.058823529411764705,
|
||||||
|
"f1": 0.08333333333333333
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.15,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 47,
|
||||||
|
"false_positive": 163,
|
||||||
|
"false_negative": 301,
|
||||||
|
"precision": 0.22380952380952382,
|
||||||
|
"recall": 0.13505747126436782,
|
||||||
|
"f1": 0.16845878136200718
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 14,
|
||||||
|
"false_negative": 54,
|
||||||
|
"precision": 0.44,
|
||||||
|
"recall": 0.16923076923076924,
|
||||||
|
"f1": 0.24444444444444446
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 31,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.16216216216216217,
|
||||||
|
"recall": 0.04878048780487805,
|
||||||
|
"f1": 0.075
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 30,
|
||||||
|
"false_positive": 118,
|
||||||
|
"false_negative": 130,
|
||||||
|
"precision": 0.20270270270270271,
|
||||||
|
"recall": 0.1875,
|
||||||
|
"f1": 0.1948051948051948
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 13,
|
||||||
|
"false_negative": 51,
|
||||||
|
"precision": 0.4583333333333333,
|
||||||
|
"recall": 0.1774193548387097,
|
||||||
|
"f1": 0.2558139534883721
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 23,
|
||||||
|
"false_positive": 30,
|
||||||
|
"false_negative": 111,
|
||||||
|
"precision": 0.4339622641509434,
|
||||||
|
"recall": 0.17164179104477612,
|
||||||
|
"f1": 0.24598930481283418
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 88,
|
||||||
|
"false_negative": 19,
|
||||||
|
"precision": 0.07368421052631578,
|
||||||
|
"recall": 0.2692307692307692,
|
||||||
|
"f1": 0.11570247933884296
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 30,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.16666666666666666,
|
||||||
|
"recall": 0.05042016806722689,
|
||||||
|
"f1": 0.07741935483870967
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.2,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 41,
|
||||||
|
"false_positive": 116,
|
||||||
|
"false_negative": 307,
|
||||||
|
"precision": 0.2611464968152866,
|
||||||
|
"recall": 0.11781609195402298,
|
||||||
|
"f1": 0.16237623762376235
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 12,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.45454545454545453,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.22988505747126442
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 23,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.20689655172413793,
|
||||||
|
"recall": 0.04878048780487805,
|
||||||
|
"f1": 0.07894736842105263
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 25,
|
||||||
|
"false_positive": 81,
|
||||||
|
"false_negative": 135,
|
||||||
|
"precision": 0.2358490566037736,
|
||||||
|
"recall": 0.15625,
|
||||||
|
"f1": 0.1879699248120301
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 12,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.45454545454545453,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.23809523809523805
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 20,
|
||||||
|
"false_positive": 18,
|
||||||
|
"false_negative": 114,
|
||||||
|
"precision": 0.5263157894736842,
|
||||||
|
"recall": 0.14925373134328357,
|
||||||
|
"f1": 0.2325581395348837
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 5,
|
||||||
|
"false_positive": 63,
|
||||||
|
"false_negative": 21,
|
||||||
|
"precision": 0.07352941176470588,
|
||||||
|
"recall": 0.19230769230769232,
|
||||||
|
"f1": 0.10638297872340427
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 23,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.20689655172413793,
|
||||||
|
"recall": 0.05042016806722689,
|
||||||
|
"f1": 0.08108108108108107
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.25,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 38,
|
||||||
|
"false_positive": 79,
|
||||||
|
"false_negative": 310,
|
||||||
|
"precision": 0.3247863247863248,
|
||||||
|
"recall": 0.10919540229885058,
|
||||||
|
"f1": 0.16344086021505377
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 8,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.5555555555555556,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.24096385542168675
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 15,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.2857142857142857,
|
||||||
|
"recall": 0.04878048780487805,
|
||||||
|
"f1": 0.08333333333333334
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 22,
|
||||||
|
"false_positive": 56,
|
||||||
|
"false_negative": 138,
|
||||||
|
"precision": 0.28205128205128205,
|
||||||
|
"recall": 0.1375,
|
||||||
|
"f1": 0.18487394957983194
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 8,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.5555555555555556,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.25
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 17,
|
||||||
|
"false_positive": 14,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.5483870967741935,
|
||||||
|
"recall": 0.12686567164179105,
|
||||||
|
"f1": 0.20606060606060606
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 5,
|
||||||
|
"false_positive": 42,
|
||||||
|
"false_negative": 21,
|
||||||
|
"precision": 0.10638297872340426,
|
||||||
|
"recall": 0.19230769230769232,
|
||||||
|
"f1": 0.136986301369863
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 15,
|
||||||
|
"false_negative": 113,
|
||||||
|
"precision": 0.2857142857142857,
|
||||||
|
"recall": 0.05042016806722689,
|
||||||
|
"f1": 0.08571428571428572
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.3,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 33,
|
||||||
|
"false_positive": 55,
|
||||||
|
"false_negative": 315,
|
||||||
|
"precision": 0.375,
|
||||||
|
"recall": 0.09482758620689655,
|
||||||
|
"f1": 0.1513761467889908
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.625,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.2469135802469136
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 9,
|
||||||
|
"false_negative": 119,
|
||||||
|
"precision": 0.3076923076923077,
|
||||||
|
"recall": 0.032520325203252036,
|
||||||
|
"f1": 0.05882352941176471
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 19,
|
||||||
|
"false_positive": 40,
|
||||||
|
"false_negative": 141,
|
||||||
|
"precision": 0.3220338983050847,
|
||||||
|
"recall": 0.11875,
|
||||||
|
"f1": 0.1735159817351598
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.625,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.2564102564102564
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 15,
|
||||||
|
"false_positive": 10,
|
||||||
|
"false_negative": 119,
|
||||||
|
"precision": 0.6,
|
||||||
|
"recall": 0.11194029850746269,
|
||||||
|
"f1": 0.18867924528301888
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 30,
|
||||||
|
"false_negative": 22,
|
||||||
|
"precision": 0.11764705882352941,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.13333333333333333
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 9,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.3076923076923077,
|
||||||
|
"recall": 0.03361344537815126,
|
||||||
|
"f1": 0.0606060606060606
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.35,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 27,
|
||||||
|
"false_positive": 37,
|
||||||
|
"false_negative": 321,
|
||||||
|
"precision": 0.421875,
|
||||||
|
"recall": 0.07758620689655173,
|
||||||
|
"f1": 0.13106796116504857
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.7692307692307693,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.2564102564102564
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 1,
|
||||||
|
"false_positive": 5,
|
||||||
|
"false_negative": 122,
|
||||||
|
"precision": 0.16666666666666666,
|
||||||
|
"recall": 0.008130081300813009,
|
||||||
|
"f1": 0.01550387596899225
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 16,
|
||||||
|
"false_positive": 29,
|
||||||
|
"false_negative": 144,
|
||||||
|
"precision": 0.35555555555555557,
|
||||||
|
"recall": 0.1,
|
||||||
|
"f1": 0.15609756097560973
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.7692307692307693,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.26666666666666666
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 12,
|
||||||
|
"false_positive": 5,
|
||||||
|
"false_negative": 122,
|
||||||
|
"precision": 0.7058823529411765,
|
||||||
|
"recall": 0.08955223880597014,
|
||||||
|
"f1": 0.15894039735099338
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 24,
|
||||||
|
"false_negative": 22,
|
||||||
|
"precision": 0.14285714285714285,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.14814814814814817
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 1,
|
||||||
|
"false_positive": 5,
|
||||||
|
"false_negative": 118,
|
||||||
|
"precision": 0.16666666666666666,
|
||||||
|
"recall": 0.008403361344537815,
|
||||||
|
"f1": 0.016
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.4,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 22,
|
||||||
|
"false_positive": 23,
|
||||||
|
"false_negative": 326,
|
||||||
|
"precision": 0.4888888888888889,
|
||||||
|
"recall": 0.06321839080459771,
|
||||||
|
"f1": 0.11195928753180662
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.8333333333333334,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.25974025974025977
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 1,
|
||||||
|
"false_positive": 4,
|
||||||
|
"false_negative": 122,
|
||||||
|
"precision": 0.2,
|
||||||
|
"recall": 0.008130081300813009,
|
||||||
|
"f1": 0.015625000000000003
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 17,
|
||||||
|
"false_negative": 149,
|
||||||
|
"precision": 0.39285714285714285,
|
||||||
|
"recall": 0.06875,
|
||||||
|
"f1": 0.11702127659574468
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.8333333333333334,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.27027027027027023
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 126,
|
||||||
|
"precision": 0.7272727272727273,
|
||||||
|
"recall": 0.05970149253731343,
|
||||||
|
"f1": 0.11034482758620691
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 3,
|
||||||
|
"false_positive": 14,
|
||||||
|
"false_negative": 23,
|
||||||
|
"precision": 0.17647058823529413,
|
||||||
|
"recall": 0.11538461538461539,
|
||||||
|
"f1": 0.13953488372093026
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 1,
|
||||||
|
"false_positive": 4,
|
||||||
|
"false_negative": 118,
|
||||||
|
"precision": 0.2,
|
||||||
|
"recall": 0.008403361344537815,
|
||||||
|
"f1": 0.016129032258064516
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,732 @@
|
|||||||
|
{
|
||||||
|
"schema_version": 1,
|
||||||
|
"model": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"summary": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/yolo_tile_dataset_summary.json",
|
||||||
|
"split": "val",
|
||||||
|
"match_iou": 0.25,
|
||||||
|
"test_time_augmentation": false,
|
||||||
|
"inference_imgsz": 640,
|
||||||
|
"inference_batch": 8,
|
||||||
|
"max_detections_per_tile": 1000,
|
||||||
|
"nms_iou": 0.7,
|
||||||
|
"containment_nms": 1.0,
|
||||||
|
"box_scale": 1.0,
|
||||||
|
"box_offset_x": 0.0,
|
||||||
|
"box_offset_y": 0.0,
|
||||||
|
"additional_model": null,
|
||||||
|
"regional_models": {},
|
||||||
|
"regional_model_tile_counts": {},
|
||||||
|
"ensemble_mode": null,
|
||||||
|
"ensemble_match_iou": null,
|
||||||
|
"proposal_classifier": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/proposal-filter-v74/proposal-filter.experimental.torchscript.pt",
|
||||||
|
"proposal_classifier_threshold": 0.5,
|
||||||
|
"proposal_crop_scale": 1.4,
|
||||||
|
"proposal_classifier_batch": 64,
|
||||||
|
"tile_count": 24,
|
||||||
|
"sweeps": [
|
||||||
|
{
|
||||||
|
"threshold": 0.05,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 63,
|
||||||
|
"false_positive": 298,
|
||||||
|
"false_negative": 285,
|
||||||
|
"precision": 0.1745152354570637,
|
||||||
|
"recall": 0.1810344827586207,
|
||||||
|
"f1": 0.17771509167842034
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 20,
|
||||||
|
"false_positive": 32,
|
||||||
|
"false_negative": 45,
|
||||||
|
"precision": 0.38461538461538464,
|
||||||
|
"recall": 0.3076923076923077,
|
||||||
|
"f1": 0.3418803418803419
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 63,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.11267605633802817,
|
||||||
|
"recall": 0.06504065040650407,
|
||||||
|
"f1": 0.08247422680412371
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 35,
|
||||||
|
"false_positive": 203,
|
||||||
|
"false_negative": 125,
|
||||||
|
"precision": 0.14705882352941177,
|
||||||
|
"recall": 0.21875,
|
||||||
|
"f1": 0.17587939698492464
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 20,
|
||||||
|
"false_positive": 31,
|
||||||
|
"false_negative": 42,
|
||||||
|
"precision": 0.39215686274509803,
|
||||||
|
"recall": 0.3225806451612903,
|
||||||
|
"f1": 0.35398230088495575
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 27,
|
||||||
|
"false_positive": 56,
|
||||||
|
"false_negative": 107,
|
||||||
|
"precision": 0.3253012048192771,
|
||||||
|
"recall": 0.20149253731343283,
|
||||||
|
"f1": 0.24884792626728114
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 147,
|
||||||
|
"false_negative": 18,
|
||||||
|
"precision": 0.05161290322580645,
|
||||||
|
"recall": 0.3076923076923077,
|
||||||
|
"f1": 0.08839779005524862
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 8,
|
||||||
|
"false_positive": 61,
|
||||||
|
"false_negative": 111,
|
||||||
|
"precision": 0.11594202898550725,
|
||||||
|
"recall": 0.06722689075630252,
|
||||||
|
"f1": 0.0851063829787234
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.1,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 50,
|
||||||
|
"false_positive": 187,
|
||||||
|
"false_negative": 298,
|
||||||
|
"precision": 0.2109704641350211,
|
||||||
|
"recall": 0.14367816091954022,
|
||||||
|
"f1": 0.17094017094017094
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 15,
|
||||||
|
"false_positive": 19,
|
||||||
|
"false_negative": 50,
|
||||||
|
"precision": 0.4411764705882353,
|
||||||
|
"recall": 0.23076923076923078,
|
||||||
|
"f1": 0.303030303030303
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 5,
|
||||||
|
"false_positive": 31,
|
||||||
|
"false_negative": 118,
|
||||||
|
"precision": 0.1388888888888889,
|
||||||
|
"recall": 0.04065040650406504,
|
||||||
|
"f1": 0.06289308176100629
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 30,
|
||||||
|
"false_positive": 137,
|
||||||
|
"false_negative": 130,
|
||||||
|
"precision": 0.17964071856287425,
|
||||||
|
"recall": 0.1875,
|
||||||
|
"f1": 0.1834862385321101
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 15,
|
||||||
|
"false_positive": 18,
|
||||||
|
"false_negative": 47,
|
||||||
|
"precision": 0.45454545454545453,
|
||||||
|
"recall": 0.24193548387096775,
|
||||||
|
"f1": 0.3157894736842105
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 23,
|
||||||
|
"false_positive": 33,
|
||||||
|
"false_negative": 111,
|
||||||
|
"precision": 0.4107142857142857,
|
||||||
|
"recall": 0.17164179104477612,
|
||||||
|
"f1": 0.2421052631578947
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 104,
|
||||||
|
"false_negative": 19,
|
||||||
|
"precision": 0.06306306306306306,
|
||||||
|
"recall": 0.2692307692307692,
|
||||||
|
"f1": 0.1021897810218978
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 5,
|
||||||
|
"false_positive": 30,
|
||||||
|
"false_negative": 114,
|
||||||
|
"precision": 0.14285714285714285,
|
||||||
|
"recall": 0.04201680672268908,
|
||||||
|
"f1": 0.06493506493506493
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.15,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 42,
|
||||||
|
"false_positive": 129,
|
||||||
|
"false_negative": 306,
|
||||||
|
"precision": 0.24561403508771928,
|
||||||
|
"recall": 0.1206896551724138,
|
||||||
|
"f1": 0.16184971098265896
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 14,
|
||||||
|
"false_negative": 55,
|
||||||
|
"precision": 0.4166666666666667,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.22471910112359555
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 20,
|
||||||
|
"false_negative": 119,
|
||||||
|
"precision": 0.16666666666666666,
|
||||||
|
"recall": 0.032520325203252036,
|
||||||
|
"f1": 0.05442176870748299
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 28,
|
||||||
|
"false_positive": 95,
|
||||||
|
"false_negative": 132,
|
||||||
|
"precision": 0.22764227642276422,
|
||||||
|
"recall": 0.175,
|
||||||
|
"f1": 0.19787985865724383
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 13,
|
||||||
|
"false_negative": 52,
|
||||||
|
"precision": 0.43478260869565216,
|
||||||
|
"recall": 0.16129032258064516,
|
||||||
|
"f1": 0.23529411764705882
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 22,
|
||||||
|
"false_positive": 21,
|
||||||
|
"false_negative": 112,
|
||||||
|
"precision": 0.5116279069767442,
|
||||||
|
"recall": 0.16417910447761194,
|
||||||
|
"f1": 0.2485875706214689
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 1,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 6,
|
||||||
|
"false_positive": 74,
|
||||||
|
"false_negative": 20,
|
||||||
|
"precision": 0.075,
|
||||||
|
"recall": 0.23076923076923078,
|
||||||
|
"f1": 0.11320754716981132
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 19,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.17391304347826086,
|
||||||
|
"recall": 0.03361344537815126,
|
||||||
|
"f1": 0.056338028169014086
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.2,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 36,
|
||||||
|
"false_positive": 92,
|
||||||
|
"false_negative": 312,
|
||||||
|
"precision": 0.28125,
|
||||||
|
"recall": 0.10344827586206896,
|
||||||
|
"f1": 0.15126050420168066
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 12,
|
||||||
|
"false_negative": 56,
|
||||||
|
"precision": 0.42857142857142855,
|
||||||
|
"recall": 0.13846153846153847,
|
||||||
|
"f1": 0.20930232558139533
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 15,
|
||||||
|
"false_negative": 119,
|
||||||
|
"precision": 0.21052631578947367,
|
||||||
|
"recall": 0.032520325203252036,
|
||||||
|
"f1": 0.056338028169014086
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 23,
|
||||||
|
"false_positive": 65,
|
||||||
|
"false_negative": 137,
|
||||||
|
"precision": 0.26136363636363635,
|
||||||
|
"recall": 0.14375,
|
||||||
|
"f1": 0.18548387096774194
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 12,
|
||||||
|
"false_negative": 53,
|
||||||
|
"precision": 0.42857142857142855,
|
||||||
|
"recall": 0.14516129032258066,
|
||||||
|
"f1": 0.21686746987951808
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 19,
|
||||||
|
"false_positive": 12,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.6129032258064516,
|
||||||
|
"recall": 0.1417910447761194,
|
||||||
|
"f1": 0.2303030303030303
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 53,
|
||||||
|
"false_negative": 22,
|
||||||
|
"precision": 0.07017543859649122,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.09638554216867469
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 15,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.21052631578947367,
|
||||||
|
"recall": 0.03361344537815126,
|
||||||
|
"f1": 0.057971014492753624
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.25,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 32,
|
||||||
|
"false_positive": 65,
|
||||||
|
"false_negative": 316,
|
||||||
|
"precision": 0.32989690721649484,
|
||||||
|
"recall": 0.09195402298850575,
|
||||||
|
"f1": 0.14382022471910114
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 8,
|
||||||
|
"false_negative": 56,
|
||||||
|
"precision": 0.5294117647058824,
|
||||||
|
"recall": 0.13846153846153847,
|
||||||
|
"f1": 0.21951219512195122
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 11,
|
||||||
|
"false_negative": 119,
|
||||||
|
"precision": 0.26666666666666666,
|
||||||
|
"recall": 0.032520325203252036,
|
||||||
|
"f1": 0.057971014492753624
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 19,
|
||||||
|
"false_positive": 46,
|
||||||
|
"false_negative": 141,
|
||||||
|
"precision": 0.2923076923076923,
|
||||||
|
"recall": 0.11875,
|
||||||
|
"f1": 0.1688888888888889
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 8,
|
||||||
|
"false_negative": 53,
|
||||||
|
"precision": 0.5294117647058824,
|
||||||
|
"recall": 0.14516129032258066,
|
||||||
|
"f1": 0.2278481012658228
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 15,
|
||||||
|
"false_positive": 10,
|
||||||
|
"false_negative": 119,
|
||||||
|
"precision": 0.6,
|
||||||
|
"recall": 0.11194029850746269,
|
||||||
|
"f1": 0.18867924528301888
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 36,
|
||||||
|
"false_negative": 22,
|
||||||
|
"precision": 0.1,
|
||||||
|
"recall": 0.15384615384615385,
|
||||||
|
"f1": 0.12121212121212123
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 4,
|
||||||
|
"false_positive": 11,
|
||||||
|
"false_negative": 115,
|
||||||
|
"precision": 0.26666666666666666,
|
||||||
|
"recall": 0.03361344537815126,
|
||||||
|
"f1": 0.05970149253731343
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.3,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 27,
|
||||||
|
"false_positive": 45,
|
||||||
|
"false_negative": 321,
|
||||||
|
"precision": 0.375,
|
||||||
|
"recall": 0.07758620689655173,
|
||||||
|
"f1": 0.1285714285714286
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 56,
|
||||||
|
"precision": 0.6,
|
||||||
|
"recall": 0.13846153846153847,
|
||||||
|
"f1": 0.22499999999999998
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 121,
|
||||||
|
"precision": 0.25,
|
||||||
|
"recall": 0.016260162601626018,
|
||||||
|
"f1": 0.030534351145038174
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 16,
|
||||||
|
"false_positive": 33,
|
||||||
|
"false_negative": 144,
|
||||||
|
"precision": 0.32653061224489793,
|
||||||
|
"recall": 0.1,
|
||||||
|
"f1": 0.15311004784688992
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 53,
|
||||||
|
"precision": 0.6,
|
||||||
|
"recall": 0.14516129032258066,
|
||||||
|
"f1": 0.2337662337662338
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 13,
|
||||||
|
"false_positive": 7,
|
||||||
|
"false_negative": 121,
|
||||||
|
"precision": 0.65,
|
||||||
|
"recall": 0.09701492537313433,
|
||||||
|
"f1": 0.1688311688311688
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 3,
|
||||||
|
"false_positive": 26,
|
||||||
|
"false_negative": 23,
|
||||||
|
"precision": 0.10344827586206896,
|
||||||
|
"recall": 0.11538461538461539,
|
||||||
|
"f1": 0.10909090909090909
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 2,
|
||||||
|
"false_positive": 6,
|
||||||
|
"false_negative": 117,
|
||||||
|
"precision": 0.25,
|
||||||
|
"recall": 0.01680672268907563,
|
||||||
|
"f1": 0.031496062992125984
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.35,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 23,
|
||||||
|
"false_positive": 32,
|
||||||
|
"false_negative": 325,
|
||||||
|
"precision": 0.41818181818181815,
|
||||||
|
"recall": 0.06609195402298851,
|
||||||
|
"f1": 0.1141439205955335
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 56,
|
||||||
|
"precision": 0.75,
|
||||||
|
"recall": 0.13846153846153847,
|
||||||
|
"f1": 0.2337662337662338
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 123,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 14,
|
||||||
|
"false_positive": 26,
|
||||||
|
"false_negative": 146,
|
||||||
|
"precision": 0.35,
|
||||||
|
"recall": 0.0875,
|
||||||
|
"f1": 0.13999999999999999
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 53,
|
||||||
|
"precision": 0.75,
|
||||||
|
"recall": 0.14516129032258066,
|
||||||
|
"f1": 0.24324324324324328
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 11,
|
||||||
|
"false_positive": 4,
|
||||||
|
"false_negative": 123,
|
||||||
|
"precision": 0.7333333333333333,
|
||||||
|
"recall": 0.08208955223880597,
|
||||||
|
"f1": 0.1476510067114094
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 3,
|
||||||
|
"false_positive": 22,
|
||||||
|
"false_negative": 23,
|
||||||
|
"precision": 0.12,
|
||||||
|
"recall": 0.11538461538461539,
|
||||||
|
"f1": 0.11764705882352941
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 3,
|
||||||
|
"false_negative": 119,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"threshold": 0.4,
|
||||||
|
"aggregate": {
|
||||||
|
"true_positive": 19,
|
||||||
|
"false_positive": 18,
|
||||||
|
"false_negative": 329,
|
||||||
|
"precision": 0.5135135135135135,
|
||||||
|
"recall": 0.05459770114942529,
|
||||||
|
"f1": 0.09870129870129869
|
||||||
|
},
|
||||||
|
"regions": {
|
||||||
|
"brussels": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 56,
|
||||||
|
"precision": 0.8181818181818182,
|
||||||
|
"recall": 0.13846153846153847,
|
||||||
|
"f1": 0.2368421052631579
|
||||||
|
},
|
||||||
|
"flanders": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 123,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"wallonia": {
|
||||||
|
"true_positive": 10,
|
||||||
|
"false_positive": 14,
|
||||||
|
"false_negative": 150,
|
||||||
|
"precision": 0.4166666666666667,
|
||||||
|
"recall": 0.0625,
|
||||||
|
"f1": 0.10869565217391304
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"samples": {
|
||||||
|
"v72-assenede-field-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 4,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-ganshoren-lowrise-cal": {
|
||||||
|
"true_positive": 9,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 53,
|
||||||
|
"precision": 0.8181818181818182,
|
||||||
|
"recall": 0.14516129032258066,
|
||||||
|
"f1": 0.24657534246575347
|
||||||
|
},
|
||||||
|
"v72-havelange-field-cal-bg": {
|
||||||
|
"true_positive": 7,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 127,
|
||||||
|
"precision": 0.7777777777777778,
|
||||||
|
"recall": 0.05223880597014925,
|
||||||
|
"f1": 0.0979020979020979
|
||||||
|
},
|
||||||
|
"v72-laeken-park-cal-bg": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 0,
|
||||||
|
"false_negative": 3,
|
||||||
|
"precision": 1.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
},
|
||||||
|
"v72-libramont-lowrise-cal": {
|
||||||
|
"true_positive": 3,
|
||||||
|
"false_positive": 12,
|
||||||
|
"false_negative": 23,
|
||||||
|
"precision": 0.2,
|
||||||
|
"recall": 0.11538461538461539,
|
||||||
|
"f1": 0.14634146341463417
|
||||||
|
},
|
||||||
|
"v72-zandhoven-lowrise-cal": {
|
||||||
|
"true_positive": 0,
|
||||||
|
"false_positive": 2,
|
||||||
|
"false_negative": 119,
|
||||||
|
"precision": 0.0,
|
||||||
|
"recall": 0.0,
|
||||||
|
"f1": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pure_empty_false_positives": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+86
@@ -0,0 +1,86 @@
|
|||||||
|
{
|
||||||
|
"architecture": "resnet18_binary_proposal_filter",
|
||||||
|
"counts": {
|
||||||
|
"train": {
|
||||||
|
"negative": 1335,
|
||||||
|
"positive": 1019
|
||||||
|
},
|
||||||
|
"val": {
|
||||||
|
"negative": 351,
|
||||||
|
"positive": 321
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"epochs": 8,
|
||||||
|
"history": [
|
||||||
|
{
|
||||||
|
"epoch": 1,
|
||||||
|
"train_loss": 0.5134634735884055
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"epoch": 2,
|
||||||
|
"train_loss": 0.17598877930752585
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"epoch": 3,
|
||||||
|
"train_loss": 0.03689257871160187
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"epoch": 4,
|
||||||
|
"train_loss": 0.020946205270016914
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"epoch": 5,
|
||||||
|
"train_loss": 0.009861895276080048
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"epoch": 6,
|
||||||
|
"train_loss": 0.010347233114316236
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"epoch": 7,
|
||||||
|
"train_loss": 0.01452157101748209
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"epoch": 8,
|
||||||
|
"train_loss": 0.013557729805038709
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"human_review_pending": true,
|
||||||
|
"model": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/proposal-filter-v74/proposal-filter.experimental.torchscript.pt",
|
||||||
|
"model_sha256": "a4570a6257e5f234730fc03b75d53251afdeb830ea3c96dfff45604b23786260",
|
||||||
|
"promotion_allowed": false,
|
||||||
|
"proposal_model": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"proposal_model_sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
||||||
|
"release_claim_allowed": false,
|
||||||
|
"required_next_gate": "independent V72 detector-plus-filter calibration",
|
||||||
|
"schema_version": 1,
|
||||||
|
"selected_threshold": 0.15,
|
||||||
|
"selected_threshold_source": "internal_v73_validation_only",
|
||||||
|
"source_summary": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/yolo512/experimental_dataset_summary.json",
|
||||||
|
"source_summary_sha256": "047874a4f9362c82263ffe11c389a2f65168c449d3f6cbcc77cea709c0ba4c59",
|
||||||
|
"status": "trained_experimental_only",
|
||||||
|
"train_samples": [
|
||||||
|
"v73-adinkerke-dunes-train-bg",
|
||||||
|
"v73-borgloon-rural-train",
|
||||||
|
"v73-doel-port-train-bg",
|
||||||
|
"v73-houthulst-forest-train-bg",
|
||||||
|
"v73-kaprijke-field-train-bg",
|
||||||
|
"v73-lede-ribbon-train",
|
||||||
|
"v73-ronse-industry-train-bg",
|
||||||
|
"v73-schoten-lowrise-train",
|
||||||
|
"v73-wevelgem-industry-train"
|
||||||
|
],
|
||||||
|
"validation_metrics": {
|
||||||
|
"f1": 0.8067700987306066,
|
||||||
|
"false_negative": 35,
|
||||||
|
"false_positive": 102,
|
||||||
|
"precision": 0.7371134020618557,
|
||||||
|
"recall": 0.8909657320872274,
|
||||||
|
"true_positive": 286
|
||||||
|
},
|
||||||
|
"validation_samples": [
|
||||||
|
"v73-kontich-lowrise-train",
|
||||||
|
"v73-peer-field-train-bg",
|
||||||
|
"v73-tielt-rural-train"
|
||||||
|
]
|
||||||
|
}
|
||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"base_model": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"base_model_sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
||||||
|
"batch": 8,
|
||||||
|
"candidate_model": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/runs/v74-rehearsal-controlled-e10/candidate.experimental.pt",
|
||||||
|
"candidate_model_sha256": "8473f09234bbad9175d5540e2f298e57c902c332fa5729561774b01a98c355d3",
|
||||||
|
"dataset_yaml_sha256": "2fa0c66ddb7105629b7873e45030e6977da941130cb032c63e6449033ed42409",
|
||||||
|
"device": "NVIDIA GeForce RTX 4080 SUPER",
|
||||||
|
"epochs": 10,
|
||||||
|
"freeze": 10,
|
||||||
|
"human_review_pending": true,
|
||||||
|
"imgsz": 640,
|
||||||
|
"learning_rate": 0.0001,
|
||||||
|
"promotion_allowed": false,
|
||||||
|
"release_claim_allowed": false,
|
||||||
|
"required_next_gate": "independent frozen V72 calibration evaluation",
|
||||||
|
"schema_version": 1,
|
||||||
|
"status": "trained_experimental_only",
|
||||||
|
"workers": 0
|
||||||
|
}
|
||||||
+116
@@ -0,0 +1,116 @@
|
|||||||
|
{
|
||||||
|
"attempts": [
|
||||||
|
{
|
||||||
|
"map50": 0.05677865740374553,
|
||||||
|
"map50_95": 0.02175035531261916,
|
||||||
|
"model_path": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"model_sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
||||||
|
"precision": 0.1576550586330707,
|
||||||
|
"recall": 0.11781609195402298,
|
||||||
|
"size_bytes": 22516074,
|
||||||
|
"status": "ok"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"map50": 0.026181668883665236,
|
||||||
|
"map50_95": 0.009758453459274275,
|
||||||
|
"model_path": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/runs/v74-rehearsal-controlled-e10/candidate.experimental.pt",
|
||||||
|
"model_sha256": "8473f09234bbad9175d5540e2f298e57c902c332fa5729561774b01a98c355d3",
|
||||||
|
"precision": 0.07101814254884525,
|
||||||
|
"recall": 0.07758620689655173,
|
||||||
|
"size_bytes": 22513578,
|
||||||
|
"status": "ok"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"candidate_count": 2,
|
||||||
|
"claim_boundary": "Non-protected validation ranking only; no test, challenge or promotion claim.",
|
||||||
|
"dataset_overlap_evidence": {
|
||||||
|
"interpretation": "Tiles do not overlap, but spatial/statistical independence is not established because adjacent tiles share AOI context and edge objects can remain split.",
|
||||||
|
"overlap_pixels": 0,
|
||||||
|
"statistical_independence_established": false,
|
||||||
|
"status": "non_overlapping",
|
||||||
|
"stride": 512,
|
||||||
|
"summary_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/yolo_tile_dataset_summary.json",
|
||||||
|
"summary_sha256": "78e16f46fa2a313a147404a19f2ce99417d2cb384b5db5f6ba33e934ff99c631",
|
||||||
|
"tile_size": 512,
|
||||||
|
"validation_tiles_non_overlapping": true
|
||||||
|
},
|
||||||
|
"dataset_yaml": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/dataset.yaml",
|
||||||
|
"dataset_yaml_sha256": "d1e85ffb6776d92a4534830f2214fa6444f5a9160329aca0a68d0ea0a1a40144",
|
||||||
|
"device": "cuda:0",
|
||||||
|
"generated_at": "2026-08-10T02:29:41.222925+00:00",
|
||||||
|
"model_lineage_independence_evidence": {
|
||||||
|
"evaluation_samples": [
|
||||||
|
"v72-assenede-field-cal-bg",
|
||||||
|
"v72-ganshoren-lowrise-cal",
|
||||||
|
"v72-havelange-field-cal-bg",
|
||||||
|
"v72-laeken-park-cal-bg",
|
||||||
|
"v72-libramont-lowrise-cal",
|
||||||
|
"v72-zandhoven-lowrise-cal"
|
||||||
|
],
|
||||||
|
"evaluation_summary_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/yolo_tile_dataset_summary.json",
|
||||||
|
"evaluation_summary_sha256": "78e16f46fa2a313a147404a19f2ce99417d2cb384b5db5f6ba33e934ff99c631",
|
||||||
|
"independent_for_all_supplied_lineage_corpora": true,
|
||||||
|
"interpretation": "No evaluation AOI occurs in any split of any supplied ancestral corpus.",
|
||||||
|
"lineage_corpora": [
|
||||||
|
{
|
||||||
|
"exposure_roles": {},
|
||||||
|
"lineage_sample_count": 19,
|
||||||
|
"lineage_summary_path": "/app/storage/operator-data/yolo-building-aoi1024-expanded-minpx4vis035/yolo_tile_dataset_summary.json",
|
||||||
|
"lineage_summary_sha256": "1887e2ba5c719d33675a9ed85db99a274fd66d98d5f6ad44558d673620917201",
|
||||||
|
"overlapping_evaluation_samples": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"exposure_roles": {},
|
||||||
|
"lineage_sample_count": 22,
|
||||||
|
"lineage_summary_path": "/app/storage/operator-data/yolo-building-aoi1024-smallbld-minpx3vis035/yolo_tile_dataset_summary.json",
|
||||||
|
"lineage_summary_sha256": "49b2a07d2105d08356431757b83eafc1498eaf1fb76965b1efe05b776824942a",
|
||||||
|
"overlapping_evaluation_samples": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"exposure_roles": {},
|
||||||
|
"lineage_sample_count": 28,
|
||||||
|
"lineage_summary_path": "/app/storage/operator-data/yolo-building-aoi1024-reviewedexp6-minpx3vis035/yolo_tile_dataset_summary.json",
|
||||||
|
"lineage_summary_sha256": "7c917e31216d1df2174c0f9c736f88a81f3835aa991971f8fb8665e17ddf5c9c",
|
||||||
|
"overlapping_evaluation_samples": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"exposure_roles": {},
|
||||||
|
"lineage_sample_count": 12,
|
||||||
|
"lineage_summary_path": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/yolo512/experimental_dataset_summary.json",
|
||||||
|
"lineage_summary_sha256": "047874a4f9362c82263ffe11c389a2f65168c449d3f6cbcc77cea709c0ba4c59",
|
||||||
|
"overlapping_evaluation_samples": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"overlapping_evaluation_samples": [],
|
||||||
|
"status": "independent"
|
||||||
|
},
|
||||||
|
"pure_background_confidence": 0.15,
|
||||||
|
"pure_background_prefixes": [],
|
||||||
|
"ranking": [
|
||||||
|
{
|
||||||
|
"map50": 0.05677865740374553,
|
||||||
|
"map50_95": 0.02175035531261916,
|
||||||
|
"model_path": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"model_sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
||||||
|
"precision": 0.1576550586330707,
|
||||||
|
"recall": 0.11781609195402298,
|
||||||
|
"size_bytes": 22516074,
|
||||||
|
"status": "ok"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"map50": 0.026181668883665236,
|
||||||
|
"map50_95": 0.009758453459274275,
|
||||||
|
"model_path": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/runs/v74-rehearsal-controlled-e10/candidate.experimental.pt",
|
||||||
|
"model_sha256": "8473f09234bbad9175d5540e2f298e57c902c332fa5729561774b01a98c355d3",
|
||||||
|
"precision": 0.07101814254884525,
|
||||||
|
"recall": 0.07758620689655173,
|
||||||
|
"size_bytes": 22513578,
|
||||||
|
"status": "ok"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"schema_version": 3,
|
||||||
|
"status": "ok",
|
||||||
|
"successful_candidate_count": 2,
|
||||||
|
"torch_version": "2.11.0+cu128",
|
||||||
|
"validation_image_count": 24
|
||||||
|
}
|
||||||
+116
@@ -0,0 +1,116 @@
|
|||||||
|
{
|
||||||
|
"attempts": [
|
||||||
|
{
|
||||||
|
"map50": 0.05677865740374553,
|
||||||
|
"map50_95": 0.02175035531261916,
|
||||||
|
"model_path": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"model_sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
||||||
|
"precision": 0.1576550586330707,
|
||||||
|
"recall": 0.11781609195402298,
|
||||||
|
"size_bytes": 22516074,
|
||||||
|
"status": "ok"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"map50": 0.03488615176663095,
|
||||||
|
"map50_95": 0.013585769267074197,
|
||||||
|
"model_path": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/runs/v74-rehearsal-low-lr-e6/candidate.experimental.pt",
|
||||||
|
"model_sha256": "be9881ad734f60f8779e9a08dc9112b993cf87e7cc888709c6f695bcf200dffc",
|
||||||
|
"precision": 0.08391893066046782,
|
||||||
|
"recall": 0.10344827586206896,
|
||||||
|
"size_bytes": 22513066,
|
||||||
|
"status": "ok"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"candidate_count": 2,
|
||||||
|
"claim_boundary": "Non-protected validation ranking only; no test, challenge or promotion claim.",
|
||||||
|
"dataset_overlap_evidence": {
|
||||||
|
"interpretation": "Tiles do not overlap, but spatial/statistical independence is not established because adjacent tiles share AOI context and edge objects can remain split.",
|
||||||
|
"overlap_pixels": 0,
|
||||||
|
"statistical_independence_established": false,
|
||||||
|
"status": "non_overlapping",
|
||||||
|
"stride": 512,
|
||||||
|
"summary_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/yolo_tile_dataset_summary.json",
|
||||||
|
"summary_sha256": "78e16f46fa2a313a147404a19f2ce99417d2cb384b5db5f6ba33e934ff99c631",
|
||||||
|
"tile_size": 512,
|
||||||
|
"validation_tiles_non_overlapping": true
|
||||||
|
},
|
||||||
|
"dataset_yaml": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/dataset.yaml",
|
||||||
|
"dataset_yaml_sha256": "d1e85ffb6776d92a4534830f2214fa6444f5a9160329aca0a68d0ea0a1a40144",
|
||||||
|
"device": "cuda:0",
|
||||||
|
"generated_at": "2026-08-10T02:32:19.973651+00:00",
|
||||||
|
"model_lineage_independence_evidence": {
|
||||||
|
"evaluation_samples": [
|
||||||
|
"v72-assenede-field-cal-bg",
|
||||||
|
"v72-ganshoren-lowrise-cal",
|
||||||
|
"v72-havelange-field-cal-bg",
|
||||||
|
"v72-laeken-park-cal-bg",
|
||||||
|
"v72-libramont-lowrise-cal",
|
||||||
|
"v72-zandhoven-lowrise-cal"
|
||||||
|
],
|
||||||
|
"evaluation_summary_path": "/app/storage/operator-data/building-be-v72-fresh-calibration-r1/diagnostic-yolo512-r2/yolo_tile_dataset_summary.json",
|
||||||
|
"evaluation_summary_sha256": "78e16f46fa2a313a147404a19f2ce99417d2cb384b5db5f6ba33e934ff99c631",
|
||||||
|
"independent_for_all_supplied_lineage_corpora": true,
|
||||||
|
"interpretation": "No evaluation AOI occurs in any split of any supplied ancestral corpus.",
|
||||||
|
"lineage_corpora": [
|
||||||
|
{
|
||||||
|
"exposure_roles": {},
|
||||||
|
"lineage_sample_count": 19,
|
||||||
|
"lineage_summary_path": "/app/storage/operator-data/yolo-building-aoi1024-expanded-minpx4vis035/yolo_tile_dataset_summary.json",
|
||||||
|
"lineage_summary_sha256": "1887e2ba5c719d33675a9ed85db99a274fd66d98d5f6ad44558d673620917201",
|
||||||
|
"overlapping_evaluation_samples": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"exposure_roles": {},
|
||||||
|
"lineage_sample_count": 22,
|
||||||
|
"lineage_summary_path": "/app/storage/operator-data/yolo-building-aoi1024-smallbld-minpx3vis035/yolo_tile_dataset_summary.json",
|
||||||
|
"lineage_summary_sha256": "49b2a07d2105d08356431757b83eafc1498eaf1fb76965b1efe05b776824942a",
|
||||||
|
"overlapping_evaluation_samples": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"exposure_roles": {},
|
||||||
|
"lineage_sample_count": 28,
|
||||||
|
"lineage_summary_path": "/app/storage/operator-data/yolo-building-aoi1024-reviewedexp6-minpx3vis035/yolo_tile_dataset_summary.json",
|
||||||
|
"lineage_summary_sha256": "7c917e31216d1df2174c0f9c736f88a81f3835aa991971f8fb8665e17ddf5c9c",
|
||||||
|
"overlapping_evaluation_samples": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"exposure_roles": {},
|
||||||
|
"lineage_sample_count": 12,
|
||||||
|
"lineage_summary_path": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/yolo512/experimental_dataset_summary.json",
|
||||||
|
"lineage_summary_sha256": "047874a4f9362c82263ffe11c389a2f65168c449d3f6cbcc77cea709c0ba4c59",
|
||||||
|
"overlapping_evaluation_samples": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"overlapping_evaluation_samples": [],
|
||||||
|
"status": "independent"
|
||||||
|
},
|
||||||
|
"pure_background_confidence": 0.15,
|
||||||
|
"pure_background_prefixes": [],
|
||||||
|
"ranking": [
|
||||||
|
{
|
||||||
|
"map50": 0.05677865740374553,
|
||||||
|
"map50_95": 0.02175035531261916,
|
||||||
|
"model_path": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"model_sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
||||||
|
"precision": 0.1576550586330707,
|
||||||
|
"recall": 0.11781609195402298,
|
||||||
|
"size_bytes": 22516074,
|
||||||
|
"status": "ok"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"map50": 0.03488615176663095,
|
||||||
|
"map50_95": 0.013585769267074197,
|
||||||
|
"model_path": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/runs/v74-rehearsal-low-lr-e6/candidate.experimental.pt",
|
||||||
|
"model_sha256": "be9881ad734f60f8779e9a08dc9112b993cf87e7cc888709c6f695bcf200dffc",
|
||||||
|
"precision": 0.08391893066046782,
|
||||||
|
"recall": 0.10344827586206896,
|
||||||
|
"size_bytes": 22513066,
|
||||||
|
"status": "ok"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"schema_version": 3,
|
||||||
|
"status": "ok",
|
||||||
|
"successful_candidate_count": 2,
|
||||||
|
"torch_version": "2.11.0+cu128",
|
||||||
|
"validation_image_count": 24
|
||||||
|
}
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"base_model": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
|
"base_model_sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
||||||
|
"batch": 8,
|
||||||
|
"candidate_model": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/runs/v74-rehearsal-low-lr-e6/candidate.experimental.pt",
|
||||||
|
"candidate_model_sha256": "be9881ad734f60f8779e9a08dc9112b993cf87e7cc888709c6f695bcf200dffc",
|
||||||
|
"dataset_yaml_sha256": "2fa0c66ddb7105629b7873e45030e6977da941130cb032c63e6449033ed42409",
|
||||||
|
"device": "NVIDIA GeForce RTX 4080 SUPER",
|
||||||
|
"epochs": 6,
|
||||||
|
"freeze": 10,
|
||||||
|
"human_review_pending": true,
|
||||||
|
"imgsz": 640,
|
||||||
|
"learning_rate": 0.0001,
|
||||||
|
"optimizer": "AdamW",
|
||||||
|
"promotion_allowed": false,
|
||||||
|
"release_claim_allowed": false,
|
||||||
|
"required_next_gate": "independent frozen V72 calibration evaluation",
|
||||||
|
"schema_version": 1,
|
||||||
|
"status": "trained_experimental_only",
|
||||||
|
"workers": 0
|
||||||
|
}
|
||||||
+3795
File diff suppressed because it is too large
Load Diff
+4426
File diff suppressed because it is too large
Load Diff
+17
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"dataset_yaml": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/rehearsal-v74/dataset.yaml",
|
||||||
|
"dataset_yaml_sha256": "2fa0c66ddb7105629b7873e45030e6977da941130cb032c63e6449033ed42409",
|
||||||
|
"human_review_pending": true,
|
||||||
|
"promotion_allowed": false,
|
||||||
|
"protected_v72_used": false,
|
||||||
|
"rehearsal_summary": "/app/storage/operator-data/yolo-building-aoi1024-smallbld-minpx3vis035/yolo_tile_dataset_summary.json",
|
||||||
|
"rehearsal_summary_sha256": "49b2a07d2105d08356431757b83eafc1498eaf1fb76965b1efe05b776824942a",
|
||||||
|
"rehearsal_train_tile_count": 180,
|
||||||
|
"release_claim_allowed": false,
|
||||||
|
"remediation_repeat": 2,
|
||||||
|
"remediation_summary": "/app/storage/training/experimental/building-be-v73-fresh-flanders-train-r1/yolo512/experimental_dataset_summary.json",
|
||||||
|
"remediation_summary_sha256": "047874a4f9362c82263ffe11c389a2f65168c449d3f6cbcc77cea709c0ba4c59",
|
||||||
|
"remediation_unique_train_tile_count": 48,
|
||||||
|
"schema_version": 1,
|
||||||
|
"status": "experimental_rehearsal_only"
|
||||||
|
}
|
||||||
@@ -1712,6 +1712,12 @@ Returns persisted detections for a dataset as a GeoJSON FeatureCollection. Optio
|
|||||||
|
|
||||||
Compares persisted detection geometries from an analysis run against persisted `vector_features` from a reference vector dataset.
|
Compares persisted detection geometries from an analysis run against persisted `vector_features` from a reference vector dataset.
|
||||||
|
|
||||||
|
The map-driven building workflow immediately loads the persisted evidence from
|
||||||
|
the resulting quality check. For current Flemish building validation it labels
|
||||||
|
strict matches as GRB-confirmed, unmatched detections as unconfirmed AI-only
|
||||||
|
proposals and unmatched reference footprints as official GRB buildings missed
|
||||||
|
by AI. AI-only proposals are never promoted to authoritative building results.
|
||||||
|
|
||||||
Request:
|
Request:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
|
|||||||
@@ -1,3 +1,23 @@
|
|||||||
|
## 2026-08-10 - V74 root-cause remediation en authority-first uitvoer
|
||||||
|
|
||||||
|
### Opgeleverd
|
||||||
|
|
||||||
|
- De volledige V72 failure gallery gerenderd en AI-assisted geïnspecteerd;
|
||||||
|
terugkerende foutpositieven omvatten spoorinfrastructuur, voertuigen, bomen
|
||||||
|
en schaduwen.
|
||||||
|
- Een hard-negative proposal-filter en twee rehearsal-kandidaten getraind op
|
||||||
|
de Tower RTX 4080 SUPER en alle drie afgewezen op de onafhankelijke V72-set.
|
||||||
|
- De experimentele trainer bindt nu expliciet AdamW, zodat Ultralytics niet
|
||||||
|
stilzwijgend de gevraagde learning rate vervangt via `optimizer=auto`.
|
||||||
|
- De kaartwerkstroom laadt het GRB-QA-bewijs automatisch en onderscheidt
|
||||||
|
GRB-bevestigde, AI-only en door AI gemiste gebouwobjecten.
|
||||||
|
|
||||||
|
### Grens
|
||||||
|
|
||||||
|
- Het productiecheckpoint bleef ongewijzigd. Er is geen landelijke of
|
||||||
|
100%-accuratesseclaim gedaan en de visuele review blijft AI-assisted.
|
||||||
|
- Evidence: `artifacts/evidence/accuracy/model-training/20260810-v74-root-cause/`.
|
||||||
|
|
||||||
## 2026-07-29 - V31 closed-loop iteration 3 assessment and semantic correction
|
## 2026-07-29 - V31 closed-loop iteration 3 assessment and semantic correction
|
||||||
|
|
||||||
- Iteration 3 stopped deterministically after epoch 21 with epoch 3 retained as
|
- Iteration 3 stopped deterministically after epoch 21 with epoch 3 retained as
|
||||||
|
|||||||
@@ -1,5 +1,15 @@
|
|||||||
# GeoIntel TODO
|
# GeoIntel TODO
|
||||||
|
|
||||||
|
## V74 authority-first gebouwresultaten (2026-08-10)
|
||||||
|
|
||||||
|
- [x] Voer een V72-foutanalyse, hard-negative proposal-filter en rehearsal
|
||||||
|
training uit; wijs alle regresserende kandidaten af en behoud het actieve
|
||||||
|
checkpoint.
|
||||||
|
- [x] Laad na gebouwdetectie automatisch het bewaarde GRB-QA-bewijs en splits
|
||||||
|
de kaartuitvoer in GRB-bevestigd, AI-only en door AI gemist.
|
||||||
|
- [ ] Laat een onafhankelijke menselijke reviewer de bevroren contact sheets
|
||||||
|
en labels ondertekenen voordat een kandidaat ooit promoveerbaar wordt.
|
||||||
|
|
||||||
## PyTorch-modelprogramma
|
## PyTorch-modelprogramma
|
||||||
|
|
||||||
Uitvoeringsbord: `docs/PYTORCH_TRAINING_ROADMAP_BELGIUM.md`.
|
Uitvoeringsbord: `docs/PYTORCH_TRAINING_ROADMAP_BELGIUM.md`.
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
# V74 foutoorzaak en authority-first resultaten
|
||||||
|
|
||||||
|
## Uitkomst
|
||||||
|
|
||||||
|
V74 heeft geen nieuw productiemodel opgeleverd. De actieve checkpoint blijft
|
||||||
|
ongewijzigd omdat zowel de experimentele proposal-filter als twee
|
||||||
|
rehearsal-kandidaten op de bevroren V72-calibratie slechter presteren. GeoIntel
|
||||||
|
presenteert de automatische gebouwanalyse daarom niet langer als één uniforme
|
||||||
|
resultaatlaag: de GRB-vergelijking maakt voortaan zichtbaar welke AI-kandidaten
|
||||||
|
officieel bevestigd zijn, welke alleen modelvoorstellen zijn en welke
|
||||||
|
GRB-gebouwen door AI gemist zijn.
|
||||||
|
|
||||||
|
## Visuele foutanalyse
|
||||||
|
|
||||||
|
De volledige V72-portfolio van 24 onafhankelijke tegels is met het actieve model
|
||||||
|
op confidence 0,30 gerenderd. De contact sheet toont terugkerende foutpositieven
|
||||||
|
op spoorlijnen, voertuigen, bomen, schaduwen en andere contrastrijke structuren.
|
||||||
|
Daarnaast ontbreken veel gebouwen. Dit ondersteunt de conclusie dat extra
|
||||||
|
epochs op alleen de nieuwe Vlaamse shard de hoofdoorzaak niet oplossen.
|
||||||
|
|
||||||
|
De review is AI-assisted en niet menselijk. Het bewijs mag dus geen menselijke
|
||||||
|
acceptatie of promotiegate vervangen.
|
||||||
|
|
||||||
|
## Afgewezen proposal-filter
|
||||||
|
|
||||||
|
Een experimentele ResNet18-filter werd op afzonderlijke V73-AOI's getraind om
|
||||||
|
building proposals van moeilijke negatieve patches te onderscheiden. De interne
|
||||||
|
V73-validatie behaalde F1 0,8068, maar die score generaliseerde niet naar V72.
|
||||||
|
De beste globale V72-combinatie behaalde precision 0,2161, recall 0,2241 en F1
|
||||||
|
0,2200. Het actieve model zonder filter behaalt op confidence 0,30 F1 0,2504.
|
||||||
|
De filter kan precision verhogen bij een vaste detectordrempel, maar halveert
|
||||||
|
dan de recall. Hij blijft daarom experimenteel en wordt niet geladen in
|
||||||
|
productie.
|
||||||
|
|
||||||
|
## Afgewezen rehearsal-training
|
||||||
|
|
||||||
|
De trainingsset combineert 180 historische trainingstegels met de 48 nieuwe
|
||||||
|
V73-tegels, waarbij V73 tweemaal voorkomt. V72 is alleen evaluatie en komt niet
|
||||||
|
in de fitdata voor.
|
||||||
|
|
||||||
|
| Model | Precision | Recall | mAP50 | mAP50-95 | Besluit |
|
||||||
|
|---|---:|---:|---:|---:|---|
|
||||||
|
| Actief | 0,1577 | 0,1178 | 0,0568 | 0,0218 | behouden |
|
||||||
|
| Rehearsal, optimizer auto, 10 epochs | 0,0710 | 0,0776 | 0,0262 | 0,0098 | afgewezen |
|
||||||
|
| Rehearsal, AdamW 0,0001, 6 epochs | 0,0839 | 0,1034 | 0,0349 | 0,0136 | afgewezen |
|
||||||
|
|
||||||
|
De eerste run bracht bovendien een reproduceerbaarheidsfout aan het licht:
|
||||||
|
Ultralytics `optimizer=auto` negeerde de gevraagde learning rate en koos AdamW
|
||||||
|
0,002. De wrapper bindt daarom nu expliciet `optimizer=AdamW` en legt dit vast
|
||||||
|
in het trainingsmanifest. De gecorrigeerde low-learning-rate-run bleef eveneens
|
||||||
|
onder de actieve baseline.
|
||||||
|
|
||||||
|
## Productcorrectheid
|
||||||
|
|
||||||
|
Voor actuele gebouwvalidatie in Vlaanderen is GRB de gezagsbron binnen de
|
||||||
|
beschikbare editie en dekking. De kaartwerkstroom laadt na detectie automatisch
|
||||||
|
het bewaarde QA-bewijs en toont afzonderlijk:
|
||||||
|
|
||||||
|
- GRB-bevestigde AI-kandidaten;
|
||||||
|
- AI-only, onbevestigde onderzoeksvoorstellen;
|
||||||
|
- officiële GRB-gebouwen die het model miste.
|
||||||
|
|
||||||
|
AI-only voorstellen worden niet als officiële gebouwen voorgesteld. Dit maakt
|
||||||
|
de productuitvoer aantoonbaar correcter zonder de zwakke modelscore te verbergen
|
||||||
|
of een niet-bewezen nauwkeurigheidsclaim te maken.
|
||||||
|
|
||||||
|
## Evidence
|
||||||
|
|
||||||
|
Alle ruwe contact sheets, foutmanifesten, filtermatrices, trainingssamenvattingen
|
||||||
|
en modelhashes staan onder
|
||||||
|
`artifacts/evidence/accuracy/model-training/20260810-v74-root-cause/`.
|
||||||
@@ -580,6 +580,7 @@ function WorkbenchApp({ username, accessMode, loggingOut, onLogout }: WorkbenchA
|
|||||||
prepareAndRunDetection: (datasetId) => prepareAndRunDetection(datasetId, 'yolo-configured'),
|
prepareAndRunDetection: (datasetId) => prepareAndRunDetection(datasetId, 'yolo-configured'),
|
||||||
compareDetectionRunWithReference: (analysisRunId, referenceDatasetId, iouThreshold) =>
|
compareDetectionRunWithReference: (analysisRunId, referenceDatasetId, iouThreshold) =>
|
||||||
compareDetectionRunWithReference(analysisRunId, referenceDatasetId, false, iouThreshold),
|
compareDetectionRunWithReference(analysisRunId, referenceDatasetId, false, iouThreshold),
|
||||||
|
loadQualityEvidence: (qualityCheckId) => loadQualityEvidenceGeoJson(qualityCheckId),
|
||||||
onAnalysisReady: () => {
|
onAnalysisReady: () => {
|
||||||
setMapContentMode('analysis')
|
setMapContentMode('analysis')
|
||||||
setMapLayerVisible(true)
|
setMapLayerVisible(true)
|
||||||
|
|||||||
@@ -2759,13 +2759,17 @@ export function MapWorkspace({
|
|||||||
{orthophotoAnalysisQuality ? (
|
{orthophotoAnalysisQuality ? (
|
||||||
<>
|
<>
|
||||||
<div className="geo-image-quality-metrics" aria-label="Gemeten kwaliteit van de beeldanalyse">
|
<div className="geo-image-quality-metrics" aria-label="Gemeten kwaliteit van de beeldanalyse">
|
||||||
<div><span>Kandidaten</span><strong>{orthophotoAnalysisDetectionCount?.toLocaleString('nl-BE') ?? 'n.v.t.'}</strong></div>
|
<div><span>AI-kandidaten</span><strong>{orthophotoAnalysisDetectionCount?.toLocaleString('nl-BE') ?? 'n.v.t.'}</strong></div>
|
||||||
<div><span>Strikte matches</span><strong>{orthophotoAnalysisQuality.matches.toLocaleString('nl-BE')}</strong></div>
|
<div><span>GRB-bevestigd</span><strong>{orthophotoAnalysisQuality.matches.toLocaleString('nl-BE')}</strong></div>
|
||||||
<div><span>Precision</span><strong>{formatPercentage(orthophotoAnalysisQuality.precision)}</strong></div>
|
<div><span>AI-only, onbevestigd</span><strong>{orthophotoAnalysisQuality.false_positives.toLocaleString('nl-BE')}</strong></div>
|
||||||
<div><span>Herkenningsgraad</span><strong>{formatPercentage(orthophotoAnalysisQuality.recall)}</strong></div>
|
<div><span>GRB, gemist door AI</span><strong>{orthophotoAnalysisQuality.false_negatives.toLocaleString('nl-BE')}</strong></div>
|
||||||
|
<div><span>AI-precision</span><strong>{formatPercentage(orthophotoAnalysisQuality.precision)}</strong></div>
|
||||||
|
<div><span>AI-herkenningsgraad</span><strong>{formatPercentage(orthophotoAnalysisQuality.recall)}</strong></div>
|
||||||
<div><span>F1</span><strong>{formatPercentage(orthophotoAnalysisQuality.f1_score)}</strong></div>
|
<div><span>F1</span><strong>{formatPercentage(orthophotoAnalysisQuality.f1_score)}</strong></div>
|
||||||
<div><span>Fout / gemist</span><strong>{orthophotoAnalysisQuality.false_positives.toLocaleString('nl-BE')} / {orthophotoAnalysisQuality.false_negatives.toLocaleString('nl-BE')}</strong></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<p className="geo-image-quality-context">
|
||||||
|
GRB is hier de gezagsbron voor geregistreerde gebouwen. AI-only vormen zijn onderzoeksvoorstellen en worden niet als officieel resultaat voorgesteld. De bewijslaag op de kaart toont elke categorie afzonderlijk.
|
||||||
|
</p>
|
||||||
{orthophotoAnalysisQuality.box_to_footprint_diagnostics ? (
|
{orthophotoAnalysisQuality.box_to_footprint_diagnostics ? (
|
||||||
<p className="geo-image-quality-context">
|
<p className="geo-image-quality-context">
|
||||||
Rechthoekcontrole: {orthophotoAnalysisQuality.box_to_footprint_diagnostics.envelope_matches.toLocaleString('nl-BE')} matches,
|
Rechthoekcontrole: {orthophotoAnalysisQuality.box_to_footprint_diagnostics.envelope_matches.toLocaleString('nl-BE')} matches,
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ interface MapOrthophotoAnalysisOptions {
|
|||||||
referenceDatasetId: string,
|
referenceDatasetId: string,
|
||||||
iouThreshold: number,
|
iouThreshold: number,
|
||||||
) => Promise<DetectionQaResult | null>
|
) => Promise<DetectionQaResult | null>
|
||||||
|
loadQualityEvidence: (qualityCheckId: string) => Promise<unknown>
|
||||||
onAnalysisReady: () => void
|
onAnalysisReady: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,6 +80,7 @@ export function useMapOrthophotoAnalysis({
|
|||||||
loadProjectData,
|
loadProjectData,
|
||||||
prepareAndRunDetection,
|
prepareAndRunDetection,
|
||||||
compareDetectionRunWithReference,
|
compareDetectionRunWithReference,
|
||||||
|
loadQualityEvidence,
|
||||||
onAnalysisReady,
|
onAnalysisReady,
|
||||||
}: MapOrthophotoAnalysisOptions) {
|
}: MapOrthophotoAnalysisOptions) {
|
||||||
const [stage, setStage] = useState<MapOrthophotoAnalysisStage>('idle')
|
const [stage, setStage] = useState<MapOrthophotoAnalysisStage>('idle')
|
||||||
@@ -180,9 +182,12 @@ export function useMapOrthophotoAnalysis({
|
|||||||
MAP_BUILDING_QA_IOU_THRESHOLD,
|
MAP_BUILDING_QA_IOU_THRESHOLD,
|
||||||
)
|
)
|
||||||
setLastQuality(quality)
|
setLastQuality(quality)
|
||||||
|
if (quality) {
|
||||||
|
await loadQualityEvidence(quality.quality_check_id)
|
||||||
|
}
|
||||||
setStatus(
|
setStatus(
|
||||||
quality
|
quality
|
||||||
? `Analyse klaar: ${detection.detection_count.toLocaleString('nl-BE')} kandidaten, ${quality.matches.toLocaleString('nl-BE')} gekoppeld aan GRB. Precision ${formatQualityPercentage(quality.precision)}, recall ${formatQualityPercentage(quality.recall)}.`
|
? `Controle klaar: ${quality.matches.toLocaleString('nl-BE')} door GRB bevestigde AI-kandidaten, ${quality.false_positives.toLocaleString('nl-BE')} onbevestigde AI-kandidaten en ${quality.false_negatives.toLocaleString('nl-BE')} officiële GRB-gebouwen gemist door AI. AI-precision ${formatQualityPercentage(quality.precision)}, herkenningsgraad ${formatQualityPercentage(quality.recall)}.`
|
||||||
: `Analyse klaar: ${detection.detection_count.toLocaleString('nl-BE')} kandidaten; kwaliteitscontrole kon niet afronden.`,
|
: `Analyse klaar: ${detection.detection_count.toLocaleString('nl-BE')} kandidaten; kwaliteitscontrole kon niet afronden.`,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -0,0 +1,141 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Compose legacy rehearsal and fresh remediation tiles for an experiment."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
SCRIPT_DIR = Path(__file__).resolve().parent
|
||||||
|
if str(SCRIPT_DIR) not in sys.path:
|
||||||
|
sys.path.insert(0, str(SCRIPT_DIR))
|
||||||
|
|
||||||
|
from export_experimental_yolo_train_shard import EXPERIMENTAL_ROOT, file_sha256 # noqa: E402
|
||||||
|
|
||||||
|
|
||||||
|
def _inside(path: Path, root: Path) -> bool:
|
||||||
|
try:
|
||||||
|
path.resolve().relative_to(root.resolve())
|
||||||
|
return True
|
||||||
|
except ValueError:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def validate_sources(rehearsal_summary: Path, remediation_summary: Path, output_dir: Path) -> tuple[dict, dict]:
|
||||||
|
if not _inside(output_dir, EXPERIMENTAL_ROOT):
|
||||||
|
raise ValueError(f"output must remain below {EXPERIMENTAL_ROOT}")
|
||||||
|
rehearsal = json.loads(rehearsal_summary.read_text(encoding="utf-8"))
|
||||||
|
remediation = json.loads(remediation_summary.read_text(encoding="utf-8"))
|
||||||
|
marker_path = remediation_summary.parent / "EXPERIMENTAL_ONLY.json"
|
||||||
|
if not marker_path.is_file():
|
||||||
|
raise ValueError("fresh remediation source has no EXPERIMENTAL_ONLY marker")
|
||||||
|
marker = json.loads(marker_path.read_text(encoding="utf-8"))
|
||||||
|
if marker.get("promotion_allowed") is not False:
|
||||||
|
raise ValueError("fresh remediation marker does not prohibit promotion")
|
||||||
|
if remediation.get("source_manifest_sha256") != marker.get("source_manifest_sha256"):
|
||||||
|
raise ValueError("fresh remediation marker/summary binding mismatch")
|
||||||
|
rehearsal_tiles = [tile for tile in rehearsal.get("tiles") or [] if tile.get("kept", True)]
|
||||||
|
remediation_tiles = [tile for tile in remediation.get("tiles") or [] if tile.get("kept", True)]
|
||||||
|
if not rehearsal_tiles or not remediation_tiles:
|
||||||
|
raise ValueError("both rehearsal and remediation summaries require retained tiles")
|
||||||
|
if any(tile.get("split") not in {"train", "val"} for tile in rehearsal_tiles):
|
||||||
|
raise ValueError("rehearsal source contains a protected or unsupported split")
|
||||||
|
if any(tile.get("split") != "train" for tile in remediation_tiles):
|
||||||
|
raise ValueError("fresh remediation source must be train-only")
|
||||||
|
return rehearsal, remediation
|
||||||
|
|
||||||
|
|
||||||
|
def parse_args() -> argparse.Namespace:
|
||||||
|
parser = argparse.ArgumentParser(description=__doc__)
|
||||||
|
parser.add_argument("--rehearsal-summary", type=Path, required=True)
|
||||||
|
parser.add_argument("--remediation-summary", type=Path, required=True)
|
||||||
|
parser.add_argument("--output-dir", type=Path, required=True)
|
||||||
|
parser.add_argument("--remediation-repeat", type=int, default=2)
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> int:
|
||||||
|
args = parse_args()
|
||||||
|
if args.remediation_repeat < 1 or args.remediation_repeat > 4:
|
||||||
|
raise SystemExit("remediation-repeat must be between 1 and 4")
|
||||||
|
if args.output_dir.exists():
|
||||||
|
raise SystemExit(f"refusing to overwrite rehearsal dataset: {args.output_dir}")
|
||||||
|
try:
|
||||||
|
rehearsal, remediation = validate_sources(
|
||||||
|
args.rehearsal_summary, args.remediation_summary, args.output_dir
|
||||||
|
)
|
||||||
|
except (OSError, ValueError, json.JSONDecodeError) as exc:
|
||||||
|
raise SystemExit(str(exc)) from exc
|
||||||
|
rehearsal_yaml = Path(str(rehearsal["dataset_yaml"]))
|
||||||
|
remediation_yaml = Path(str(remediation["dataset_yaml"]))
|
||||||
|
rehearsal_root = rehearsal_yaml.parent
|
||||||
|
remediation_root = remediation_yaml.parent
|
||||||
|
for directory in (
|
||||||
|
rehearsal_root / "images" / "train",
|
||||||
|
rehearsal_root / "images" / "val",
|
||||||
|
remediation_root / "images" / "train",
|
||||||
|
):
|
||||||
|
if not directory.is_dir():
|
||||||
|
raise SystemExit(f"rehearsal dataset directory is missing: {directory}")
|
||||||
|
args.output_dir.mkdir(parents=True)
|
||||||
|
train_sources = [str(rehearsal_root / "images" / "train")] + [
|
||||||
|
str(remediation_root / "images" / "train")
|
||||||
|
] * args.remediation_repeat
|
||||||
|
yaml_path = args.output_dir / "dataset.yaml"
|
||||||
|
yaml_path.write_text(
|
||||||
|
"\n".join(
|
||||||
|
[
|
||||||
|
"path: /",
|
||||||
|
"train:",
|
||||||
|
*[f" - {path}" for path in train_sources],
|
||||||
|
f"val: {rehearsal_root / 'images' / 'val'}",
|
||||||
|
"names:",
|
||||||
|
" 0: building",
|
||||||
|
"",
|
||||||
|
]
|
||||||
|
),
|
||||||
|
encoding="utf-8",
|
||||||
|
)
|
||||||
|
summary = {
|
||||||
|
"schema_version": 1,
|
||||||
|
"status": "experimental_rehearsal_only",
|
||||||
|
"promotion_allowed": False,
|
||||||
|
"release_claim_allowed": False,
|
||||||
|
"human_review_pending": True,
|
||||||
|
"dataset_yaml": str(yaml_path),
|
||||||
|
"dataset_yaml_sha256": file_sha256(yaml_path),
|
||||||
|
"rehearsal_summary": str(args.rehearsal_summary),
|
||||||
|
"rehearsal_summary_sha256": file_sha256(args.rehearsal_summary),
|
||||||
|
"remediation_summary": str(args.remediation_summary),
|
||||||
|
"remediation_summary_sha256": file_sha256(args.remediation_summary),
|
||||||
|
"remediation_repeat": args.remediation_repeat,
|
||||||
|
"rehearsal_train_tile_count": int(rehearsal.get("train_tile_count") or 0),
|
||||||
|
"remediation_unique_train_tile_count": int(remediation.get("tile_count") or 0),
|
||||||
|
"protected_v72_used": False,
|
||||||
|
}
|
||||||
|
(args.output_dir / "experimental_rehearsal_summary.json").write_text(
|
||||||
|
json.dumps(summary, indent=2, sort_keys=True) + "\n", encoding="utf-8"
|
||||||
|
)
|
||||||
|
marker = {
|
||||||
|
key: summary[key]
|
||||||
|
for key in (
|
||||||
|
"schema_version",
|
||||||
|
"status",
|
||||||
|
"promotion_allowed",
|
||||||
|
"release_claim_allowed",
|
||||||
|
"dataset_yaml_sha256",
|
||||||
|
"rehearsal_summary_sha256",
|
||||||
|
"remediation_summary_sha256",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
(args.output_dir / "EXPERIMENTAL_ONLY.json").write_text(
|
||||||
|
json.dumps(marker, indent=2, sort_keys=True) + "\n", encoding="utf-8"
|
||||||
|
)
|
||||||
|
print(json.dumps(summary, indent=2))
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
raise SystemExit(main())
|
||||||
@@ -0,0 +1,211 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Train a non-promotable second-stage building/background proposal filter."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import json
|
||||||
|
import random
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
SCRIPT_DIR = Path(__file__).resolve().parent
|
||||||
|
if str(SCRIPT_DIR) not in sys.path:
|
||||||
|
sys.path.insert(0, str(SCRIPT_DIR))
|
||||||
|
|
||||||
|
from train_building_proposal_filter import ( # noqa: E402
|
||||||
|
choose_threshold,
|
||||||
|
materialize_split,
|
||||||
|
sha256,
|
||||||
|
)
|
||||||
|
|
||||||
|
EXPERIMENTAL_ROOT = Path("/app/storage/training/experimental")
|
||||||
|
|
||||||
|
|
||||||
|
def _inside(path: Path, root: Path = EXPERIMENTAL_ROOT) -> bool:
|
||||||
|
try:
|
||||||
|
path.resolve().relative_to(root.resolve())
|
||||||
|
return True
|
||||||
|
except ValueError:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def validate_inputs(summary_path: Path, output_dir: Path) -> dict:
|
||||||
|
if not _inside(summary_path) or not _inside(output_dir):
|
||||||
|
raise ValueError(f"summary and output must remain below {EXPERIMENTAL_ROOT}")
|
||||||
|
marker_path = summary_path.parent / "EXPERIMENTAL_ONLY.json"
|
||||||
|
if not marker_path.is_file():
|
||||||
|
raise ValueError("experimental source marker is missing")
|
||||||
|
marker = json.loads(marker_path.read_text(encoding="utf-8"))
|
||||||
|
if marker.get("promotion_allowed") is not False or marker.get("release_claim_allowed") is not False:
|
||||||
|
raise ValueError("experimental marker does not prohibit promotion")
|
||||||
|
summary = json.loads(summary_path.read_text(encoding="utf-8"))
|
||||||
|
if marker.get("dataset_yaml_sha256") != summary.get("dataset_yaml_sha256"):
|
||||||
|
raise ValueError("experimental marker/summary binding mismatch")
|
||||||
|
if summary.get("status") != "experimental_only_human_review_pending":
|
||||||
|
raise ValueError("source summary is not an experimental train shard")
|
||||||
|
return summary
|
||||||
|
|
||||||
|
|
||||||
|
def parse_args() -> argparse.Namespace:
|
||||||
|
parser = argparse.ArgumentParser(description=__doc__)
|
||||||
|
parser.add_argument("--summary", type=Path, required=True)
|
||||||
|
parser.add_argument("--proposal-model", type=Path, required=True)
|
||||||
|
parser.add_argument("--output-dir", type=Path, required=True)
|
||||||
|
parser.add_argument("--val-sample", action="append", required=True)
|
||||||
|
parser.add_argument("--device", default="cuda:0")
|
||||||
|
parser.add_argument("--proposal-confidence", type=float, default=0.01)
|
||||||
|
parser.add_argument("--crop-scale", type=float, default=1.4)
|
||||||
|
parser.add_argument("--negative-match-iou", type=float, default=0.05)
|
||||||
|
parser.add_argument("--max-positive-per-tile", type=int, default=40)
|
||||||
|
parser.add_argument("--max-negative-per-tile", type=int, default=40)
|
||||||
|
parser.add_argument("--epochs", type=int, default=8)
|
||||||
|
parser.add_argument("--batch", type=int, default=64)
|
||||||
|
parser.add_argument("--seed", type=int, default=74)
|
||||||
|
parser.add_argument("--force", action="store_true")
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> int:
|
||||||
|
args = parse_args()
|
||||||
|
try:
|
||||||
|
summary = validate_inputs(args.summary, args.output_dir)
|
||||||
|
except (OSError, ValueError, json.JSONDecodeError) as exc:
|
||||||
|
raise SystemExit(str(exc)) from exc
|
||||||
|
if not args.proposal_model.is_file():
|
||||||
|
raise SystemExit(f"proposal model is unavailable: {args.proposal_model}")
|
||||||
|
val_samples = {slug.strip() for slug in args.val_sample if slug.strip()}
|
||||||
|
sample_slugs = {str(tile["sample_slug"]) for tile in summary["tiles"]}
|
||||||
|
unknown = val_samples - sample_slugs
|
||||||
|
if unknown:
|
||||||
|
raise SystemExit(f"unknown validation samples: {', '.join(sorted(unknown))}")
|
||||||
|
if not val_samples or val_samples == sample_slugs:
|
||||||
|
raise SystemExit("proposal filter requires disjoint non-empty train and validation AOIs")
|
||||||
|
if args.output_dir.exists():
|
||||||
|
if not args.force:
|
||||||
|
raise SystemExit(f"output already exists: {args.output_dir}")
|
||||||
|
shutil.rmtree(args.output_dir)
|
||||||
|
|
||||||
|
random.seed(args.seed)
|
||||||
|
import torch
|
||||||
|
from torch import nn
|
||||||
|
from torch.utils.data import DataLoader
|
||||||
|
from torchvision import datasets
|
||||||
|
from torchvision.models import ResNet18_Weights, resnet18
|
||||||
|
from ultralytics import YOLO
|
||||||
|
|
||||||
|
if not torch.cuda.is_available() or not args.device.startswith("cuda"):
|
||||||
|
raise SystemExit("CUDA is required for experimental proposal-filter training")
|
||||||
|
torch.manual_seed(args.seed)
|
||||||
|
tiles = [tile for tile in summary["tiles"] if tile.get("kept", True)]
|
||||||
|
split_tiles = {
|
||||||
|
"val": [dict(tile, split="val") for tile in tiles if tile["sample_slug"] in val_samples],
|
||||||
|
"train": [dict(tile, split="train") for tile in tiles if tile["sample_slug"] not in val_samples],
|
||||||
|
}
|
||||||
|
proposal_model = YOLO(str(args.proposal_model))
|
||||||
|
counts: dict[str, dict[str, int]] = {}
|
||||||
|
for split, selected in split_tiles.items():
|
||||||
|
results = proposal_model.predict(
|
||||||
|
[tile["image_path"] for tile in selected],
|
||||||
|
conf=args.proposal_confidence,
|
||||||
|
imgsz=640,
|
||||||
|
max_det=1000,
|
||||||
|
device=args.device,
|
||||||
|
verbose=False,
|
||||||
|
)
|
||||||
|
counts[split] = materialize_split(
|
||||||
|
tiles=selected,
|
||||||
|
results=results,
|
||||||
|
output_dir=args.output_dir / "crops",
|
||||||
|
split=split,
|
||||||
|
crop_scale=args.crop_scale,
|
||||||
|
max_positives_per_tile=args.max_positive_per_tile,
|
||||||
|
max_negatives_per_tile=args.max_negative_per_tile,
|
||||||
|
negative_match_iou=args.negative_match_iou,
|
||||||
|
)
|
||||||
|
del results
|
||||||
|
torch.cuda.empty_cache()
|
||||||
|
del proposal_model
|
||||||
|
torch.cuda.empty_cache()
|
||||||
|
if any(counts[split][label] == 0 for split in ("train", "val") for label in ("positive", "negative")):
|
||||||
|
raise SystemExit(f"proposal crop class is empty: {counts}")
|
||||||
|
|
||||||
|
weights = ResNet18_Weights.DEFAULT
|
||||||
|
transform = weights.transforms()
|
||||||
|
data = {
|
||||||
|
split: datasets.ImageFolder(args.output_dir / "crops" / split, transform=transform)
|
||||||
|
for split in ("train", "val")
|
||||||
|
}
|
||||||
|
loaders = {
|
||||||
|
split: DataLoader(dataset, batch_size=args.batch, shuffle=split == "train", num_workers=0)
|
||||||
|
for split, dataset in data.items()
|
||||||
|
}
|
||||||
|
model = resnet18(weights=weights)
|
||||||
|
model.fc = nn.Linear(model.fc.in_features, 1)
|
||||||
|
model.to(args.device)
|
||||||
|
positives = counts["train"]["positive"]
|
||||||
|
negatives = counts["train"]["negative"]
|
||||||
|
criterion = nn.BCEWithLogitsLoss(
|
||||||
|
pos_weight=torch.tensor([negatives / positives], device=args.device)
|
||||||
|
)
|
||||||
|
optimizer = torch.optim.AdamW(model.parameters(), lr=1e-4, weight_decay=1e-4)
|
||||||
|
history = []
|
||||||
|
for epoch in range(1, args.epochs + 1):
|
||||||
|
model.train()
|
||||||
|
loss_sum = 0.0
|
||||||
|
for images, labels in loaders["train"]:
|
||||||
|
images = images.to(args.device)
|
||||||
|
labels = labels.float().to(args.device)
|
||||||
|
optimizer.zero_grad(set_to_none=True)
|
||||||
|
loss = criterion(model(images).flatten(), labels)
|
||||||
|
loss.backward()
|
||||||
|
optimizer.step()
|
||||||
|
loss_sum += float(loss.detach()) * len(images)
|
||||||
|
row = {"epoch": epoch, "train_loss": loss_sum / len(data["train"])}
|
||||||
|
history.append(row)
|
||||||
|
print(json.dumps(row), flush=True)
|
||||||
|
|
||||||
|
model.eval()
|
||||||
|
probabilities: list[float] = []
|
||||||
|
labels: list[int] = []
|
||||||
|
with torch.inference_mode():
|
||||||
|
for images, batch_labels in loaders["val"]:
|
||||||
|
probabilities.extend(torch.sigmoid(model(images.to(args.device)).flatten()).cpu().tolist())
|
||||||
|
labels.extend(batch_labels.tolist())
|
||||||
|
threshold, validation_metrics = choose_threshold(probabilities, labels)
|
||||||
|
args.output_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
model_path = args.output_dir / "proposal-filter.experimental.torchscript.pt"
|
||||||
|
torch.jit.script(model.cpu()).save(str(model_path))
|
||||||
|
evidence = {
|
||||||
|
"schema_version": 1,
|
||||||
|
"status": "trained_experimental_only",
|
||||||
|
"promotion_allowed": False,
|
||||||
|
"release_claim_allowed": False,
|
||||||
|
"human_review_pending": True,
|
||||||
|
"architecture": "resnet18_binary_proposal_filter",
|
||||||
|
"source_summary": str(args.summary),
|
||||||
|
"source_summary_sha256": sha256(args.summary),
|
||||||
|
"proposal_model": str(args.proposal_model),
|
||||||
|
"proposal_model_sha256": sha256(args.proposal_model),
|
||||||
|
"train_samples": sorted(sample_slugs - val_samples),
|
||||||
|
"validation_samples": sorted(val_samples),
|
||||||
|
"counts": counts,
|
||||||
|
"epochs": args.epochs,
|
||||||
|
"history": history,
|
||||||
|
"selected_threshold_source": "internal_v73_validation_only",
|
||||||
|
"selected_threshold": threshold,
|
||||||
|
"validation_metrics": validation_metrics,
|
||||||
|
"model": str(model_path),
|
||||||
|
"model_sha256": sha256(model_path),
|
||||||
|
"required_next_gate": "independent V72 detector-plus-filter calibration",
|
||||||
|
}
|
||||||
|
(args.output_dir / "proposal-filter.experimental.json").write_text(
|
||||||
|
json.dumps(evidence, indent=2, sort_keys=True) + "\n", encoding="utf-8"
|
||||||
|
)
|
||||||
|
print(json.dumps(evidence, indent=2))
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
raise SystemExit(main())
|
||||||
@@ -84,6 +84,7 @@ def main() -> int:
|
|||||||
seed=73,
|
seed=73,
|
||||||
amp=False,
|
amp=False,
|
||||||
val=False,
|
val=False,
|
||||||
|
optimizer="AdamW",
|
||||||
lr0=args.learning_rate,
|
lr0=args.learning_rate,
|
||||||
lrf=0.1,
|
lrf=0.1,
|
||||||
freeze=args.freeze,
|
freeze=args.freeze,
|
||||||
@@ -114,6 +115,7 @@ def main() -> int:
|
|||||||
"imgsz": args.imgsz,
|
"imgsz": args.imgsz,
|
||||||
"batch": args.batch,
|
"batch": args.batch,
|
||||||
"learning_rate": args.learning_rate,
|
"learning_rate": args.learning_rate,
|
||||||
|
"optimizer": "AdamW",
|
||||||
"freeze": args.freeze,
|
"freeze": args.freeze,
|
||||||
"workers": args.workers,
|
"workers": args.workers,
|
||||||
"device": torch.cuda.get_device_name(0),
|
"device": torch.cuda.get_device_name(0),
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ from scripts.export_experimental_yolo_train_shard import (
|
|||||||
validate_experimental_request,
|
validate_experimental_request,
|
||||||
)
|
)
|
||||||
from scripts.train_experimental_yolo_candidate import validate_paths
|
from scripts.train_experimental_yolo_candidate import validate_paths
|
||||||
|
from scripts.train_experimental_building_proposal_filter import validate_inputs
|
||||||
|
from scripts.compose_experimental_yolo_rehearsal_dataset import validate_sources
|
||||||
|
|
||||||
|
|
||||||
def test_export_refuses_non_experimental_output(tmp_path: Path) -> None:
|
def test_export_refuses_non_experimental_output(tmp_path: Path) -> None:
|
||||||
@@ -26,3 +28,13 @@ def test_train_shard_rejects_near_duplicate_edge_cover_windows() -> None:
|
|||||||
edge_cover = {"row_off": 513, "col_off": 0, "height": 512, "width": 512}
|
edge_cover = {"row_off": 513, "col_off": 0, "height": 512, "width": 512}
|
||||||
assert is_canonical_train_window(canonical, 512)
|
assert is_canonical_train_window(canonical, 512)
|
||||||
assert not is_canonical_train_window(edge_cover, 512)
|
assert not is_canonical_train_window(edge_cover, 512)
|
||||||
|
|
||||||
|
|
||||||
|
def test_proposal_filter_refuses_non_experimental_paths(tmp_path: Path) -> None:
|
||||||
|
with pytest.raises(ValueError, match="must remain"):
|
||||||
|
validate_inputs(tmp_path / "summary.json", tmp_path / "output")
|
||||||
|
|
||||||
|
|
||||||
|
def test_rehearsal_composer_refuses_non_experimental_output(tmp_path: Path) -> None:
|
||||||
|
with pytest.raises(ValueError, match="output must remain"):
|
||||||
|
validate_sources(tmp_path / "old.json", tmp_path / "new.json", tmp_path / "out")
|
||||||
|
|||||||
Reference in New Issue
Block a user