Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Problem while reading Characters from Vacuum fluorescent Display(VFD) of DVD using OCR

Hi,
Happy New Year!!!!
I am using PXI-1409 card to read the Vacuum fluorescent Dispaly(VFD) of a DVD using an analog CCD camera. Pl. see the attached bmp file. My objective is to recognize all the characters in the first line(CD 0:02 MP3"), IInd line (SHUFFLE REPEAT DISC) and the third line(SHUFFLE REPEAT DISC) including as many no. of spaces in between. My program has to automatically locate all the three lines. I have trained an OCR file to read all the possible characters many times. Also I have set the acceptance level as 720 and theshold limits (40-255), Read Resolution as Low and other various settings in OCR file. I am able to read all the characters 90% of the time but sometimes I am not able to recognize the right characters, for e.g it reads
H as M
or M as N
or zero as 'O'
or F as P etc. I have trained all the characters more than one time. I want my program to be 100% reliable and repeatable. I have tried all the methods to obtain it but still it not 100% perfect.

Kindly suggest the best method to obtain it.

Thanx in advance.
Nirmal Sharma
0 Kudos
Message 1 of 11
(5,191 Views)
I am sorry, bmp file could not be attached last time. I am doing it now.

Thanx
Nirmal
0 Kudos
Message 2 of 11
(5,183 Views)
Hello Nirmal,

Looking at the image that you attached, it seems that a good job has been done of creating very high contrast between the characters and the background. I do have several suggestions in terms of achieving higher levels of accuracy in terms of performing OCR on this type of image. If possible, it would be good to minimize the blur that occurs to the extremities of the image. That is, to the far left and far right, there seems to be significant blurring. The 'S' of "SHUFFLE" appears differently than that of "DISC." Performing some filtering on the image would reduce that.

Additionally, on the bottom row, the characters seem to be very close together. Again, filtering the image may help this. Also, you should ensure that you train each character individually and then specify minimum and maximum character widths that correspond to the character dimensions. I would use several different images to train your OCR, since the characters may appear differently in different locations.

As we increase the number of characters in the character set file, the OCR will become significantly more accurate.

Regards,
Scott R.
Applications Engineer
National Instruments
Scott Romine
Course Development Engineer
National Instruments
0 Kudos
Message 3 of 11
(5,163 Views)
HI Scott,

Thanx for your reply.

Could you please suggest what kind of filtering is supposed to be done, for e.g some vi can be referred. I have attached an image where I have tried to sharpen the borders and characters in the image. Here first of all, I need to locate all the three lines lies in the image. I am using IMAQ count objects vi to find ROI for all the characters in the image. I am setting the theshold limits as 65-255. But when I sharpen the image attached, I m not able to map ROI for all the characters. for e.g. M is not identified here. I have tried to reduce the minimum theshold limit to 20 but it does not affect any more. Once I am able to locate all the characters, I need to find the angle of inclination with the horizontal axis bcoz sometime camera may be bumped which may result into tilting of image. Once I find angle of tilt, I shift the image for the opposite angle so that it gets aligned to the horizontal axis. Here also there are few problems but it is acceptable. Third step is to read all the characters through OCR.

Presently I am not able to achieve 100% results in any of the three steps which together affects the reliability and repeatability severely. So I need to get some good idea or solution in all the three steps to improve the accuracy but its targeted more than 100%.

Thanx again,
Nirmal
Email: nirmal_sharma@bose.com
0 Kudos
Message 4 of 11
(5,154 Views)
Hi

I would suggest using a pattern match or intensity check on the words at the bottom of the display. I am working on the basis that this works the in the same way as an LCD and the words "shuffle", "repeat" and "disc" will only ever be on or off. I would also run a dilation on a thresholded image. This will close up any gaps between dots which should help the OCR work better. Only having one st of characters in the font set will again make the OCR easier to work with.

Hope that helps

Mike
Message 5 of 11
(5,143 Views)
Hi Mike,

Thanx a lot for your help. Your idea helps a lot. Great!!!. Accuracy has been improved quite a lot but still very few times rarely, the characters gets mingled like it reads M as N. I have set all the strict criteria in OCR training as below:
Threshold: Mode: Uniform, Characters -> Light on Dark
Advanced Threshold: Threshold Limits:65 - 255
Sizing and spacing: Min Char spacing: 2, Max Element Spacing(x):2, (y): 0
Read Options: Read strategy: Conservative, Read Resolution: High, Aspect Ratio Dependent: True, Aspect Ratio: 150%, Acceptance Level: 725

So if you have idea to achieve 100% accuracy, kindly suggest.

Again thanx a lot for your great help.

Nirmal
0 Kudos
Message 6 of 11
(5,126 Views)
Hello Nirmal,

For the characters that seem to be coming up incorrectly (i.e. M read as N) be sure that you have several different images of the character trained. In those cases, it may help to train the characters that are read correctly in addition to the ones that are read correctly. The more thorough the character set is, the more likely it is that the characters will be read without errors.

Are there any other variations that are causing the images to be significantly different when reading the same characters?

Regards,
Scott R.
Applications Engineer
National Instruments
Scott Romine
Course Development Engineer
National Instruments
0 Kudos
Message 7 of 11
(5,100 Views)
Hi Scott,
Thanx for your response.

I have trained the characters several times. So the probability of error is highly reduced. But still once in a while its not able to read few characters which again deviates my application from 100% perfect result. And now its very tuff to find the incorrectly read characters bcoz as it appears only once in a while. So I keep on pressing read button in my software for 100 times for reading characters and I am able to read all the characters correctly and I feel my application is done. Suddenly someone comes and hits the "Read" and says its not able to read the characters correctly and at that time the image has gone. So I am finding the training character process is never ending and I am not able to conclude my application.

As DVD refreshes the VFD screen continuously within milliseconds, so light intensity keeps varying and that's why sometime its tough to catch the same intensity characters everytime.

Kindly suggest the solution.

Thanx,
Nirmal
0 Kudos
Message 8 of 11
(5,021 Views)
What I underdstand is that you are trying to read WORDS (and probably do something after that, according to the word significance...). So instead of trying to decode single letters, may be you could try to identify whole words, accepting some mistakes.
There are several solutions to this problem, but since there are only a few chars that are mistaken, and a limited number of words to be decoded, you could build a table with for instance SHUFFLE,SMUFFLE,SNUFFLE and so on, then search the table for the word, and if found decide that it was SHUFFLE.
Alternatively, there are some powerfull properties in the String Search function that could be used, such as searching for a 7 letter word beginning with (S or 5), and finishing with (E or F)...

Hope this helps...
Chilly Charly    (aka CC)
0 Kudos
Message 9 of 11
(5,011 Views)
You might want to try pattern matching instead of OCR if you have a limited number of words that will display. It might be faster and more accurate to check each word's pattern instead of individual letters.

Also, check if the output is what is expected, and automatically save the image if it fails. This will make it available for later review. You could also put a button on the screen that allows the operator to save the last image when it fails.

Bruce
Bruce Ammons
Ammons Engineering
0 Kudos
Message 10 of 11
(4,986 Views)