This new Handwriting Recognizer using Python is created by Ankita Sikder and other group members who are students of BTECH, in University of Engineering and Management, Kolkata.
Email Id: [email protected].
This is basically a group project for Project-1 in UEMK. I have contributed some parts. All names of the group members are in developers section. Handwriting recognition (HWR), also known as Handwritten Text Recognition (HTR), is the ability of a computer to receive and interpret intelligible handwritten input from sources such as paper documents, photographs, touch-screens and other devices. The image of the written text may be sensed "off line" from a piece of paper by optical scanning (optical character recognition) or intelligent word recognition. Alternatively, the movements of the pen tip may be sensed "on line", for example by a pen-based computer screen surface, a generally easier task as there are more clues available. A handwriting recognition system handles formatting, performs correct segmentation into characters, and finds the most possible words. I have made a handwritten recognizer for recognising both handwritten text and OCR. By running a python program in computer user can use it. I have made a GUI to make it user friendly. It can recognize characters and numbers written with hand or optical character. After detection we get 99% accurate results. It can be implemented in many areas in present digital world. Python-tesseract is used to recognize and read the text. In handwriting recognition (HWR) the device interprets the user's handwritten characters or words into a format that the computer understands (e.g., Unicode text). The input can be from paper documents, images, touch-screens and other devices. There are many levels of HWR, starting from the recognition of simplified individual characters to the recognition of whole words and sentences of cursive handwriting. Character recognition often involves scanning a form or document. This means the individual characters contained in the scanned image will need to be extracted. After the extraction of individual characters occurs, a recognition engine is used to identify the corresponding character. OCR systems consist of following major stages : β’ Classification β’ Post-processing β’ Feature Extraction. This Handwriting recognition is used for numerous applications such as : reading postal addresses, bank check amounts, and forms. Furthermore, OCR plays an important role for digital libraries, allowing the entry of image textual information into computers by digitization, image restoration, and recognition methods.
Coming to the the main working part of our project. Here main three parts are present. First one is GUI part which means the Graphical User Interface part of our project. Second one is Handwritten Digit Recognition part. It contains also a GUI part that is Handwritten Recognition GUI and second one is functionality part. In this functionality part two functionalities are present, first one is pictorial detection functionality that recognizes Handwritten digits from an image and second one is the live detection functionality that recognizes handwritten digits from a video. Let us come to the ocr part of our project. Ocr stands for Optical Character Recognition , here we use Tesseract algorithm to detect handwritten characters as well as type written character also. In this part after recognizing the characters it will pronunciated by python text to speech library that is the pyttsx3 library in python. Let me deep dive into the GUI part. GUI is basically type of user interface through which users interact with electronic devices via visual indicater representation . It allows the user of a computer to communicate with the computer by moving a pointer around on a screen and clicking a button. In our project it is created by Tkinter package In python.This has a developer section which is also made by Tkinter.In our project handwritten digit recognition part is made by the concept of deep learning. Basically deep learning is a subset of machine learning. In this part we will create a deep learning model using the MNIST dataset which is present in the keras model in python. The set of images in the MNIST dataset is a combination of two of NIST's databases. The MNIST databases are special database 1 and special database 3.It consists of digits written by High School students and employees of United States Census Bureau. The MNIST dataset contains total 70000 images in those 60000 images are training images and 10000 images are testing images. All images are normalized to fit into 28 into 28 pixels. Let us a come to the model creation part. Here we use CNN analysis to create our deep learning model. CNN is basically Convolutional Neural Network. It's used for matrix manipulation or manipulation. The first step of CNN is input image from our MNIST dataset after that it will pass through the Convolutional layers. In our project 64 Convolutional 2 d filters are used . In CNN this part us called feature detecting part or filtering part. After that this filtered image will pass through the neural network.Then generate a fully connected layer and get the output layer. For creating our deep learning model we use the activation function relu that is rectified linear unit in Convolutional 2 d function for solving vanishing gradient problem where the kernel size is 3,3. In the output layer of our model we use softmax activation function in dense function for predicting the multiple outputs. At last for compiling our model we use SGD that is Stochastic Gradient Decent optimzer which is an iterative method for optimizing an objective function with suitable smoothness properties. In browsing image part in our project we use the opencv function in python to recognize input image which is inputted by filedialogue function in Tkinter. This is all about working of Machine learning part of my project.
The goal of this project is to create a model that will be able to recognize and determine the handwritten digits from its image by using the concepts of Convolution Neural Network and Optical Character recognition with tesseract-OCR. Though the goal is to create a model which can recognize the digits, it can be extended to letters and an individualβs handwriting. The major goal of the proposed system is understanding Convolutional Neural Network, and applying it to the handwritten recognition system. The another goal of this project is that make a simple user friendly graphical user interface to handle recognizing handwritten digits and OCR, create a developers section in graphical user interface where the all group members details are written. I have made this so that user can use this handwriting recognition approach using this very fast and easily. It can be used in many fields for study, investigation, database management cases etc.
β’Check reading.
β’Census data collection and processing.
β’Image document reading.
β’Digitizing old books in editable form.
β’Extended research:
β’text to speech conversion (e-book reading).
β’Visually impaired should be able to access computers in their native language.
β’ Develop an online system for searching hundreds of books over the Web.
β’ Recognition and retrieval of complex documents (such as camera-based, handwritten, etc.).
PROJECT-1-UEMK
βββ .idea
βββ NeedSoftware
βββ Test Images
βββ Test_Videos
βββ _pycache_
βββ ocr
βββ Display Mnist.py
βββ MNIST_CNN.model
βββ MNIST_CNN.py
βββ developers.py
βββ developerswalp.jpg
βββ gui_interface.py
βββ handwrittenDigitRecognitionWallpaper.jpg
βββ mini_developerswalp.jpg
βββ mini_handwrittenDigitRecognitionWallpaper.jpg
βββ mini_img.jpg
βββ mini_img1.jpg
βββ mini_img2.jpg
βββ mini_img3.jpg
βββ mini_img4.jpg
βββ mini_img5.jpg
βββ ocr.jpg
βββ ocr_gui.py
βββ ocrecog.py
βββ ocrwallpaper.jpg
βββ pok.ico
βββ pok.jpeg
βββ pok.wav
βββ pok2.wav
βββ pok2.ico
βββ pok3.ico
βββ recognizefromvideo.py
βββ recognizer.py
βββ recognizer_gui.py
βββ rootwallpaper.jpg
π click here to read Project1 Research Paper
π click here to see Project1 PowerPoint Presentation
π click here to view or download Project1 Demo Video
I have made this using python3. I have used CNN, ANN concepts, deep learning, MNIST datasets, lamda function, numpy, pandas, matplotlib, sklearn, keras, tensorflow, tkinter, SGD(Stockastic Gradient Decent), opencv , pillow, pyttsx3, kernel etc for this project. Here I have used training and testing data sets for model detection. Now let me come to the OCR part of this project. I have used CNN(Convolutional Neural Network) for matrix manupulation.