Number Recognition? Is it possible?

I thought of a project where the openMV could look at an odometer-type meter and quantify the analog output as a digital value.
Is there any type of HARR that is sophisticated enough to do alphanumeric recognition?
I imagine that this requires a neural network but I wanted to ask. Ideally I would segment the display into each column and then do a recognition of 0-9 on each segment. I am concerned that a neural net may be necessary to ID the numbers however one positive for the possibility of using openMV is that the numbers are consistent. If i provide consistent lighting then it may be possible to do some simpler “direct” image matching for each number rather than fuzzy matching / classification.

tags: OCR,

I am looking for a rating of 1-10 in terms of how hard you think this would be. Anybody try this yet or have code examples?
Thank you!

Ibrahim looked into this once for reading digits on a meter. It’s actually possible by using image templates. So what you do is basically take a picture of each number with the OpenMV Cam. Save these as templates, then since the camera will be locked into a fixed position with the display you also know the ROI for each digit. Then you just try all the 0-9 number templates at each location where a digit should be and this will let you get the answer. Ibrahim should be able to post the code I think. That said, this solution can’t really deal with numbers that are scrolling where you see half of one number and another like on an odometer. That said, you could save templates for all in between positions of numbers too.

When I have time in the future I will work on implementing the simplest MINST LENET-5 digit recognizer on the OpenMV Cam. The system is more than powerful enough to do this. But, there’s no pre-canned solution available so it’s going to take 2 weeks on concentrated effort which is time I don’t have right now.

Hi… do you have a MNIST based solution for reading numbers or characters using cam?

Yeah, we do, the next firmware version to be released soon has it working. You can do about 14 FPS.

It’s not instrumented to be super easy to use however yet. It just looks a 28x28 pixel ROI and tells you the number there. So, it will only work for apps where the number location and scale are known.

It’s quite possible to update it to scan a adaptive thresholded image and run it on any number sized blobs found. However, this approach will have a very dynamic frame rate and won’t be able to handle overlapping numbers. We may just make it this way though since handling overlap is very processing intensive.

I’ve very interested in doing something very similar.

Any chance of this happening anytime soon ?

Unless our code has changes the chars74k network we package with the IDE should still work. See the example under machine learning.

Hello, I am just getting started with the OpenMV IDE.
I cannot seem to find the chars74k network you mentioned - link
Is there a good replacement or place to start? Thank you.

Hi, we removed that. Please train a custom CNN using Edge Impulse.