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
V15 OCR - Next Generation Recognition โญ
- ๐ฏ Improved Accuracy: Enhanced recognition across all regions
- ๐ Better Multi-line Handling: Improved recognition of plates with multiple text lines
- ๐ Better Performance: Faster and more accurate than V14
- ๐ Easy Upgrade to V15: Simple drop-in replacement for V14 OCR
- โ Recommended: V15 OCR is now the default for new projects
Backward Compatible: V14 OCR continues to be fully supported
- ๐ 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_v15, marearts_anpr_from_image_file
# Initialize V14 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 V15 OCR with regional vocabulary (Recommended - Latest)
ocr = ma_anpr_ocr_v15(
"small_fp32", # Model: pico_fp32, micro_fp32, small_fp32, medium_fp32, large_fp32
# int8 models available: pico_int8, micro_int8, small_int8, medium_int8, large_int8 (smaller, faster)
"univ", # Region: kor/kr, euplus/eup, na, china/cn, univ (choose specific region for best accuracy)
user_name,
serial_key,
signature,
backend="cuda", # cpu, cuda, directml (auto-selected if "auto")
)
# Or use V14 OCR (backward compatible)
# from marearts_anpr import ma_anpr_ocr_v14
# ocr = ma_anpr_ocr_v14("small_fp32", "univ", user_name, serial_key, signature, backend="cuda")
# Or use unified interface with version parameter
# from marearts_anpr import ma_anpr_ocr
# ocr = ma_anpr_ocr("small_fp32", "univ", user_name, serial_key, signature, version='v15', backend="cuda") # v15: Latest, or version='v14': Stable
# 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 (works with both V14 and V15 OCR):
ocr.set_region('euplus') # Europe+ (or 'eup')
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 (V15 OCR is default)
ma-anpr image.jpg --ocr-version v15 # Use V15 OCR (explicit)
ma-anpr image.jpg --ocr-version v14 # Use V14 OCR
ma-anpr test-api image.jpg # Test API (1000/day limit)
ma-anpr validate # Validate license
ma-anpr models # List available V14 and V15 models๐ง See complete usage examples and CLI reference
| Model Name | Detection Rate | Speed (GPU) | Notes |
|---|---|---|---|
| pico_320p_fp32 | 96.02% | 129 FPS (7.8ms) | ๐ฑ Smallest + fast |
| pico_640p_fp32 | 98.54% | 66 FPS (15.2ms) | Balanced |
| 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 |
| large_320p_fp32 | 98.40% | 131 FPS (7.6ms) | Strong performance |
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 |
|---|---|---|---|---|
| pico_fp32 | 95.31% | 98.24% | 278.2 FPS (3.59ms) | ๐ฑ Smallest, fast |
| micro_fp32 | 94.93% | 98.12% | 280.8 FPS (3.56ms) | Fast with good accuracy |
| small_fp32 | 94.16% | 97.85% | 334.6 FPS (2.99ms) | โก Fastest inference |
| medium_fp32 | 94.88% | 98.13% | 302.3 FPS (3.31ms) | Balanced performance |
| large_fp32 | 95.26% | 98.32% | 291.6 FPS (3.43ms) | ๐ฏ Best accuracy |
int8 Models (smaller files):
- pico_int8, micro_int8, small_int8, medium_int8, large_int8
- 75% smaller file size, similar accuracy
Supported Regions: Korea (kor or kr), Europe+ (euplus or eup), North America (na), China (china or cn), Universal (univ)
Note: Both short codes and full names are accepted
๐ 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 | hello@marearts.com |
| ๐ 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.




