Neural Network trained to detect consistent-font numbers amongst large dataset complex images.
Screenshot Gallery...
Class | # of Training Images |
---|---|
Zero | 1368 |
One | 588 |
Two | 144 |
Three | 109 |
Four | 105 |
Five | 184 |
Six | 119 |
Seven | 324 |
Eight | 558 |
Nine | 493 |
Layer # | Specific Type | Settings |
---|---|---|
0 | Random Flip | |
1 | Random Rotation | |
2 | Random Zoom | |
3 | Rescaling | |
4 | 2D Convolutional |
|
5 | 2D Max Pooling | |
6 | 2D Convolutional |
|
7 | 2D Max Pooling | |
8 | 2D Convolutional |
|
9 | 2D Max Pooling | |
10 | Dropout |
|
11 |
| |
12 |
|
Initial Training:
Initially, the algorithm was applied to separate all number within the image (as determined by the strongest found contours).
Self-supported Training:
With a functional, yet inaccurate network running, a classification was run on all images in the set.
The results were then manually filtered, creating a significantly large set of accurate data.
The neural network training is run on this larger dataset, creating a significantly higher accuracy.
Correctly Identify all 4 numbers: 1294/1324 (97.734%)
Correctly Identify all 4 non-corrupted numbers: 1300/1324 (98.187%)
With the accuracy of the neural network, it appears that the error lies in incorrectly canny-edged images. Different threshvalues or a blurring method may provide an increase in accuracy