SlideShare a Scribd company logo
6
Most read
8
Most read
21
Most read
License Plate Recognition System
using Python and OpenCV
Submitted By -
Vishal Polley (CT20172176247)
Abhay Pandey (DT20173820470)
Faculty Advisor -
Prof. Manik Chandra
Mentor -
Mr. Deepanshu Kukreja
Institute of Engineering and Technology, Lucknow
TCS Remote Internship Program 2018
1
Industrial Training(NIT – 753)
Contents -
• Introduction
• Technologies Used
• Module's Information
• Data Flow Diagram (DFD)
• Test Cases
• Demonstration and Screenshots
• Future Enhancements
• Sources
2
Introduction
• License plate recognition(LPR) is a type of technology, mainly software,
that enables computer systems to read automaticallythe registration
number (license number) of vehicles from digital pictures.
• License Plate Recognition Systems use the concept of optical
character recognition to read the characters on a vehicle license plate. In
other words, LPR takes the image of a vehicleas the input and outputs
the characters written on its licenseplate.
3
Steps
LPR also called ALPR (Automatic License Plate Recognition)has
3 major stages.
4
Cont.
• License Plate Detection -
This is the first and probably the most important stage of the system. It
is at this stage that the position of the license plate is determined.
The input at this stage is an image of the vehicle and the output is
the license plate.
• Character Segmentation -
It’s at this stage the characters on the license plate are mapped out
and segmentedinto individual images.
• Character Recognition -
This is where we wrap things up. The characters earlier segmentedare
identifiedhere. We have used machine learning for this.
5
Technologies Used
• OS - Ubuntu 16.04 :
Ubuntu is a free and open source operating system and Linux distribution
based on Debian . It is the most popular operating system for the cloud .There
is python installed in it which makes our work more easier .
• Python - 3.5 or Up :
Python is an easy to learn, powerful programming language. It has efficient
high-level data structures and a simplebut effective approach to object-
oriented programming. The interpreter and the extensivestandard library are
freely available in source or binary form.
• IDE - Atom :
Atom is a desktop application built using web technologies.It is free and open
source text and source code editor for Linux. It is based on Electron ,a
framework that enables cross-platform desktop applications using Chromium
and Node.js . It is written in Coffee Script and Less.
6
Cont.
• Database - SQLite3 :
SQLite is a relational database management system containedin a C
programming library. In contrast to many other database management
systems, SQLite is not a client-server database engine. It is embedded into the
end program.
• Front End - Tkinter :
Python offers multiple options for developing GUI (Graphical User Interface).
Out of all the GUI methods, Tkinter is most commonly used method. It is a
standard Python interface to the Tk GUI toolkit shipped with Python.
• Back End - Python :
Python is an interpreted high-level programming language. It provides
constructs that enable clear programming on both small and large scales . It is
meant to be an easily readable language. Writing programs in Python takes
less time than in some other languages.
7
Module's Information
• scikit-learn :
scikit-learn is a Python modulefor machine learning built on top of SciPy. It
provides a range of supervised and unsupervisedlearning algorithms viaa
consistent interface in Python.
• scikit-image :
For performing Image Processing we have used scikit-image. It’s a Python
package for image processing.
• Scipy :
SciPy is a free and open-source Python library used for scientificcomputing
and technical computing. It contains modules for optimization, linear algebra,
integration, interpolation,special functions, FFT, signal and image processing,
ODE solvers and other tasks common in science and engineering.
8
Cont.
• OpenCV :
OpenCV (Open Source Computer Vision Library) is an open source computer vision
and machine learning software library. OpenCV was built to provide a common
infrastructure for computer vision applications and to accelerate the use
of machine perception in the commercial products.
• Pillow :
Python ImagingLibrary (abbreviatedas PIL ) is a free library for the Python
programminglanguage that adds support for opening, manipulating, and saving
many different image file formats.
• Numpy :
NumPy is a library for the Python programming language, adding support for large,
multi-dimensional arrays and matrices, along with a large collection of high-level
mathematical functions to operate on these arrays.
• Matplotlib :
Matplotlib is a plottinglibrary for the Python programming language and its
numerical mathematics extension NumPy. It provides an object-oriented API for
embedding plots into applications using general-purpose GUI toolkits like
Tkinter, wxPython, Qt, or GTK+.
9
Data Flow Diagram10
Test Cases
INPUT OUTPUT
11
Demonstration and Screenshots
• In the first step, open terminal (Python Bash) and activate the virtualenv
(Python virtual environment) by running the followingcommandinside the
project folder -
source env/bin/activate
12
• Now run the python project by executing python script
named prediction.py in the terminal (Python Bash)
13
• The tkinter image fileinput dialog box will now open.
14
• Now open any car image placed inside images folder in the project folder.
15
• The next step displays the license plate detection process
(plate localization). In this process the original image is convertedto
its grayscale version. Now to localize licenseplate from the image
a specificthresholdis applied to the grayscale image. The following image
shows a comparison between the grayscale image and the threshold
image in the matplotlib pyplot.
16
• Now after localizing license plate from the original image, the next image
shows the process of identifying all the connected regions in the image
using the concept of connected component analysis (CCA). It basically
helps us group and label connectedregions on the foreground. A pixel is
deemed to be connected to another if they both have the same value
and are adjacent to each other.
17
• In the next step we have mapped out all the characters from the image
using character segmentationprocess and CCA.
18
• In the final step we have used supervisedmachinelearning to detect the
possiblecharacter present on the licenseplate. It makes use of a known
dataset (called the training dataset) to make predictions and thus the
licenseplate number is detected and displayed inside a new dialog box as
output.
19
Future Enhancements
• The project currently works over still captured images only, and can be
modified in future to be implementedto extract license plate information
over live video feeds.
• Efficiency of the project can be increasedby improving the character
segmentation algorithm so it can be applicable to various types of car’s
images.
• Image Processing speed can be increasedby installing faster processors.
• Project currently have a simpleGUI based on tkinter but it can be made
much more user friendly and easily navigable by using many other
modules.
• We are currently using pre buildMachine Learning libraries for recognizing
and detecting license plate numbers. Self-written machinelearning codes
can further enhance the speed and process for images of all conditions.
• More number of character datasets can be trained with the project, so to
detect and recognize characters of regional languages and hand written
licenseplates.
20
Sources
• Developing a LicensePlate RecognitionSystem with Machine Learning
in Python By Femi Oladeji
https://blog.devcenter.co/developing-a-license-plate-recognition-system-
with-machine-learning-in-python-787833569ccd
• License Plate Recognition Nigerian Vehicles Dataset
https://github.com/andela-foladeji/License-Plate-Recognition-Nigerian-
vehicles/tree/master/training_data
21
Thank You
22

