This project deals with recognizing individual math symbols. I had a goal to be able to recognize handwriting and I think I have achieved it. Almost everything I did in this project was brand new to me. I had never used Git before, barely knew Python, never used Google Colab etc. Everything in this project was extremely difficult. It took a week to figure out how to draw out 150,000 images in my data-set and get them in the correct format. It took multiple weeks to figure out how to crop and shrink all my images so that my RAM stopped crashing every time I tried to move the file around. When I started training my model I felt like I was on the home stretch. Then I realized that I had some images that were completely black because of errors in my preprocessing. I had to go back and redo everything and remove most of the black images. Another problem I encountered was a limit on GPU training hours. Since my data-set was really large, every epoch of training took a lot of time. I would be almost done with my training and then my session would crash and I would have nothing to work with. I solved that problem by learning about callbacks and how to constantly keep saving the best version of my model. I built my final project over an existing Github repository where a similar task was being worked on. The webapp has a few tabs but the only one that I adjusted was the MNIST tab. My lack of knowledge of HTML and limited time stopped me from personalizing my page. In the end I found that for some symbols my system works really well and for others it is extremely terrible at predicting the image. I think this has to do with my cropping of the original images and the fact that I had to draw out the symbols which caused a lot of extra noise in the images. I will continue to work on the system but I am confident that if I can obtain a better data-set of real images then I can create a system with an accuracy in the 90's.

Built With

Share this project:

Updates