greydanus / pythonic_ocr

A convolutional neural network implemented in pure numpy.

Home Page:https://pythonic-ocr.herokuapp.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pythonic OCR

Website

A convolutional neural network implemented in pure numpy.

Description

I built this project to teach myself about how deep convolutional neural networks function. First, I created my own MNIST-like dataset with about 30 alphanumeric symbols.

Next, I trained a deep convolutional network using Keras and saved the weights using python's pickle utility. Finally, I rewrote all the forward propagation code in pure numpy (as opposed to Theano or Tensorflow as in Keras). This lets me run the network as a demo via heroku.

There are a few Easter eggs too: try a five-pointed star or a triangle!

Dependencies

*All code is written in python 3.

Dependencies are packaged in the flask folder, so this app does not have any external depencies.

Examples

I trained the network on my own handwriting, so performace will be slightly different for other individuals. Even so, it is good at making fine discrimination such as judging the difference between O/Q:

recognized_o.png recognized_q.png

About

A convolutional neural network implemented in pure numpy.

https://pythonic-ocr.herokuapp.com/


Languages

Language:Python 96.3%Language:C 2.8%Language:C++ 0.3%Language:JavaScript 0.3%Language:HTML 0.2%Language:CSS 0.1%Language:Fortran 0.0%Language:Shell 0.0%Language:Objective-C 0.0%