Hi to everyone, I'm new to arduino. I have a question about letter recognition.
The project I want to build is this: A simple image of single black English letter with a specific font (Capital Arial)
in a white background is given to the arduino. It must recognize it. I think It doesn't need a lot of processing.the letters are just this: A,S,H and the whole background is empty. I never done projects like this and I need your help with the code. thanx
A simple image of single black English letter with a specific font (Capital Arial)
in a white background is given to the arduino.
How are you going to "give" this "image" to the Arduino?
I think It doesn't need a lot of processing.
I think you are quite wrong.
That is a really steep ask for such a tiny micro controller. Before you start asking for help with code you need to decide how you are going to get an image that will fit in the tiny amount of RAM you have and how you will process it. The code is the last part.
I think It doesn't need a lot of processing
I would beg to differ.
Quite simply the Arduino does not have enough memory for this sort of thing. Try something like a Raspberry Pi and run openCV image processing software.
What have you got so far? How are the letters going to be "fed" to the arduino? The easiest approach would be to create some sort of CRC or hash for each letter and store it in a lookup-table, but this approach would fail if a camera is involved (lighting, scaling, borders, noise etc).
Please don't expect the community to make your project, so get cracking!
EDIT: The "lot of processing" question depends on wheter we are talking 8x8 pixel monochrome or 1024x1024 full color bitmaps
what if the picture be made of just 300 black and white pixels?
Code_Admiral:
what if the picture be made of just 300 black and white pixels?
If the size is fixed and the letters are always at the exact same position in the image, then it should be possible to do the approach with a table of CRC or hash values
No the position changes.
Is it possible to use tesseract library?
You would need to store an image for each letter on the arduino. Each time you want to check an incoming image, you would need to compare it to each of those images - this means that you would have to perform over 20000 compares over and over again. I do not think the arduino would delive any useful response time for this type of operation - especially not if the incoming images are not identical to the stored ones.
What I learned here is that arduino is not capable of image processing or take a whole life to recognize a letter.
I will do more research and share the result. Thanks
Is it possible to get an array of pixels which each one is a number that shows gray scale level from 0 to 255 from the OV7670 module?
(no FIFO, resolution : 640 x 480)
A little googling suggests that that's what the camera can provide. That's a 300K image though, so none of the mainstream Arduinos could get it into RAM let alone manage the image recognition you're looking for.
Only one of the boards with a Linux system on it has enough capacity, but they're ~three times the price of a Pi.