Automatic Number Plate Recognition (ANPR) SDK for multiple regions with GPU acceleration support.
๐ One License, All Access: SDK + Mobile App + Road Objects Detection - Use everywhere with a single license.
๐ฑ Now available on iOS! Android coming soon.
Experience the power of MareArts ANPR directly on your mobile device! Fast, accurate, on-device license plate recognition for parking management, security, and vehicle tracking.
โจ Key Features:
- ๐ Fast on-device AI processing (~100-160ms)
- ๐ NEW: Smart rules grouping - Organized A-Z for easy navigation
- ๐ NEW: Download rules from web - Upload on marearts.com, download on phone
- ๐ NEW: Background sync - Keep using app while syncing
- ๐ Complete cloud sync - Keep data in sync across devices
- ๐ CSV export/import - Professional data management
- ๐ 100% offline capable - privacy first
- ๐ Statistics and analytics
- ๐บ๏ธ Map view with GPS tracking
- โ Whitelist/Blacklist management
- ๐ Multi-region support
๐ Read the complete Mobile App Guide โ
๐ Version 1.8.0: Faster performance, smart rules grouping, web-to-phone rule downloads, and background sync!
๐ Special Offer: Use the mobile app as your ANPR license - no additional purchase required!
Get your license at marearts.com/products/anpr
Professional server with REST API and Web Dashboard
Deploy a complete ANPR management system with real-time monitoring, detection history, and visual analytics.
Quick Start:
cd management_server
pip install -r requirements.txt # First time only
ma-anpr config # Configure credentials
python server.py # Start server
# Open http://localhost:8000/Features: REST API, Web Dashboard, Real-time logs, SQLite database, Live model switching
- ๐ Multi-Region Support: Korean, Europe+, North America, China, and Universal license plates
- ๐ Dynamic Region Switching: Change regions instantly with
set_region()without model reload - โก GPU Acceleration: CUDA, DirectML support for real-time processing
- ๐ฏ High Accuracy: Advanced models with regional vocabulary optimization
- ๐ฆ Batch Processing: Process multiple plates simultaneously
- ๐ณ Production Ready: Docker API with smart model caching and multi-architecture support
# CPU Installation
pip install marearts-anpr
# GPU Installation (CUDA, DirectML)
pip install marearts-anpr[gpu] # NVIDIA CUDA
pip install marearts-anpr[directml] # Windows GPU (AMD/Intel/NVIDIA)๐ฆ See complete installation guide
from marearts_anpr import ma_anpr_detector_v14, ma_anpr_ocr_v14, marearts_anpr_from_image_file
# Initialize detector
detector = ma_anpr_detector_v14(
"micro_320p_fp32",
# 320p models (Fast): pico_320p_fp32/fp16, micro_320p_fp32/fp16, small_320p_fp32/fp16, medium_320p_fp32/fp16, large_320p_fp32/fp16
# 640p models (High detection): pico_640p_fp32/fp16, micro_640p_fp32/fp16, small_640p_fp32/fp16, medium_640p_fp32/fp16, large_640p_fp32/fp16
user_name,
serial_key,
signature,
backend="cuda", # cpu, cuda, directml (auto-selected if "auto")
conf_thres=0.25, # Detection confidence threshold (default: 0.25)
iou_thres=0.5 # IoU threshold for NMS (default: 0.5)
)
# Initialize OCR with regional vocabulary
ocr = ma_anpr_ocr_v14(
"small_fp32", # Model: pico_fp32, micro_fp32, small_fp32, medium_fp32, large_fp32
"univ", # Region: kr, eup, na, cn, univ (choose specific region for best accuracy)
user_name,
serial_key,
signature,
backend="cuda", # cpu, cuda, directml (auto-selected if "auto")
)
# Process image
result = marearts_anpr_from_image_file(detector, ocr, "image.jpg")
print(result)
# Output: {'results': [{'ocr': 'ABC123', 'ocr_conf': 99, ...}], ...}๐ก ๐ Learn more about usage
Switch regions without reinitialization:
ocr.set_region('eup') # Europe+
ocr.set_region('kr') # Korean
ocr.set_region('na') # North America
ocr.set_region('cn') # China
ocr.set_region('univ') # Universal (all regions)๐ Learn more about dynamic region switching
From different image sources:
import cv2
from PIL import Image
from marearts_anpr import marearts_anpr_from_cv2, marearts_anpr_from_pil
result = marearts_anpr_from_cv2(detector, ocr, cv2.imread("image.jpg"))
result = marearts_anpr_from_pil(detector, ocr, Image.open("image.jpg"))
result = marearts_anpr_from_image_file(detector, ocr, "image.jpg")CLI commands:
ma-anpr image.jpg # Process image
ma-anpr test-api image.jpg # Test API (1000/day limit)
ma-anpr validate # Validate license๐ง See complete usage examples and CLI reference
| Model Name | Detection Rate | Speed (GPU) | Notes |
|---|---|---|---|
| micro_320p_fp32 | 97.13% | 128 FPS (7.8ms) | ๐ Best overall |
| micro_320p_fp16 | 97.13% | 56 FPS (17.9ms) | ๐ Best mobile (50% smaller) |
| micro_640p_fp32 | 98.99% | 68 FPS (14.6ms) | Highest detection |
| small_320p_fp32 | 98.00% | 142 FPS (7.0ms) | โก Fastest |
| medium_320p_fp32 | 98.06% | 136 FPS (7.4ms) | High detection |
| pico_320p_fp32 | 96.02% | 129 FPS (7.8ms) | Smallest + fast |
| pico_640p_fp32 | 98.54% | 66 FPS (15.2ms) | Balanced |
Note: 320p models are 2ร faster than 640p. FP16 models are 50% smaller with same detection rate.
Average across all regions
| Model Name | Exact Match | Character Accuracy | Speed (GPU) | Notes |
|---|---|---|---|---|
| large_fp32 | 91.70% | 96.27% | 262 FPS (3.8ms) | ๐ฏ Best accuracy |
| micro_fp32 | 91.86% | 96.50% | 262 FPS (3.8ms) | Fast with good accuracy |
| pico_fp32 | 91.78% | 96.65% | 270 FPS (3.7ms) | Fastest, smallest |
| small_fp32 | 91.54% | 96.64% | 300 FPS (3.3ms) | โก Fastest inference |
| medium_fp32 | 90.36% | 96.45% | 270 FPS (3.7ms) | Balanced performance |
Supported Regions: Korean (kr), Europe+ (eup), North America (na), China (cn), Universal (univ)
๐ See all models and benchmarks
MareArts ANPR supports license plates from multiple regions with specialized vocabulary optimization:
- ๐ฐ๐ท Korean (
kr) - Korean license plates with Hangul characters (best accuracy: 99.27%) - ๐ช๐บ Europe+ (
eup) - EU countries + Albania, Andorra, Bosnia & Herzegovina, Indonesia, and more - ๐บ๐ธ๐จ๐ฆ๐ฒ๐ฝ North America (
na) - USA, Canada, and Mexico license plates - ๐จ๐ณ China (
cn) - Chinese license plates with province codes - ๐ Universal (
univ) - All regions (default, but choose specific region for best accuracy)
๐ก Dynamic Region Switching: Use ocr.set_region('kr') to switch regions instantly without reloading the model, saving ~180 MB per additional region.
๐ See complete regional support and character sets
- ๐ฆ Installation Guide - Detailed installation options and requirements
- ๐ง Usage Examples - Python SDK, CLI usage, dynamic region switching, and environment variables
- ๐ป Example Code - Basic, advanced, and batch processing examples
- ๐ Model Versions - Available models, benchmarks, and performance metrics
- ๐ Regional Support - Supported countries and character sets
- ๐ณ Docker Deployment - Container setup, API server, and multi-architecture builds
- ๐งช Try ANPR - Test our ANPR without license (1000 requests/day)
- โ FAQ - Licensing, regions, features, and troubleshooting
Explore our AI toolkit:
- marearts-anpr - Automatic Number Plate Recognition (GitHub)
- ๐ marearts-anpr Mobile App - ANPR on iOS & Android (App Store | Guide)
- marearts-road-objects - Road object detection for persons, vehicles, and 2-wheelers (GitHub)
- marearts-xcolor - Color extraction and similarity analysis (GitHub)
- marearts-mast - Real-time panoramic stitching (GitHub)
- marearts-crystal - Encryption and decryption toolkit (PyPI)
| Resource | Link |
|---|---|
| ๐ง Contact | [email protected] |
| ๐ Homepage | https://marearts.com |
| ๐ณ License Purchase | ANPR Solution |
| ๐ฎ Live Demo | http://live.marearts.com |
| ๐บ Video Examples | YouTube Playlist |
ยฉ 2024 MareArts. All rights reserved.
This software requires a valid license key. Visit MareArts ANPR Solution for licensing options.




