Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

OCR Braille reading

Dear all,

I tried to create charset file for the braille code (image attached) with the OCR Training tool of LabView. It seems that using this code is ont as simple as it seems. Could you please evaluate if this image if it is any good at all and what are your recommendatios how to read the code.

111.png
(The code reads 0123456789)

Thank you for the attention,

Märt Juurma
0 Kudos
Message 1 of 6
(8,297 Views)

I didn't try using the tool, but I can tell you a little strategy.

With dot matrix style fonts (like braille), the OCR needs to know the maximum horizontal spacing between dots within the character.  This may also be called the minimum spacing between characters.  This way, it know if two dots belong to the same character or different characters.  Once you have it separating the characters correctly, the remainder of the training should be really easy.

Remember, you need to use the same spacing settings when reading the text as you did when you trained it.

Bruce

Bruce Ammons
Ammons Engineering
Message 2 of 6
(8,277 Views)
That is it! Great!

Thank you!

Märt
0 Kudos
Message 3 of 6
(8,257 Views)
Ok, here is another issue.

Is there some sort of trick/strategy to force the reader to keep a similar size bounding box around one-element braille char as it does with multiple element characters (222.jpg)? I tried to adjust the minimum of the bounding box and character size, but it seems not to work like that (the horizontal character space seems to be sufficient - excluded numbers 1, 2 and 3 it reads and bounds perfect; 333.jpg).

Best regards,

Märt Juurma
0 Kudos
Message 4 of 6
(8,254 Views)

Now you might have a problem.  This OCR is not positionally dependent.  It can't tell which position a dot is in, such as the number one.  If a single dot is in a different position, it will still read as a one.  Similarly, if there are two dots spaced horizontally, it won't be able to tell which row it is in.

Given the uniform spacing of the characters and the small number of dots, you might have to develop a tool just for reading braille.  It would first have to locate the individual rows, then the individual characters.  Once you have each character isolated, you should be able to figure out which dots are used and match it up with a character.  This would essentially be OCR, but highly speciallized for braille.  Unfortunately, it would take a lot more programming than just the OCR tools.

A shortcut might be examining the bounding boxes of the characters found by the OCR routine, then use your own reader to interpret them.

One more possible improvement is adjusting the min and max character widths for the OCR.  However, this will occasionally run two characters together.

Bruce

Bruce Ammons
Ammons Engineering
0 Kudos
Message 5 of 6
(8,249 Views)

Märt,

I've discovered a trick to help create bounding boxes of about the same size around each character (Braille OCR.JPG).  Basically, I created a border above and below the characters and taught the OCR based on that image (Braille Border.JPG).  I did this programatically by running Detect Objects in Vision Builder AI and then using the coordinates of the objects with an offset to create an overlay of two lines.  I then ran the Labview 8.0 VI "IMAQ Merge Overlay" to merge the overlay with the image for recognition in OCR.  The Bounding Rectangle Width/Height and Min Character Spacing need to be calibrated in the OCR Size and Spacing options to the size of Braille you'll be reading.  The reliability can be greatly increased with some additional training in which the bounding boxes are not dead center (OCR Training.JPG).

I hope this helps, let me know if it still gives you trouble.

David Anderson
National Instruments

Download All
Message 6 of 6
(8,163 Views)