You are on page 1of 14

TRIBHUVAN UNIVERSITY

INSTITUTE OF ENGINEERING
PULCHOWK CAMPUS

A PROJECT PROPOSAL
ON
LICENSE PLATE DETECTION OF VEHICLES

SUBMITTED BY: SUBMITTED TO:


SAMIP GHIMIRE (PUL078BCT075) DEPARTMENT OF ELECTRONICS
SAUGAT ADHIKARI (PUL078BCT081) AND COMPUTER ENGINEERING
SHASHANK BHATTA (PUL078BCT084) PULCHOWK, NEPAL

JULY, 2023
Abstract:

Our software proposal presents a real-time vehicle tracking and license plate detection system using
OpenCV and C++. The project leverages object-oriented programming principles to simplify software
development for real-world applications. By utilizing a camera or webcam, our system tracks vehicle
movement and captures license plate information. The motivation behind this project lies in the increasing
importance of data and artificial intelligence (AI). To harness the full potential of AI advancements,
extensive data collection is necessary. By combining the versatility of C++ with the powerful image and
vision processing capabilities of OpenCV, our project aims to automate and distribute the workload for
data collection using easily accessible and cost-effective cameras. The proposed solution addresses the
problem of data collection by integrating computer vision techniques for object detection, with a focus on
license plate recognition. Through this project, we demonstrate the practical application of OpenCV, deep
learning, and convolutional neural networks (CNN) in solving real-world challenges. The tools and
framework utilized include Visual Studio Community for development, C++ for programming, and
OpenCV for image processing. The methodology involves the stages of project ideation, requirement
gathering, coding, and continuous testing to ensure module functionality and minimize technical debt.

A
Contents
Abstract:.....................................................................................................................................................A
Background:................................................................................................................................................1
Motivation:..................................................................................................................................................1
Objective:....................................................................................................................................................2
Scope and Application:................................................................................................................................3
Literature Review:.......................................................................................................................................4
OpenCV...................................................................................................................................................4
Deep Learning.........................................................................................................................................4
Convolutional Neural Network................................................................................................................4
Application Mechanics:...............................................................................................................................5
Block Diagram or System Architecture...................................................................................................5
Software Technologies.............................................................................................................................5
OpenCV...............................................................................................................................................5
Gaussian Blur......................................................................................................................................5
Canny..................................................................................................................................................5
CNN....................................................................................................................................................6
Tools and Frameworks Used:......................................................................................................................7
Visual Studio Community........................................................................................................................7
C++..........................................................................................................................................................7
OpenCV...................................................................................................................................................7
Methodology:..............................................................................................................................................8
Project Idea..............................................................................................................................................8
Requirement Gathering............................................................................................................................8
Coding.....................................................................................................................................................8
Testing.....................................................................................................................................................8
Time Estimation:.........................................................................................................................................9
Feasibility Analysis...................................................................................................................................10
Minimum Hardware Requirements........................................................................................................10
Minimum Software Requirements.........................................................................................................10
Table of Figures
Figure 1 System Architecture......................................................................................................................5
Figure 2 Gantt Chart Showing Project Timeline..........................................................................................9
Background:

With the increasing availability of cameras and webcams, there is a growing opportunity to leverage
computer vision technologies for real-time object detection and tracking. Our project focuses on utilizing
OpenCV, a powerful image processing library, in combination with the C++ programming language to
track vehicles and extract license plate information. By leveraging the object-oriented programming
paradigm, we aim to simplify the development process and create a software solution that addresses real-
world challenges. The motivation behind this project stems from the recognition that data plays a crucial
role in the advancement of AI. To fully utilize AI's potential, it is essential to collect extensive and diverse
datasets. Our project aims to automate and distribute the workload of data collection by utilizing
accessible and affordable cameras, along with the versatility of the C++ language. By leveraging
OpenCV's capabilities, we can detect and extract license plate information, which serves as an example of
object recognition in our system.

Motivation:

In today's data-driven and AI-focused world, the collection of high-quality data is crucial for training and
improving machine learning algorithms. However, obtaining large-scale and diverse datasets can be
challenging. Our motivation behind this project is to address this data collection problem by automating
the process through the integration of computer vision techniques. By utilizing cameras and webcams,
which are widely available and compatible with C++ and microprocessors, we aim to simplify the data
collection process. The versatility of the C++ language allows our project to run on various platforms,
from basic microprocessors to advanced servers. By combining the power of OpenCV, a handy image
processing library, with the accessibility of cameras, we provide a practical solution to collect data
efficiently and cost-effectively.

1
Objective:

The objective of our project is to automate and distribute the workload of data collection for object
detection, specifically focusing on license plate recognition. By utilizing readily available and affordable
cameras, we aim to develop a system that can detect and capture license plate information in real-time.
The project leverages the flexibility of the C++ programming language and the rich functionality of
OpenCV to create a solution that addresses the data collection challenge. Through this objective, we
demonstrate how computer vision techniques can be applied to automate and streamline the process of
gathering data for AI applications.

