Skip to content
LexDataLexData
PlatformIndustriesCustomers
DocsThe Field GuideBlogWhy models drift
AboutCareersSecurityContact
Log inStart now
← All posts

Industries · 8 min read

Computer vision water meter reading, a camera in the vault

Computer vision water meter reading turns a truck roll into a frame. Ten digit classes in a row, and a rolling digit or fogged glass goes back to a person.

Summary

This post puts a camera on a mechanical water meter register in a vault and reads it by boxing each digit, classifying the ten digit classes, and rebuilding the reading from left to right. It concludes that the half-turned digit and the condensation on the glass are the frames that belong with a person rather than a threshold, and that the readings are worth more streamed than logged. It is for utility metering and operations teams.

Stephen Biswas · Engineer · Sep 25, 2026

Analog gauge on a plant pipe with the needle boxed, generated scene with detections from our model

Analog gauge on a plant pipe with the needle boxed, generated scene with detections from our model

Computer vision water meter reading puts a small camera in the vault, pointed at the register, and runs a detector that finds each digit window and reads the digit in it as one of ten classes. The reading arrives as a number with the frame behind it, a digit caught mid-roll or a fogged glass sends that frame to a person instead of a guess, and the four truck rolls a year become one visit to fit the camera.

The meter in the vault under the pavement on Mill Road is read four times a year by a technician who lifts the lid, climbs down, wipes the glass with a sleeve and writes six digits on a form. Between visits the utility estimates. When the estimate and the reading disagree by a lot, the bill is wrong in one direction or the other and somebody phones. A truck, a technician and half an hour, for six digits.

A camera in the vault, pointed at the register, gives the same six digits every couple of seconds without the lid coming off.

Each digit gets a bounding box and one of ten classes

A mechanical register is a row of wheels, each showing one digit through a window. The model's job is simple to state: find each digit window, and say which digit is in it. That is a bounding box per digit with a class from zero to nine, and the reading is the classes read off in order from left to right.

Reading the register as text with a general character reader is the tempting shortcut and the wrong one. A text reader has never seen a wheel half turned, does not know that the row has exactly six windows, and will cheerfully read a scratch as a one. A detector trained on this register's own frames, with ten classes and the row's geometry known, does one narrow thing and can be checked against the technician's form.

The frames come from the vault camera at its mount, with the vault's own light, and they include the dirty glass and the shadow of the lid. You type the ten classes once, Lexi proposes a box on every digit window in every frame, and a person checks the proposals before anything trains. Labels on a set like this come back at up to 99.9% accuracy, and on a register the checking is mostly the leftmost wheels, which barely move and are easy to label lazily.

The reading is rebuilt by position, and a short row is a rejected read

With six boxes and six classes, the reading is the classes sorted by the horizontal position of each box. Anything else is a read that gets rejected rather than sent. Five boxes means a digit was missed and the reading would be a tenth of the truth. Seven means something was boxed that is not a digit, a reflection or a scratch. Two boxes overlapping means the same wheel was found twice.

Each of those is a written rule in the pipeline, and each of them holds the last good reading and sends the frame for review rather than emitting a number. The register at Mill Road that reads all nines rolls over to all zeros on the next cubic metre, and the consumption arithmetic has to expect that rather than record a large negative flow.

None of this is hard. All of it is what separates a demo that reads a clean meter on a bench from a reading a billing team will act on.

The rolling digit and the fogged glass belong with a person

A mechanical wheel does not jump from three to four. It turns, and for part of every revolution the window shows the bottom of one digit and the top of the next. A model shown that frame and asked for a class has no good answer, and the honest thing for it to do is return the frame with a low confidence rather than a confident guess. Sixes and eights, threes and eights, are the other pairs that meet in the middle of a turn.

Those frames come back to a person with the box drawn on the window, and the person reads the wheel the way a technician would, from the digit that is more than half shown. The verdict is a label, and the model learns the half-turn from it. The lesson on the number beside a detection is worth a read here. That number ranks a detection against the others, and a threshold on it is an operating point chosen for the cost of a wrong read against the cost of a review.

