Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Digit Recognition

I'm training a simple neural network to recognize handwritten digits. You can execute the program and draw your own digit. The network makes a prediction and tells you what digit you drew. I implemented a neural network with one hidden layer and a variable amount of input and output neurons. The network has an accuracy of 93.4% on the mnist test data, but the accuracy is lower with the GUI (will be fixed in the future).

Features

  • GUI that promts the user to draw a digits on a canvas
  • Data Loader that loads and handles the mnist data
  • Network class which creates a neural network
  • Matrix class with matrix calculations
  • Graph class that creates graphs for the training process of the network (work in progress)
  • Mnist training data is included

Technologies Used

  • JavaFX + FXML
  • Java language
  • Mnist dataset
  • Maven build automation tool
  • VSCode editor

Getting Started

Prerequisites

Installation

  1. Clone the repository (or download the zip from github):
git clone https://github.com/FrozenBirdXD/digitRecognition.git 
  1. Change the file location of weights-biases.txt in the SimpleNetwork class to the relative file location e.g.: digitRecognition\\app\\src\\weights-biases.txt
  2. Navigate to the project directory with the pom.xml file:
e.g.: cd digitRecognition/app
  1. Build the project and install the package files:
mvn install
  1. Run the 'main' method of the class called App to start the program/GUI.

Usage

To use the program run the 'main' method to start. Then just draw a digit!

1 2

Future Plans

  • fix accuracy problem with GUI
  • implement a convolutional neural network (CNN)
  • recognize whole number not just digits
  • add help section with relevant equations for machine learning as lookup

Great literature and references

The following list contains links to great articles and other helpful content I used for this project:

This project is still work in progress but a "pre-release" will be created in the near future.

About

Neural network that recognizes handwritten digits. You can write your own digits in the app.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages