How to use UniversoOCR

From an empty screen to live scoreboard data in your graphics — step by step.

Reading time ~8 minutes · Windows 10/11 (64-bit)

1Install & activate

  1. Download the installer from the Download page and run it. If Windows shows a "Windows protected your PC" prompt, click More info → Run anyway.
  2. Launch UniversoOCR. It runs a free 30-day trial — everything works during the trial.
  3. To activate a paid subscription: open the License panel (status bar, bottom-right) → Sign in with the email and password from your account.
ℹ️
The server pre-fills https://universoocr.com as the license server, so you only type your email and password. Once activated, the app keeps working offline until the subscription ends.

Each subscription works on up to 3 computers. Changing machines? Ask us to reset your devices.

2Connect a video source

UniversoOCR reads the scoreboard from a live video feed. Open the Source menu (top-left) and pick one:

  • Camera / capture card — any webcam, USB capture device or virtual camera shows up automatically. Point it at the scoreboard.
  • NDI — network sources on your LAN appear in the list if the NDI runtime is installed.
  • Network / file — paste an rtsp:// stream URL, or the path to an .mp4 recording, then Add URL.

Select the source and press ▶ Start. The live picture appears in the main view.

💡
No scoreboard handy? Record it on your phone, load the file as a source, and set everything up at home before the game.

3Straighten the board

If the camera sees the scoreboard at an angle, straighten it first so the digits stand upright.

  1. Click Define Corners.
  2. Drag the four corner handles onto the four corners of the scoreboard panel.
  3. Click Define Corners again to apply. The view now shows a flat, head-on board.

For a small tilt you can skip this and just nudge the Rotation slider (under Advanced) instead.

4Mark the fields

A field is a box over one value on the scoreboard — the clock, home score, shot clock, and so on.

  1. Click + Add Field, then drag a rectangle over the digits you want to read.
  2. Repeat for each value. Existing fields can be clicked and dragged to reposition, and resized from the corner handles.
  3. Give each field a clear Name (e.g. time, home_score) — outputs use these names.

In a hurry? Pick your sport from the Template dropdown to create the usual set of fields at once, then just stretch each one over its digits.

💡
Draw the box tight around the digits. A field that also covers borders, logos or the colon can confuse detection — keep it to just the numbers.

5Choose an OCR engine

Select a field, then pick an OCR engine category — 7-Segment, Plain text, Color / indicator or Teach. Where a category offers more than one model, a Model dropdown appears below it. The best choice depends on the display:

EngineBest for
Learned digits (teach)Any fixed scoreboard — the most accurate once trained. See step 6.
7-segment (LED)Classic seven-segment LED/LCD digits. Fast, no model needed.
7-seg digits (Tess ssd_int)Real seven-segment boards with noise or slight angle.
Plain font (Tess best)Ordinary printed or dot-matrix numbers and letters.
Color / indicatorReads a colour instead of digits (possession, bonus, red/green lamp).

Set the Format too (Number, Clock, Shot clock…) so the value is displayed correctly — details in step 8.

6Teach mode recommended

Teach mode learns the exact digits of your scoreboard, so it reads them almost perfectly, every game.

  1. If the clock is running, click ❄ Freeze (top bar) first so the value holds still.
  2. Select the field and set its OCR engine category to Teach — the Teach input appears.
  3. Type exactly what the field shows right now — e.g. 1922 (digits only, no colon) — and click Learn. The status shows what has been covered (e.g. Covered: 129).
  4. Repeat with different values until every digit 0–9 is covered. Letting the clock run and teaching a few times is the quickest way.
⚠️
Teach samples are stored with your configuration. Click Save afterwards, or you'll have to teach again next time. Loading that config restores everything.

7Freeze the frame

❄ Freeze pauses the picture so you can calibrate calmly while the real scoreboard keeps running. Fields, teaching and tuning all work on the frozen frame. Click it again to go back live — with no delay, because the source keeps buffering in the background.

8Output formats

The Format setting turns raw digits into a proper value. The most useful ones:

  • Number — plain score (drops leading zeros).
  • Clock M:SS — inserts the colon (e.g. 436 → 4:36).
  • Clock auto (M:SS ↔ SS.t) — for boards that switch to tenths of a second under one minute. It detects the switch automatically and never shows a wrong value like 5:99.
  • Shot clock auto (24 ↔ S.t) — whole seconds normally, tenths in the final seconds, and it recognises the reset back to 24/14.

Enable Time validation to drop impossible times, and Ignore empty to hold the last value when the digits briefly disappear.

9Fine-tune the image

The Image processing panel controls how the picture is cleaned before OCR. The OCR view thumbnail on the selected field shows exactly what the engine sees — watch it while you adjust.

  • Black / White — the main levers. Drag until the digits are solid white on a clean black background.
  • Auto threshold / Adaptive threshold — let the app pick levels automatically; adaptive helps with uneven lighting or glare.
  • Segment — sensitivity for seven-segment reading. Lower it if 8 reads as 0; raise it if phantom segments appear.
  • Stability — how many frames must agree before a value changes. Higher = steadier but slightly slower.
  • Advanced — extra tools (denoise, erode/dilate, gamma, hairline) for tricky boards. Double-click any slider label to reset it.
💡
Change one slider at a time and watch the OCR view. Small adjustments usually beat big ones.

10Send to your graphics

Open the Output menu (top-right) and enable what your workflow uses. Field values are sent under their names.

  • OBS WebSocket — updates a matching Text source in OBS for each field.
  • vMix API — sets {field}.Text in a vMix Title input.
  • Web server (HTTP/WebSocket) — a local endpoint you can add as a Browser source, with instant WebSocket push.
  • File (JSON / XML) — writes the values to a file your graphics system can read.

The status bar at the bottom shows a green dot next to each output that is live.

11Troubleshooting

It reads the wrong digits

Tighten the field box, adjust Black/White until digits are clean, and switch that field to Teach mode — it's the most reliable on a fixed board.

It invents extra digits when I enlarge a field

Keep the box tight around the numbers. If a thin panel edge slips in, raise the Hairline slider a little (under Advanced).

The leading "1" goes missing

Set Hairline to 0, or use Teach mode which handles split digits correctly.

Nothing reads at all

Check the source is running (green picture), the field sits over the digits, and the OCR view thumbnail actually shows the numbers in white.

📩
Still stuck? Email [email protected] — a screenshot of the board and the OCR view helps us help you fast.