License Plate Recognition
License Plate Recognition (LPR/ANPR)
Section titled “License Plate Recognition (LPR/ANPR)”Meridian VMS includes built-in License Plate Recognition (LPR), also known as Automatic Number Plate Recognition (ANPR). The system reads license plates from camera feeds, logs every read with a thumbnail and confidence score, and can trigger alarms or automations based on whitelist/blacklist rules.
Dual Source Architecture
Section titled “Dual Source Architecture”LPR operates from two distinct camera sources, which can be used independently or together:
Dedicated LPR Cameras
Section titled “Dedicated LPR Cameras”Purpose-built LPR cameras positioned at vehicle entry/exit points with optimal angle, lighting, and resolution for plate capture. These cameras are flagged as LPR-enabled in camera settings, and the system applies plate-specific preprocessing (contrast enhancement, region cropping) before OCR.
| Setting | Description |
|---|---|
| LPR Region | Crop region within the frame where plates are expected (reduces processing) |
| Plate Format | Expected plate format regex for validation (e.g., [A-Z]{2,3}\s?\d{3}\s?[A-Z]{0,2}) |
| Min Confidence | Minimum OCR confidence to accept a plate read (default: 70%) |
General Detection Cameras
Section titled “General Detection Cameras”Any camera running AI detection can also contribute plate reads. When the detection engine identifies a vehicle (car, truck, bus, motorcycle), the vehicle crop is passed through the LPR pipeline as a secondary analysis step. This provides opportunistic plate reads from existing cameras without dedicated hardware.
Detection-sourced reads typically have lower confidence than dedicated LPR cameras but provide broader coverage.
LPR Pipeline
Section titled “LPR Pipeline”Camera Frame --> Vehicle Detection (AI model) --> Plate Region Detection (plate localizer) --> OCR (character recognition) --> Format Validation --> Whitelist/Blacklist Check --> Event Creation + NotificationEach plate read produces an LPR event containing:
| Field | Description |
|---|---|
plate | Recognized plate text (normalized) |
confidence | OCR confidence (0-100%) |
det_confidence | Vehicle detection confidence |
vehicle_class | Detected vehicle type (car, truck, bus, motorcycle) |
camera_id | Source camera |
thumbnail | Cropped image of the plate region |
full_frame | Full frame at time of detection |
timestamp | Time of the read |
direction | Entry or exit (if camera is configured with a direction) |
Whitelist and Blacklist
Section titled “Whitelist and Blacklist”Plate lists provide automated responses to known vehicles.
Whitelist
Section titled “Whitelist”Plates on the whitelist are flagged as authorized. Whitelist matches can trigger automations such as gate opening, barrier lifting, or silent logging without alarm. Each whitelist entry includes:
- Plate number (exact match or pattern)
- Label (e.g., owner name, department, vehicle description)
- Expiry date (optional, for temporary access)
- Active hours (optional, restrict to specific time windows)
Blacklist
Section titled “Blacklist”Plates on the blacklist trigger immediate alarm creation. Use cases include stolen vehicles, banned individuals, or vehicles of interest. Blacklist matches:
- Create a high-priority alarm automatically
- Send notifications via all configured channels
- Highlight the event in the LPR dashboard with a red indicator
List Management
Section titled “List Management”Lists are managed from Settings > LPR > Plate Lists. Plates can be:
- Added individually through the UI
- Imported in bulk via CSV upload (columns:
plate,label,list,expiry) - Exported for backup or transfer between sites
- Synced from an external system via the REST API
Plate Search
Section titled “Plate Search”The plate search interface at Operations > LPR > Search allows querying all historical plate reads:
| Filter | Description |
|---|---|
| Plate | Full or partial plate number (wildcard search) |
| Camera | Filter by specific camera or location |
| Date range | Start and end timestamps |
| List match | Show only whitelist hits, blacklist hits, or unknown plates |
| Vehicle class | Filter by vehicle type |
| Min confidence | Only show reads above a confidence threshold |
Results display in a sortable table with thumbnail, plate text, camera, timestamp, confidence, and list status. Click any result to view the full frame and jump to recorded playback at that timestamp.
Event Notifications
Section titled “Event Notifications”LPR events integrate with the standard notification system:
| Trigger | Notification Content |
|---|---|
| Any plate read | Plate number, camera, timestamp, thumbnail |
| Whitelist match | Plate + label + “Authorized” status |
| Blacklist match | Plate + label + “ALERT” status + full frame |
| Unknown plate | Plate number flagged for review |
Notification channels (Telegram, Discord, email, webhook) are configured per alarm definition. Create an LPR alarm definition with the Detection trigger type and class filter set to license_plate.
Home Assistant Integration
Section titled “Home Assistant Integration”LPR events are exposed in Home Assistant as dedicated event entities:
- Entity:
event.{camera_name}_license_plate - Event type:
plate_detected - Event data:
plate,confidence,vehicle_class,camera,timestamp
See Home Assistant Integration for automation examples including automatic gate control based on plate whitelist matching.
API Reference
Section titled “API Reference”| Method | Endpoint | Description |
|---|---|---|
GET | /api/lpr/events | Query plate read events with filters |
GET | /api/lpr/events/{id} | Get a single LPR event with full details |
GET | /api/lpr/search?plate={query} | Search plates by partial match |
GET | /api/lpr/lists | Get all whitelist/blacklist entries |
POST | /api/lpr/lists | Add a plate to a list |
DELETE | /api/lpr/lists/{id} | Remove a plate from a list |
POST | /api/lpr/lists/import | Bulk import plates from CSV |
GET | /api/lpr/lists/export | Export all plate lists as CSV |
GET | /api/lpr/stats | LPR statistics (reads today, unique plates, list hit rates) |
Configuration
Section titled “Configuration”Enable LPR from Settings > AI Detection > LPR:
| Setting | Default | Description |
|---|---|---|
| Enable LPR | Off | Master toggle for LPR processing |
| OCR Engine | Built-in | OCR backend (built-in or custom endpoint) |
| Min Plate Confidence | 70% | Minimum OCR confidence to record a plate read |
| Deduplicate Window | 60s | Suppress duplicate reads of the same plate within this window |
| Store Full Frames | On | Save full-resolution frames for plate reads (uses more storage) |
| Direction Detection | Off | Attempt to determine vehicle entry/exit direction |