Skip to content

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

Notifications You must be signed in to change notification settings

FrozenBirdXD/Digit-recognition

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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages