Character recognition is one of the most discussed topic in machinelearning. Starting with the most basic digit recognition to alphabets inEnglish, many languages are being studied in the academia. It can be used toconvert documents into e-documents, reading signatures, cheques, etc.
Comparedto the task of recognizing handwritten digits and English alphabets, therecognition of handwritten Punjabi characters is a more challenging task due tovarious reasons. Firstly, there are much more categories for Punjabi charactersthan for digits and English characters as there are ‘Matras’ used. Secondly,most Punjabi characters have complicated structures and are more in number aswell. Thirdly, handwriting style varies hugely from person to person.Punjabi language is an Indo-Aryan language spokenin different countries by their native speakers over worldwide. It is the 10thmost spoken language worldwide. Punjabi is the language which is widely spoken in Pakistan.
Itis the 11th mostly spoken in India after Hindi, Bengali, Telugu, Marathi etc. and it is the third most-spokennative language in the Indian Subcontinent. Inunited kingdom it is the fourth mostly spoken language and in Canada it isthe fifth most-spoken native language (after English, French, Mandarin and Cantonese). There are manypeople likes in the United Arab Emirates, United States and Australia who read, write and spoke this language widely.
It is the language which can be writtenin two different scripts named the Shahmukhi and the Gurmukhi. This wasformally spoken by the Muslims but later this language adopted by the Sikhs andthe Hindus. The motivation for working on this language came from theresemblance to English and Hindi alphabets up to little yet useful extent. This paper describes CNN architecture forrecognizing Handwritten Punjabi characters for Gurmukhi which can also be usedfor Shahmukhi. The paper first focusses on the dataset used as the input to themodel, followed by the pre -processing done to the input to increase theefficiency and finally by the model details and results.
The CNN wasimplemented in Python. The library Keras was used to implement the model. Kerasuses three different backends -tensorflow, theano and cntk. We used theanoduring our work. Further we used a sequential model in keras to implement cnnwhich specifies a simple stack of layers to be used.