Git Product home page Git Product logo

project-1-uemk-hr's Introduction

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].

biswa2210

PROJECT-1-UEMK-HANDWRITING RECOGNIZER πŸ’» πŸ“‚ ✏️

Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge

About πŸ‘‡

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.

Working Principle πŸ‘‡

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.

Why I have made this 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.

Applications and Future Scopes:point_down:

β€’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.).

Folder Structure πŸ‘‡

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

Making πŸ‘‡

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.

Screenshots πŸ‘‡

Block Diagram of Project πŸ‘‡

project-1-uemk-hr's People

Contributors

ankitasikder avatar

Stargazers

 avatar

Watchers

 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.