{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://huggingface.co/spaces/SharpMeow/unroll/resolve/main/docs/bench-bundle.schema.json", "title": "Unroll Ink Bench bundle, unroll-inkbench/1", "description": "An ink prediction compared with a reference ink layer on one segment, with alignment, agreement metrics, input hashes and letter candidates for expert review. SPDX-License-Identifier: Apache-2.0", "type": "object", "required": ["schema", "scroll", "segment", "reference", "prediction", "alignment", "metrics", "annotations", "disclaimer"], "properties": { "schema": { "type": "string", "pattern": "^unroll-inkbench/1(\\.[0-9]+)?$" }, "tool": { "type": "object", "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "impl": { "type": "string" } } }, "created": { "type": "string", "description": "UTC, ISO 8601" }, "scroll": { "type": "string", "examples": ["PHerc0139"] }, "segment": { "type": "string", "examples": ["w046"] }, "reference": { "type": "object", "required": ["layer", "sha256", "width", "height"], "properties": { "layer": { "type": "string" }, "label": { "type": "string" }, "file": { "type": "string" }, "sha256": { "$ref": "#/$defs/sha256" }, "width": { "type": "integer", "minimum": 1 }, "height": { "type": "integer", "minimum": 1 }, "pxPerMM": { "type": "number", "exclusiveMinimum": 0 }, "alignTargetFile": { "type": "string" }, "alignTargetSha256": { "$ref": "#/$defs/sha256" } } }, "prediction": { "type": "object", "required": ["sha256", "model"], "properties": { "name": { "type": "string" }, "sha256": { "$ref": "#/$defs/sha256" }, "format": { "enum": ["png", "tiff", "array"] }, "width": { "type": "integer" }, "height": { "type": "integer" }, "normalization": { "type": "string", "description": "max255, max65535, max4294967295, label (0/1 values kept), minmax (float), none (array)" }, "invert": { "type": "boolean" }, "model": { "type": "object", "required": ["name"], "properties": { "name": { "type": "string" }, "url": { "type": "string" }, "version": { "type": "string" }, "notes": { "type": "string" } } } } }, "alignment": { "type": "object", "required": ["method", "tx", "ty", "sx", "sy"], "properties": { "method": { "enum": ["auto", "manual", "auto+manual", "shared", "reused"] }, "target": { "enum": ["ink", "ct"] }, "tx": { "type": "number" }, "ty": { "type": "number" }, "sx": { "type": "number", "minimum": 0.3, "maximum": 3 }, "sy": { "type": "number", "minimum": 0.3, "maximum": 3 }, "ncc": { "type": ["number", "null"] }, "coarseNcc": { "type": ["number", "null"] }, "evals": { "type": "integer" }, "model": { "type": "string" } } }, "metrics": { "type": "object", "required": ["pearson", "iou", "dice", "thresholds", "pr"], "properties": { "nValid": { "type": "integer" }, "validFraction": { "type": "number" }, "pearson": { "type": "number", "minimum": -1, "maximum": 1 }, "pearsonMatchedBlur": { "type": "number" }, "blurSigmaPx": { "type": "number" }, "blurSigmaUM": { "type": ["number", "null"] }, "thresholds": { "type": "object", "required": ["ref", "pred"], "properties": { "ref": { "type": "number" }, "pred": { "type": "number" } } }, "iou": { "type": "number", "minimum": 0, "maximum": 1 }, "dice": { "type": "number", "minimum": 0, "maximum": 1 }, "precision": { "type": "number" }, "recall": { "type": "number" }, "refPositiveFraction": { "type": "number" }, "predPositiveFraction": { "type": "number" }, "ap": { "type": "number" }, "bestF1": { "type": "object", "properties": { "f1": { "type": "number" }, "threshold": { "type": "number" } } }, "pr": { "type": "array", "items": { "type": "object", "required": ["t", "precision", "recall"], "properties": { "t": { "type": "number" }, "precision": { "type": "number" }, "recall": { "type": "number" } } } } } }, "annotations": { "type": "array", "items": { "type": "object", "required": ["x", "y", "w", "h", "letter", "confidence", "status"], "properties": { "id": { "type": "string" }, "x": { "type": "number" }, "y": { "type": "number" }, "w": { "type": "number" }, "h": { "type": "number" }, "letter": { "type": "string", "description": "One capital Greek letter, or ? for unsure" }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, "note": { "type": "string" }, "status": { "const": "candidate for expert review" } } } }, "credits": { "type": "object" }, "disclaimer": { "type": "string" } }, "$defs": { "sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" } } }