More Related Content

PDF
License Plate Recognition Using Python and OpenCV
PPTX
Automatic Number Plate Recognition(ANPR) System Project
PPTX
License Plate Recognition System
PPT
License Plate Recognition
PDF
LICENSE NUMBER PLATE RECOGNITION SYSTEM USING ANDROID APP
PPTX
Number plate recogition
PPTX
Automatic number-plate-recognition
PPTX
AUTOMATIC CAR LICENSE PLATE RECOGNITION USING VEDA
License Plate Recognition Using Python and OpenCV
Automatic Number Plate Recognition(ANPR) System Project
License Plate Recognition System
License Plate Recognition
LICENSE NUMBER PLATE RECOGNITION SYSTEM USING ANDROID APP
Number plate recogition
Automatic number-plate-recognition
AUTOMATIC CAR LICENSE PLATE RECOGNITION USING VEDA

What's hot (20)

PPT
AUTOMATIC LICENSE PLATE RECOGNITION SYSTEM FOR INDIAN VEHICLE IDENTIFICATION ...
PPTX
Vehicle Number Plate Recognition System
PPTX
automatic number plate recognition
PDF
Anpr based licence plate detection report
PPTX
Automatic Number Plate Recognition (ANPR)
PPTX
Vehicle registration plate recognition system
PPTX
Seminar on anpr 1
PPTX
License plate recognition
PPT
Automatic number plate recognition
PDF
Driver Drowsiness Detection report
PPTX
Automatic number plate recognition (anpr)
PPTX
Object detection
PPTX
Traffic sign detection
PPTX
Automatic no. plate recognition
DOC
Automatic number plate recognition
PPTX
Object Detection & Tracking
PPTX
Traffic sign recognition
PPTX
License Plate recognition
PPTX
PPTX
Feature detection - Image Processing
AUTOMATIC LICENSE PLATE RECOGNITION SYSTEM FOR INDIAN VEHICLE IDENTIFICATION ...
Vehicle Number Plate Recognition System
automatic number plate recognition
Anpr based licence plate detection report
Automatic Number Plate Recognition (ANPR)
Vehicle registration plate recognition system
Seminar on anpr 1
License plate recognition
Automatic number plate recognition
Driver Drowsiness Detection report
Automatic number plate recognition (anpr)
Object detection
Traffic sign detection
Automatic no. plate recognition
Automatic number plate recognition
Object Detection & Tracking
Traffic sign recognition
License Plate recognition
Feature detection - Image Processing
Ad

Similar to License Plate Recognition System using Python and OpenCV (20)

