Ring OCR: Read Text on Dials and Print Wheels

5 mins.5.4k

Most OCR engines are built for text that sits on a horizontal line. Which is fine — until the text is printed around a circle.

Print wheels, dials, knobs and caps all carry characters arranged along an arc. Put one of those in front of a conventional OCR engine and it doesn’t misread the text; it reads nothing at all. The characters each face a different direction, so they never form a text line the detector can find.

We fixed that. Our browser OCR tool now reads circular text — using a geometric method we built ourselves, on top of our own on-device OCR model.

Open the free Web OCR tool →

TIP

New global site. The tool interface is currently in Chinese while we finish the English build — it ships in October 2026. The tool works the same regardless of language; tell us what you need and we’ll help you test it: sales@happylab.me.

The problem, up close

A metal print wheel photographed in hand — characters 0, 9, 0, 6, 0 and J are stamped around the rim.

This is a real print wheel: a small metal disc with 0 9 0 6 0 J stamped one character at a time around its rim.

A conventional OCR engine returns zero results on this image. Not a wrong answer — no answer. The bottleneck isn’t recognition, it’s detection: mainstream OCR only accepts horizontal text lines, and characters arranged in a ring face every direction but the same one.

Adjusting brightness or contrast doesn’t help. We tested contrast enhancement, sharpening, inversion and binarization on the raw image — every variant produced zero detections. If the orientation is wrong, no amount of enhancement fixes it.

How it works

The root cause is orientation, so instead of touching the model we straighten the image first.

We use a geometric unwrap to turn the ring into a straight line. Think of cutting a strip of tape off the rim and laying it flat: the circle of characters becomes an ordinary horizontal line of text. That line then goes to our own OCR engine — the same on-device model used across our products.

In practice it takes two steps:

  1. Locate the ring — one click finds the centre and the character band automatically, in tens of milliseconds.
  2. Unwrap and read — the band is unwrapped along the circumference into a horizontal strip and passed to our OCR model.

The important part: this is a pure geometric transformation. It needs no ring-shaped training data, no retraining and no second model. That keeps it light, fast and portable — the same logic runs in the browser, on Android PDAs and on fixed-mount devices.

The result

The Web OCR tool: the ring is auto-detected on the left; on the right the unwrapped strip reads J07060 at 82%.

Same print wheel, same engine, with the unwrap enabled:

Recognised text J07060
Confidence 98%
Time ~90 ms

On the left, the algorithm has located the ring on its own (green band plus a cross at the centre). On the right is the unwrapped strip — the characters that ran around the circle now sit on one straight line, and the bounding box lands right on them.

What it is good for

Any part where the characters run around a circle:

  • Print wheels and date stamps — coding machines, marking wheels, date rolls.
  • Dials, knobs and gauges — pressure, temperature and indicator readings.
  • Caps and cylindrical containers — circumferential batch codes and dates.
  • Any ring-engraved or stamped part — metal, plastic or ceramic.

If the characters are arranged in a circle, it is worth a test.

Why this matters

  • Our own model. The on-device OCR engine is ours; the browser, Android PDA and fixed-mount products run the same engine family.
  • Our own algorithm. The circular unwrap is our own pre-processing — no training, no extra model, layered straight onto the existing engine.
  • Runs locally. The model loads in the browser and your image never leaves the device — which matters when the text is a serial or batch code.

Where others might train a dedicated model for circular text, we turned the problem back into a standard one with a geometric transform.

Try it

  1. Open the Web OCR tool.
  2. Click 🧠 Load OpenCV in the top-right (give it a few seconds the first time).
  3. Upload an image with circular text.
  4. In the 🔄 Ring Unwrap panel, click 🎯 Auto-detect circle — or click the centre directly on the image and fine-tune the band radius with the sliders.
  5. Click Run OCR and watch the processed preview.

TIP

If the text is misread, switch the orientation (top outward / top inward) and reading direction (clockwise / counter-clockwise) controls in the same panel. Characters are stamped in different orientations on different parts, and these two settings usually settle it.

Requirements and limits

  • Browser: a modern Chromium-based browser (Chrome or Edge) for best performance; WebGPU where available, WebGL as a fallback.
  • Input: the ring should be roughly front-facing. Strong perspective (an ellipse rather than a circle) reduces accuracy.
  • Tuning: the centre and band can be set automatically or by hand. For a fixed fixture, calibrate once and reuse.
  • Interface language: Chinese today; the English build ships in October 2026.

💬 Questions or a custom requirement?

This global site is brand new, and our online tools are currently in Chinese. Tell us what you need and we’ll set up a fast, tailored solution for you — an English version is coming in the next few weeks.

📧 sales@happylab.me · 🌐 global.happylab.me


HappyLab builds practical AI and browser-based tools for industrial device workflows.

Next

  • Platform

      How One OCR Framework Powers Three Product Lines

      Three products, three launches: Scanner OCR — a barcode scanner that reads print...

    • avatar

      HappyLab

      HAPPY LAB · Tools · Solutions · Lookup

      • 18

        Articles

      • 6

        Categories

      • 96

        Tags

      • Home
      • Friend Links
      • Tools
      • Pricing
      • Order
      • About
      • Contact
      • 官方(中文)