Industries · 8 min read
Reading analog gauges with a camera, without replacing them
A camera on the dial turns a clipboard round into a stream of readings, and a nudged bracket is what quietly breaks it.
Summary
This post walks through reading an analog pressure gauge with a fixed camera, from two detected points to a value beside the SCADA tags. It concludes that the camera bracket, and not the model, is the part that fails, and that the technician's clipboard is the check that catches it. It is written for plant and substation teams with gauges nobody wants to replace.
Rob Hickey · Chief AI Officer · Sep 23, 2026

Analog pressure gauge on a plant pipe, generated scene with detections from our model
The pressure gauge on the compressor skid at the back of the substation yard has been read the same way since it was fitted. A technician walks past at 6 am and again after lunch, squints through the glass, writes the number on a clipboard, and types it into a spreadsheet at the end of the shift. Between those two visits nothing is recorded, and the digital replacement either does not exist or means an outage to fit.
A camera pointed at the dial closes that gap without touching the instrument.
The model finds the needle, the geometry turns the needle into an angle, the calibration turns the angle into the unit printed on the face, and the reading goes wherever the plant's other readings go. That pipeline can be demonstrated in an afternoon. What separates the demo from a number the control room trusts is everything that happens after the first week, and most of it has nothing to do with the model.
The model only needs to find the pivot and the needle tip
The detection task is smaller than most people expect. The model does not need to know what a pressure gauge is. It needs two things on every frame: the pivot the needle turns on, and the tip of the needle. Two classes, two tight boxes, and the centre of each box is the point you want.
You type the two classes once, Lexi proposes the boxes, and a person checks them before the model trains. The checking matters more here than on most jobs. A box that sits a few pixels wide of the tip on every frame does not average out; it becomes a fixed angle error that every reading carries for as long as that version runs. So the boxes hug the feature, and the frames come from the camera at its mounted position rather than from a phone held up to the glass.
The needle angle has to be checked against the technician's reading
With the two centres in hand, the angle of the needle is the angle of the line from pivot to tip. The arithmetic measures from the right-hand horizontal, which is not how any gauge is drawn. The gauge on the skid puts its zero at about the seven o'clock position and sweeps clockwise most of the way round, and the offset and the direction of that sweep are properties of that one dial, written down once.
Verify this by hand before anything else. Ask the technician to read the gauge on the 6 am round, compare that with what the geometry produced, and repeat at a few needle positions across the sweep. A sign error here produces readings that look plausible and are wrong on every frame, which is a worse outcome than a model that fails loudly.
The technician on the skid writes the reading in pencil, because a biro will not take on a page that has been rained on. That clipboard turns out to matter later in this post.
Calibration maps the angle to the unit printed on the face
An angle in degrees is still not a pressure. Calibration is the mapping from angle to the unit the gauge shows, PSI or bar, and for an evenly divided face it is a straight line through the readings you verified. Two known points fix the line; a few more across the sweep tell you whether the face is as linear as it looks.
Some faces are not. A gauge with a compressed range near the top of the scale, or a logarithmic face, needs a table of points. The calibration should match the face in front of the camera, because a linear assumption on a non-linear scale is accurate near the points you measured and wrong everywhere else, and nobody notices until the needle is somewhere it rarely goes.
The reading lands beside the SCADA tags the historian already keeps
The value of a reading is what happens after it exists. On a substation with a SCADA historian, the gauge reading takes its place beside the transducer values the historian already holds, and the compressor that had two readings a day now has one every couple of seconds. The gauge itself is untouched.
The readings stream into LexInsight as a value per camera, so the question "what did the skid pressure do overnight" has an answer with the frames behind it. An alert is a rule written as a sentence, with a severity and a cooldown, approved before it goes live. Pressure on the skid above the margin the plant chose, and the frame with the needle drawn on it arrives while there is still time to act.
On the energy sites we run, that alert goes to Slack first, and the margin sits below the limit on purpose so the message lands with time to respond. The same alert path, pointed at grid assets, is what produces the 21,000+ hazard detections per month in our energy work.
With a runner beside the recorder the alert fires on site first, the footage stays where it was recorded, and only the doubted frames leave.
A moved camera silently breaks the calibration
This is the failure the first week never shows. A crew wash-down on a Tuesday, a re-tensioned bracket, a housing replaced after a storm, and the camera now sits a few degrees off where it was on the day the calibration was written. The needle detector still finds the needle, because a needle looks like a needle from any angle. The pivot has moved in the frame, the geometry still produces an angle, and the angle now maps to the wrong pressure.
The signal is a step rather than a slope. The reading on one camera jumps on a maintenance date while the clipboard number stays where it was. The drift catalog covers this as a camera moved, and the fix is the cheapest on the list: re-verify the zero and the sweep from the new framing, re-label a short window of frames, and retrain on footage you already have. A replaced gauge face is the same event with a different cause, and the old calibration is wrong from the moment the new glass is closed.
My own view, and not everyone shares it, is that the clipboard round should stay even after the camera has been right for a year. A person reading the gauge once a shift is the reference the model is checked against. When the person's number and the model's number part in a consistent direction, that override is the signal, before any accuracy figure moves, and I do not know of a cheaper monitor.
Night frames are where the first version is weakest
A dial that reads cleanly at noon can be washed out by glare at 3 pm and lost in the dark by midnight. Reflections on the glass sit exactly where a needle tip could be. A model trained on a bright afternoon has weak evidence for the night shift, and the night shift is when nobody is walking past with a clipboard.
LexData takes the gauge model through its whole life. You type what to look for, Lexi puts a box on the pivot and the tip on every frame, and a person checks each label before anything trains on it. The model then watches the camera on the skid, in the cloud, on your servers, or on a runner beside the recorder. Frames it is unsure of come back to a person, the corrections retrain it, and the new version replaces the old one with no downtime. The night frames that came back for review in the first week are the ones the second version learned from.
A reading that jumps between frames is held and sent for review
A needle does not jump. A reading that moves from the bottom of the scale to the top between one sample and the next is a detection error, and the pipeline should treat it as one: hold the last good reading, send the frame for review, and keep going. A cracked glass, dust on the face, or a partly hidden needle should produce a doubted frame rather than a confident wrong number.
The wider substation and equipment monitoring use case has the same shape, a position question on a fixed camera, and a fixed camera is precisely the condition under which a model learns the background instead of the thing, until the background changes. The alert written as a sentence is what gets the reading to someone in Slack who can act on it, and the person with the clipboard is what tells you when to stop trusting it.
See it on your own footage.
Start with your footageMore in Industries

Industries · 8 min read
Computer vision for construction site safety, a warning before the worker and the excavator meet
A pole camera boxes people and machines, draws a danger zone that moves with the excavator, and sends the frame when someone walks into it.
Ayman Quadir · Sep 23, 2026

Industries · 7 min read
Computer vision in agriculture, from the sprayer boom to the packing line
Weeds against beet rows at dawn, lesions on a leaf, bruises on a packhouse belt, and labels that go stale as the season turns.
Ayman Quadir · Sep 23, 2026

Industries · 6 min read
Computer vision applications on a factory floor, four jobs for the cameras already there
Defect detection, assembly verification, safety and inventory on one plant's cameras, with cosmetic against functional written into the labeling schema.
Ayman Quadir · Sep 23, 2026