Keywords

1 Introduction

In every country it is a difficult task to control the traffic and to identify the vehicle’s owner. When a vehicle violates traffic rules it becomes difficult to find the owner of the vehicle. Therefore, to avoid this difficulty, the Number Plate Detection system is one of the solutions to this problem. There are many types of number plate detection systems with many types of methodologies and algorithms. To build this Number Plate Recognition system, we used Optical Character Recognition to deal with image processing. This Optical Character Recognition helps us to acquire the image and to process the image in our required forms. This system helps to minimize the traffic violations on the road. For tracking, identifying stolen vehicles, and unauthorized use of vehicles, this number plate recognition technique is very helpful.

Number plate recognition is proposed in this paper to develop a real-time application to monitor the violation of traffic rules. Using this technique, it is easy to detect the number plate of a vehicle so that we can track the vehicle quickly. We used NI LabVIEW software to develop this system which is developed by National Instruments. In this software to perform image processing techniques we need to install a toolkit named Vision and motion. This is a module which helps us to easily work with images.

The contribution of the paper is

  • To develop a system which detects vehicle’s number plate

  • To detect the characters on the number plate

  • To show the details of the vehicle owner.

  • To detect the number plate and recognize the characters of the number plate we used Optical Character Recognition (OCR) technique in LabVIEW Software.

When the number that is detected by the system matches in the dataset it will check the details and give the output as the details of the owner as followed by the vehicle number, owner name, phone number, district, and state.

1.1 Introduction to NI LabVIEW

LabVIEW means Laboratory Virtual Instrument Engineering Workbench. LabVIEW is a software developed by National Instruments (NI). LabVIEW is a graphical programming language known as G language. LabVIEW is used to work on real-time applications. LabVIEW has two VI’s: one is called Front panel, and the other is called Block Diagram. Front Panel is a user interface where controls and indicators are available. The code of the application can be done in the block diagram. It is efficient to use as we need to just drag the functions from the functions palette and drop those functions in the block diagram.

1.2 Introduction to Vision Module

Vision and motion are a toolkit used to work on image processing techniques. It is a module in NI LabVIEW software used for prototyping and also testing the applications of image processing. For this module we mainly used the vision assistant function which is a feature to train the image and to process the image in the required forms. Using this module, it is easy to train the machine for image-related applications.

1.3 Introduction to OCR

Optical Character Recognition (OCR) technology is an efficient solution to extract the data automatically from written text or printed text from scanned documents or from an image file and converting the text into the machine-readable form used to process data like searching or editing.

1.4 Introduction to Vision Assistant

The system is trained by using the Vision Assistant function. Vision Assistant is an Express VI in the Vision and Motion palette of this LabVIEW software. When this Express VI is placed on a block diagram, NI Vision Assistant launches. Using the vision assistant processing functions it can create an algorithm. After creating the algorithm, we can select the controls and indicators that we want to programmatically set in LabVIEW. To edit the algorithm we just need to double-click the Vision Assistant Express VI. Using this Vision Assistant function we can train our system easily and quickly. Figure 1 is the structure of Vision Assistant function in LabVIEW.

Fig. 1
figure 1

Structure of vision assistant

2 Related Techniques

In Anand and Indu [1], Anand proposed a vehicle number plate detection system with voting classification. The system itself converts the normal image into a binary form using some filtering techniques and morphological operations. By using KNN, Support Vector Machine (SVM) algorithm, and Random Forest algorithm the system can identify the characters present on a vehicle’s number plate. For voting classification the system compares the accuracy between KNN and SVM (Support Vector Machine) algorithms. This system is efficient with the voting classification method.

In Ap et al. [2], Vigneshwaran proposed an automatic system for number plate detection. This system is developed using matlab software. By using a faster R-CNN algorithm the system can detect the number plate automatically. The system is developed using CNN (Convolution Neural Network), YOLO (You Only Look Once), R-CNN, and faster R-CNN methods. YOLO is a real-time system which can detect objects. Using CNN (Convolution Neural Networks) the system takes the input image and processes using Yolo and R-CNN methods. Faster R-CNN improves the system's capability to detect the number plate automatically. The system efficiency is more than 90%.

In Das and Kumari [3], Das proposed a system which can train itself from online and can detect the number plate’s characters from vehicle images. The system first captures the vehicles and separates the picture into frames so that it is easy for the system and can recognize the image quickly. They also used the image acquisition functions to extract the vehicle’s features which helps to recognize the vehicle. They convert the RGB image to binary form, so the system can understand the binary form of the image and can train easily. This is a real-time system which also uses vision assistant function from image processing functions.

