This chapter discussed how to recognize handwritten digits using the Histogram of Oriented Gradients image descriptor and a bit of machine learning.
However, HOG is not the only method that can be used to recognize digits.
In fact, you can train an entire end-to-end system to recognize digits in images using only the raw pixel data. To do this, you need to apply deep learning.
Deep Learning
My first suggestion when applying deep learning to handwriting recognition is to utilize a Deep Belief Network (DBNs):
http://www.pyimagesearch.com/2014/09/22/getting-started-deep-learning-python/
This method will give you a good baseline on how to train your own deep learning networks using only the raw pixel data.
Convolutional Neural Networks
However, a better approach than using DBNs are Convolutional Neural Networks (CNNs) which tend to generalize better in the real world (and obtain higher classification accuracy).
Inside the following tutorial, I demonstrate how to train LeNet, a popular CNN architecture, to recognize handwritten digits in the MNIST dataset:
http://www.pyimagesearch.com/2016/08/01/lenet-convolutional-neural-network-in-python/
Interested in Deep Learning?
If you’re interested in learning more about Deep Learning and Convolutional Neural Networks, be sure to take a look at the PyImageSearch Gurus course.
Inside the course, you’ll find over 20+ lessons dedicated to Deep Learning, Convolutional Neural Networks, and training your own custom networks.
To learn more about the PyImageSearch Gurus course (and grab the free course syllabus + sample lessons), just use this link:
https://www.pyimagesearch.com/pyimagesearch-gurus/