Coder Social home page Coder Social logo

mcagriaksoy / highprecisekannadadigitrecogniser Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 1.13 MB

Kaggle Top 4% Project. CNN Based high precise MNIST like Kannada digit recognizer

License: GNU General Public License v3.0

Jupyter Notebook 100.00%
deep-learning machine-learning cnn kaggle swish mnist kannada digit-recognition digit-recognizer digit-classification

highprecisekannadadigitrecogniser's Introduction

High Accuracy Kannada Digits Recogniser

Kannada digits are different than standard arabic digits. Over 50 million people that liver India uses those digits in their daily life. Kannada MNIST dataset is prepared like MINIST but the detection of numbers are harder than standard arabic digits. CNN Based high precise MNIST like Kannada digit recognizer is created for a competition is organized by kaggle. With this solution, The competition is completed in top 4 percentage.

Project

About this dataset

Competition Info: The goal of this competition is to provide a simple extension to the classic MNIST competition we're all familiar with. Instead of using Arabic numerals, it uses a recently-released dataset of Kannada digits.

Kannada is a language spoken predominantly by people of Karnataka in southwestern India. The language has roughly 45 million native speakers and is written using the Kannada script.

This competition uses the same format as the MNIST competition in terms of how the data is structured, but it's different in that it is a synchronous re-run Kernels competition. You write your code in a Kaggle Notebook, and when you submit the results, your code is scored on both the public test set, as well as a private (unseen) test set. Technical Information

All details of the dataset curation has been captured in the paper titled: Prabhu, Vinay Uday. "Kannada-MNIST: A new handwritten digits dataset for the Kannada language." arXiv preprint arXiv:1908.01242 (2019)

On the originally-posted dataset, the author suggests some interesting questions you may be interested in exploring. Please note, although this dataset has been released in full, the purpose of this competition is for practice, not to find the labels to submit a perfect score.

In addition to the main dataset, the author also disseminated an additional real world handwritten dataset (with 10k images), termed as the 'Dig-MNIST dataset' that can serve as an out-of-domain test dataset. It was created with the help of volunteers that were non-native users of the language, authored on a smaller sheet and scanned with different scanner settings compared to the main dataset. This 'dig-MNIST' dataset serves as a more difficult test-set (An accuracy of 76.1% was reported in the paper cited above) and achieving ~98+% accuracy on this test dataset would be rather commendable. Acknowledgments

Kaggle thanks Vinay Prabhu for providing this interesting dataset for a Playground competition.

Environment

Kaggle Cloud Computing, GPU Based Tensorflow 2.0, Keras

My Architecture

I have used CNN architecture to build a model. To increase accuracy, A different activation function is used. The function is named swish is not generally described on Keras. So, I need to define as custom activation function which simply Sigmoid*X . It increases the time complexity but also increases the accuracy.

Swish Activation Function

The unique part of model is activation function. swish activation function is used in layers. Project

Optimizer that I used

We have many optimizer algorithms and methods in deep learning. In this project RMSProp is used. Due to research Adam behves slightly better than RMSProp but, In my solution RMSProp behaves better. On the other hand, earlystopping and ReduceLROnPlateau features of keras are used. They decrease training time and prevent overfitting. Comparison between optimizers:

Project

Accuracy improvements

To increase dataset and obtain overfitting, I have manupilate the images and create new ones to train model. They are shifted, rotated a bit and some minor noise cancellition process happened.

Results

My results are: 0.99200 accuracy (due to kaggle competition result) Project Project Project

Conclusion

In conclusion, a CNN model is created for Kannada digit recognizer. The results are brilliant for me. The unique part of project is activation function part. (Swish is used) In the future, I would like to adapt GNN in this solution. Because in this kannada digits they have more feature than standart arabic numbers. So, I can use some graph networks to detect cross lines on the image.

References

https://www.kaggle.com/c/Kannada-MNIST https://www.kaggle.com/c/digit-recognizer/ https://en.wikipedia.org/wiki/Kannada https://arxiv.org/abs/1908.01242 https://www.researchgate.net/figure/speech-for-Kannada-numbers_fig2_313113588 https://github.com/vinayprabhu/Kannada_MNIST

highprecisekannadadigitrecogniser's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.