tobil commited on
Commit
27ebca0
·
verified ·
1 Parent(s): b800260

Publish selected model-only bundle for Omatrack 1.8.3

Browse files
NOTICE.md ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Omatrack bundled telemetry models — release 1.8.3
2
+
3
+ The model owner authorized distribution of these selected weights with the
4
+ Omatrack patch release. The original model and contract bytes are unchanged.
5
+ No private footage, screenshots, telemetry, labels, datasets, checkpoint files,
6
+ or real-image parity fixtures are included.
7
+
8
+ ## License scope
9
+
10
+ A separate license for the new task-specific weights has not been assigned.
11
+ Do not infer that Omatrack's source-code MIT license licenses these weights.
12
+ The following upstream notices are retained for their respective components;
13
+ neither is presented as a blanket license grant for the new task model:
14
+
15
+ - Reader backbone: timm MobileNetV3-small, upstream Apache-2.0. See
16
+ `licenses/reader/NOTICE` and its accompanying upstream license. The original
17
+ example-code MIT notice is preserved alongside it; examples are available from
18
+ the original reader repository rather than copied into this bundle.
19
+ - Detector backbones: torchvision MobileNetV3-small and ConvNeXt-Tiny, upstream
20
+ BSD-3-Clause. See `licenses/detectors/NOTICE` and accompanying license.
21
+
22
+ Original export metadata/NOTICE files are retained byte-for-byte. Any statement
23
+ there that no public upload had occurred describes the training/export stage;
24
+ this repository is the subsequent owner-authorized model distribution.
25
+ No rights to source footage or datasets are granted. Names identify provenance
26
+ and compatibility, not endorsement. Predictions are not authoritative telemetry.
README.md ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: onnx
3
+ tags:
4
+ - onnx
5
+ - computer-vision
6
+ - object-detection
7
+ - racing
8
+ - telemetry
9
+ ---
10
+ # Omatrack telemetry model bundle
11
+
12
+ Selected local-inference models for the Omatrack 1.8.3 patch release. Release
13
+ builds download an immutable revision and verify every file hash; the resulting
14
+ applications include the weights for offline operation. No video is uploaded.
15
+ This is a custom ONNX contract, not a drop-in Transformers pipeline.
16
+
17
+ | File | Purpose | Size |
18
+ |---|---|---:|
19
+ | `gauge-reader.onnx` | Proven four-crop value reader | 2,213,746 bytes |
20
+ | `detectors/tiny-v2/gauge-detector.onnx` | Lightweight general proposal discovery | 966,419 bytes |
21
+ | `detectors/aim-large-v1/gauge-detector.onnx` | Higher-accuracy known-AiM proposal discovery | 112,025,875 bytes |
22
+
23
+ The reader is byte-identical to the existing
24
+ [tobil/omatrack-telemetry-reader v1.0.0](https://huggingface.co/tobil/omatrack-telemetry-reader/tree/v1.0.0)
25
+ artifact. The original repository and revision are unchanged.
26
+
27
+ ## Intended routing and safeguards
28
+
29
+ Use the larger detector only after the current full source image independently
30
+ matches the reviewed 1920x1080 orange AiM layout. Use the lightweight detector for
31
+ other layouts and as a failure fallback. Do not infer layout from file extension
32
+ or filenames. Source dimensions/display transforms must be verified before boxes
33
+ are projected onto playback.
34
+
35
+ All learned detections are proposals, not calibrated probabilities or reader
36
+ approval. The reader outputs gear, the displayed stint counter, brake visible-fill
37
+ percent and throttle visible-fill percent only for its reviewed crops. It does not
38
+ measure physical brake pressure, GPS, lap classification, arbitrary fonts or every
39
+ other detected widget. Unsupported crops stay unknown. Native telemetry takes
40
+ priority. User confirmation precedes extraction.
41
+
42
+ The detector tensor/preprocessing/postprocessing contract is documented in each
43
+ `contract.json`: RGB float32 NCHW [1,3,384,640], full-source half-pixel bilinear
44
+ resize without antialiasing, then five stride-four prediction heads. Read each
45
+ contract in full; class ordering, sigmoid/offset math, thresholds and NMS matter.
46
+
47
+ ## Evidence and limitations
48
+
49
+ These are known-style, session-held-out development checks, not an unseen-layout
50
+ or broad no-HUD certification. Private evaluation images are not included.
51
+
52
+ - Original eight full frames: lightweight precision77.5% / recall69.4%; larger
53
+ precision73.5% / recall82.6%. The larger model is NOT a global replacement.
54
+ - On the original VBOX subset, larger precision fell to58.2% from75.3%.
55
+ - Additional eight exhaustively reviewed AiM frames: larger precision97.8% /
56
+ recall99.3%, versus lightweight83.3% /66.2%.
57
+ - Additional eight partial VBOX frames: larger annotated-target recall85.5%;
58
+ precision is unscored. Estimated pedal-track extents were withheld from exact
59
+ IoU scoring, not treated as absent.
60
+ - Larger model produced two false proposals on16 additional reviewed no-gauge
61
+ crops. Such crops are not full no-HUD recordings.
62
+ - ARM-server CPU measurements: the larger model costs about388ms inference /
63
+ 410ms including file decode, preprocessing and box decode with two ORT threads.
64
+ One-thread native processing is around0.8s. Discovery runs only every few
65
+ seconds on a worker; this is not a claim of5Hz whole-frame detection.
66
+
67
+ The backbone, annotation coverage and training recipe changed together; the
68
+ comparison is not an isolated model-capacity experiment. The more heavily
69
+ framing-randomized value-reader candidate failed clean/extreme-framing gates and
70
+ is deliberately NOT included.
71
+
72
+ ## Privacy and rights
73
+
74
+ Only selected ONNX models, their companion contracts/metadata, checksums and scoped
75
+ upstream notices are published. No private frames, telemetry, labels, training
76
+ checkpoints, outputs or real-image fixtures are redistributed. A separate license
77
+ for the task-specific weights remains unspecified; see [NOTICE.md](NOTICE.md).
78
+ Do not infer a blanket MIT/Apache/BSD grant for the task weights or source footage.
79
+
80
+ Application code and runtime documentation: [tobi/omatrack](https://github.com/tobi/omatrack).
detectors/aim-large-v1/contract.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "gauge-detector-center-v1",
3
+ "training_scope_version": "convnext-tiny-large-v1-strong28-partial-mil",
4
+ "architecture": "full torchvision ConvNeXt-Tiny backbone plus 64-channel four-scale FPN",
5
+ "status": "experimental_discovery_not_reader_approval",
6
+ "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"},
7
+ "stride":4,
8
+ "outputs":[
9
+ {"name":"center_logits","channels":1},
10
+ {"name":"size_logits","channels":2,"order":["width","height"]},
11
+ {"name":"offset_logits","channels":2,"order":["x","y"]},
12
+ {"name":"representation_logits","channels":4,"labels":["digits","bar","wheel","needle"]},
13
+ {"name":"semantic_logits","channels":5,"labels":["unknown","gear","stint_lap","brake","throttle"]}
14
+ ],
15
+ "output_layout":"NCHW; all outputs [1,C,input_height/4,input_width/4]; finite float32 logits",
16
+ "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},
17
+ "runtime_guards":["require RGB source dimensions > 0","require batch=1,3 input channels, H/W divisible by32","reject missing, extra, wrong-shaped, nonfloat32 or nonfinite outputs","model and metadata SHA256 must match pinned setup identity"],
18
+ "limitations":["scores are not calibrated probabilities","unknown semantic positives only for explicitly observed non-Tier1 fields; ambiguous fields and generic lap-counter ownership masked; no open-set certification","all synthetic semantic loss fully masked; no renderer-intent labels","28 reviewed TRAIN parents include 24 exhaustive overlays and 4 partial parents; ALL partial geometry is MIL-window-only, with zero exact-center/size/offset and zero negative losses because dimbar endpoints were uncertain","weak real windows use positive MIL only; layered ignore regions do not erase documented foreground positives","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","two known real layouts and four reused background assets; repeated views are not new source diversity; larger model CPU/laptop latency must be measured"]
19
+ }
detectors/aim-large-v1/gauge-detector.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:92bbc4a61395c3fea309986986cbd41ef78d1ab735ecaa755a7e57c0c1fcb8c1
3
+ size 112025875
detectors/aim-large-v1/metadata.json ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "gauge-detector-center-v1",
3
+ "model_file": "gauge-detector.onnx",
4
+ "model_sha256": "92bbc4a61395c3fea309986986cbd41ef78d1ab735ecaa755a7e57c0c1fcb8c1",
5
+ "model_bytes": 112025875,
6
+ "contract_file": "contract.json",
7
+ "contract_sha256": "bfd0df6a83f714e00a5b92e441bf7c45ae777899a6976eee2353f728c7080645",
8
+ "checkpoint_sha256": "f957a4d61b34f9af43e3b6c4db0ce3b493181a692beffd30e233d4893c3d27a9",
9
+ "selected_epoch": 9,
10
+ "frozen_config_sha256": "a25c8906cf674498d1ce43788f0b2ffdf086052e33c988896f1ea16ec4bd1490",
11
+ "parameters": 27985774,
12
+ "onnx_opset": 17,
13
+ "operators": [
14
+ "Add",
15
+ "Cast",
16
+ "Concat",
17
+ "Constant",
18
+ "Conv",
19
+ "Div",
20
+ "Erf",
21
+ "Gather",
22
+ "LayerNormalization",
23
+ "MatMul",
24
+ "Mul",
25
+ "Relu",
26
+ "Resize",
27
+ "Shape",
28
+ "Slice",
29
+ "Sub",
30
+ "Transpose",
31
+ "Unsqueeze"
32
+ ],
33
+ "onnx_version": "1.19.1",
34
+ "ort_version": "1.24.2",
35
+ "status": "experimental_candidate_not_independently_accepted",
36
+ "input": {
37
+ "name": "image",
38
+ "dtype": "float32",
39
+ "layout": "NCHW",
40
+ "shape": [
41
+ 1,
42
+ 3,
43
+ 384,
44
+ 640
45
+ ],
46
+ "channels": "RGB",
47
+ "range": [
48
+ 0,
49
+ 1
50
+ ],
51
+ "spatial_multiple": 32,
52
+ "dynamic_spatial": true,
53
+ "resize": "stretch_full_source_half_pixel_bilinear_no_antialias",
54
+ "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",
55
+ "normalization": "divide_255_only; ImageNet normalization is inside the graph"
56
+ },
57
+ "outputs": [
58
+ {
59
+ "name": "center_logits",
60
+ "channels": 1
61
+ },
62
+ {
63
+ "name": "size_logits",
64
+ "channels": 2,
65
+ "order": [
66
+ "width",
67
+ "height"
68
+ ]
69
+ },
70
+ {
71
+ "name": "offset_logits",
72
+ "channels": 2,
73
+ "order": [
74
+ "x",
75
+ "y"
76
+ ]
77
+ },
78
+ {
79
+ "name": "representation_logits",
80
+ "channels": 4,
81
+ "labels": [
82
+ "digits",
83
+ "bar",
84
+ "wheel",
85
+ "needle"
86
+ ]
87
+ },
88
+ {
89
+ "name": "semantic_logits",
90
+ "channels": 5,
91
+ "labels": [
92
+ "unknown",
93
+ "gear",
94
+ "stint_lap",
95
+ "brake",
96
+ "throttle"
97
+ ]
98
+ }
99
+ ],
100
+ "decode": {
101
+ "score_threshold": 0.35,
102
+ "local_max_kernel": 3,
103
+ "local_max_rule": "sigmoid(center) >= every in-bounds 3x3 neighbor; equal maxima all retained before top-k",
104
+ "candidate_limit": 100,
105
+ "sort": "descending score then ascending flat y*grid_width+x index",
106
+ "center": "((x+sigmoid(offset_x))/grid_width,(y+sigmoid(offset_y))/grid_height)",
107
+ "size": "(sigmoid(width_logit),sigmoid(height_logit)) normalized full-source width/height",
108
+ "box": "center +/- size/2; clip each coordinate to [0,1]; discard zero-area",
109
+ "nms": "class-agnostic greedy suppress IoU strictly > 0.4",
110
+ "nms_iou": 0.4,
111
+ "max_detections": 32,
112
+ "representation": "argmax; lowest index wins ties",
113
+ "semantic": "softmax argmax; lowest index wins ties; emit unknown if max probability < 0.8",
114
+ "semantic_threshold": 0.8
115
+ },
116
+ "limitations": [
117
+ "scores are not calibrated probabilities",
118
+ "unknown semantic positives only for explicitly observed non-Tier1 fields; ambiguous fields and generic lap-counter ownership masked; no open-set certification",
119
+ "all synthetic semantic loss fully masked; no renderer-intent labels",
120
+ "28 reviewed TRAIN parents include 24 exhaustive overlays and 4 partial parents; ALL partial geometry is MIL-window-only, with zero exact-center/size/offset and zero negative losses because dimbar endpoints were uncertain",
121
+ "weak real windows use positive MIL only; layered ignore regions do not erase documented foreground positives",
122
+ "bar includes segmented indicators, no fill direction or scale predicted",
123
+ "visibility/readability/support remain unknown",
124
+ "detector boxes never imply arbitrary crop reader support",
125
+ "confirmed user/reviewed configuration required before extraction",
126
+ "two known real layouts and four reused background assets; repeated views are not new source diversity; larger model CPU/laptop latency must be measured"
127
+ ],
128
+ "licensing": "torchvision BSD-3-Clause backbone; task weights redistribution license unspecified; no public upload",
129
+ "required_metadata_keys": [
130
+ "schema",
131
+ "model_file",
132
+ "model_sha256",
133
+ "contract_file",
134
+ "contract_sha256",
135
+ "status",
136
+ "input",
137
+ "outputs",
138
+ "decode",
139
+ "limitations"
140
+ ]
141
+ }
detectors/tiny-v2/contract.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "gauge-detector-center-v1",
3
+ "training_scope_version": "pilot-v2-mil-strong4-backgrounds",
4
+ "tensor_decode_abi": "unchanged from gauge-detector-center-v1",
5
+ "status": "experimental_discovery_not_reader_approval",
6
+ "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"},
7
+ "stride":4,
8
+ "outputs":[
9
+ {"name":"center_logits","channels":1},
10
+ {"name":"size_logits","channels":2,"order":["width","height"]},
11
+ {"name":"offset_logits","channels":2,"order":["x","y"]},
12
+ {"name":"representation_logits","channels":4,"labels":["digits","bar","wheel","needle"]},
13
+ {"name":"semantic_logits","channels":5,"labels":["unknown","gear","stint_lap","brake","throttle"]}
14
+ ],
15
+ "output_layout":"NCHW; all outputs [1,C,input_height/4,input_width/4]; finite float32 logits",
16
+ "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},
17
+ "runtime_guards":["require RGB source dimensions > 0","require batch=1,3 input channels, H/W divisible by32","reject missing, extra, wrong-shaped, nonfloat32 or nonfinite outputs","model and metadata SHA256 must match pinned setup identity"],
18
+ "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"]
19
+ }
detectors/tiny-v2/gauge-detector.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:99bdd483402444e8c799452d9885c1184980a41f2cd80d4af4d7a6b3ae00abc6
3
+ size 966419
detectors/tiny-v2/metadata.json ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "gauge-detector-center-v1",
3
+ "model_file": "gauge-detector.onnx",
4
+ "model_sha256": "99bdd483402444e8c799452d9885c1184980a41f2cd80d4af4d7a6b3ae00abc6",
5
+ "model_bytes": 966419,
6
+ "contract_file": "contract.json",
7
+ "contract_sha256": "87a4cec9e0466250b635e561c74be81f2ce5f15fbd79804a1be639c3719a69d3",
8
+ "checkpoint_sha256": "42fca6a5cad028bd21c7a05195c93c02597f8ffe2c5280875a5f1254029c0f83",
9
+ "selected_epoch": 7,
10
+ "frozen_config_sha256": "a58dcdd47804b38eb2dfeccce12f43f570628bf82117ccdf62975b16a0244280",
11
+ "parameters": 237142,
12
+ "onnx_opset": 17,
13
+ "operators": [
14
+ "Add",
15
+ "Cast",
16
+ "Concat",
17
+ "Constant",
18
+ "Conv",
19
+ "Div",
20
+ "Gather",
21
+ "GlobalAveragePool",
22
+ "HardSigmoid",
23
+ "HardSwish",
24
+ "Mul",
25
+ "Relu",
26
+ "Resize",
27
+ "Shape",
28
+ "Slice",
29
+ "Sub",
30
+ "Unsqueeze"
31
+ ],
32
+ "onnx_version": "1.19.1",
33
+ "ort_version": "1.24.2",
34
+ "status": "experimental_candidate_not_independently_accepted",
35
+ "input": {
36
+ "name": "image",
37
+ "dtype": "float32",
38
+ "layout": "NCHW",
39
+ "shape": [
40
+ 1,
41
+ 3,
42
+ 384,
43
+ 640
44
+ ],
45
+ "channels": "RGB",
46
+ "range": [
47
+ 0,
48
+ 1
49
+ ],
50
+ "spatial_multiple": 32,
51
+ "dynamic_spatial": true,
52
+ "resize": "stretch_full_source_half_pixel_bilinear_no_antialias",
53
+ "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",
54
+ "normalization": "divide_255_only; ImageNet normalization is inside the graph"
55
+ },
56
+ "outputs": [
57
+ {
58
+ "name": "center_logits",
59
+ "channels": 1
60
+ },
61
+ {
62
+ "name": "size_logits",
63
+ "channels": 2,
64
+ "order": [
65
+ "width",
66
+ "height"
67
+ ]
68
+ },
69
+ {
70
+ "name": "offset_logits",
71
+ "channels": 2,
72
+ "order": [
73
+ "x",
74
+ "y"
75
+ ]
76
+ },
77
+ {
78
+ "name": "representation_logits",
79
+ "channels": 4,
80
+ "labels": [
81
+ "digits",
82
+ "bar",
83
+ "wheel",
84
+ "needle"
85
+ ]
86
+ },
87
+ {
88
+ "name": "semantic_logits",
89
+ "channels": 5,
90
+ "labels": [
91
+ "unknown",
92
+ "gear",
93
+ "stint_lap",
94
+ "brake",
95
+ "throttle"
96
+ ]
97
+ }
98
+ ],
99
+ "decode": {
100
+ "score_threshold": 0.35,
101
+ "local_max_kernel": 3,
102
+ "local_max_rule": "sigmoid(center) >= every in-bounds 3x3 neighbor; equal maxima all retained before top-k",
103
+ "candidate_limit": 100,
104
+ "sort": "descending score then ascending flat y*grid_width+x index",
105
+ "center": "((x+sigmoid(offset_x))/grid_width,(y+sigmoid(offset_y))/grid_height)",
106
+ "size": "(sigmoid(width_logit),sigmoid(height_logit)) normalized full-source width/height",
107
+ "box": "center +/- size/2; clip each coordinate to [0,1]; discard zero-area",
108
+ "nms": "class-agnostic greedy suppress IoU strictly > 0.4",
109
+ "nms_iou": 0.4,
110
+ "max_detections": 32,
111
+ "representation": "argmax; lowest index wins ties",
112
+ "semantic": "softmax argmax; lowest index wins ties; emit unknown if max probability < 0.8",
113
+ "semantic_threshold": 0.8
114
+ },
115
+ "limitations": [
116
+ "scores are not calibrated probabilities",
117
+ "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",
118
+ "all synthetic semantic loss fully masked; no renderer-intent labels",
119
+ "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",
120
+ "bar includes segmented indicators, no fill direction or scale predicted",
121
+ "visibility/readability/support remain unknown",
122
+ "detector boxes never imply arbitrary crop reader support",
123
+ "confirmed user/reviewed configuration required before extraction",
124
+ "only two known real layouts and four reviewed TRAIN background assets; repeated views are not new source diversity"
125
+ ],
126
+ "licensing": "torchvision BSD-3-Clause backbone; task weights redistribution license unspecified; no public upload",
127
+ "required_metadata_keys": [
128
+ "schema",
129
+ "model_file",
130
+ "model_sha256",
131
+ "contract_file",
132
+ "contract_sha256",
133
+ "status",
134
+ "input",
135
+ "outputs",
136
+ "decode",
137
+ "limitations"
138
+ ]
139
+ }
gauge-reader.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:97029f70068f4ec276b3d6bc28810763275806f579d91ddd4701b544af392147
3
+ size 2213746
inventory.json ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "omatrack-model-bundle-inventory-v1",
3
+ "intended_release": "1.8.3",
4
+ "repository": "tobil/omatrack-telemetry-models",
5
+ "files": [
6
+ {
7
+ "path": "NOTICE.md",
8
+ "bytes": 1495,
9
+ "sha256": "4485d59783551e3cd30c25a7b80a5acc0ae5490364a17dbf69ae8954e6529d54"
10
+ },
11
+ {
12
+ "path": "README.md",
13
+ "bytes": 4117,
14
+ "sha256": "480168ada8b3e17514702db0d906aae1e114c214a6303e03fad4a9d38651b366"
15
+ },
16
+ {
17
+ "path": "detectors/aim-large-v1/contract.json",
18
+ "bytes": 3308,
19
+ "sha256": "bfd0df6a83f714e00a5b92e441bf7c45ae777899a6976eee2353f728c7080645"
20
+ },
21
+ {
22
+ "path": "detectors/aim-large-v1/gauge-detector.onnx",
23
+ "bytes": 112025875,
24
+ "sha256": "92bbc4a61395c3fea309986986cbd41ef78d1ab735ecaa755a7e57c0c1fcb8c1"
25
+ },
26
+ {
27
+ "path": "detectors/aim-large-v1/metadata.json",
28
+ "bytes": 4519,
29
+ "sha256": "92b755bbb91b7991f564369c57b9545207bfca8f3f083d1b68d30c6abd2d99d4"
30
+ },
31
+ {
32
+ "path": "detectors/tiny-v2/contract.json",
33
+ "bytes": 3125,
34
+ "sha256": "87a4cec9e0466250b635e561c74be81f2ce5f15fbd79804a1be639c3719a69d3"
35
+ },
36
+ {
37
+ "path": "detectors/tiny-v2/gauge-detector.onnx",
38
+ "bytes": 966419,
39
+ "sha256": "99bdd483402444e8c799452d9885c1184980a41f2cd80d4af4d7a6b3ae00abc6"
40
+ },
41
+ {
42
+ "path": "detectors/tiny-v2/metadata.json",
43
+ "bytes": 4356,
44
+ "sha256": "44af06b2619f3a8e084eec836245cc70038bc8cce3cbe80fddd6b3d397d6e970"
45
+ },
46
+ {
47
+ "path": "gauge-reader.onnx",
48
+ "bytes": 2213746,
49
+ "sha256": "97029f70068f4ec276b3d6bc28810763275806f579d91ddd4701b544af392147"
50
+ },
51
+ {
52
+ "path": "licenses/detectors/LICENSE-TORCHVISION-BSD-3-CLAUSE.txt",
53
+ "bytes": 1517,
54
+ "sha256": "6502f676851cfe25f8af75531dfb32375b7325b73c37e7b43741fa422893e71d"
55
+ },
56
+ {
57
+ "path": "licenses/detectors/NOTICE",
58
+ "bytes": 1259,
59
+ "sha256": "4721e1cd64cca08cb27bdbce1ade017ad7d5cf3541b4142cf5dd44cd29e03da3"
60
+ },
61
+ {
62
+ "path": "licenses/reader/LICENSE-APACHE-2.0-UPSTREAM.txt",
63
+ "bytes": 11343,
64
+ "sha256": "71b111620fa32c17a80ccd6db2da759d31a591e497d8b5f382174f59d1b59d49"
65
+ },
66
+ {
67
+ "path": "licenses/reader/LICENSE-MIT-OMATRACK-CODE.txt",
68
+ "bytes": 1078,
69
+ "sha256": "f14ce1144836b7d366f77f79e0a8d15a8add9689fddc2c9c05d4af0e81882d77"
70
+ },
71
+ {
72
+ "path": "licenses/reader/NOTICE",
73
+ "bytes": 1449,
74
+ "sha256": "56dd06fceed7b5c52ab2696e67aa3dc61954379c5a42b9fac5b386726214782f"
75
+ }
76
+ ],
77
+ "privacy": "models/contracts/notices only; no footage/datasets/checkpoints/fixtures",
78
+ "task_weights_license": "unspecified; scoped upstream notices retained"
79
+ }
licenses/detectors/LICENSE-TORCHVISION-BSD-3-CLAUSE.txt ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) Soumith Chintala 2016,
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ * Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
licenses/detectors/NOTICE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Omatrack gauge detector backbones and pretrained-weight provenance
2
+
3
+ Upstream: torchvision / PyTorch vision
4
+ Copyright (c) Soumith Chintala 2016. BSD 3-Clause License.
5
+ Source: https://github.com/pytorch/vision
6
+ Full notice: LICENSE-TORCHVISION-BSD-3-CLAUSE.txt
7
+
8
+ Lightweight detector: torchvision MobileNetV3-small prefix plus task-specific
9
+ feature-pyramid, center, box, representation and semantic heads.
10
+ Pretrained model: https://download.pytorch.org/models/mobilenet_v3_small-047dcff4.pth
11
+ Pretrained SHA256: 047dcff4addef86ea5bc2eff13c9614dc11f47ab1160d0a71a25e7db994f4e1f
12
+
13
+ AiM-specific detector: full torchvision ConvNeXt-Tiny features plus task-specific
14
+ feature-pyramid and center-based heads; classifier removed.
15
+ Pretrained model: https://download.pytorch.org/models/convnext_tiny-983f1562.pth
16
+ Pretrained SHA256: 983f1562536e84ff750a1576fb08e54de751dbf2e17c0d8a4a13704341fdcd3d
17
+
18
+ Modification notice: these are fine-tuned gauge detectors, not the original
19
+ ImageNet classifiers. They predict boxes/types and optional semantic labels,
20
+ not gauge readings. Their immutable ONNX/contract hashes are in inventory.json.
21
+ Task-specific weight licensing remains unspecified. This notice preserves
22
+ upstream terms without inventing a new weights or source-data license.
licenses/reader/LICENSE-APACHE-2.0-UPSTREAM.txt ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "{}"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright 2019 Ross Wightman
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
licenses/reader/LICENSE-MIT-OMATRACK-CODE.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Omatrack contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
licenses/reader/NOTICE ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Omatrack telemetry reader 1.0.0
2
+
3
+ Upstream component: PyTorch Image Models (timm), MobileNetV3-small
4
+ Copyright 2019 Ross Wightman
5
+ Licensed under the Apache License, Version 2.0.
6
+ Full upstream license: LICENSE-APACHE-2.0-UPSTREAM.txt
7
+ Source: https://github.com/huggingface/pytorch-image-models
8
+ Pretrained model: https://huggingface.co/timm/mobilenetv3_small_100.lamb_in1k
9
+
10
+ Modification notice: this is not the original ImageNet classifier. The model
11
+ retains the pretrained stem and early backbone blocks, adds a crop encoder,
12
+ digit/CTC, visible-fill and digit-count heads, fine-tunes for gauge reading,
13
+ and exports the resulting task model to ONNX. No new training was performed
14
+ for this publication. Private training data and original checkpoints are not
15
+ included.
16
+
17
+ Omatrack-derived example source code
18
+ Copyright (c) 2026 Omatrack contributors
19
+ MIT License: LICENSE-MIT-OMATRACK-CODE.txt
20
+ The read_frame.py and test_read_frame.py examples adapt the public Omatrack
21
+ reader conventions and contain no private image or recording fixtures.
22
+ Source: https://github.com/tobi/omatrack
23
+
24
+ The license for the new task-specific model weights has not yet been assigned.
25
+ The upstream Apache-2.0 and example-code MIT notices are scoped to their
26
+ respective components; neither is a blanket license grant for the new model.
27
+ No rights to private footage, screenshots, labels or datasets are granted.
28
+ Third-party names identify compatibility/provenance, not endorsement.