This project is inspired by the traditional code-access system that depends on keyboard inputs. Instead of punching in numbers, users will be able to write down their password to access their files.
What it does
NumRoll has a GUI that prompts the user to write their five-digit password to access their "homework". Their handwriting will be input into the Neural Network we trained to recognize the digits and store them to a SQL database.
How I built it
The GUI framework is built on PyQt5. We used the pixmap function to create the canvas that registers the user's cursor inputs. The Neural Network is trained using the open-source hand-written digit training data MNIST Digits, the Tensorflow library on python, and GPU acceleration. We also included a SQL database that stores the image classifiers so that we can refer back to the database and analyze the data in a certain way.
Challenges I ran into
The major challenge we faced was to come up with the best algorithm to train the Neural Network to ensure best accuracy. After hours of testing we were table to reach a decent, but not perfect accuracy. Another challenge was to create the canvases using QLabel and pixmap that traces the user's cursor and output the QWidget (snapshots of the windows) as 28px by 28px grayscale jpeg images. It was lots of documentation reading since it was fairly new to all of us.
Accomplishments that I'm proud of
We as a team are proud of the outcome of the Neural Network, the Fluency in running the Qt Framework, and the final bonus ending if the user hits a special code.
What I learned
First of all we learned new styles of programming, using new APIs and libraries, and supporting the interface between each module. We have done hours of study and research to explore the areas like Qt, SQL, and the Neural Network. Second of all, we have learned teamwork and version control using git.
What's next for NumRoll
Many things about NumRoll can be improved. On the Qt side, we can add more functions to the user interface and apply more object oriented programming. For the Neural Network, we haven't reached a perfect accuracy, so we will be looking into different ways to train the network. One last thing is that we can expand the SQL database so it can possibly store user information, their security messages, and how many attempts each user used before unlocking the files.