2
Scope and Application:

Our C++ project, which utilizes webcams and cameras for detecting number plates of vehicles and storing
the cropped versions, has diverse applications across various sectors.
In the monitoring sector, our project serves as a crucial tool for enhancing surveillance systems. By
integrating with CCTV cameras in a town, our project can provide real-time identification of stolen or
missing vehicles. This capability enables law enforcement agencies to quickly identify and track vehicles
of interest, aiding in the recovery of stolen property and ensuring public safety.
In the context of law enforcement, our project plays a vital role in identifying vehicles involved in
criminal activities. By analyzing the number plates captured by the cameras, law enforcement agencies
can match them against databases of wanted vehicles or those associated with known criminals. This
proactive approach to vehicle identification allows for timely interventions and improved law
enforcement efforts.
Parking management systems can benefit significantly from our project's automation capabilities. By
automating the registration and update process for parking systems, our project simplifies the
management of parking spaces. It can accurately detect and record the number plates of vehicles entering
and exiting parking areas, enabling efficient management of available spaces and streamlining the
payment process.
Surveillance systems, whether in public spaces or private properties, can leverage our project to enhance
their effectiveness. By detecting and storing the number plates of vehicles in real-time, our project
provides valuable data for monitoring traffic flow, identifying suspicious vehicles, or tracking vehicle
movements. This information enhances the overall surveillance capabilities and contributes to ensuring
public safety and security.
Data analysis is another significant application area for our project. The captured number plate data can
be processed and analyzed to derive valuable insights and metrics. For instance, the data can be used to
analyze the ratio of bikes to cars, the distribution of old and new vehicles, or the classification of vehicles
into public and private categories. Such analyses provide valuable information for urban planning,
transportation management, and policy-making decisions.
Overall, our C++ project's wide-ranging applications in monitoring, law enforcement, parking
management, surveillance systems, and data analysis demonstrate its potential for improving efficiency,
security, and decision-making processes across various sectors.

3
Literature Review:

The literature review for our project explores recent studies and innovations in the field of computer
vision, particularly in areas related to OpenCV, deep learning, and convolutional neural networks (CNNs).

OpenCV: Recent advancements in OpenCV have expanded its capabilities in various areas of computer
vision. The introduction of the DNN module enables seamless integration with deep learning frameworks
for tasks like image classification and object detection. Super resolution algorithms enhance image
quality and resolution, while the tracking API provides efficient and accurate object tracking in real-time.
OpenCV's advancements in 3D vision allow for stereo vision, depth estimation, and point cloud
processing. The transparent API facilitates GPU acceleration, optimizing performance for
computationally intensive tasks. With improved camera calibration techniques, better documentation, and
a thriving community, OpenCV remains at the forefront of computer vision libraries, empowering
developers to tackle complex vision problems with ease.

Deep Learning : Recent advancements in deep learning have revolutionized the field of artificial
intelligence, enabling breakthroughs across various domains. One significant advancement is the
development of Generative Adversarial Networks (GANs) that can generate highly realistic synthetic
images, audio, and text. Transformer models, such as BERT and GPT, have revolutionized natural
language processing tasks with their attention mechanisms and contextual understanding. Deep
reinforcement learning algorithms have achieved remarkable success in complex tasks, including game
playing and robotics. Moreover, techniques like self-supervised learning, unsupervised representation
learning, and few-shot learning have expanded the capabilities of deep learning models by leveraging
large-scale unlabeled data and improving generalization. These recent advancements continue to drive the
rapid progress and widespread adoption of deep learning in diverse applications.

Convolutional Neural Network : Recent advancements in Convolutional Neural Networks (CNNs)


have propelled the field of computer vision to new heights. One notable advancement is the development
of deeper and more complex CNN architectures, such as ResNet, DenseNet, and EfficientNet, which have
achieved remarkable accuracy on challenging image classification tasks. Attention mechanisms, including
Squeeze-and-Excitation (SE) and Non-Local Neural Networks (NLNN), have improved the ability of
CNNs to capture long-range dependencies and focus on important image regions. Additionally, techniques
like spatial pyramid pooling, dilated convolutions, and multi-scale feature fusion have enhanced the
spatial representation and context modeling capabilities of CNNs, enabling robust object detection,
semantic segmentation, and image generation. These advancements in CNNs continue to push the
boundaries of computer vision and pave the way for more sophisticated visual understanding systems.

4
Application Mechanics:
Block Diagram or System Architecture:

Figure 1 System Architecture