PDF
IRJET- Number Plate Recognition by using Open CV- Python
PDF
Automatic License Plate Recognition using OpenCV
PDF
Automatic License Plate Recognition using OpenCV
PPTX
IBA SECURITY SYSTEMS
PDF
IRJET- iSecurity: The AI Surveillance, a Smart Tracking System
PPTX
19BCS1815_PresentationAutomatic Number Plate Recognition(ANPR)P.pptx
PDF
COMPARATIVE STUDY ON AUTOMATED NUMBER PLATE EXTRACTION USING OPEN CV AND MATLAB
DOCX
Licence plate recognition using matlab programming
PPTX
number plate detection.pptx
PPTX
Python Open CV
PDF
A Comprehensive Overview of Python in Real-World Scenarios
PPTX
Adarsh_Masekar(2GP19CS003).pptx
PDF
Detailed Guide on Python for Web, AI, and Data Use
PDF
(Ebook) High Performance Python by Micha Gorelick, Ian Ozsvald
PPTX
Python Programming list of features Part 2.pptx
PDF
Python for Science and Engineering: a presentation to A*STAR and the Singapor...
PDF
applications and advantages of python
PDF
High Performance Python 2nd Edition Micha Gorelick Ian Ozsvald
PDF
Your interactive computing
PDF
High Performance Python 2nd Edition Micha Gorelick
IRJET- Number Plate Recognition by using Open CV- Python
Automatic License Plate Recognition using OpenCV
Automatic License Plate Recognition using OpenCV
IBA SECURITY SYSTEMS
IRJET- iSecurity: The AI Surveillance, a Smart Tracking System
19BCS1815_PresentationAutomatic Number Plate Recognition(ANPR)P.pptx
COMPARATIVE STUDY ON AUTOMATED NUMBER PLATE EXTRACTION USING OPEN CV AND MATLAB
Licence plate recognition using matlab programming
number plate detection.pptx
Python Open CV
A Comprehensive Overview of Python in Real-World Scenarios
Adarsh_Masekar(2GP19CS003).pptx
Detailed Guide on Python for Web, AI, and Data Use
(Ebook) High Performance Python by Micha Gorelick, Ian Ozsvald
Python Programming list of features Part 2.pptx
Python for Science and Engineering: a presentation to A*STAR and the Singapor...
applications and advantages of python
High Performance Python 2nd Edition Micha Gorelick Ian Ozsvald
Your interactive computing
High Performance Python 2nd Edition Micha Gorelick
Ad

Recently uploaded (20)

PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
Cell Structure & Organelles in detailed.
PPTX
Pharma ospi slides which help in ospi learning
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
Basic Mud Logging Guide for educational purpose
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
Classroom Observation Tools for Teachers
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
RMMM.pdf make it easy to upload and study
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PDF
Pre independence Education in Inndia.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
Microbial diseases, their pathogenesis and prophylaxis
Cell Structure & Organelles in detailed.
Pharma ospi slides which help in ospi learning
O7-L3 Supply Chain Operations - ICLT Program
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
102 student loan defaulters named and shamed – Is someone you know on the list?
Basic Mud Logging Guide for educational purpose
TR - Agricultural Crops Production NC III.pdf
Classroom Observation Tools for Teachers
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
VCE English Exam - Section C Student Revision Booklet
Microbial disease of the cardiovascular and lymphatic systems
RMMM.pdf make it easy to upload and study
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
Pre independence Education in Inndia.pdf

