Click here to Skip to main content
14,449,612 members
Rate this:
Please Sign up or sign in to vote.
See more:
Guys, I have a project on character recognition using a landTiger NXP LPC1768 ARM board using a touchscreen and so on. I have no experience in doing such a project but it's vital to me to do it. can anyone give me some basic ideas about how to start and develop the required code, please? any resources could be helpful. I appreciate your comments in advance.

What I have tried:

I noticed a similar question is asked here and this site is suggested: http://jocr.sourceforge.net
Posted
Updated 13-Sep-19 4:23am
Rate this:
Please Sign up or sign in to vote.

Solution 3

I just looked up the specs of that board, and I can tell you that if you're really limited to 512KB memory, you'll have a hard time running a neural network, and certainly one capable of character recognition!

I can speak of personal experience: 30 years ago I used what was then considered a powerful workstation, with 16 MB of RAM and processing speeds on the order of maybe 30-50 MHz. The processor you have may be faster than that, but the available memory is a far cry from what you'd need for character recognition.

Back then, we hand-crafted a very special neural network structure because we needed to preserve memory. Much later we've learned that others had done a similar thing, and named it Convolutional neural network - Wikipedia[^] . It 'only' required about 4MB RAM, leaving us with enough space to store training sets from about 20 different computer fonts. In the end we were able to recognize the majority of characters from a dozen other fonts that we've held back for testing. Note that all of these were computer fonts, not handwritten, and we did not require separate algorithms (and memory) for picking the outlines of single characters from the middle of a hand-written word.

It took the three of us several months to get this working in our free time (IIRC around 30 hours/week avg), and all of us already had experience with the design and programming of neural networks, C++ (not C!), and parallel programming.

Tl;dr: It's a helluva tough job to pull off, especially if you intend to do this on your own, without preexissting knowledge of the topic(s) at hand. And it's near impossible with less than 10 MB of RAM. Don't even mention handwritten characters.
   
Comments
Mahdi_it 14-Sep-19 5:19am
   
Thanks, man. Actually, we are two students and we should do this project instead of an exam. I also asked other experts and all are telling me that the board may not be capable to handle the job. specially using C makes it much complicated, some are suggesting us to use a raspberry board and do it using an OS and python. I guess it could be much easier in that way.
Stefan_Lang 16-Sep-19 6:27am
   
You can find plenty of Code for ANNs, and I suspect maybe someone did it in C, too. However, if I read those specs right, you'll simply run out of memory. While a Convolutional Neural Network does save you a lot of memory and processing power, I'm not aware of any C implementations. And you'll still run out of memory.

As I said: this is all personal experience, dating back to a time when we were actually taught how to preserve memory, down to bits. If you can attach some 16MB or more of RAM, and preferably at least as much of whatever you use as persistent memory, then it might work. But until then I suggest to first make it work on a standard laptop or PC, before trying to move it to such a restricted device!
Rate this:
Please Sign up or sign in to vote.

Solution 1

   
v2
Comments
Mahdi_it 14-Sep-19 5:20am
   
Thank you so much.
Rate this:
Please Sign up or sign in to vote.

Solution 2

So go there, and start reading.

This is a complicated subject, and you will probably have to do a lot of work to get it up and running.
But ... you have a starting point - so go there, start reading and think about how that needs to be adapted to fit your hardware and your software requirements (which we have no idea about - "I have a project on character recognition using a landTiger NXP LPC1768 ARM board using a touchscreen and so on" tells us nothing at all about what you are trying to achieve). If it turns out that there are good reasons why that won't work, Google will find you others - there are a few out there!

Then start it like any other project: overview, software specification, test specification, design, code, test, repeat.
We can't do that for yoU!
   
v2
Comments
Mahdi_it 14-Sep-19 5:19am
   
Thank you so much for your help.
OriginalGriff 14-Sep-19 5:40am
   
You're welcome!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100