normalizing mnist digits

I'm slowly working my way towards mnist digit recognition. Today's contribution is a normalization step, which I assume will help. Behind the scenes it actually represents quite a bit of code, though in this post I'll just describe the broad steps. Eventually I will probably try to automate it into a single script.

First step, average digits in the full 60k training set based on their labels:
$ ./
Producing these average digits:
Though we should note this only works because it is a well constructed data-set, that has been pre-aligned.

Next, extract average features, using k = 5 (ie 5*5 tiles) and average categorize threshold t = 0.8:
$ ./ 5 work-on-handwritten-digits/label-average-images/
Producing these features:
And this corresponding sw file, that we need in phi-transform.

Here are the raw 2000 test images:

Next, we phi-transform the test images:
$ ./ 5 work-on-handwritten-digits/test-images
Producing these images:
Then final step, we edge enhance them:
$ ./ 20 work-on-handwritten-digits/phi-transformed-images-v2/
Update: I finally have them all done:

previous: p pattern similarity metric in python
next: full mnist results

updated: 19/12/2016
by Garry Morrison
email: garry -at-