Software Technologies:
OpenCV: OpenCV (Open Source Computer Vision Library) is a versatile and powerful open-source
computer vision and image processing library. It provides a wide range of functions and algorithms for
tasks such as image and video processing, object detection and recognition, feature extraction, and camera
calibration. With its extensive functionality, OpenCV serves as a valuable tool for developing computer
vision applications in various domains, including robotics, surveillance, augmented reality, and medical
imaging. Its user-friendly interface, efficient implementation, and compatibility with multiple
programming languages make OpenCV a popular choice for researchers, developers, and enthusiasts
working on computer vision projects. The continuous development and integration of new features and
algorithms ensure that OpenCV remains at the forefront of computer vision technology, empowering
users to tackle complex vision tasks with ease.

Gaussian Blur: Gaussian blur is a widely used image filtering technique employed in computer vision
and image processing. It aims to reduce noise and smooth out images by convolving the image with a
Gaussian kernel. By applying a weighted average of neighboring pixel values, Gaussian blur effectively
blurs the image while preserving its overall structure and edges. This technique finds applications in
various areas such as image denoising, feature extraction, and object detection, where reducing high-
frequency noise and achieving a more visually pleasing or analytically useful representation of the image
are desired. Gaussian blur's versatility and simplicity make it an essential tool for enhancing image
quality and facilitating subsequent image analysis and processing tasks.

Canny: Canny edge detection is a popular algorithm used in computer vision for detecting edges in
images. It aims to identify prominent boundaries and edges by applying a series of steps. First, it smooths

5
the image using Gaussian filtering to reduce noise. Then, it calculates the gradient magnitude and
direction to find areas of significant intensity change. Next, it applies non-maximum suppression to thin
out the edges and keep only the most significant ones. Finally, it utilizes hysteresis thresholding to
determine the final set of edges by considering both strong and weak edge pixels. The Canny edge
detection algorithm is known for its robustness in detecting edges while minimizing false detections. It is
widely used in applications such as object recognition, image segmentation, and feature extraction.

CNN: Convolutional Neural Networks (CNNs) are a class of deep learning models specifically designed
for processing structured grid-like data, such as images and sequential data. CNNs have revolutionized
computer vision tasks by leveraging their ability to learn hierarchical representations from input data.
They consist of multiple layers, including convolutional layers, pooling layers, and fully connected layers,
which collectively learn and extract relevant features from the input. CNNs excel at capturing spatial
dependencies and extracting meaningful patterns, making them highly effective for tasks like image
classification, object detection, and image generation. The convolutional layers employ filter operations
to detect local features, while pooling layers downsample the feature maps to reduce computational
complexity. Through their architecture and training processes, CNNs have achieved remarkable accuracy
and performance in a wide range of visual recognition tasks, cementing their role as a fundamental tool in
modern computer vision and deep learning research.

6
Tools and Frameworks Used:
Our project utilizes the following tools and frameworks:

Visual Studio Community: Visual Studio Community provides a comprehensive development


environment for C++ programming, offering features like code editing, debugging, and project
management.

C++: C++ is a powerful and versatile programming language widely used for developing a wide range of
applications. Known for its performance, efficiency, and low-level control, C++ offers a balance between
high-level abstractions and low-level programming capabilities. It is compatible with various platforms,
from microprocessors to large-scale servers, making it suitable for developing software across different
domains. With its extensive standard library and support for object-oriented programming, generic
programming, and template metaprogramming, C++ provides developers with the tools to build efficient
and modular software solutions. Whether developing system-level software, embedded systems, game
engines, or high-performance applications, C++ remains a popular choice due to its flexibility,
performance, and wide industry adoption.

OpenCV: OpenCV is an open-source computer vision library that provides extensive functionality for
image and video processing, object detection, and machine learning.

7
Methodology:
Our project will follow a structured methodology to ensure successful implementation and achieve the
desired objectives. The methodology involves several stages, including project ideation, requirement
gathering, coding, and continuous testing.

Project Idea: We brainstormed ideas as a group until we found a practical and applicable solution to
real-world problems. The project idea focuses on automating data collection through license plate
recognition using cameras.

Requirement Gathering: We identified the necessary libraries and dependencies required for our
project, such as OpenCV and its associated modules.

Coding: We will increment the project incrementally, coding each module and ensuring that it functions
flawlessly as intended. We will follow an object-oriented approach to simplify the software development
process and enhance code reusability.

Testing: Throughout the development process, we conducted thorough testing of each module to identify
and resolve issues early on, minimizing technical debt and ensuring the overall functionality and
reliability of the system.

8
Time Estimation:

Figure 2 Gantt Chart Showing Project Timeline

9
Feasibility Analysis
Minimum Hardware Requirements
 Any x86 CPU @1KHz
 RAM : 1 MB
 Memory : 10 MB
 Camera : 0.2 MP

Minimum Software Requirements


 G++ version 6.0
 OpenCV version 3.0
 Windows 7

10

You might also like