Automatic Number Plate Recognition (ANPR) Systems

Currently, the number of cars in the world is well over 1 billion. It is no wonder that one of the most common computer vision tasks is the effective control of these vehicles through automatic number plate recognition (ANPR) systems. The applications of automatic vehicle number plate detection and recognition vary depending on the area of use and include, among others, border control, stolen car detection, automatic ticketing of vehicles and toll collection, traffic monitoring and safety control, smart parking, tracking of transportation, etc.

A typical automatic number plate recognition algorithm includes several steps (Fig. 1): car license plate detection (1), character segmentation (2) and recognition (3).

Vehicle number plate recognition algorithm
Fig. 1. Main steps of ANPR

Within this vehicle number plate recognition project, we concentrated on the first step of the algorithm: locating the area on the image that corresponds to the license plate number. It is indeed a crucial step of the whole recognition pipeline since it strongly affects the overall system performance.

As the first step of the project, we extracted the plate candidates areas based on the following two approaches:

  • stroke width transform (SWT), which was used to locate the image regions containing the text);
  • blob detection algorithm, which increased the final detection rate.

The SWT is a well-known text detection algorithm. The idea lies behind the careful analysis of the image edge map and local gradient directions. The basic preparation steps include the calculation of the Sobel gradients and Canny edge map construction.

The results of SWT application to the image and its 3D view are illustrated in Fig. 2.

                                                                                     Car plate recognition system - SWT algorithm

Fig. 2. SWT image example

Read also:

Road Detector

To locate the text region on the image, which corresponds to the vehicle number plate, we proceed with the following steps:

License Plate Recognition - Steps

To increase the rate of the vehicle number plate detection, we have additionally integrated the blobs analysis procedure, which is based on morphological operators and contours calculation and applied to the preprocessed images. Fig. 3 illustrates an example of found number plate candidates using the developed method.

license plate recognition - an example of using the method

Fig. 3. Detected blobs and bounding boxes

The combination of SWT and blob detection approaches returns the list of the number plate candidates. The final step of the project was to extract the true car license plate area.

For this, we used a 3-layer perceptron neural network (NN) which classifies the obtained sequence of number plate candidates. The NN was trained using different sets of features including:

  • Haar-based features (based on integral images);
  • statistical features (mean, std, skewness);
  • principal component analysis (PCA) features.

Fig. 4 demonstrates an example of the obtained receiver operating characteristics (ROC) curves for three different learning scenarios. The ROC curve represents the dependence of true positive rate (TP) on the false positive rate (FP).

Number plate identification system - ROC curves
Fig. 4. ROC curves for different sets of features

The best classification results are obtained when using a combination of all three groups of features for NN training.

Our paper which describes the above-mentioned results in more detail was presented at the Signal Processing Symposium 2015 where it received the 1st prize for the best publication.

The ANPR pipeline discussed in this post is an open-ended research task and all steps can be further improved, however, it proves that CNN is not the only solution for solving such kind of tasks.

Road Detector

Automatic road detection algorithm - Computer vision engineering company It-Jim

Our task was to develop the algorithm for the automatic road detection in radar images. The challenge was that the radar images are a bit different from the optical ones. In particular, in the case of synthetic aperture radar (SAR), the image formation process is accomplished via coherent processing of the received signals backscattered from the Earth surface. As a result, the multiplicative speckle noise appears in the SAR images.  Continue reading “Road Detector”

People Tracker

Systems and applications for detecting and tracking moving objects, whether people, vehicles, or anything else, are currently in heavy demand. Such tracking is widely used in security and surveillance, military, entertainment, sports, medical imaging, as well as for augmented reality and robotics. In the case of people trackers, many businesses need AI-powered systems tailored for locating, monitoring, counting and analyzing human flows and behavior. This particular case is of great interest for passenger traffic in airports, public transportation, in-store analytics in retail and public facilities. Applying such tracker devices and apps to track people’s location in shopping malls helps businesses to achieve success through customer insights thus improving considerably shopper experience and driving revenue.

Project Description

The aim of this was to develop a system for the analysis of the human activity in supermarkets. In particular, we needed to

  • cluster the regions of interest (ROI),
  • detect, track and count people.

The basic scheme of the “People Tracker” framework is presented in Fig.1:

Fig. 1. System modules

 

The video import module was used for the proper transferring of inputs (either saved video or live streams). All metadata was extracted for other modules. 

The ROI detection module was used for the automatic extraction of store areas with human activity.

   App for tracking people. Picture 1    App for tracking people. Picture 2

Fig. 2. Example of video frame and K-means application

In order to extract ROIs, we have extracted each cluster data separately and applied contour detection. Fig. 3 illustrates the sequence of the binary images corresponding to the K-means clusters:

Tracking device for people

Fig. 3. Data from K-means clusters

Since the clustering of ROIs has been performed using color-based segmentation, there is an evident problem of various shop obstacles obstructing the view of the floor in some situations. In order to make the algorithm more generic, we proposed to track people’s activity and store their trajectories. As a result, these trajectories can be drawn as a point cloud which can be clustered by the same K-means algorithm. Fig. 4 illustrates an example of a video frame with such a point cloud and the ROIs detected.

   App for tracking people. Picture 3    App for tracking people. Picture 4

Fig. 4. Example of a video frame and K-means application

(left – frame with the point cloud, right – detected ROIs)

Each point in the cloud corresponds to the position of the trajectory of an arbitrary person. The extracted points are automatically clustered resulting in the detected human activity areas.

Below you can see a short video sample demonstrating the developed “People Tracker”.

Summary

Being an important domain in computer vision, moving object tracking has a wide variety of applications. Here we have demonstrated our solution to track people inside supermarkets using the K-means clustering algorithm.