In Huang [4], Fuhai Huang proposed an accurate license plate identification system. This includes three processes named number plate localization, segmentation of characters, and character recognition. According to the background and the character’s color they have done the localization and extraction of the number plate image from the vehicle image. They have done the character segmentation by converting the extracted number plate image to a binary image and using optical character recognition they have done the character recognition.

In Menon and Omman [5], License plate recognition is done using Support Vector Machine (SVM) and Artificial Neural Networks (ANN) algorithms and they also use infrared cameras to capture the image of the vehicle. They have done the character segmentation by converting the extracted number plate image to a binary image. They have done this in C++ by applying a sober filter and multi-layer perceptron for the ANN algorithm. The sober filter is to find the edges and use threshold values to identify the edges.

In Shariff et al. [6], Mohammed Shariff proposed a system which can detect the vehicle’s number plate. This system is developed using Python and OpenCV. Using the image processing technique the system can convert the rgb image into a grayscale image. Preprocessing of the image can be done by using morphological operations and by compressing the image. They implemented bilateral filtering and canny edge detection techniques to detect the characters on the vehicle’s number plate. The system gives the final output as the vehicle’s number plate image.

In Prasad [7], Srinivas proposed an accurate Automatic vehicle recognition system. They used image processing techniques for vehicle feature extraction, feature segmentation, and vehicle feature filtering. They also used the image acquisition functions to extract the vehicle’s features which helps to recognize the vehicle. In this they have used the SMTP (Simple Mail Transfer Protocol) protocol which helps to transfer mail to differently located devices.

In Pustokhina et al. [8], Pustokhina proposed a system which can automatically recognize the vehicle number plate. The system is developed by using the Optimal K-Means algorithm with Convolution Neural Network (CNN). They have acquired an image, preprocessed an image by image processing, and then by using image processing they have done the license plate’s localization and license plate segmentation. For license plate localization and recognition they used K means clustering with KH algorithm. To recognize the characters on the license plate they have done the character recognition process using the Convolution Neural Network (CNN) algorithm.

In Sathiyabhama et al. [9], Lakshmi proposed a system which can trace the location of the vehicle and can also detect the vehicle’s number plate. The system is developed by using neural networks and deep learning algorithms. They have done some morphological operations to remove the other connected objects with the number plate of the vehicle. To detect the number plate YOLO (You Only Look Once) is used with the help of the dark flow toolkit. YOLO is very fast and can detect many objects at a time.

In Kumar et al. [10], Nitish Kumar proposed an accurate number plate detection system. They have converted the RGB image to grayscale. They introduce Otsu’s binarization technique to calculate the pixel values of the image to recognize characters as per ROI (Region of Interest). Then they used the OCR (optical character recognition) technique in LabVIEW software.

3 Methodology

Detecting the number plate of a vehicle is performed by taking the Region of Interest. OCR (Optical Character Recognition) session is performed on the specified Region of interest in the captured image. Optical Character Recognition (OCR) technology is an efficient solution to extract the data automatically from written text or printed text from scanned documents or from an image file and convert the text into a machine-readable form used to process data like searching or editing. From the detected number plate the character classification can be done by using OCR (Optical Character Recognition) and Image Processing techniques after which the number plate separation is done followed by the character classification. The output of the character classification is the character on the detected number plate (Fig. 2).

Fig. 2
figure 2

Block diagram for OCR based number plate recognition system

The processed information is then sent to an excel sheet which classifies the cars based on the state and district. The characters in the number plate are compared with a dataset which contains different vehicle information. When there is a matched vehicle number it will check for the information of the vehicle's owner. This gives the owner details of that vehicle separately. Using the dataset it shows the details.

After recognizing the characters on the number plate the machine compares the detected number with the dataset given in the csv format. After comparing if there is a match with the same number in the data set then it shows the owner details of the vehicle having the same number as which was detected. This process is easy to implement in LabVIEW software using the OCR (Optical Character Recognition) technique.

  • Firstly, we have to import an image in vision acquisition to train the machine to detect the number plate of the vehicle.

  • After that we need to save trained data into a .abc file as it is needed while using the optical character recognition technique for detection.

  • Then by using the .abc file as input to the ocr read function, the machine detects the character as per the training data in the .abc file.

  • After detecting the characters, the machine will compare the detected characters with our dataset containing different vehicle numbers.

  • When the number that is detected by the system matches in the dataset it will check the details and give the output as the details of the owner as followed by the vehicle number, owner name, phone number, district, and state.

3.1 Training the System

The system is trained by using the Vision Assistant function. Vision Assistant is an Express VI in the Vision and Motion palette of this LabVIEW software. When this Express VI is placed on a block diagram, NI Vision Assistant launches. Using the vision assistant processing functions it can create an algorithm. After creating the algorithm, we can select the controls and indicators that we want to programmatically set in LabVIEW. To edit the algorithm we just need to double-click the Vision Assistant Express VI. Using this Vision Assistant function we can train our system easily and quickly. Figure 3 is the overview of the Vision Assistant function in LabVIEW.

