Skip to content

Harry-Thasarathan/Java-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSCI 2020u Final Project - Computer Vision Deep Learning Demo

by Tamilselvan Balasuntharam, Harrish Thasarathan, Tommy Turcotte and Spencer Denford https://github.com/Harry-Thasarathan/Java-Project.git

Introduction:

Here we present our final project for csci2020u, a computer vision and deep learning application with 3 interactive demonstrations. These include a hand written (single) digit recognizer, where the user can draw a number and our trained neural network will recognize it. A binary cat vs dog classifier, where the user can feed an image of a dog or cat and have a neural network determine which animal it is. As well as a Style Transfer demonstration where the user can take a webcam picture of themselves and have the style of the photo changed (similar to instagram filters).

Prerequisites

  • Java 1.8 (JDK)
  • DeepLearning4j Library
  • Maven

Installation

  • Clone this repo (allows use of DL4j libraries):
$ git clone https://github.com/deeplearning4j/dl4j-examples.git
$ cd dl4j-examples/
$ mvn clean install
  • mvn clean install can take some time
  • Note that the library is large, delete it from your system when finished if you prefer
  • Clone our repo
$ git clone https://github.com/Harry-Thasarathan/Java-Project.git
$ cd Java-Project
$ mvn clean install
  • Open the project in IntelliJ, navigate to the Java-Project folder (stuff outside gives us git errors to remove), that is where the working code is and run the server and then the client files from IntelliJ, this will show the main menu from there you can view the rest of the demos

Hand Written Digit Recognizer:

Image description Left click and draw a number (0 to 9), then press enter. Our code will print the networks prediction as to the number classification. Below that is a more detailed label

Cat or Dog:

Image description

Upload a photo of a dog or a cat using our menu system. Press button to view the prediction on the left. Our code will distinguish weather it is a dog or a cat.

Style Transfer:

Image description

Pressing the Capture! button will capture a webcam image. Pressing Stylize! will then run the style transfer algorithm on the webcam image. Since the style transfer image is computationally expensive and doesnt work well in the javafx thread (even as a seperate task), use our menu systems open command to open you file system and open the produced images to the screen. They are saved under resources.

Server

  • Tracks people in cliend

Client

  • provides main menu (run server then client)

Contributions

Harry

  • Hand Written Digits Demo (AlexNet network trained in python in google colab free tesla k80 GPU on Mnist dataset)
  • Readme
  • Cat vs Dog network trained in Python (CNN also google colab)

Tamilesh

  • UI for cats vs dog prediction
  • Style Transfer Algorithm Modifications
  • Style Transfer UI

Spencer Denford

  • Color extraction (ended up not using in demo for space)
  • Readme

Tommy Turcotte

  • Server functionality
  • Client functionality

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •