Handwritten Digit Recognition System
Project Blog
Week 1
It has been decided that the project will be carried out in MATLAB and the concept of convolutional neural networks will be used. Project roles have been allocated to each member of the group with the following :
• Ziqi Sun– Code designer
• Xiaowei Shi – GUI designer
• Wasif – Technical Writer
It has been decided that more research needs be done individually. The following recourses will be used :
https://uk.mathworks.com/matlabcentral/answers/157363-matlab-code-for-detect-digits-using-neural-network
https://uk.mathworks.com/matlabcentral/answers/90253-handwritten-digit-recognition-using-neural-networks-how-to-configure-for-2-d-input
https://www.youtube.com/watch?v=4wmCg4Smpj0&t=254s
https://www.youtube.com/watch?v=rFvOusaM51A&t=0s
Week 2
It has now been decided that we will not use MATLAB for this project due to the lack of variety within the platform. We found with Python, the library TensorFlow is a lot better for this type of task with a lot more resources to use and learn from. It has therefore been decided that we will instead code in python. Due to this, we have been set back and are behind schedule. More research will be done on how to get this done and what platform to use.
It was finally decided at the end of this week that we will use the Jupyter platform and code in python. The following resources were used :
https://deeplizard.com/learn/playlist/PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU
https://github.com/codebasics/deep-learning-keras-tf-tutorial/blob/master/1_digits_recognition/digits_recognition_neural_network.ipynb
Week 3
We have made some progress on the main code and that of the GUI.
The testing part of the code has been finished. We have decided that we will use the tensorflow library to construct this software. The code starts off by defining the training and testing data using the mnist database. After that the Sequential Model is designed using a flatten layer with 28 x 28 shape, 2 dense layers with relu activation functions and another dense layer with the softmax activation function. The optimizer is then defined by ‘Adam’ and the loss by ‘sparse categorical crossentropy'. The model is then saved and tested going through 20 epochs to train. The model is training well with a final accuracy of approximately 97%.
The GUI face window has been designed also. So far it looks like this :
As you can see, the GUI does not yet have a window for the user to implement their own handwriting, this is something that needs to be done by the end of week 4. Finally the GUI will need to be implemented with the sequential model (main code) as at the moment they are two separate codes.
Week 4
The code is finally complete. The GUI was updated so that we included a window that allows the user to input their handwritten digit. When this was done, the design remained the same until the GUI was updated replacing the ‘recognize button’ with a ‘save’ button.
By doing this, it allows the program to predict the digit being input instantly without having to press any button to run the NN model. By clicking the save button, the user is able to save a photo of the handwritten digit they inputted as a JPEG.
We also input some code in the NN model that shows a graph of the accuracy and loss against the number of epochs as the model is being trained :
Poster :
Comments
Post a Comment