{ "schema": "gauge-detector-center-v1", "model_file": "gauge-detector.onnx", "model_sha256": "99bdd483402444e8c799452d9885c1184980a41f2cd80d4af4d7a6b3ae00abc6", "model_bytes": 966419, "contract_file": "contract.json", "contract_sha256": "87a4cec9e0466250b635e561c74be81f2ce5f15fbd79804a1be639c3719a69d3", "checkpoint_sha256": "42fca6a5cad028bd21c7a05195c93c02597f8ffe2c5280875a5f1254029c0f83", "selected_epoch": 7, "frozen_config_sha256": "a58dcdd47804b38eb2dfeccce12f43f570628bf82117ccdf62975b16a0244280", "parameters": 237142, "onnx_opset": 17, "operators": [ "Add", "Cast", "Concat", "Constant", "Conv", "Div", "Gather", "GlobalAveragePool", "HardSigmoid", "HardSwish", "Mul", "Relu", "Resize", "Shape", "Slice", "Sub", "Unsqueeze" ], "onnx_version": "1.19.1", "ort_version": "1.24.2", "status": "experimental_candidate_not_independently_accepted", "input": { "name": "image", "dtype": "float32", "layout": "NCHW", "shape": [ 1, 3, 384, 640 ], "channels": "RGB", "range": [ 0, 1 ], "spatial_multiple": 32, "dynamic_spatial": true, "resize": "stretch_full_source_half_pixel_bilinear_no_antialias", "pixel_formula": "sx=(dx+0.5)*source_width/dest_width-0.5; sy analogous; floor coordinates, clamp each neighbor index; interpolate raw uint8 RGB in float32 then divide by 255; no intermediate uint8 rounding", "normalization": "divide_255_only; ImageNet normalization is inside the graph" }, "outputs": [ { "name": "center_logits", "channels": 1 }, { "name": "size_logits", "channels": 2, "order": [ "width", "height" ] }, { "name": "offset_logits", "channels": 2, "order": [ "x", "y" ] }, { "name": "representation_logits", "channels": 4, "labels": [ "digits", "bar", "wheel", "needle" ] }, { "name": "semantic_logits", "channels": 5, "labels": [ "unknown", "gear", "stint_lap", "brake", "throttle" ] } ], "decode": { "score_threshold": 0.35, "local_max_kernel": 3, "local_max_rule": "sigmoid(center) >= every in-bounds 3x3 neighbor; equal maxima all retained before top-k", "candidate_limit": 100, "sort": "descending score then ascending flat y*grid_width+x index", "center": "((x+sigmoid(offset_x))/grid_width,(y+sigmoid(offset_y))/grid_height)", "size": "(sigmoid(width_logit),sigmoid(height_logit)) normalized full-source width/height", "box": "center +/- size/2; clip each coordinate to [0,1]; discard zero-area", "nms": "class-agnostic greedy suppress IoU strictly > 0.4", "nms_iou": 0.4, "max_detections": 32, "representation": "argmax; lowest index wins ties", "semantic": "softmax argmax; lowest index wins ties; emit unknown if max probability < 0.8", "semantic_threshold": 0.8 }, "limitations": [ "scores are not calibrated probabilities", "unknown semantic has positive supervision only for explicitly observed non-Tier1 fields in four TRAIN images; ambiguous fields and generic lap-counter ownership remain masked; no open-set certification", "all synthetic semantic loss fully masked; no renderer-intent labels", "real weak windows use positive MIL only, no extent or offset loss or background negatives; four pixel-reviewed TRAIN images provide stronger geometry with explicit ignored regions", "bar includes segmented indicators, no fill direction or scale predicted", "visibility/readability/support remain unknown", "detector boxes never imply arbitrary crop reader support", "confirmed user/reviewed configuration required before extraction", "only two known real layouts and four reviewed TRAIN background assets; repeated views are not new source diversity" ], "licensing": "torchvision BSD-3-Clause backbone; task weights redistribution license unspecified; no public upload", "required_metadata_keys": [ "schema", "model_file", "model_sha256", "contract_file", "contract_sha256", "status", "input", "outputs", "decode", "limitations" ] }