Selecting an ALPR Engine
Selecting an ALPR engine can be a challenging task. ALPR is a competitive market with many suppliers showing off with high accuracy products. Similarly, ALPR products range from a software library to a boxed solution and have many different licensing options. It can, therefore, be difficult for a newcomer to know what to look for. This article provides structure to your search.
We are not shying away from giving our opinion. However, keep in mind what matters to you matters most. ALPR is not a one size fits all technology. Asking yourself -and your supplier- the right questions will save you money and frustrations. Our goal is to support you in making an informed choice when selecting an ALPR engine.
Sticking to the Core
To keep this article focused we limit our scope to the core ALPR technology. The ALPR engine. This is technology that offers license plate recognition on video or images only. When you search Google its results will often present ALPR solutions. These are ready-to-go products containing an ALPR-enabled feature. ALPR-enabled surveillance cameras, parking software, and video management software are good examples of ALPR solutions.
Remember that all these solutions rely on their ALPR engine. In many cases the ALPR solution provider will not develop the engine. Building and maintaining knowledge on detection methods and data training is a field in and of itself. This article is primarily written with the integrator, manufacturer, or developer in mind. There are good reasons to implement an engine yourself. If your ALPR solution scales you could make better margins and have more control than relying on an ALPR solution. If you are not planning to implement an ALPR engine yourself this article will help you confide in your future ALPR supplier.
ALPR Jargon Buster
Before we start the main considerations lets start with jargon busting. ALPR terms are, more often than not, used interchangeably. For instance: marketing folk, and we guess audience too, love high accuracy numbers. It is important to understand what high accuracy means and how it is important. Here are some terms that you must master when selecting an ALPR engine. This is how we define them:
- Capture Rate: the number of plates captured for the ALPR engine in relation to number of vehicles passing. Note that this number is out of scope for ALPR engines.
- Read Rate: the number of plates read by the ALPR engine in relation to captured plates. In many cases the Read Rate is used as the Accuracy Rate. This means that wrong output is included. This results in a skewed accuracy number.
- Accuracy Rate: The number of plates correctly read by the ALPR engine in relation to total reads. As stated this should not be confused with Read Rate.
- Error Rate: incorrect output of the ALPR engine or 1 minus Accuracy Rate. Suppliers and buyers often ignore this figure and leave them out on purpose. Especially in situations where ALPR is used in automatic billing, high error rates are costly.
- Performance: usually defined as total number of accurate reads divided by number of vehicles. Or, Capture Rate times Read Rate times Accuracy Rate. As performance depends on the number of vehicles (or Capture Rate) the ALPR engine only has partial influence on this number.
There is no clear definition of reliability. Generally, reliability is the chance that a read plate is read accurately over and over in different conditions. Weather, dirt, scratches, motion blur, and light amongst others have an impact on ALPR reliability. Using the right image processing steps at the right moment increases reliability.
The quality of an ALPR engine is related to the quality of its input. This can be video or images. We go as far as saying: no ALPR engine supplier can provide performance data up front. Take any error rate or accuracy percentage with a grain of salt. Garbage in, garbage out. Similarly, plates unreadable to the human eye but with an ALPR read output have no ground truth or verifiable basis.
Error rate and accuracy are important if your solution performs automatic invoicing based on ALPR results. Alternatively, if you are performing access control, read speed and platform support may be more important. Good suppliers can provide you with detailed performance data when you have sample images. Or, they commit to a performance level, and help you tune to reach it.
Let’s get this out of the way first. In our opinion pricing is the least interesting of all. Although it remains an important consideration, typically you will find similar pricing in similar quality products. Furthermore features and global performance are differentiating factors in cheap or more expensive engines. The most importance choice is whether you want to spend money up front (CAPEX) or as-you-go (OPEX). Price level is usually a result of the ALPR quality you require. Functional and performance parameters for your deployment make the biggest difference.
Nonetheless, discuss pricing with your supplier to fit pricing and margins of your own solution. For both CAPEX and OPEX options volume discounts are common. The more products or recognitions you need the lower the price. Typically, an ALPR supplier will have several partnership tiers. Tiers define pricing and options for product support and product features. A good OEM partner will scale benefits right for your business and success.
Cloud or Stand-alone
A single unlimited stand-alone use license for a high-quality ALPR engine will be more costly than a simple ALPR engine. CAPEX-based licenses will come with a support contract to keep up to date. A high-quality engine is developed for speed and accuracy in any condition. In addition, good ALPR engines will be trained on large data sets and continually improved. Cheaper engines typically offer an Optical Character Recognition (OCR) technology sold as ALPR. Or, provides poorly trained ALPR based on a very limited set of countries and images. CAPEX-licenses are useful in off-line scenarios or scenarios where ALPR is performed at multiple points (e.g. camera and back-end).
The other option is paying as-you-go. These are typically cloud-based products with no up-front expenses (OPEX) and great options to scale. Licensing is usually based on a fixed-fee with a maximum # of recognitions per month and maximum # of transactions per second. The other is billed and priced based on the actual number of recognitions. The cost of a transaction can vary greatly depending on factors such using a shared versus a dedicated system, volume and complexity of your business logic. OPEX-based licenses usually have easier scalability options and can reduce financial risks.
Open source SDK’s are a good way of learning about ALPR/ANPR technology for prototyping or hobbyists applications. In fact, they serve as a great proof of concept. There are some caveats to selecting an ALPR engine that has an open source license. Of course, commercial applications using an open source ALPR library may require the final product being licensed under the same terms. Exposing your custom intellectual property, even in paid-for products and solutions, may be less than ideal. This is especially so if you like to keep anything “under the hood” under wraps.
The other caveat is that most open source solutions are limited in functionality. These limitations will limit the applicability of the product developed with an open source ANPR engine. Most notably, the accuracy and performance are typically limited. In situations where manual review is always performed (e.g. in-car ALPR systems) or where the number of plates recognized is limited this is fine. However, in situations where over 250.000 cars pass multiple ALPR gantries for automated billing, any manual process will be incredible laborious and costly. Minimizing error rates, grouping plates, efficient manual review, up to date models and intelligent image analytics are needed to reduce costs. More over these types of systems require a high degree of parallelization to cope with the large amounts of data. Open source systems do not offer this. Consider using a development license for a commercial engine instead.
Unsurprisingly license plates are used pretty much everywhere. Unfortunately, plate styles, coding, and position on the car varies strongly across countries and states. Good ALPR provides the right registration number anywhere in the world. Accurate ALPR engines will classify plates correctly, after all technical machine vision steps have been performed. Classification is the process of reconstituting a registration number based on the most likely candidate in the correct format. If you want your product to perform at the same level world-wide good geographical spread is essential.
Proper classification is not always necessary. If simple ALPR is done reliably in different conditions, an unformatted registration number might be enough in a self-contained ALPR application (e.g. parking entrance). In other words, as long as the ALPR output is the same a match can be made. That said, consider that plate registration numbers are not unique between states or countries. Registration number overlap (for generic OCR) should not be ignored.
Geography and ALPR quality
Simple or generic ALPR engines will not provide the right format but only output readable characters for the most promising candidate. No knowledge of format or inability to distinguish plate features leads to problems such as taking wrong information from the plate. It also makes linking against a license plate registration database impossible.
High-quality ALPR engines can provide a tuned engine with country- or state specific plate information. This allows providing correct output fast with proper formatting. It can also trigger the right image processing steps. Country-tuned engines will decrease the error rate and increase read rate and accuracy. It is important to realize how different plates are in terms of automated (ALPR/ANPR) readability. In the US accuracy rates are -overall- lower than, for example, Europe. Whereas the latter is highly standardized the US has freedom of choice in plate styles. Vanity plates, background images, colors, pre-/post-fixes and symbols make a tuned engine all the more important.
When selecting an ALPR engine geography support may be more important than you realize. An ALPR engine with tuned country support will work faster, will provide correct output and formatting, and has a higher accuracy rate. Additionally, if you need to connect your solution to an external database or deploy your solution in many countries/states tuned engines will be essential. Billing based on wrong ALPR output is expensive!
Bootstrapping an ALPR engine from plates found on eBay, web images or driving around is not uncommon. Combine general OCR machine learning and edge detection with deep learning techniques for better distinguishing and you can get started. In the end, none of these techniques provide a structural or sustainable approach. Creating a reliable and accurate engine, with correct classification algorithms, and accurate output is a time-consuming job. Not to mention truthing (yes, in our world it’s a verb) or labeling the ALPR output. Training and verification take time and require good training sets. Relevant training sets are difficult to come by due to privacy implications and data size.
In vision technology, deep learning receives much attention these days. Again, although presented as panacea for ALPR, how these technologies are used and trained is more important. Traditional machine learning combined with deep learning typically yields the best results. But: only when training on good training sets. In the end, the quality of input and ALPR output is relevant. Not all engines are created equally even when they claim to use the latest and greatest.
Recognition is Half
In general, it is difficult for an ALPR supplier to create a good engine without a substantial and geographically spread customer base and data collection operation. The size of the data set will largely determine the quality of the ALPR. It is crucial to provide good training data and verify quality (ie. truth). Local conditions, camera choice, plate quality and traffic are valuable data points for continuous ALPR training.
The other part of an ALPR engine is the ability to apply the right image processing steps. Edge detection to determine where the plate is, already has plenty of variants. Similarly, different light conditions, colors and image qualities require different operations to make the plate machine readable. Different AI techniques can be used to select the right filters. And again, modern techniques like deep learning can further improve and refine this.
In short, a good ALPR engine:
- Can apply the right image processing steps under the right conditions;
- Can handle new and older plate styles;
- Is extensively trained with real-world data in different conditions;
- Contains well described plate styles with well described formatting rules;
- ALPR output can be truthed and is monitored for accuracy.
All these aspects make selecting an ALPR engine not a trivial choice and any serious ALPR supplier will subscribe to that. If not, walk away at brisk pace unless OCR string matching is all you need.
Video or Image
Most ALPR suppliers offer an engine to work on images or video. Image based systems usually have lower hardware (platform) requirements than a video based system. In addition, they are more efficient with input data. Image based systems like Intrada ALPR require a camera setup that is able to send a captured image to a port or filesystem for recognition. The camera or road-side setup is also responsible for vehicle-detection triggering.
Video based engines offer some advantages over image based systems. The first is their ability to track vehicle movement for lane analytics in multi-land setups. The other is the engine can offer built-in vehicle detection. This makes triggering more intuitive than with an image based system. The other advantage is the ability to support pretty much any camera. As long as the stream offered by the camera is compatible you are good to go.
Remember that video based systems have higher platform requirements. You can expect the performance to go down on slower platforms. Video triggering or motion detection with image capture is usually offered by the camera too. It is a good alternative to using a stream based ALPR engine.
The supplier and its references are important to consider when selecting an ALPR engine. Is the supplier considered to be a leader in this field? Do they have customer success stories or references? How much development and deployment experience do they have? What and how was training data applied to make the product?
Quality of product alone is rarely enough though. Typically, applications with strict performance requirements will need your ALPR supplier to work with you. ALPR engines will not reliably produce high accuracy or performance numbers out-of-the-box. The supplier should be able tune ALPR, image quality and business logic to meet these numbers and iron out any unidentified issues. Note thought that image or video quality is essential too. So be sure you can rely on your camera manufacturer or adjust the imaging setup as you go.
At the same time, you will want your ALPR solution to support new plate formatting and plate styles. Having the option to rely on your supplier for maintenance takes away uncertainty. Your supplier will ensure the ALPR engine quality over time is stable, if not better, and help you get the best results.
Selecting an ALPR Engine
Consider how important your supplier will be to your solution. Just playing around or have no strict requirements yet? Consider a trial version or free version of the ALPR engine. Many suppliers offer a fully featured demo with a time or recognition limit. Not interested in Read Rates, Accuracy Rate, correct formatting or being up-to-date? Get a cheap or free ALPR SDK. For anything else get in touch with a few suppliers and try their engines.
All suppliers will have some tool that allows easy tuning and reviewing results. That way you will experience if the engine and supplier work for you and your application. Good luck selecting an ALPR engine!