• Stars
    star
    162
  • Rank 232,284 (Top 5 %)
  • Language
    Jupyter Notebook
  • Created over 5 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A doodle classifier(CNN), trained on all 345 categories from Quickdraw dataset.

DoodleNet

This is a series of experiments I did about Doodle Classifier(a Convolutional Neural Network) using tensorflow.js and tensorflow. The data I used is from Quickdraw dataset.

Here are a list of the projects -

  1. Train a doodle classifier with tf.js
  2. Train a doodle classifier with 345 classes
  3. KNN doodle classifier

Credits: Big thanks to @zaidalyafeai's sketcher google colab for training.

1. Train a doodle classifier with tf.js

I trained a doodle classifier with 3 classes(bowtie, lollipop, rainbow) in the browser using tfjs' layers API and tf.js-vis. The code is based on tf.js Example - Training MNIST.

Try a live demo here.

Once you open the webpage, wait until the page load the data, train the model, evaluate the model. It will download two files: myDoodleNet.json and myDoodleNet.weights.bin. To test this model your self, you can load these two files back, and click on 'load model' button, then draw sth on the canvas, hit 'Guess' button to let model start guessing the drawing.

2. Train a doodle classifier with 345 classes

It's trained on all 345 categories from Quickdraw dataset, 50k images per class. It's trained with tensorflow, and ported to tf.js in the browser. Here is the training notebook.

This notebook is heavily based on @zaidalyafeai's Sketcher notebook on 100 classes. I expanded the data to 345 classes and added a few layers to improve the accurary on 345 classes.

I used spell.run's remote GPU machine with big RAM to load all the data and train the model.

Try a live demo here.

3. KNN doodle classifier: Customizable doodle classes

Based on the previous doodle classifier of 345 classes, I added KNN classifier to it, so people can customize their own doodle classes.

Try a live demo here.

You can draw 10+ circles and add them to class A, and draw 10+ lines and add them to class B, then let the model to guess your new drawing. You can define any other classes, it doesn't need to be circles or squares.

Get started

To run each examples locally, open your terminal, type in the following commands:

$ git clone https://github.com/yining1023/doodleNet.git
$ cd doodleNet
$ python -m SimpleHTTPServer     # $ python3 -m http.server (if you are using python 3)

Go to localhost:8000/demo in your browser, you will see a directory list like this:

  • DoodleClassifier_345/
  • DoodleClassifier_KNN/
  • TrainDoodleClassifier/

Click into each example to see the demo.

More Repositories

1

machine-learning-for-the-web

Repository for the "Machine Learning for the Web" class at ITP, NYU
JavaScript
402
star
2

fast_style_transfer_in_ML5

This is a demo of Fast Style Transfer in p5ML
HTML
77
star
3

pix2pix_tensorflowjs

pix2pix in tensorflow.js
JavaScript
50
star
4

styleTransfer_spell

Style Transfer example with ml5.js, training the model with Spell.run
JavaScript
47
star
5

Machine-Learning-for-Physical-Computing

Repository for the "Machine Learning for Physical Computing" class at ITP, NYU
JavaScript
45
star
6

p5PlayGround

An interactive programming tool for p5.js that allows people to manipulate shapes on the canvas in real time
JavaScript
40
star
7

pix2pix_tensorflowjs_lite

pix2pix in tensorflow.js
JavaScript
39
star
8

algorithm-questions

answers for algorithm-questions from Leetcode in Javascript
JavaScript
22
star
9

teachable-machine-p5

teachable machine prototype + p5.js sketches
JavaScript
19
star
10

p5.ble.js

A Javascript library that enables communication between BLE devices and a p5 sketch using Web Bluetooth API. https://yining1023.github.io/p5ble-website.
JavaScript
13
star
11

p5jsInspectorChromeEX

Let people manipulate shapes on the canvas in real time using their p5 sketches
JavaScript
13
star
12

Jumpstarting-the-Arduino-101

This repository holds all the code for projects from Jumpstarting the Arduino 101 book
Arduino
8
star
13

bots-and-machine-learning

Syllabus for bots and machine learning at School of Machines, Making & Make-Believe
JavaScript
6
star
14

posenet-knn

posenet + knn in tf.js
JavaScript
5
star
15

brickBreaker

This is a brickBreaker game using p5.js
JavaScript
5
star
16

thesisBook

Thesis book for ITP NYU 2017
JavaScript
5
star
17

p5ble-website

website for p5.ble.js
JavaScript
4
star
18

openpose_runwayml_video

find pose and draw stickman in videos with openpose model and runwayml
JavaScript
4
star
19

timer

JavaScript
3
star
20

pix2pix_spell

Use Spell to train a pix2pix model, run the model in tensorflow.js and ml5.js
JavaScript
3
star
21

body-pix-demo

body pix demo
JavaScript
3
star
22

ITP-Project-Finder

A client side project search app that indexes all the projects made by ITP alumni from 2004 - 2016
CSS
3
star
23

p5-ble-examples

Examples for p5.ble.js: https://github.com/yining1023/p5.ble.js
C++
3
star
24

teachable_machine_p5ml

A recreation of google's teachable machine in p5ml.js
CSS
2
star
25

poseNet_tfjs_demo

poseNet_tfjs_demo
JavaScript
2
star
26

pix2pix_edge2pikachu_deeplearnjs_old

pix2pix edge2pikachu in deeplearnjs
JavaScript
2
star
27

100days

JavaScript
2
star
28

glsl_tutorial

GLSL
2
star
29

node-express-api-boilerplate

JavaScript
2
star
30

IFA

HTML
2
star
31

Densepose2Texture

Python
2
star
32

ml4w-homework

HTML
2
star
33

cat-filter

JavaScript
1
star
34

friendship.am

JavaScript
1
star
35

style_transfer__mirror_p5ml

HTML
1
star
36

ml5-ble-example

JavaScript
1
star
37

whatToEat

JavaScript
1
star
38

pr-changes-action

JavaScript
1
star
39

peerToPeerPong

This is a peer to peer communication 2 player pong game
JavaScript
1
star
40

p5-ble-examples-archived

Examples for p5.ble.js
C++
1
star
41

socialGenius

This is a social genius game written in React
JavaScript
1
star
42

schoolofma_code

all the code from school of ma bots and ml workshop
JavaScript
1
star