Braillify
Image reader

Braille image to text

Upload a photo of braille dots and get back the detected braille cells, plus a best-effort translation. To translate braille you can already type or paste, use the braille translator.

Experimental: this uses a simple dot-detection method, not a trained model. It works best on a clear, top-down, well-lit image with dark dots on a light background — accuracy on real embossed paper will vary.

Drag a photo of braille here, or

Max file size: 5 MB.

How to read braille from an image

  1. 1. Take or choose a photo. Shoot straight down on the braille, with even light and the dots filling most of the frame.
  2. 2. Upload it. Drag the image onto the box above or choose it from your device. JPEG, PNG and most phone photos work.
  3. 3. Check the detected cells. The braille grid is the reliable part of the result; compare a few cells with the braille alphabet chart.
  4. 4. Translate the cells. Copy them into the braille translator, choose Braille → Text, and pick Grade 2 if the braille is contracted — most printed braille is.

How the braille image reader works

The photo is turned to match its orientation, scaled down to at most 1,600 pixels on the longest side and converted to greyscale. A threshold chosen from the image’s own brightness separates dark marks from the background. The reader then keeps the marks that are round and about the same size — the dots — and ignores specks and lines.

Dot centres are grouped into rows and columns. A braille cell is three dot rows tall and two dot columns wide, so the rows are taken in threes and the columns in pairs, and each cell becomes one Unicode braille character. Finally the cells are translated as Grade 1 braille to give a first guess at the text.

What kind of image works

  • Works well: braille printed as dark dots on a light background, screenshots of braille, diagrams and worksheets, and high-contrast scans.
  • Works sometimes: embossed paper photographed with light from one low side, so each dot casts a clear shadow.
  • Rarely works: braille on signs, lift buttons and packaging, curved or shiny surfaces, and photos taken at an angle.

Why the text guess is often wrong

One missed or extra dot turns a letter into a different one, and gaps between words are not detected reliably, so the guess can run words together. It also assumes uncontracted Grade 1 braille, while most real braille is Grade 2. Treat the detected cells as the result and the text as a hint.

Tips for a clean scan

  • Shoot straight down. An angled photo distorts the spacing the dot-detection grid relies on.
  • Even, diffuse light. Strong side lighting casts shadows next to each raised dot that can be mistaken for extra dots.
  • Fill the frame. Crop out excess background so the braille cells are as large as possible in the photo.
  • One block of braille at a time. A single paragraph or label reads better than a whole page with margins and headings.

Frequently asked questions

Can I translate braille from a photo on my phone?
Yes — open this page on your phone, choose “Choose photo” and take a picture or pick one from your gallery. Hold the phone flat above the braille, fill the frame with the dots and avoid shadows. The result is the braille cells the reader found, plus a rough text guess.
Does the image reader understand Grade 2 (contracted) braille?
The dot detection works the same for any braille, but the automatic text guess assumes Grade 1. For contracted braille, copy the detected cells into the braille translator, choose Braille → Text and Grade 2.
Will it read braille on signs, lift buttons or medicine boxes?
Often not. Embossed braille on a sign or a box is the same colour as its background, so a photo shows only faint shadows rather than dark dots. The reader does best with high-contrast images: braille printed as black dots, screenshots, and well-lit scans.
Why does the result have extra or missing dots?
Shadows, dust and glare can look like dots, and faint dots can be missed. One wrong dot changes a letter. Retake the photo straight on with even light, crop out the background, and check the cells against the braille alphabet chart.
Are my photos stored?
No. The image is processed in memory to find the dots and is not saved on the server.
Is there an API for reading braille from images?
Yes: POST the image to /api/ocr as multipart form data. The response contains the detected braille grid, the number of dots and cells found, and a text guess. Images can be up to 5 MB.