License Plate Recognition

Detect and read European license plates, identify vehicle types and stabilize recognition results across camera frames with the optional LicensePlateTemporalTracker. Available for .NET LTS and .NET MAUI.

View Full Documentation

Overview

The license plate recognition processor recognizes license plates from various European countries and identifies the corresponding vehicle type. The processor is not limited to a single vehicle or license plate—depending on image quality and resolution, several vehicles and plates are recognized simultaneously.

Configure country-specific recognition with plate-format validation, or choose a recognition mode without country classification. Use raw per-frame results directly, or add temporal tracking when your application needs a stable plate result across a vehicle's passage.

What's New

Latest Improvements

Highlights from the most recent release of the License Plate Recognition processor.

New Processing Engine

Redesigned internal processing pipeline with reduced CPU load and lower memory footprint for more efficient deployments.

Extreme ARM Optimization

Extremely optimized code paths for ARM-based processors enable fast and efficient recognition on embedded and mobile devices.

New Text Recognition Models

Updated text recognition models support plate reading. Choose the text model and quality preset to suit your image source and device.

Temporal Result Stabilization

The optional LicensePlateTemporalTracker combines observations across frames and reports stable plate updates for parking enforcement, barriers and moving vehicles.

Simplified Local Model Loading

Loading models from the local file system without internet access has been greatly simplified—deploy fully offline with minimal configuration.

Key Features & Capabilities

Multi-Plate Recognition

Detect and recognize multiple license plates and vehicles within a single image simultaneously with high accuracy.

ML-Powered Recognition

State-of-the-art machine learning models continuously improved for better accuracy across more countries and vehicle types.

Format Validation

Country-specific modes validate recognized plate text against the detected country's number formats. Raw OCR text remains available for application-specific handling.

Quality Presets

Eight recognition quality presets from Low to Best, optimized for different scenarios—single plate or multiple plates, speed or accuracy.

Recognition Modes

Choose between multiple recognition workflows: plate-first, vehicle-first, or isolated detection modes for optimal performance.

Country-Specific or Generic Recognition

Select plate-first, vehicle-first, plate-only or vehicle-only workflows. Plate recognition is available with or without country classification.

Vehicle Detection

Choose if the vehicle type should be recognized. Multiple vehicle types are supported.

Visual Overlays

Display detection results with customizable overlays for vehicles and license plates, including validation status indicators.

Offline Support

Run recognition locally after providing the required models. Bundle the .ccml files for offline deployment, or let the SDK download and cache them on first use.

Temporal Tracking for Stable Plate Results

Individual frames can produce changing OCR readings. The optional LicensePlateTemporalTracker, included in both LPR packages, combines observations over time into a stable result for one vehicle at a time. Your application receives updates through ResultChanged.

ParkingOfficer

For handheld parking enforcement. Keep the recognized plate locked while handling one vehicle, then explicitly advance to the next vehicle with NextCar().

Barrier

For gates and access control. Prefer recognition quality over the earliest possible output, and use stable plate updates in your application's access decision.

CarDetection

For moving vehicles and traffic observation. Prefer low latency; the tracker can publish an estimated result at its decision deadline if normal confirmation thresholds have not been reached.

Feed the tracker every recognition callback, including frames without detections, so it can follow the vehicle lifecycle. Stable results distinguish confirmed, estimated and removed states. Capture, recognition and overlays remain part of the existing pipeline.

Supported Countries & Vehicle Types

Comprehensive coverage of European license plates and vehicle classifications:

Vehicle Types

  • Car
  • Motorbike
  • Truck
  • Tractor

European Countries

ABBGCHCZDDKEESTFFINFLGBGRHHRIIRLLLTLVNLPPLROSSKSLO

Recognition Quality Presets

Choose the optimal quality preset for your use case—balancing speed and accuracy. Our recognition is powered by YOLO-based machine learning models with three independent components: Plate Detection (320/640/1280), Text Recognition (320/416/512/640), and Vehicle Detection (320/640/1280).

You can either use our convenient presets or create custom combinations by selecting individual model qualities for each component. For example, use high-quality plate detection with fast text recognition, or disable vehicle detection entirely if not needed.

Low

Quick Recognition

For quick recognition with a single large license plate shown in the image. Optimized for speed on low-end devices.

Plate: 320 • Text: 320 • Vehicle: 320
LowSplit

Quick Recognition Split

For quick recognition of a single license plate. An optimized split text model is used depending on the aspect ratio of the plate.

Plate: 320 • Text: 416/512 split • Vehicle: 320
LowPrecise

Quick Recognition Precise

For quick recognition with a higher recognition rate. A more complex but slower text model is used.

Plate: 320 • Text: 320 (Small) • Vehicle: 320
Medium

Standard Quality

Good recognition quality for a single license plate with reliable accuracy across varying conditions.

Plate: 640 • Text: 320 • Vehicle: 640
High

Multi-Plate Quality

Good recognition for multiple license plates in the image with high accuracy.

Plate: 640 • Text: 640 • Vehicle: 640
HighSplit

Multi-Plate Split

Good recognition for multiple plates. An optimized split text model is used depending on the aspect ratio. May be faster or slower than High depending on the device.

Plate: 640 • Text: 416/512 split • Vehicle: 640
HighPrecise

Multi-Plate Precise

Good recognition for multiple plates with a higher recognition rate. A more complex but slower text model is used.

Plate: 640 • Text: 320 (Small) • Vehicle: 640
Best

Maximum Accuracy

Very good recognition for multiple plates under difficult conditions. Recommended with GPU acceleration for optimal performance.

Plate: 1280 • Text: 640 • Vehicle: 1280
Custom Model Selection: You can mix and match model qualities for each component (plate, text, vehicle) to create your optimal configuration. Vehicle detection can be disabled entirely if not required. Nano models are available for plate, text and vehicle recognition; the Precise presets use the Small text model.

Models are supplied separately from the NuGet packages. The default configuration downloads and caches them on first use. For offline deployment, obtain the required .ccml files from the SDK 2.2 model downloads and keep their filenames unchanged.

In MAUI, place the files in Resources/Raw with the MauiAsset build action. In .NET LTS, configure your local model directory. Explicit local-model loading requires the selected files to be present and does not fall back to downloading missing files. Model use requires a valid CapCognition LPR license. See the LPR setup and model deployment guide for configuration details.