'Handwritten digit recognition without deep learning techniques

I have a project to hand in which requires me to develop a program in python which would recognise handwritten numbers given in the form of image(i imagine the MNIST dataset would come in handy) BUT without the use of deep learning techniques,tensorflow library etc.

can anyone suggest what type of algorithm should i try to solve the problem with?

thanks in advance!



Solution 1:[1]

You can use classification method of machine learning such as SVM.
Take a look at this exemple : https://scikit-learn.org/stable/auto_examples/classification/plot_digits_classification.html

Solution 2:[2]

I must say i have never done this (without neural networks), but here is a suggestion which may or may not work:

if it is MNIST we are talking about (i.e. everything labeled, all digits kinda centered within there image, all images equal size and ratio, ... yada yada) you could try to subdivide one such an image at hand in 4, 16 or better 64 quadrants or quads (i.e. what I am suggesting here is a simplified approach to quad-trees: https://en.wikipedia.org/wiki/Quadtree).

Now if white == 0.0, black == 1.0 and grey \in ]0, 1[ you can average colors across each quad and across all of on (what used to be) your training set. This provides you with an averaged pattern for each of the 10 digits (0, 1, 2, ..., 9).

Now to identify a new image you need to check to which of the 10 you are closest within a metric/norm.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 LCMa
Solution 2 Tom