Condensation is the other regular. A vault is damp, the glass fogs, and a frame with a fogged window has a digit somewhere behind it. Training frames include fogged glass on purpose, since the model will meet it every autumn, and a frame that is too fogged to read is held and sent for review like any other doubted read.

One aside from the vault. The technician still visits Mill Road once a year with the form, and the reading on the form is what the camera's six digits get checked against, which is the cheapest audit the metering team has.

The readings stream to where the utility's other readings go

A reading every couple of seconds is more than a bill needs and exactly what a leak needs. A house with a steady flow through the night has a leak, and a register that turns between 2 am and 4 am says so. The value of the camera is what happens after the reading exists, and readings stream into LexInsight as a value per meter, so the question "what did the Mill Road meter 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. Flow at the Mill Road meter above the margin the utility chose through the night, routine, to the metering team in Slack, with the frames from the register attached. The team sees the wheels turning at 3 am rather than a number in a table.

Across our energy work, 21,000+ hazard detections per month come from the same alert path pointed at grid assets, and a meter that turns when it should not is the same shape of question on a smaller instrument. The substation and equipment monitoring use case is the same fixed-camera position question on a bigger asset.

LexData takes the meter model through its whole life. You type what to look for, Lexi puts a bounding box on every digit in every frame, and a person checks each label before anything trains on it. The model then watches the vault camera, 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.

Rain, fog and a wet lens are a week the model rarely saw

The first heavy rain of the autumn puts water on the lens, condensation on the glass and a reflection across the window from a puddle on the vault floor. Detection falls off for a week and then recovers as the vault dries. The drift catalog calls this rain, fog and dust: conditions the model rarely saw in training arrive for a week, detection falls, and the correction rate in the review queue jumps for exactly that week.

The signal is the correction rate, and the shape of it matters. A jump that lasts a week and recovers is weather, and the frames from that week, corrected, are what the next version learns from so the second autumn is quieter. A jump that does not recover is something else, a moved camera or a replaced register, and the drift catalog has a chapter for each.

My own view is that a meter camera programme should start with the meters the technician hates most, the vaults that flood and the lids that stick, because those are the truck rolls the camera saves and the frames the model most needs to see. A clean meter in a dry cabinet reads itself in a demo and teaches the model nothing about the vault on Mill Road. How the alert gets attached to the vault camera and written as a sentence is in the monitoring doc.

See it on your own footage.

Start with your footage

Related posts

Transmission line over farmland, towers, insulators and encroaching vegetation boxed, from a customer aerial survey

Industries · 7 min read

Aerial fire detection from a drone patrol, smoke before the flame reaches the line

On a right-of-way patrol, smoke is a few dozen grey pixels that look like haze. Two boxed classes, an alert with a cooldown, and the bad-weather days kept.

Rob Hickey · Sep 29, 2026

Transmission line over farmland, encroaching vegetation marked near the conductors, from a customer aerial survey

Industries · 7 min read

Wildfire smoke detection from a fixed ridge camera at dawn

Smoke is a class with no edges, cloud and valley mist are the false alarms to label, and a camera that never moves is what makes the first thin column visible.

Rob Hickey · Sep 30, 2026

Lattice tower from a drone pass, insulator strings boxed and two corrosion spots flagged on the hardware, from a customer inspection run

Case notes · 7 min read

Corrosion detection on transmission insulators, from the inspection pass to a pin you can name

A drone pass along an extra-high-voltage line shows every shed and pin. The frame with early rust looks like the one before it; tracking makes the call stick.

Rob Hickey · Jul 2, 2026

LexData
LexData

Product

  • Platform
  • Industries
  • Use cases

Resources

  • Docs
  • The Field Guide
  • Blog
  • Why models drift

Industries

  • Energy & utilities
  • Oil & gas
  • Agriculture
  • Manufacturing
  • Insurance
  • Retail
  • Robotics

Company

  • About
  • Customers
  • Careers
  • Contact

Trust

  • Security
  • Privacy
  • Terms

Stay updated

What we learn running vision models in production.

See everything.
Miss nothing.

Stay updated

What we learn running vision models in production.

Terms of use & Privacy policy

© 2026 LexData Labs · All rights reserved