There is no denying that automatic number plate recognition (ANPR) is one of the technological marvels of the late 20th century. A solution capable of recognizing letters and numbers from an image/video frame taken of a license plate and transforming them into plain license number text is indeed a great helping hand in many projects from traffic safety, tolling, and access control to transportation and logistics, and even retail.
What users see is that the ANPR solution takes the image or video frame and then returns it with the license plate data as text. The inner workings are rarely revealed—even though it’s just as interesting as having text extracted from a still image. This article opens the bonnet of ANPR solutions—Adaptive Recognition’s Carmen® software family, to be specific—and takes a closer look at the heart of all: the engine.
What Do We Mean By Number Plate Recognition?
To understand how the number plate recognition process is done, we need to determine what number plate recognition means in the first place. Basically, this is a special segment of optical character recognition (OCR), where a designated tool performs image recognition, focusing on the characteristics of license plate letters and numbers, and then transforming them into ASCII characters computers can interpret. Most of the time, this toolkit is a computer program, software, or a set of algorithms, but there are instances where the number plate recognition software is integrated into the hardware, a special industrial camera.
Although there are some differences between software- and hardware-based number plate recognition, their core principles are always the same. In that regard, the input for plate recognition is always an image—even in the case of video streams where the recognition module analyzes video frames—whereas the output is the raw plate text in the aforementioned ASCII format plus the nationality.
Now that the basics are out of the way let’s see the main steps of number plate recognition and what a number plate recognition software usually has to go through.
The license plate recognition algorithm looks for characters—numbers and letters—on the image. If the ANPR engine determines that there is a character on the image, the optical character recognition (OCR) process is initiated.
When the engine is done recognizing the first character, it automatically starts looking for further characters, and the recognition process is repeated as long as the engine finds no more legible numbers and letters in the picture.
It’s worth noting that if the plate is dirty, the characters are too close to each other, there are screws or strong light effects like shadows on the plate, etc., the engine may not recognize the characters properly. However, except for dirt—a force majeure situation—the above issues could be averted with correct settings in the ANPR software. You can find out more about these settings here.
Creating a Sequence
Once all characters are properly recognized, the engine creates a sequence resembling an actual license plate. The engine runs multiple neural network tools, matching the freshly acquired sequence to similar license plates it already knows. The process ends when a type best matching the sequence is found, or the search results in no match for the sequence.
For instance, the Hungarian license plate format is XXX-YYY—as of July 2022 it’s XX XX-YYY—where “X” stands for a letter and “Y” is for a number. As such, if the engine gets the necessary number of characters from the image to be analyzed, it creates a possible sequence based on these characters. Then the engine looks for similar license plates based on attributes such as position, syntax, color relation, font, etc. If there is a match—which, in our case, is a license plate either in the old or the new format—the engine returns a result plus the nationality, Hungarian.
Should the sequence be no match for any license plate type known by the ANPR engine, the license plate text could still be returned without the type if you have set the engine to recognize unknown types as well.
At the end of the process, the ANPR software presents the image, the license plate characters in the desired computer-/human-legible ASCII code format, and the plate nationality as a data packet to be forwarded to the appropriate servers or databases.
Software or Not?
One thing to note is that when we address the ANPR solution as ‘software,’ we aren’t talking about a standalone program. Instead, the word ‘software’ equals recognition engine—a library of functions that can be integrated into complete number plate recognition systems.
In other words, system builders need to create a link between the number plate recognition solution and their system via integration for the data to be in a presentable format. For this reason, number plate recognition modules are often offered as an SDK—software development kit with documentation, sample codes, and program tools—that can be found in the core building block of integrators, an API (application programming interface). Our flagship product, the Carmen® ANPR Image ‘software,’ is offered in this exact format.
There are instances when integration is out of the question due to a lack of funds, time, or system permissions. Thankfully, Plug’n’Play solutions such as Carmen® ANPR Stream and the Carmen® ANPR Cloud SaaS are available for that purpose, requiring little to no integration on behalf of system users.
The good news is that with regards to the steps ANPR is performed—which we talked about earlier—there is zero difference between turnkey software and SDK libraries. In fact, the latter solutions often include demo software, which is ideal for testing what the ANPR solutions can do in a controlled environment—i.e., test images acquired from cameras connected to an Intranet—before tinkering with the codes and modifying the software to the client’s individual needs.
In conclusion, whether it’s a turnkey program or something that requires a bit of coding, the results will always be the same: a fast and reliable ANPR solution that, if set up correctly, will give you the required license plate data.