Giter Club home page Giter Club logo

simple-image-classifier's Introduction

Simple Image Classifier

About project

This project contains application that is a simple image classifier backed by artificial neural network trained via backpropagation algorithm. This ANN implementation supports multiple hidden layers.

The aim of this project was to made an easy to use image classifier for "everyone". Because of that, application contains JavaFX GUI. However, tuning the network might require at least some knowledge in machine learning.

Features

  • easy to use
  • takes folders as input
  • GUI
  • written in Java 8
  • multiple training strategies (iterations, deviation, deviation difference)
  • configurable
  • starting and stopping of training at will
  • multithreaded multistart
  • optional automatic learning rate adjustment and restoration of prior model with better accuracy

Potential problems

Project uses JSON files for saving and loading data which are not really optimal because of their raw, uncompressed format and the fact that image data is also stored there. You might drastically reduce their size by basic compression (zip, 7z, rar, etc) and by removing image data if you do not need to train classifier further. I might in future implement those functionalities.

Libraries used

  • GSON
  • JavaFX

Future of the project

I do not plan to further develop this version of the project (apart from maybe fixing issues mentioned above). However, I have some ideas that might turn into new version of the project:

  • client - server architecture
  • support for more models (different than artificial neural network)
  • SIMD support once Java supports it

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.