License Plate Recognition API 2.0 LPR API 2.0 Live Demo

Overview

Trained on our huge collection of images with Tensorflow 2.X and YOLO V4, our LPR API 2.0 offers a core technology to meet the growing need for affordable LPR technology. It processes images of license plates; performs sophisticated optical character recognition (OCR) to transform the image of the plate into alphanumeric characters. The ability to acquire license plate information in ASCII text format opens up many diverse and utilitarian applications. With this web-based real-time technology, it becomes possible with small budgets to automate vehicle entry and exit from a parking lot or a secure zone and to use the recoginized license number for inventory management. Automated bluring of license plates can be done automatically with ease. The sky is the limit. With our LPR Web Service, large sum of initial investment is no longer required. One doesn't have to break the bank to take advantage of this state-of-the-art technology.

License plate recognition (LPR) is a key technique to many automated systems such as road traffic monitoring, automated payment of tolls on freeways (in the US), highways (in Canada) or bridges, security access, and parking lot access control. LPR technology tends to be jurisdiction (state or province) specific, due to plate variation from place to place. Our LPR engine is specifically designed to work in/for USA and Canadian jurisdictions.

LPR Technology: The Core Technology Behind the LPR API 2.0

LPR is a multi-stage process comprising plate localization, character segmentation, optical character recognition (OCR), and identification of originating jurisdiction (state or province).

To obtain the maximum license plate recognition accuracy, you need to take a clear image. The image is sent to our system that analyzes the image and extracts license plate information

While the whole process seems simple enough, consistent challenges affect the accuracy of the system – jurisdictional license plate designs, varying fonts, graphic designs, cleanliness, coverings, and the presence of only one license plate to name a few. The inconsistencies can result in misreads, these misreads can impact the accuracy of the data being extracted.

OCR Subsystem: The Core Technology Behind the LPR Technology

The OCR subsystem in our LPR engine accepts individual character images as input and runs algorithms to classify the image as one of 32-36 (depending on jurisdiction) class labels such as A-Z and 0-9. Resolving the so-called "close-character" ambiguity is critical to maintaining high accuracy in the OCR results. These “close character” errors includes: "I" incorrectly recognized as "1"("I/1", vice versa), "B" incorrectly recognized as "8"("B/8", vice versa), "D" incorrectly recognized as "0"("D/0", vice versa), "O" incorrectly as "0"("O/0", vice versa), "A" incorrectly as "4"("A/4", vice versa), "W" incorrectly as "H" ("W/H", vice versa), "M" incorrectly as "H" ("M/H", vice versa), etc.. These close character errors become even more prevalent when the captured license plate image has more extensive blur in it.

One method to resolve this close-character ambiguity is to use knowledge of the valid character sequences for a given jurisdiction and/or plate type. For instance, in NY the standard passenger car license plate is formatted as three letters followed by four numbers (LLLNNNN). Thus, if the OCR of a NY license plate produces a result of A8C567B, the mistakes in the “8” and “B” locations can easily be corrected. The same would be true for the “0” and “D” close-characters since they too cross a letter-number boundary.

An extremely challenging aspect of the overall LPR problem is the segmentation of the individual license plate characters into separate images in preparation for OCR. The accuracy of the OCR process can be negatively impacted by inconsistencies in the segmentation. One particular challenge with segmentation is separating valid characters from logos and other symbols on the license plate.

A related challenge is the ability to identify valid characters versus extraneous content, like logos and border artifacts, which may also appear in the plate image. It is desirable to pre-screen these candidate characters prior to OCR in order to prevent erroneously recognizing a non-character as a valid symbol. In our LPR engine, a second stage machine learning classifier is used to screen these candidate character images.

LPR Algorithms: The Core Techniques Behind the LPR Technology

There are six primary algorithms that our LPR engine requires for identifying a licence plate:

  • Plate localization – responsible for finding and isolating the plate on the picture
  • Plate orientation and sizing – compensates for the skew of the plate and adjusts the dimensions to the required size
  • Normalization – adjusts the brightness and contrast of the image
  • Character segmentation – finds the individual characters on the plates
  • Optical character recognition
  • Syntactical/Geometrical analysis – check characters and positions against country specific rules

LPR API 2.0 Recognizes State/Provincial Jurisdictions

US/Canada license plate formats are something of a mixed salad when compared to other countries, especially the EU countries. While fonts and spacings for the main number of a license plate is mostly standard across the states/provinces, other aspects of a plate vary widely from one jurisdiction to another. One of the main problems is the fonts and styles used for the jurisdiction of issue of the plate as well as color schemes and custom designs. Contrast across the plate can vary wildly with graphic elements creating such poor contrast between the number and the background that it is barely readable.

The use of state/province approved slogans such as “YOURS TO DISCOVER” or “EMPIRE STATE” as additional little quips which clutter the plate only serve to complicate the process of automated recognition and reading.

Once the LPR engine has managed to sort out the fonts, graded background color scheme, custom reflectivity, random prose, tax stickers, decals and assorted images of palm trees, medals and other paraphernalia, the engine then has to make sense of the information it has received. The number itself has different meanings in different states/provinces with no standard format. A letter or number position in one state/province could mean the month of issue while it could mean the county of issue in another state/province.

LPR API Use Cases

Our LPR API may be used for/by:

  • Section control, to measure average vehicle speed over longer distances.
  • Gas stations to log when a driver drives away without paying
  • Parking lots or road entry systems to control access
  • A marketing tool to log patterns of use
  • Traffic management systems, which determine traffic flow using the time it takes vehicles to pass two LPR sites
  • Operators of used car sale/auction websites can use it to blur license plates automatically

LPR API 2.0 Examples

Our LPR Web Serivce works reasonably well on still pictures. It has never been tested on videos.


<LPR>
    <License_Number>BVRX578</License_Number>
    <Region>Ontario</Region>
    <Country>Canada</Country>
    <Left>45</Left>
    <Top>57</Top>
    <Width>305</Width>
    <Height>25</Height>
</LPR>
                

<LPR>
    <License_Number>800002</License_Number>
    <Region>Washington DC</Region>
    <Country>USA</Country>
    <Left>336</Left>
    <Top>258</Top>
    <Width>165</Width>
    <Height>27</Height>
</LPR>
                

<LPR>
    <License_Number>ILUVNY</License_Number>
    <Region>New York</Region>
    <Country>USA</Country>
    <Left>640</Left>
    <Top>678</Top>
    <Width>198</Width>
    <Height>78</Height>
</LPR>