ANPR vendors publish accuracy on clean plates in daylight. Indian deployments see monsoon spray, mud occlusion, oblique angles and headlight glare, and production false-reject rates diverge sharply from the datasheet. This note sets up the rig and the measurement protocol we plan to use to close that gap.
The failure mode
An ANPR camera at a plant gate or a toll plaza is specified against a vendor accuracy figure. Datasheets and marketing pages routinely claim 95% to 99% character accuracy, with some vendors advertising 99%+ in "all weather conditions" and others 95% to 98% in rain, dust and glare. Those numbers are published without the dataset, the weather distribution, the camera setup, the plate type or the scoring definition. On a monsoon shift, the operator watches the system miss plates and flags them manually. The vendor's response is that the plate was "non-standard" or the conditions were "edge case". Both are true. Neither is useful.
Published research gives the honest version. On the CCPD2019 dataset, LPRNet reaches 79.0% recognition accuracy on difficult conditions. The widely cited iLPR study on Indian plates reports 92.75% plate-level recognition and 98.76% character-level recognition across summer and monsoon camera views, with ground-truth-selected localisations. Weather-adaptive YOLO variants claim 99%+ with aggressive synthetic rain and fog augmentation, but transfer to real-world Indian plates remains unverified in those papers. The gap between "accuracy on clean plates" and "accuracy when the plate is half mud and the headlight is in frame" is where production deployments live.
The failure that matters is not the aggregate accuracy figure. It is the point at which the system crosses the usability line for a specific site, and that point is not published anywhere.
The measurable question
On a controlled rig with staged water, mud and glare conditions, how do the leading ANPR stacks compare on character accuracy, and at what occlusion percentage does each stack cross the usability line for a specific use case (gate control, toll, traffic enforcement)?
Conditions we plan to publish with the result
- Rig: a static plate rig at the ScroBits Center of Excellence demo panel, with controlled distances from 3 m to 15 m and camera angles from 15 to 40 degrees.
- Camera: two reference IP cameras of different resolutions (2 MP and 5 MP, IR-equipped), tripod-mounted. Exact SKUs to be pinned at test time.
- Lighting: daylight, dusk and simulated night (IR-only).
- Plate set: 50 real Indian plates sourced through a partner workshop, covering HSRP and non-HSRP formats, two-line and single-line layouts, and two to three plate ages (new, mid-wear, weathered).
- Degradation conditions, staged in isolation and in combination:
- Water: light spray, heavy spray, running sheet.
- Mud: 10%, 25%, 40%, 60% occluded surface area, measured by segmentation of a reference photo.
- Glare: angled LED headlight simulation, 500 lx to 15,000 lx incident on the plate.
- Angle: 15 degrees nominal, 25 degrees, 40 degrees.
- Stacks under test (final selection pending licensing and vendor response):
- Open-source baseline: YOLOv8-nano for detection, PaddleOCR for character recognition.
- Open-source alternative: a YOLOv8 detector with EasyOCR, matching a 2024 ICCCNT comparison.
- At least two commercial ANPR stacks available for benchmark use in India.
- Metrics:
- Character accuracy, plate-level recognition accuracy.
- Precision and recall at the "exact match" level.
- Latency per frame on a fixed CPU and on a Jetson-class edge device.
- For each condition, the occlusion percentage at which plate-level accuracy drops below 70% (the "usability floor" for most gate use cases).
- Scoring protocol: every plate scored against ground truth by two reviewers independently. Disagreements adjudicated.
A number without the lighting, the mud percentage, the camera angle and the plate age attached is cut from the report.
Method we plan to test
- Rig calibration. The static plate rig is photographed under a reference "ideal" condition (dry, clean, head-on, daylight) to confirm every stack reads every plate at 100% character accuracy before degradation. If a stack fails on the clean baseline, it is dropped from the test with a note, not accommodated.
- Condition sweeps. Each degradation is applied in isolation across the plate set, then in realistic combinations (rain + glare, mud + angle, mud + night-IR).
- Repeated runs. Each condition is captured in three independent runs to estimate variance.
- Scoring. Images are run through each stack with vendor-recommended default settings. Any pre-processing step a vendor requests is logged, and a second scoring pass is done without that step.
- Reporting. A matrix per stack, with character accuracy, plate-level accuracy and the occlusion-percentage usability floor for each condition. No single aggregate number is reported.
This protocol is informed by the iLPR Indian-plate monsoon study, the CCPD complex-scenario benchmarks (LPRNet, CSCM-YOLOv8), and the ICCCNT and JESTEC YOLOv8-plus-PaddleOCR comparisons. We are not building a new stack. We are measuring the ones that already exist, on the conditions that already defeat them.
Observations
None yet. This note is published at Hypothesis stage.
Where this fails
- Static rig limits. A rig does not reproduce vehicle motion blur, suspension bounce, or the specific vibration profile of a camera pole in wind. The report will say this plainly.
- Plate-set bias. 50 plates is a feasibility set, not a statistical sample. The result reports per-plate behaviour, not population inference.
- Vendor cooperation. Some commercial stacks require a vendor-managed deployment and will not allow benchmark publication. Those are either dropped from the public report or published anonymised, with the choice declared.
- Illumination realism. Simulated LED glare is a weaker test than real headlights at a real toll plaza. A field evaluation phase is required before any plant or city deployment advice is upgraded past "controlled test".
- IR response of coloured plates. HSRP plates have a specific IR reflectivity. Older plates do not. The IR-only test will produce usability floors that cannot be generalised across plate ages without a larger sample.
What delivery teams can take from this
A ScroBits-published ANPR evaluation protocol and the first set of results from it:
- A conditions-labelled test set that any client can replicate at their own site before signing a vendor.
- A scoring protocol that reports the usability floor per condition, not a single accuracy number.
- A matrix of per-stack performance under the staged conditions, published with every condition attached.
- A recommendation framework that maps use case (gate, toll, enforcement) to the acceptable usability floor.
The protocol ships first. The results ship when the Controlled test runs. The field evaluation ships later, when we have a cooperating site.
Open questions
- Can the ScroBits CoE panel physically host the plate rig at the required distances, or do we need an outdoor setup?
- Can we source 50 real Indian plates (HSRP and non-HSRP, across ages) through a partner workshop without legal exposure around display and photography of registration numbers?
- Which commercial stacks will allow public benchmark publication? First outreach is pending.
- Is a Jetson Orin Nano the right edge-device target, or should we also report on a general-purpose server CPU (which is how many existing CCTV estates run ANPR today)?
- Does the vehicle-industry camera community have an existing standard for "monsoon test conditions" we should align with instead of defining our own?
Resolving these moves this note from Hypothesis to Controlled test.
Have an ANPR site that fails in a specific condition you can describe, and would like to add it to the test matrix? Propose a challenge →