License Plate Recognition System using Python and OpenCV

  • 1. License Plate Recognition System using Python and OpenCV Submitted By - Vishal Polley (CT20172176247) Abhay Pandey (DT20173820470) Faculty Advisor - Prof. Manik Chandra Mentor - Mr. Deepanshu Kukreja Institute of Engineering and Technology, Lucknow TCS Remote Internship Program 2018 1 Industrial Training(NIT – 753)
  • 2. Contents - • Introduction • Technologies Used • Module's Information • Data Flow Diagram (DFD) • Test Cases • Demonstration and Screenshots • Future Enhancements • Sources 2
  • 3. Introduction • License plate recognition(LPR) is a type of technology, mainly software, that enables computer systems to read automaticallythe registration number (license number) of vehicles from digital pictures. • License Plate Recognition Systems use the concept of optical character recognition to read the characters on a vehicle license plate. In other words, LPR takes the image of a vehicleas the input and outputs the characters written on its licenseplate. 3
  • 4. Steps LPR also called ALPR (Automatic License Plate Recognition)has 3 major stages. 4
  • 5. Cont. • License Plate Detection - This is the first and probably the most important stage of the system. It is at this stage that the position of the license plate is determined. The input at this stage is an image of the vehicle and the output is the license plate. • Character Segmentation - It’s at this stage the characters on the license plate are mapped out and segmentedinto individual images. • Character Recognition - This is where we wrap things up. The characters earlier segmentedare identifiedhere. We have used machine learning for this. 5
  • 6. Technologies Used • OS - Ubuntu 16.04 : Ubuntu is a free and open source operating system and Linux distribution based on Debian . It is the most popular operating system for the cloud .There is python installed in it which makes our work more easier . • Python - 3.5 or Up : Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simplebut effective approach to object- oriented programming. The interpreter and the extensivestandard library are freely available in source or binary form. • IDE - Atom : Atom is a desktop application built using web technologies.It is free and open source text and source code editor for Linux. It is based on Electron ,a framework that enables cross-platform desktop applications using Chromium and Node.js . It is written in Coffee Script and Less. 6
  • 7. Cont. • Database - SQLite3 : SQLite is a relational database management system containedin a C programming library. In contrast to many other database management systems, SQLite is not a client-server database engine. It is embedded into the end program. • Front End - Tkinter : Python offers multiple options for developing GUI (Graphical User Interface). Out of all the GUI methods, Tkinter is most commonly used method. It is a standard Python interface to the Tk GUI toolkit shipped with Python. • Back End - Python : Python is an interpreted high-level programming language. It provides constructs that enable clear programming on both small and large scales . It is meant to be an easily readable language. Writing programs in Python takes less time than in some other languages. 7
  • 8. Module's Information • scikit-learn : scikit-learn is a Python modulefor machine learning built on top of SciPy. It provides a range of supervised and unsupervisedlearning algorithms viaa consistent interface in Python. • scikit-image : For performing Image Processing we have used scikit-image. It’s a Python package for image processing. • Scipy : SciPy is a free and open-source Python library used for scientificcomputing and technical computing. It contains modules for optimization, linear algebra, integration, interpolation,special functions, FFT, signal and image processing, ODE solvers and other tasks common in science and engineering. 8
  • 9. Cont. • OpenCV : OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library. OpenCV was built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in the commercial products. • Pillow : Python ImagingLibrary (abbreviatedas PIL ) is a free library for the Python programminglanguage that adds support for opening, manipulating, and saving many different image file formats. • Numpy : NumPy is a library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays. • Matplotlib : Matplotlib is a plottinglibrary for the Python programming language and its numerical mathematics extension NumPy. It provides an object-oriented API for embedding plots into applications using general-purpose GUI toolkits like Tkinter, wxPython, Qt, or GTK+. 9
  • 12. Demonstration and Screenshots • In the first step, open terminal (Python Bash) and activate the virtualenv (Python virtual environment) by running the followingcommandinside the project folder - source env/bin/activate 12
  • 13. • Now run the python project by executing python script named prediction.py in the terminal (Python Bash) 13
  • 14. • The tkinter image fileinput dialog box will now open. 14
  • 15. • Now open any car image placed inside images folder in the project folder. 15
  • 16. • The next step displays the license plate detection process (plate localization). In this process the original image is convertedto its grayscale version. Now to localize licenseplate from the image a specificthresholdis applied to the grayscale image. The following image shows a comparison between the grayscale image and the threshold image in the matplotlib pyplot. 16
  • 17. • Now after localizing license plate from the original image, the next image shows the process of identifying all the connected regions in the image using the concept of connected component analysis (CCA). It basically helps us group and label connectedregions on the foreground. A pixel is deemed to be connected to another if they both have the same value and are adjacent to each other. 17
  • 18. • In the next step we have mapped out all the characters from the image using character segmentationprocess and CCA. 18
  • 19. • In the final step we have used supervisedmachinelearning to detect the possiblecharacter present on the licenseplate. It makes use of a known dataset (called the training dataset) to make predictions and thus the licenseplate number is detected and displayed inside a new dialog box as output. 19
  • 20. Future Enhancements • The project currently works over still captured images only, and can be modified in future to be implementedto extract license plate information over live video feeds. • Efficiency of the project can be increasedby improving the character segmentation algorithm so it can be applicable to various types of car’s images. • Image Processing speed can be increasedby installing faster processors. • Project currently have a simpleGUI based on tkinter but it can be made much more user friendly and easily navigable by using many other modules. • We are currently using pre buildMachine Learning libraries for recognizing and detecting license plate numbers. Self-written machinelearning codes can further enhance the speed and process for images of all conditions. • More number of character datasets can be trained with the project, so to detect and recognize characters of regional languages and hand written licenseplates. 20
  • 21. Sources • Developing a LicensePlate RecognitionSystem with Machine Learning in Python By Femi Oladeji https://blog.devcenter.co/developing-a-license-plate-recognition-system- with-machine-learning-in-python-787833569ccd • License Plate Recognition Nigerian Vehicles Dataset https://github.com/andela-foladeji/License-Plate-Recognition-Nigerian- vehicles/tree/master/training_data 21