shebang!

Water meter simulator

connecting

Loading the saved capture setting.

Live preview

The iPad shows the same scene at . Same scene, same ground truth.

Activity

No activity yet.

    Latest capture

    Latest photo from the camera node

    No capture yet. Use a capture button when the scene is ready.

    Photo only is quick, for aiming the camera. Capture + read runs the detector, the refiner and the reader on the board, which takes about a minute.

    Live on-device accuracy

    --
    reading accuracy
    --
    digit accuracy

    mean read time --

      Ground truth

      amber means the drum is mid-roll, so a read one unit higher is also defensible. Truth is always the lower digit.

      Meter design

      Meter references and image credits

      Presets

      Reading

      Layouts show whole-number + decimal drums. Custom layouts resize the register within the same viewing window.

      Force drum roll

      Drag a drum to pin it part way between digits. Rightmost drum is on the right. Clear returns drums to what the reading dictates.

      Glare

      Position and size are relative to the meter glass, excluding the lid and housing.

      Window smudge

      A greasy fingerprint softens the digits beneath it. Position is relative to the viewing window; intensity 0 clears it.

      Shadow

      Lighting

      Glass and sensor

      View

      Camera node

      Applied by the ESP32 on its next capture. Turn auto exposure or auto gain off to use the manual values.

      Meter face

      Scripting

      Everything here is a JSON patch. From a script: POST /api/state?wait=1 with the patch, read truth.text from the reply once the iPad has painted. GET /api/state shows the full scene.