Fig. 3
figure 3

Overview of vision assistant in LabVIEW

The training phase of our system is shown below (Fig. 4).

Fig. 4
figure 4

Training the system

3.2 Testing the System

Firstly, we must import an image in vision acquisition to train the machine to detect the number plate of the vehicle. After that we must save the trained data into a .abc file as it is used while we are implementing this optical character recognition for detection. Then by using the .abc file as input to the ocr read function the machine can detect the character as per the training data in the .abc file. After detecting the characters, the machine will compare the detected characters with our dataset containing different vehicle numbers. When the number that is detected by the system matches in the dataset it will check the details and give the output as the owner details as followed by the vehicle number, owner name, phone number, district, and state.

Figure 5 is the input image given to the system.

Fig. 5
figure 5

Input Image to the system

Number Plate Extraction and Character Recognition Using ROI:

ROI means Region of Interest. This has to be specified for separating the number plate image from the whole vehicle image. ROI can be specified using the below pixel calculations. The vehicle’s number plate is extracted from the image of the vehicle using ROI (Region of Interest).Below are the pixel calculations for ROI (Region of Interest). Figure 6 is the pixel calculations for the Region of Interest.

Fig. 6
figure 6

Pixel calculations for Region of Interest

The characters on the vehicle’s number plate are recognized by the system. Figure 7 shows us how the system is recognizing the characters on the vehicle’s number plate.

Fig. 7
figure 7

Character recognition

Output String:

The characters recognized by the system are in the read string as output. This read-string will give the output as the characters that are recognized by the system. Figure 8 is the output given by the system as the characters on the number plate.

Fig. 8
figure 8

Output as characters from the system

Details:

The system compares the resulting string with a dataset and gives details of the vehicle’s owner. Figure 9 shows us the details of the vehicle’s owner according to the dataset.

Fig. 9
figure 9

Details of vehicle’s owner given by the system

4 Experimental Results

Vision assistant is an application, created using OCR functions, it segments each object from an image and compares those characters with the character set file, created during the training procedure. In a number plate the characters are recognized in the testing phase of OCR. The implementation of this OCR (Optical Character Recognition) Based Number Plate Detection System is done using LabVIEW Software. In the front panel, the Image is used to separate the number plate image from the whole vehicle image. The Rectangle is used for the pixel calculations for Region of Interest (ROI). Region of Interest is used to separate the number plate image from the vehicle image.

The error in (no error) and error out will show us if there is any error in our program. These errors in and errors out have three modules in it. They are status, code, and source. Status is a Boolean value either True or False. It shows a green color tick mark if no error is present in our program or else it will show a red color cross mark if there is an error in our program. Code is an integer value. It will show the error code if there is an error in our program. The source is a string. It will show us where the error is present in our program. Read string will show us the characters recognized by the system. Characters from the read string are then compared with the dataset and give the owner details according to the dataset. Details of the owner will be shown in the details.

Figure 10 shows the output of the system when the input image is UP53FT5335 numbered car image. The system correctly recognized the characters in the input image.

Fig. 10
figure 10

Result from the system for UP53FT5335 numbered car image

Figure 11 shows the output of the system when the input image is HR26DK8337 numbered car image. The system correctly recognised the characters in the input image and gives the details according to the dataset.

Fig. 11
figure 11

Result from the system for HR26DK8337 numbered car image

Figure 12 shows the output of the system when the input image is KA01GS0369 numbered car image. The system correctly recognised the characters in the input image and compares the characters with the dataset and gives the details of the vehicle’s owner according to the dataset.

Fig. 12
figure 12

Result from the system for KA01GS0369 numbered car image

5 Future Scope

Number Plate Recognition can be further extended for the identification of vehicle owners by using a video camera where the number plate recognition can be done in a frame in which the number plate is located that allows on-the-go recognition by the system to use in mobile units. It can also increase the security for women to travel as they can easily detect the number plate before using a cab or other services.

6 Conclusion

Number plate extraction is performed using OCR (Optical Character Recognition). Using the Vision and Motion Toolkit it is easy to train the system and also to test the system to recognize the characters on the vehicle’s number plate. The system can identify a vehicle's location by comparing the characters on a vehicle’s number plate with a dataset. Got details of the owner as followed by the vehicle number, owner name, phone number, district, and state. So, we can easily identify that a person violates the traffic rules. By using this system it is an easy task to identify the person who violates traffic rules and can punish the vehicle’s owner. So the controlling of traffic makes it easy without delay.