marearts-anpr


Namemarearts-anpr JSON
Version 3.3.0 PyPI version JSON
download
home_pagehttps://www.marearts.com
SummaryMareArts ANPR (Automatic Number Plate Recognition) library
upload_time2025-09-11 06:29:10
maintainerNone
docs_urlNone
authorMareArts
requires_python<3.13,>=3.9
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MareArts ANPR SDK

[![PyPI version](https://badge.fury.io/py/marearts-anpr.svg)](https://badge.fury.io/py/marearts-anpr)
[![Python versions](https://img.shields.io/pypi/pyversions/marearts-anpr.svg)](https://pypi.org/project/marearts-anpr/)
[![Downloads](https://pepy.tech/badge/marearts-anpr)](https://pepy.tech/project/marearts-anpr)
[![License: Proprietary](https://img.shields.io/badge/License-Proprietary-red.svg)](https://study.marearts.com/p/anpr-lpr-solution.html)
[![GitHub stars](https://img.shields.io/github/stars/marearts/marearts-anpr.svg)](https://github.com/marearts/marearts-anpr/stargazers)
[![Live Demo](https://img.shields.io/badge/demo-live-brightgreen.svg)](http://live.marearts.com)


**Enterprise-grade** Automatic Number Plate Recognition (ANPR) SDK supporting **European Union**, **Korea**, **China**, and **Universal** license plates with **99%+ accuracy** and **GPU acceleration**.

## โœจ Key Features

- ๐Ÿš— **Multi-Region Support**: EU, Korea, China, and Universal license plates
- โšก **High Performance**: Optimized C++ core with Python bindings + GPU acceleration
- ๐ŸŽฏ **High Accuracy**: Up to 99.4% accuracy with latest models
- ๐Ÿ›ก๏ธ **Enterprise Security**: Military-grade protection with license validation
- ๐Ÿš€ **GPU Acceleration**: Significantly faster processing with CUDA/DirectML support
- ๐Ÿ”ง **Easy Integration**: Simple Python API with comprehensive examples
- ๐Ÿณ **Docker Ready**: Complete Docker deployment examples
- ๐ŸŒ **API Server**: REST API examples for production deployment
- ๐Ÿ“ฑ **Multiple Formats**: Support for CV2, PIL, and file inputs
- ๐ŸŒ **Multi-Platform**: Linux, Windows, macOS with smart provider detection

## ๐Ÿ“ Repository Structure

This repository contains customer examples, documentation, and usage guides for the MareArts ANPR SDK.

### Directory Structure
```
marearts-anpr/
โ”œโ”€โ”€ API_docker_example/     # Docker API server example
โ”œโ”€โ”€ example_code/           # Basic and advanced usage examples  
โ”œโ”€โ”€ sample_images/          # Test images for different regions
โ”œโ”€โ”€ md_images/              # Documentation screenshots
โ”œโ”€โ”€ etc/                    # Additional resources (fonts, utilities)
โ””โ”€โ”€ README.md               # This documentation
```


## ๐Ÿ“‘ Table of Contents
- [๐ŸŒ Regional Support](#-regional-support)
- [๐Ÿ”ฉ Installation](#-installation)
- [๐Ÿชช License Key](#-license-key)
- [๐Ÿค– Live Test](#-live-test)
- [๐Ÿ“บ ANPR Result Videos](#-anpr-result-videos)
- [๐Ÿš‚ Model Version](#-model-version)
- [๐Ÿ“ Using SDK](#-using-sdk)
- [๐Ÿงช API for testing](#-api-for-testing)
- [โš“๏ธ Create MareArts ANPR API Docker](#๏ธ-create-marearts-anpr-api-docker)
- [โš™๏ธ example_code](#๏ธ-example_code)
- [๐Ÿ“‹ Software Licensing FAQ](#-software-licensing-faq)
- [๐Ÿ˜Ž More Detail](#-more-detail)

## ๐ŸŒ Regional Support

MareArts ANPR provides comprehensive license plate recognition across multiple regions with specialized models optimized for each area.

### ๐Ÿ‡ช๐Ÿ‡บ European Union & Plus Countries

**Supported Countries:**

| A-F | G-P | R-Z | Plus |
|-----|-----|-----|------|
| ๐Ÿ‡ฆ๐Ÿ‡ฑ Albania | ๐Ÿ‡ฉ๐Ÿ‡ช Germany | ๐Ÿ‡ท๐Ÿ‡ด Romania | ๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesia |
| ๐Ÿ‡ฆ๐Ÿ‡ฉ Andorra | ๐Ÿ‡ฌ๐Ÿ‡ท Greece | ๐Ÿ‡ธ๐Ÿ‡ฒ San Marino | |
| ๐Ÿ‡ฆ๐Ÿ‡น Austria | ๐Ÿ‡ญ๐Ÿ‡บ Hungary | ๐Ÿ‡ท๐Ÿ‡ธ Serbia | |
| ๐Ÿ‡ง๐Ÿ‡ช Belgium | ๐Ÿ‡ฎ๐Ÿ‡ช Ireland | ๐Ÿ‡ธ๐Ÿ‡ฐ Slovakia | |
| ๐Ÿ‡ง๐Ÿ‡ฆ Bosnia and Herzegovina | ๐Ÿ‡ฎ๐Ÿ‡น Italy | ๐Ÿ‡ธ๐Ÿ‡ฎ Slovenia | |
| ๐Ÿ‡ง๐Ÿ‡ฌ Bulgaria | ๐Ÿ‡ฑ๐Ÿ‡ฎ Liechtenstein | ๐Ÿ‡ช๐Ÿ‡ธ Spain | |
| ๐Ÿ‡ญ๐Ÿ‡ท Croatia | ๐Ÿ‡ฑ๐Ÿ‡บ Luxembourg | ๐Ÿ‡ธ๐Ÿ‡ช Sweden | |
| ๐Ÿ‡จ๐Ÿ‡พ Cyprus | ๐Ÿ‡ฒ๐Ÿ‡น Malta | ๐Ÿ‡จ๐Ÿ‡ญ Switzerland | |
| ๐Ÿ‡จ๐Ÿ‡ฟ Czechia | ๐Ÿ‡ฒ๐Ÿ‡จ Monaco | ๐Ÿ‡ฌ๐Ÿ‡ง United Kingdom | |
| ๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark | ๐Ÿ‡ฒ๐Ÿ‡ช Montenegro | | |
| ๐Ÿ‡ซ๐Ÿ‡ฎ Finland | ๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands | | |
| ๐Ÿ‡ซ๐Ÿ‡ท France | ๐Ÿ‡ฒ๐Ÿ‡ฐ North Macedonia | | |
| | ๐Ÿ‡ณ๐Ÿ‡ด Norway | | |
| | ๐Ÿ‡ต๐Ÿ‡ฑ Poland | | |
| | ๐Ÿ‡ต๐Ÿ‡น Portugal | | |

**Character Support (50 characters):**
```python
["-", ".", "0-9", "A-Z", "a", "d", "i", "m", "o", "ร–", "รœ", "ฤ†", "ฤŒ", "ฤ", "ล ", "ลฝ", "ะŸ"]
```

### ๐Ÿ‡ฐ๐Ÿ‡ท Korea Support
ํ•œ๊ตญ ์ž๋™์ฐจ ๋ฒˆํ˜ธํŒ ์ธ์‹ ์†”๋ฃจ์…˜

**Character Support (71 characters):**
```python
['0-9', '๊ฐ€', '๊ฐ•', '๊ฑฐ', '๊ฒฌ', '๊ฒฝ', '๊ณ ', '๊ณก', '๊ณต', '๊ด‘', '๊ต', '๊ตฌ', '๊ตญ', '๊ตฐ', '๊ธˆ', '๊ธ‰', '๊ธฐ',
 '๋‚˜', '๋‚จ', '๋„ˆ', '๋…ธ', '๋…น', '๋…ผ', '๋ˆ„', '๋‹ค', '๋‹จ', '๋Œ€', '๋”', '๋„', '๋™', '๋‘',
 '๋ผ', '๋Ÿฌ', '๋ ฌ', '๋ น', '๋ก€', '๋กœ', '๋ฃจ', '๋ฅœ', '๋ฅ ', '๋ฆฐ', '๋ฆผ', '๋ฆฝ',
 '๋งˆ', '๋จธ', '๋ฉด', '๋ช…', '๋ชจ', '๋ชฉ', '๋ฌด', '๋ฌธ', '๋ฐ”', '๋ฐฐ', '๋ฐฑ', '๋ฒ„', '๋ณ‘', '๋ณด', '๋ด‰', '๋ถ€', '๋ถ', '๋น™',
 '์‚ฌ', '์‚ฐ', '์‚ผ', '์ƒ', '์„œ', '์„ฑ', '์„ธ', '์†Œ', '์ˆ˜', '์ˆœ', '์‹ ',
 '์•„', '์•ˆ', '์–‘', '์–ด', '์—ญ', '์—ฐ', '์˜', '์˜ˆ', '์˜ค', '์™„', '์™•', '์™ธ', '์šฉ', '์šฐ', '์šด', '์šธ', '์›', '์›”', '์œ„', '์œ ', '์œก', '์€', '์ด', '์ต', '์ธ', '์ผ', '์ž„',
 '์ž', '์ž‘', '์žฅ', '์žฌ', '์ €', '์ ', '์ „', '์ •', '์ œ', '์กฐ', '์ข…', '์ฃผ', '์ง„',
 '์ฐจ', '์ฐฝ', '์ฑ„', '์ฒœ', '์ฒ ', '์ฒญ', '์ดˆ', '์ถ˜', '์ถœ', '์ถฉ', 'ํƒœ', 'ํƒ', 'ํ† ', 'ํ†ต', 'ํŠน',
 'ํŒŒ', 'ํŒ”', 'ํ‰', 'ํฌ', 'ํ‘œ', 'ํ•˜', 'ํ•™', 'ํ•œ', 'ํ•จ', 'ํ•ฉ', 'ํ•ด', 'ํ–‰', 'ํ—ˆ', 'ํ—Œ', 'ํ˜‘', 'ํ˜•', 'ํ˜ธ', 'ํ™',
 'ํ™”', 'ํ™ฉ', 'ํ‘', 'ํฅ']
```

### ๐Ÿ‡จ๐Ÿ‡ณ China Support
ไธญๅ›ฝ่ฝฆ็‰Œ่ฏ†ๅˆซ่งฃๅ†ณๆ–นๆกˆ

**Character Support:**
```python
['0-9', 'A-Z', 'ยท', 'ไบ‘', 'ไบฌ', 'ๅ†€', 'ๅ‰', 'ๅฎ', 'ๅท', 'ๆŒ‚', 'ๆ–ฐ', 'ๆ™‹', 'ๆก‚',
 'ๆฒช', 'ๆดฅ', 'ๆต™', 'ๆธ', 'ๆธฏ', 'ๆน˜', 'ๆพณ', '็ผ', '็”˜', '็š–',
 '็ฒค', '่‹', '่’™', '่—', '่ฑซ', '่ดต', '่ตฃ', '่พฝ', '้„‚', '้—ฝ', '้™•', '้’', '้ฒ', '้ป‘']
```

### ๐Ÿช Universal Model
An integrated model for recognizing license plates from all supported regions with automatic region detection.

<br><br>
## ๐Ÿ”ฉ Installation

### ๐Ÿ’ป CPU Installation (Universal)
```bash
# Lightweight installation for all platforms
pip install marearts-anpr
```

### ๐Ÿš€ GPU Installation (Recommended for Production)
```bash
# NVIDIA CUDA GPU (Linux/Windows) - Significantly faster
pip install marearts-anpr[gpu]

# Windows GPU (AMD/Intel/NVIDIA) - Faster processing  
pip install marearts-anpr[directml]

# All GPU support (maximum compatibility)
pip install marearts-anpr[all-gpu]

# Development dependencies
pip install marearts-anpr[dev]
```

### ๐Ÿ“Š GPU Acceleration
The SDK features smart provider detection that automatically uses the best available hardware. GPU acceleration provides significant performance improvements over CPU processing.

### Installation Recommendations
- **Production High-Throughput**: `pip install marearts-anpr[gpu]` - Best for NVIDIA GPU systems
- **Windows Development**: `pip install marearts-anpr[directml]` - Works with any GPU (AMD/Intel/NVIDIA)
- **CPU/Cloud Deployment**: `pip install marearts-anpr` - Lightweight, no GPU dependencies
- **Maximum Compatibility**: `pip install marearts-anpr[all-gpu]` - Includes all GPU support options

### System Requirements

- **Python**: 3.9, 3.10, 3.11, or 3.12
- **Operating System**: Linux (x86_64, ARM64), macOS, Windows
- **Memory**: Minimum 4GB RAM (8GB recommended for GPU)
- **Storage**: ~500MB for model files
- **GPU** (optional): NVIDIA CUDA or DirectML compatible

<br><br>
## ๐Ÿชช License Key

**For private keys,** please visit [MareArts ANPR Solution](https://study.marearts.com/p/anpr-lpr-solution.html).
For inquiries about private keys, contact us at [hello@marearts.com](mailto:hello@marearts.com).

<br><br>
## ๐Ÿš€ Quick Start

### Environment Setup (Required)
```bash
# Set license credentials (recommended)
export MAREARTS_ANPR_USERNAME="your-email@domain.com"
export MAREARTS_ANPR_SERIAL_KEY="your-serial-key"
```

### Basic Usage
```python
# pip install marearts-anpr[gpu]  # For best performance
from marearts_anpr import marearts_anpr_from_image_file
from marearts_anpr import ma_anpr_detector, ma_anpr_ocr

# Initialize with your credentials
user_name = "your_email"
serial_key = "your_serial_key"

# Optional: Load from environment variables if set
# export MAREARTS_ANPR_USERNAME="your-email@domain.com"
# export MAREARTS_ANPR_SERIAL_KEY="your-serial-key"
# import os
# user_name = os.getenv("MAREARTS_ANPR_USERNAME", user_name)
# serial_key = os.getenv("MAREARTS_ANPR_SERIAL_KEY", serial_key)

detector = ma_anpr_detector("v13_middle", user_name, serial_key)
ocr = ma_anpr_ocr("v13_euplus", user_name, serial_key)

# Process image
result = marearts_anpr_from_image_file(detector, ocr, "image.jpg")
print(result)
# Expected: {'results': [{'ocr': 'ABC123', 'ocr_conf': 99, ...}], 'ltrb_proc_sec': 0.08, 'ocr_proc_sec': 0.05}
```

### CLI Usage
```bash
# Direct image processing
ma-anpr image.jpg

# Test without credentials (1000 requests/day)
ma-anpr test-api image.jpg

# Validate license
ma-anpr validate

# List available models
ma-anpr models

# GPU information
ma-anpr gpu-info
```

<br><br>
## ๐Ÿค– Live Test
[MareArts ๐ŸŽฌ Live](http://live.marearts.com)

<br><br>
## ๐Ÿ“บ ANPR Result Videos
[Check here](https://www.youtube.com/playlist?list=PLvX6vpRszMkxJBJf4EjQ5VCnmkjfE59-J) to see the license plate recognition results in YouTube videos.

<br><br>
## ๐Ÿš‚ Model Version
### ANPR Detector Model Version

| Model | File Size | Precision | Recall | F1 Score | Avg Detection Time (s) |
|------------|-----------|-----------|---------|----------|------------------------|
| v10_small | 38MB | 0.9852 | 0.9694 | 0.9716 | 0.0468 |
| v10_middle | 79MB | 0.9836 | 0.9680 | 0.9701 | 0.0992 |
| v10_large | 125MB | 0.9858 | 0.9709 | 0.9731 | 0.2307 |
| v11_small | 38MB | 0.9791 | 0.9849 | 0.9779 | 0.0492 |
| v11_middle | 79MB | 0.9799 | 0.9866 | 0.9793 | 0.0938 |
| v11_large | 125MB | 0.9824 | 0.9892 | 0.9823 | 0.1561 |
| v13_nano | 14MB | 0.9657 | 0.9826 | 0.9676 | 0.0356 | 
| v13_small | 49MB | 0.9632 | 0.9920 | 0.9715 | 0.0657 | 
| v13_middle | 103MB | 0.9634 | 0.9940 | 0.9725 | 0.1629 |
| v13_large | 129MB | 0.9642 | 0.9936 | 0.9729 | 0.2053 |

### Recommendations

* ๐ŸŽฏ **Best Precision**: v10_large (0.9858)
* ๐Ÿ“ˆ **Best Recall**: v13_middle (0.9940)
* ๐Ÿฅ‡ **Best F1 Score**: v11_large (0.9823)
* โšก **Fastest Model**: v13_nano (0.0356s)

### Notes
* Speed test is based on i7-9800X 3.8GHz
* Last Update: 2025-03-31 15:26:43
* Please use the latest version of marearts-anpr
* **Use model name in detector code**



### ANPR OCR Model Version
| Model | Region | Size | Accuracy | Character Accuracy | Mean Confidence | Processing Time (s) | Recommendation |
|-------|---------|------|----------|-------------------|-----------------|---------------------|----------------|
| eu | EU | 293MB | 1.0000 | 1.0000 | 96.9071 | 0.0808 | ๐ŸŽฏ |
| euplus | EU Plus | 146MB | 0.9432 | 0.9876 | 94.0371 | 0.0841 | |
| kr | Korea | 146MB | 0.9822 | 0.9967 | 97.4243 | 0.0861 | |
| univ | Universal | 146MB | 0.9348 | 0.9877 | 94.4448 | 0.0862 | |
| v11_eu | EU | 293MB | 0.9900 | 0.9980 | 97.9573 | 0.0830 | ๐Ÿ” |
| v11_euplus | EU Plus | 146MB | 0.9822 | 0.9965 | 97.6391 | 0.0823 | ๐ŸŽฏ |
| v11_kr | Korea | 146MB | 0.9938 | 0.9991 | 98.5033 | 0.0852 | ๐ŸŽฏ |
| v11_univ | Universal | 146MB | 0.9600 | 0.9941 | 97.7669 | 0.0845 | โšก |
| v13_eu | EU | 295MB | 0.9504 | 0.9860 | 97.4215 | 0.0822 | |
| v13_kr | Korea | 147MB | 0.9721 | 0.9951 | 97.0080 | 0.0855 | |
| v13_cn | China | 147MB | 0.9657 | 0.9932 | 97.7589 | 0.0858 | ๐ŸŽฏ |
| v13_euplus | EU Plus | 147MB | 0.9617 | 0.9901 | 97.6953 | 0.0822 | โšก |
| v13_univ | Universal | 147MB | 0.9829 | 0.9963 | 98.6056 | 0.0846 | ๐ŸŽฏ |

### Recommendation Icons
* ๐ŸŽฏ Best Accuracy
* ๐Ÿ“ Best Character Accuracy
* ๐Ÿ” Best Confidence
* โšก Fastest Model

### Notes
* Speed test is based on i7-9800X 3.8GHz
* Last Update: 2025-04-04 21:38:05
* Please use the latest version of marearts-anpr
* **Use model name in ocr code**

<br><br>
## ๐Ÿ›ก๏ธ Enterprise Security

### Security Features
- ๐Ÿ”’ **License Protection**: Military-grade license validation system
- ๐Ÿšซ **Direct Access Prevention**: Low-level classes protected from bypass attempts
- ๐Ÿ” **Environment Variables**: Secure credential management (no config files)
- โš ๏ธ **Generic Error Messages**: No sensitive information leakage to potential attackers
- ๐Ÿ”„ **Dynamic Validation**: Periodic license state verification

### Credential Management
```bash
# Secure environment variable setup (recommended)
export MAREARTS_ANPR_USERNAME="your-email@domain.com"  
export MAREARTS_ANPR_SERIAL_KEY="your-serial-key"

# Validate credentials
ma-anpr validate
```

### Security Best Practices
- โœ… Use environment variables for credentials
- โœ… Never hardcode license keys in source code
- โœ… Validate license before production deployment
- โœ… Monitor for licensing compliance

<br><br>
## ๐Ÿ“ Using SDK
### ๐Ÿ”ฌ SDK Usage
Try our interactive demo: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1zZlueTZ1Le73yOQ3mdJFONxcebKyCgr-?usp=sharing)


Here's an example of how to use the updated SDK:

```python
# pip install marearts-anpr
import cv2
from PIL import Image
from marearts_anpr import ma_anpr_detector
from marearts_anpr import ma_anpr_ocr
from marearts_anpr import marearts_anpr_from_pil
from marearts_anpr import marearts_anpr_from_image_file
from marearts_anpr import marearts_anpr_from_cv2

if __name__ == '__main__':
    
    #################################
    ## Initiate MareArts ANPR
    print("EU ANPR")
    
    # Initialize with your credentials
    user_name = "your_email"
    serial_key = "your_serial_key"
    
    # Optional: Load from environment variables if set
    # export MAREARTS_ANPR_USERNAME="your-email@domain.com"
    # export MAREARTS_ANPR_SERIAL_KEY="your-serial-key"
    # import os
    # user_name = os.getenv("MAREARTS_ANPR_USERNAME", user_name)
    # serial_key = os.getenv("MAREARTS_ANPR_SERIAL_KEY", serial_key)
    
    detector_model_version = "v13_middle" # Latest v13 series recommended
    ocr_model_version = "v13_euplus" # Latest v13 series recommended

    # MareArts ANPR Detector Inference (with GPU acceleration)
    anpr_d = ma_anpr_detector(detector_model_version, user_name, serial_key, conf_thres=0.3, iou_thres=0.5)
    # MareArts ANPR OCR Inference (with GPU acceleration)
    anpr_r = ma_anpr_ocr(ocr_model_version, user_name, serial_key)
    #################################

    #################################
    # Routine Task 1 - Predict from File
    image_path = './sample_images/eu_test1.jpg'
    output = marearts_anpr_from_image_file(anpr_d, anpr_r, image_path)
    print(output)

    # Routine Task 2 - Predict from cv2
    img = cv2.imread(image_path)
    output = marearts_anpr_from_cv2(anpr_d, anpr_r, img)
    print(output)

    # Routine Task 3 - Predict from Pillow
    pil_img = Image.open(image_path)
    output = marearts_anpr_from_pil(anpr_d, anpr_r, pil_img)
    print(output)
    #################################


    #################################
    ## Initiate MareArts ANPR for Korea
    print("ANPR Korean")
    # user_name, serial_key are already defined (or loaded from environment)
    # anpr_d is also already initiated before
    ocr_model_version = "v13_kr" # Latest v13 series recommended
    # MareArts ANPR OCR Inference (with GPU acceleration)
    anpr_r = ma_anpr_ocr(ocr_model_version, user_name, serial_key)

    #################################
    # Routine Task 1 - Predict from File
    image_path = './sample_images/kr_test2.jpg'
    output = marearts_anpr_from_image_file(anpr_d, anpr_r, image_path)
    print(output)

    # Routine Task 2 - Predict from cv2
    img = cv2.imread(image_path)
    output = marearts_anpr_from_cv2(anpr_d, anpr_r, img)
    print(output)

    # Routine Task 3 - Predict from Pillow
    pil_img = Image.open(image_path)
    output = marearts_anpr_from_pil(anpr_d, anpr_r, pil_img)
    print(output)
    #################################
```
Please refer to the **advanced.py** code in the **./example_code**  folder. This file demonstrates how to implement the ma_anpr_detector and ma_anpr_ocr separately.

<br><br>
### ๐Ÿ”ฌ Returns
The output from the ANPR will be similar to:

```python
{
    'results': [
        {'ocr': 'SL593LM', 'ocr_conf': 99, 'ltrb': [819, 628, 1085, 694], 'ltrb_conf': 90}
        ], 
    'ltrb_proc_sec': 0.22,
    'ocr_proc_sec': 0.15
}
```
```python
{
    'results': [
        {'ocr': '123๊ฐ€4568', 'ocr_conf': 99, 'ltrb': [181, 48, 789, 186], 'ltrb_conf': 83}, 
        {'ocr': '123๊ฐ€4568', 'ocr_conf': 99, 'ltrb': [154, 413, 774, 557], 'ltrb_conf': 82}, 
        {'ocr': '123๊ฐ€4568', 'ocr_conf': 99, 'ltrb': [154, 601, 763, 746], 'ltrb_conf': 80}, 
        {'ocr': '123๊ฐ€4568', 'ocr_conf': 99, 'ltrb': [156, 217, 773, 369], 'ltrb_conf': 80}
        ],
    'ltrb_proc_sec': 0.23,
    'ocr_proc_sec': 0.6
}
```

- **Results:** Contains OCR text, probabilities, and detection coordinate(left, top, right, bottom).
- **Processing Speeds:** Provided for license plate detection and OCR.

<br><br>
## ๐Ÿงช API for Testing

**Daily limit:** 1000 requests

### Quick Test via CLI (Recommended)

```bash
# Test with an image using default models
ma-anpr test-api image.jpg

# Specify custom models
ma-anpr test-api image.jpg --detector v13_small --ocr v13_kr

# Process multiple images
ma-anpr test-api *.jpg

# List available models
ma-anpr test-api --list-models

# Save results to JSON
ma-anpr test-api image.jpg --json results.json
```

### Direct API Call (Advanced)

<details>
<summary>Click to see API details</summary>

**Test Credentials:**
- **User ID:** `marearts@public`
- **API Key:** `J4K9L2Wory34@G7T1Y8rt-PP83uSSvkV3Z6ioSTR!`

```bash
curl -X POST https://we303v9ck8.execute-api.eu-west-1.amazonaws.com/Prod/marearts_anpr \
     -H "Content-Type: image/jpeg" \
     -H "x-api-key: J4K9L2Wory34@G7T1Y8rt-PP83uSSvkV3Z6ioSTR!" \
     -H "user-id: marearts@public" \
     -H "detector_model_version: v13_middle" \
     -H "ocr_model_version: v13_euplus" \
     --data-binary "@./image.jpg"
```

</details>


<br><br>
## โš“๏ธ Create MareArts ANPR API Docker
Please refer to **./API_docker_example**  folder. 
```bash
API_docker_example
โ”‚
โ”œโ”€โ”€ api_call.sh           # Shell script to make API calls to the MareArts ANPR application.
โ”œโ”€โ”€ app.py                # Python script containing the MareArts ANPR application.
โ”œโ”€โ”€ build_image.sh        # Shell script to build the Docker image from the Dockerfile.
โ”œโ”€โ”€ Dockerfile            # Dockerfile containing instructions for building the Docker image.
โ”œโ”€โ”€ request.py            # Python script to send requests to the MareArts ANPR API server.
โ”œโ”€โ”€ requirements.txt      # Contains a list of Python packages that the app requires.
โ””โ”€โ”€ run_container.sh      # Shell script to run the Docker container from the built image.
```

<br><br>
## โš™๏ธ example_code

**bg_subtraction.py** - Motion detection with OpenCV
- Detects moving objects in video
- Adjustable sensitivity and object size

**basic.py** - Easy license plate recognition
- Uses MareArts ANPR SDK with simple implementation

**advance.py** - Advanced license plate recognition
- Direct control of detection and OCR steps
- Run detection and OCR separately for better control


<br><br>
## โ“ Frequently Asked Questions (FAQ)

### ๐Ÿ› ๏ธ Technical Questions

#### Q: Do I need an internet connection to use the software?
**A:** No, the software works offline after initial setup. Internet is only needed for:
- Initial model download
- Checking/downloading model updates
- Without internet, SDK uses existing downloaded model

#### Q: What's new in the latest version?
**A:** Major enterprise improvements:
- ๐Ÿ›ก๏ธ **Enterprise Security**: Military-grade license protection
- ๐Ÿš€ **GPU Acceleration**: Significantly faster with smart provider detection  
- ๐Ÿ” **Environment Variables**: Secure credential management
- ๐Ÿ’ป **CLI Interface**: `ma-anpr` command-line tool
- ๐ŸŒ **Multi-Platform**: Professional installation variants

#### Q: How do I get GPU acceleration?
**A:** Install the appropriate GPU variant:
- **NVIDIA GPU**: `pip install marearts-anpr[gpu]` (Best performance)
- **Windows GPU**: `pip install marearts-anpr[directml]` (Good performance)
- **All GPUs**: `pip install marearts-anpr[all-gpu]`

#### Q: How do I set up credentials securely?
**A:** Use environment variables:
```bash
export MAREARTS_ANPR_USERNAME="your-email@domain.com"
export MAREARTS_ANPR_SERIAL_KEY="your-serial-key"
ma-anpr validate  # Test credentials
```

### ๐Ÿ“‹ Licensing & Usage

#### Q: What types of licenses are available?
**A:** Three license types are available:
- **Monthly licenses** - Need renewal every month
- **Yearly licenses** - Need renewal every year  
- **Lifetime licenses** - No expiration, use indefinitely

#### Q: Can I use my license on multiple computers?
**A:** Yes! All licenses have no limits on the number of computers. You can use them on multiple computers simultaneously.

#### Q: How does license renewal work?
**A:** 
- **Monthly/Yearly licenses**: Must be renewed before expiration
- **Lifetime licenses**: No expiration, use indefinitely

### ๐Ÿ’ณ Billing & Refunds

#### Q: What is your refund policy?
**A:** Refunds are only available when a license key has not been issued. However, subscription cancellation is possible at any time.

#### Q: Can I cancel my subscription anytime?
**A:** Yes, you can cancel your subscription at any time, though refunds are only available if the license key hasn't been issued yet.

### ๐Ÿ”’ Service Continuity

#### Q: What happens if the service discontinues?
**A:** We commit to either:
- Open-sourcing the code, or
- Providing lifetime licenses to active users

### ๐Ÿ“ž Support

#### Q: How can I get help?
**A:** Contact our support team at [hello@marearts.com](mailto:hello@marearts.com) for setup, licensing, or technical issues.

<br><br>
## ๐Ÿ“ž Support & Resources

| Resource | Link |
|----------|------|
| ๐Ÿ“ง **Contact** | [hello@marearts.com](mailto:hello@marearts.com) |
| ๐Ÿ  **Homepage** | [https://marearts.com](https://marearts.com) |
| ๐Ÿ“š **Blog** | [http://study.marearts.com](http://study.marearts.com) |
| ๐Ÿ’ณ **Subscription** | [ANPR Solution](https://study.marearts.com/p/anpr-lpr-solution.html) |
| ๐ŸŽฎ **Live Demo** | [http://live.marearts.com](http://live.marearts.com) |
| ๐Ÿ“บ **Video Examples** | [YouTube Playlist](https://www.youtube.com/playlist?list=PLvX6vpRszMkxJBJf4EjQ5VCnmkjfE59-J) |
| ๐Ÿงช **Colab Demo** | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1zZlueTZ1Le73yOQ3mdJFONxcebKyCgr-?usp=sharing) |

## ๐Ÿ“œ License

This software is proprietary and protected by copyright. Use requires a valid license key from MareArts.

ยฉ 2024 MareArts. All rights reserved.


---

<div align="center">

**Made with โค๏ธ by [MareArts](https://marearts.com)**

๐Ÿ™‡๐Ÿปโ€โ™‚๏ธ Thank you for using MareArts ANPR!

</div>


            

Raw data

            {
    "_id": null,
    "home_page": "https://www.marearts.com",
    "name": "marearts-anpr",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "MareArts",
    "author_email": "hello@marearts.com",
    "download_url": null,
    "platform": null,
    "description": "# MareArts ANPR SDK\n\n[![PyPI version](https://badge.fury.io/py/marearts-anpr.svg)](https://badge.fury.io/py/marearts-anpr)\n[![Python versions](https://img.shields.io/pypi/pyversions/marearts-anpr.svg)](https://pypi.org/project/marearts-anpr/)\n[![Downloads](https://pepy.tech/badge/marearts-anpr)](https://pepy.tech/project/marearts-anpr)\n[![License: Proprietary](https://img.shields.io/badge/License-Proprietary-red.svg)](https://study.marearts.com/p/anpr-lpr-solution.html)\n[![GitHub stars](https://img.shields.io/github/stars/marearts/marearts-anpr.svg)](https://github.com/marearts/marearts-anpr/stargazers)\n[![Live Demo](https://img.shields.io/badge/demo-live-brightgreen.svg)](http://live.marearts.com)\n\n\n**Enterprise-grade** Automatic Number Plate Recognition (ANPR) SDK supporting **European Union**, **Korea**, **China**, and **Universal** license plates with **99%+ accuracy** and **GPU acceleration**.\n\n## \u2728 Key Features\n\n- \ud83d\ude97 **Multi-Region Support**: EU, Korea, China, and Universal license plates\n- \u26a1 **High Performance**: Optimized C++ core with Python bindings + GPU acceleration\n- \ud83c\udfaf **High Accuracy**: Up to 99.4% accuracy with latest models\n- \ud83d\udee1\ufe0f **Enterprise Security**: Military-grade protection with license validation\n- \ud83d\ude80 **GPU Acceleration**: Significantly faster processing with CUDA/DirectML support\n- \ud83d\udd27 **Easy Integration**: Simple Python API with comprehensive examples\n- \ud83d\udc33 **Docker Ready**: Complete Docker deployment examples\n- \ud83c\udf10 **API Server**: REST API examples for production deployment\n- \ud83d\udcf1 **Multiple Formats**: Support for CV2, PIL, and file inputs\n- \ud83c\udf0d **Multi-Platform**: Linux, Windows, macOS with smart provider detection\n\n## \ud83d\udcc1 Repository Structure\n\nThis repository contains customer examples, documentation, and usage guides for the MareArts ANPR SDK.\n\n### Directory Structure\n```\nmarearts-anpr/\n\u251c\u2500\u2500 API_docker_example/     # Docker API server example\n\u251c\u2500\u2500 example_code/           # Basic and advanced usage examples  \n\u251c\u2500\u2500 sample_images/          # Test images for different regions\n\u251c\u2500\u2500 md_images/              # Documentation screenshots\n\u251c\u2500\u2500 etc/                    # Additional resources (fonts, utilities)\n\u2514\u2500\u2500 README.md               # This documentation\n```\n\n\n## \ud83d\udcd1 Table of Contents\n- [\ud83c\udf0d Regional Support](#-regional-support)\n- [\ud83d\udd29 Installation](#-installation)\n- [\ud83e\udeaa License Key](#-license-key)\n- [\ud83e\udd16 Live Test](#-live-test)\n- [\ud83d\udcfa ANPR Result Videos](#-anpr-result-videos)\n- [\ud83d\ude82 Model Version](#-model-version)\n- [\ud83d\udcdd Using SDK](#-using-sdk)\n- [\ud83e\uddea API for testing](#-api-for-testing)\n- [\u2693\ufe0f Create MareArts ANPR API Docker](#\ufe0f-create-marearts-anpr-api-docker)\n- [\u2699\ufe0f example_code](#\ufe0f-example_code)\n- [\ud83d\udccb Software Licensing FAQ](#-software-licensing-faq)\n- [\ud83d\ude0e More Detail](#-more-detail)\n\n## \ud83c\udf0d Regional Support\n\nMareArts ANPR provides comprehensive license plate recognition across multiple regions with specialized models optimized for each area.\n\n### \ud83c\uddea\ud83c\uddfa European Union & Plus Countries\n\n**Supported Countries:**\n\n| A-F | G-P | R-Z | Plus |\n|-----|-----|-----|------|\n| \ud83c\udde6\ud83c\uddf1 Albania | \ud83c\udde9\ud83c\uddea Germany | \ud83c\uddf7\ud83c\uddf4 Romania | \ud83c\uddee\ud83c\udde9 Indonesia |\n| \ud83c\udde6\ud83c\udde9 Andorra | \ud83c\uddec\ud83c\uddf7 Greece | \ud83c\uddf8\ud83c\uddf2 San Marino | |\n| \ud83c\udde6\ud83c\uddf9 Austria | \ud83c\udded\ud83c\uddfa Hungary | \ud83c\uddf7\ud83c\uddf8 Serbia | |\n| \ud83c\udde7\ud83c\uddea Belgium | \ud83c\uddee\ud83c\uddea Ireland | \ud83c\uddf8\ud83c\uddf0 Slovakia | |\n| \ud83c\udde7\ud83c\udde6 Bosnia and Herzegovina | \ud83c\uddee\ud83c\uddf9 Italy | \ud83c\uddf8\ud83c\uddee Slovenia | |\n| \ud83c\udde7\ud83c\uddec Bulgaria | \ud83c\uddf1\ud83c\uddee Liechtenstein | \ud83c\uddea\ud83c\uddf8 Spain | |\n| \ud83c\udded\ud83c\uddf7 Croatia | \ud83c\uddf1\ud83c\uddfa Luxembourg | \ud83c\uddf8\ud83c\uddea Sweden | |\n| \ud83c\udde8\ud83c\uddfe Cyprus | \ud83c\uddf2\ud83c\uddf9 Malta | \ud83c\udde8\ud83c\udded Switzerland | |\n| \ud83c\udde8\ud83c\uddff Czechia | \ud83c\uddf2\ud83c\udde8 Monaco | \ud83c\uddec\ud83c\udde7 United Kingdom | |\n| \ud83c\udde9\ud83c\uddf0 Denmark | \ud83c\uddf2\ud83c\uddea Montenegro | | |\n| \ud83c\uddeb\ud83c\uddee Finland | \ud83c\uddf3\ud83c\uddf1 Netherlands | | |\n| \ud83c\uddeb\ud83c\uddf7 France | \ud83c\uddf2\ud83c\uddf0 North Macedonia | | |\n| | \ud83c\uddf3\ud83c\uddf4 Norway | | |\n| | \ud83c\uddf5\ud83c\uddf1 Poland | | |\n| | \ud83c\uddf5\ud83c\uddf9 Portugal | | |\n\n**Character Support (50 characters):**\n```python\n[\"-\", \".\", \"0-9\", \"A-Z\", \"a\", \"d\", \"i\", \"m\", \"o\", \"\u00d6\", \"\u00dc\", \"\u0106\", \"\u010c\", \"\u0110\", \"\u0160\", \"\u017d\", \"\u041f\"]\n```\n\n### \ud83c\uddf0\ud83c\uddf7 Korea Support\n\ud55c\uad6d \uc790\ub3d9\ucc28 \ubc88\ud638\ud310 \uc778\uc2dd \uc194\ub8e8\uc158\n\n**Character Support (71 characters):**\n```python\n['0-9', '\uac00', '\uac15', '\uac70', '\uacac', '\uacbd', '\uace0', '\uace1', '\uacf5', '\uad11', '\uad50', '\uad6c', '\uad6d', '\uad70', '\uae08', '\uae09', '\uae30',\n '\ub098', '\ub0a8', '\ub108', '\ub178', '\ub179', '\ub17c', '\ub204', '\ub2e4', '\ub2e8', '\ub300', '\ub354', '\ub3c4', '\ub3d9', '\ub450',\n '\ub77c', '\ub7ec', '\ub82c', '\ub839', '\ub840', '\ub85c', '\ub8e8', '\ub95c', '\ub960', '\ub9b0', '\ub9bc', '\ub9bd',\n '\ub9c8', '\uba38', '\uba74', '\uba85', '\ubaa8', '\ubaa9', '\ubb34', '\ubb38', '\ubc14', '\ubc30', '\ubc31', '\ubc84', '\ubcd1', '\ubcf4', '\ubd09', '\ubd80', '\ubd81', '\ube59',\n '\uc0ac', '\uc0b0', '\uc0bc', '\uc0c1', '\uc11c', '\uc131', '\uc138', '\uc18c', '\uc218', '\uc21c', '\uc2e0',\n '\uc544', '\uc548', '\uc591', '\uc5b4', '\uc5ed', '\uc5f0', '\uc601', '\uc608', '\uc624', '\uc644', '\uc655', '\uc678', '\uc6a9', '\uc6b0', '\uc6b4', '\uc6b8', '\uc6d0', '\uc6d4', '\uc704', '\uc720', '\uc721', '\uc740', '\uc774', '\uc775', '\uc778', '\uc77c', '\uc784',\n '\uc790', '\uc791', '\uc7a5', '\uc7ac', '\uc800', '\uc801', '\uc804', '\uc815', '\uc81c', '\uc870', '\uc885', '\uc8fc', '\uc9c4',\n '\ucc28', '\ucc3d', '\ucc44', '\ucc9c', '\ucca0', '\uccad', '\ucd08', '\ucd98', '\ucd9c', '\ucda9', '\ud0dc', '\ud0dd', '\ud1a0', '\ud1b5', '\ud2b9',\n '\ud30c', '\ud314', '\ud3c9', '\ud3ec', '\ud45c', '\ud558', '\ud559', '\ud55c', '\ud568', '\ud569', '\ud574', '\ud589', '\ud5c8', '\ud5cc', '\ud611', '\ud615', '\ud638', '\ud64d',\n '\ud654', '\ud669', '\ud751', '\ud765']\n```\n\n### \ud83c\udde8\ud83c\uddf3 China Support\n\u4e2d\u56fd\u8f66\u724c\u8bc6\u522b\u89e3\u51b3\u65b9\u6848\n\n**Character Support:**\n```python\n['0-9', 'A-Z', '\u00b7', '\u4e91', '\u4eac', '\u5180', '\u5409', '\u5b81', '\u5ddd', '\u6302', '\u65b0', '\u664b', '\u6842',\n '\u6caa', '\u6d25', '\u6d59', '\u6e1d', '\u6e2f', '\u6e58', '\u6fb3', '\u743c', '\u7518', '\u7696',\n '\u7ca4', '\u82cf', '\u8499', '\u85cf', '\u8c6b', '\u8d35', '\u8d63', '\u8fbd', '\u9102', '\u95fd', '\u9655', '\u9752', '\u9c81', '\u9ed1']\n```\n\n### \ud83e\ude90 Universal Model\nAn integrated model for recognizing license plates from all supported regions with automatic region detection.\n\n<br><br>\n## \ud83d\udd29 Installation\n\n### \ud83d\udcbb CPU Installation (Universal)\n```bash\n# Lightweight installation for all platforms\npip install marearts-anpr\n```\n\n### \ud83d\ude80 GPU Installation (Recommended for Production)\n```bash\n# NVIDIA CUDA GPU (Linux/Windows) - Significantly faster\npip install marearts-anpr[gpu]\n\n# Windows GPU (AMD/Intel/NVIDIA) - Faster processing  \npip install marearts-anpr[directml]\n\n# All GPU support (maximum compatibility)\npip install marearts-anpr[all-gpu]\n\n# Development dependencies\npip install marearts-anpr[dev]\n```\n\n### \ud83d\udcca GPU Acceleration\nThe SDK features smart provider detection that automatically uses the best available hardware. GPU acceleration provides significant performance improvements over CPU processing.\n\n### Installation Recommendations\n- **Production High-Throughput**: `pip install marearts-anpr[gpu]` - Best for NVIDIA GPU systems\n- **Windows Development**: `pip install marearts-anpr[directml]` - Works with any GPU (AMD/Intel/NVIDIA)\n- **CPU/Cloud Deployment**: `pip install marearts-anpr` - Lightweight, no GPU dependencies\n- **Maximum Compatibility**: `pip install marearts-anpr[all-gpu]` - Includes all GPU support options\n\n### System Requirements\n\n- **Python**: 3.9, 3.10, 3.11, or 3.12\n- **Operating System**: Linux (x86_64, ARM64), macOS, Windows\n- **Memory**: Minimum 4GB RAM (8GB recommended for GPU)\n- **Storage**: ~500MB for model files\n- **GPU** (optional): NVIDIA CUDA or DirectML compatible\n\n<br><br>\n## \ud83e\udeaa License Key\n\n**For private keys,** please visit [MareArts ANPR Solution](https://study.marearts.com/p/anpr-lpr-solution.html).\nFor inquiries about private keys, contact us at [hello@marearts.com](mailto:hello@marearts.com).\n\n<br><br>\n## \ud83d\ude80 Quick Start\n\n### Environment Setup (Required)\n```bash\n# Set license credentials (recommended)\nexport MAREARTS_ANPR_USERNAME=\"your-email@domain.com\"\nexport MAREARTS_ANPR_SERIAL_KEY=\"your-serial-key\"\n```\n\n### Basic Usage\n```python\n# pip install marearts-anpr[gpu]  # For best performance\nfrom marearts_anpr import marearts_anpr_from_image_file\nfrom marearts_anpr import ma_anpr_detector, ma_anpr_ocr\n\n# Initialize with your credentials\nuser_name = \"your_email\"\nserial_key = \"your_serial_key\"\n\n# Optional: Load from environment variables if set\n# export MAREARTS_ANPR_USERNAME=\"your-email@domain.com\"\n# export MAREARTS_ANPR_SERIAL_KEY=\"your-serial-key\"\n# import os\n# user_name = os.getenv(\"MAREARTS_ANPR_USERNAME\", user_name)\n# serial_key = os.getenv(\"MAREARTS_ANPR_SERIAL_KEY\", serial_key)\n\ndetector = ma_anpr_detector(\"v13_middle\", user_name, serial_key)\nocr = ma_anpr_ocr(\"v13_euplus\", user_name, serial_key)\n\n# Process image\nresult = marearts_anpr_from_image_file(detector, ocr, \"image.jpg\")\nprint(result)\n# Expected: {'results': [{'ocr': 'ABC123', 'ocr_conf': 99, ...}], 'ltrb_proc_sec': 0.08, 'ocr_proc_sec': 0.05}\n```\n\n### CLI Usage\n```bash\n# Direct image processing\nma-anpr image.jpg\n\n# Test without credentials (1000 requests/day)\nma-anpr test-api image.jpg\n\n# Validate license\nma-anpr validate\n\n# List available models\nma-anpr models\n\n# GPU information\nma-anpr gpu-info\n```\n\n<br><br>\n## \ud83e\udd16 Live Test\n[MareArts \ud83c\udfac Live](http://live.marearts.com)\n\n<br><br>\n## \ud83d\udcfa ANPR Result Videos\n[Check here](https://www.youtube.com/playlist?list=PLvX6vpRszMkxJBJf4EjQ5VCnmkjfE59-J) to see the license plate recognition results in YouTube videos.\n\n<br><br>\n## \ud83d\ude82 Model Version\n### ANPR Detector Model Version\n\n| Model | File Size | Precision | Recall | F1 Score | Avg Detection Time (s) |\n|------------|-----------|-----------|---------|----------|------------------------|\n| v10_small | 38MB | 0.9852 | 0.9694 | 0.9716 | 0.0468 |\n| v10_middle | 79MB | 0.9836 | 0.9680 | 0.9701 | 0.0992 |\n| v10_large | 125MB | 0.9858 | 0.9709 | 0.9731 | 0.2307 |\n| v11_small | 38MB | 0.9791 | 0.9849 | 0.9779 | 0.0492 |\n| v11_middle | 79MB | 0.9799 | 0.9866 | 0.9793 | 0.0938 |\n| v11_large | 125MB | 0.9824 | 0.9892 | 0.9823 | 0.1561 |\n| v13_nano | 14MB | 0.9657 | 0.9826 | 0.9676 | 0.0356 | \n| v13_small | 49MB | 0.9632 | 0.9920 | 0.9715 | 0.0657 | \n| v13_middle | 103MB | 0.9634 | 0.9940 | 0.9725 | 0.1629 |\n| v13_large | 129MB | 0.9642 | 0.9936 | 0.9729 | 0.2053 |\n\n### Recommendations\n\n* \ud83c\udfaf **Best Precision**: v10_large (0.9858)\n* \ud83d\udcc8 **Best Recall**: v13_middle (0.9940)\n* \ud83e\udd47 **Best F1 Score**: v11_large (0.9823)\n* \u26a1 **Fastest Model**: v13_nano (0.0356s)\n\n### Notes\n* Speed test is based on i7-9800X 3.8GHz\n* Last Update: 2025-03-31 15:26:43\n* Please use the latest version of marearts-anpr\n* **Use model name in detector code**\n\n\n\n### ANPR OCR Model Version\n| Model | Region | Size | Accuracy | Character Accuracy | Mean Confidence | Processing Time (s) | Recommendation |\n|-------|---------|------|----------|-------------------|-----------------|---------------------|----------------|\n| eu | EU | 293MB | 1.0000 | 1.0000 | 96.9071 | 0.0808 | \ud83c\udfaf |\n| euplus | EU Plus | 146MB | 0.9432 | 0.9876 | 94.0371 | 0.0841 | |\n| kr | Korea | 146MB | 0.9822 | 0.9967 | 97.4243 | 0.0861 | |\n| univ | Universal | 146MB | 0.9348 | 0.9877 | 94.4448 | 0.0862 | |\n| v11_eu | EU | 293MB | 0.9900 | 0.9980 | 97.9573 | 0.0830 | \ud83d\udd0d |\n| v11_euplus | EU Plus | 146MB | 0.9822 | 0.9965 | 97.6391 | 0.0823 | \ud83c\udfaf |\n| v11_kr | Korea | 146MB | 0.9938 | 0.9991 | 98.5033 | 0.0852 | \ud83c\udfaf |\n| v11_univ | Universal | 146MB | 0.9600 | 0.9941 | 97.7669 | 0.0845 | \u26a1 |\n| v13_eu | EU | 295MB | 0.9504 | 0.9860 | 97.4215 | 0.0822 | |\n| v13_kr | Korea | 147MB | 0.9721 | 0.9951 | 97.0080 | 0.0855 | |\n| v13_cn | China | 147MB | 0.9657 | 0.9932 | 97.7589 | 0.0858 | \ud83c\udfaf |\n| v13_euplus | EU Plus | 147MB | 0.9617 | 0.9901 | 97.6953 | 0.0822 | \u26a1 |\n| v13_univ | Universal | 147MB | 0.9829 | 0.9963 | 98.6056 | 0.0846 | \ud83c\udfaf |\n\n### Recommendation Icons\n* \ud83c\udfaf Best Accuracy\n* \ud83d\udcdd Best Character Accuracy\n* \ud83d\udd0d Best Confidence\n* \u26a1 Fastest Model\n\n### Notes\n* Speed test is based on i7-9800X 3.8GHz\n* Last Update: 2025-04-04 21:38:05\n* Please use the latest version of marearts-anpr\n* **Use model name in ocr code**\n\n<br><br>\n## \ud83d\udee1\ufe0f Enterprise Security\n\n### Security Features\n- \ud83d\udd12 **License Protection**: Military-grade license validation system\n- \ud83d\udeab **Direct Access Prevention**: Low-level classes protected from bypass attempts\n- \ud83d\udd10 **Environment Variables**: Secure credential management (no config files)\n- \u26a0\ufe0f **Generic Error Messages**: No sensitive information leakage to potential attackers\n- \ud83d\udd04 **Dynamic Validation**: Periodic license state verification\n\n### Credential Management\n```bash\n# Secure environment variable setup (recommended)\nexport MAREARTS_ANPR_USERNAME=\"your-email@domain.com\"  \nexport MAREARTS_ANPR_SERIAL_KEY=\"your-serial-key\"\n\n# Validate credentials\nma-anpr validate\n```\n\n### Security Best Practices\n- \u2705 Use environment variables for credentials\n- \u2705 Never hardcode license keys in source code\n- \u2705 Validate license before production deployment\n- \u2705 Monitor for licensing compliance\n\n<br><br>\n## \ud83d\udcdd Using SDK\n### \ud83d\udd2c SDK Usage\nTry our interactive demo: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1zZlueTZ1Le73yOQ3mdJFONxcebKyCgr-?usp=sharing)\n\n\nHere's an example of how to use the updated SDK:\n\n```python\n# pip install marearts-anpr\nimport cv2\nfrom PIL import Image\nfrom marearts_anpr import ma_anpr_detector\nfrom marearts_anpr import ma_anpr_ocr\nfrom marearts_anpr import marearts_anpr_from_pil\nfrom marearts_anpr import marearts_anpr_from_image_file\nfrom marearts_anpr import marearts_anpr_from_cv2\n\nif __name__ == '__main__':\n    \n    #################################\n    ## Initiate MareArts ANPR\n    print(\"EU ANPR\")\n    \n    # Initialize with your credentials\n    user_name = \"your_email\"\n    serial_key = \"your_serial_key\"\n    \n    # Optional: Load from environment variables if set\n    # export MAREARTS_ANPR_USERNAME=\"your-email@domain.com\"\n    # export MAREARTS_ANPR_SERIAL_KEY=\"your-serial-key\"\n    # import os\n    # user_name = os.getenv(\"MAREARTS_ANPR_USERNAME\", user_name)\n    # serial_key = os.getenv(\"MAREARTS_ANPR_SERIAL_KEY\", serial_key)\n    \n    detector_model_version = \"v13_middle\" # Latest v13 series recommended\n    ocr_model_version = \"v13_euplus\" # Latest v13 series recommended\n\n    # MareArts ANPR Detector Inference (with GPU acceleration)\n    anpr_d = ma_anpr_detector(detector_model_version, user_name, serial_key, conf_thres=0.3, iou_thres=0.5)\n    # MareArts ANPR OCR Inference (with GPU acceleration)\n    anpr_r = ma_anpr_ocr(ocr_model_version, user_name, serial_key)\n    #################################\n\n    #################################\n    # Routine Task 1 - Predict from File\n    image_path = './sample_images/eu_test1.jpg'\n    output = marearts_anpr_from_image_file(anpr_d, anpr_r, image_path)\n    print(output)\n\n    # Routine Task 2 - Predict from cv2\n    img = cv2.imread(image_path)\n    output = marearts_anpr_from_cv2(anpr_d, anpr_r, img)\n    print(output)\n\n    # Routine Task 3 - Predict from Pillow\n    pil_img = Image.open(image_path)\n    output = marearts_anpr_from_pil(anpr_d, anpr_r, pil_img)\n    print(output)\n    #################################\n\n\n    #################################\n    ## Initiate MareArts ANPR for Korea\n    print(\"ANPR Korean\")\n    # user_name, serial_key are already defined (or loaded from environment)\n    # anpr_d is also already initiated before\n    ocr_model_version = \"v13_kr\" # Latest v13 series recommended\n    # MareArts ANPR OCR Inference (with GPU acceleration)\n    anpr_r = ma_anpr_ocr(ocr_model_version, user_name, serial_key)\n\n    #################################\n    # Routine Task 1 - Predict from File\n    image_path = './sample_images/kr_test2.jpg'\n    output = marearts_anpr_from_image_file(anpr_d, anpr_r, image_path)\n    print(output)\n\n    # Routine Task 2 - Predict from cv2\n    img = cv2.imread(image_path)\n    output = marearts_anpr_from_cv2(anpr_d, anpr_r, img)\n    print(output)\n\n    # Routine Task 3 - Predict from Pillow\n    pil_img = Image.open(image_path)\n    output = marearts_anpr_from_pil(anpr_d, anpr_r, pil_img)\n    print(output)\n    #################################\n```\nPlease refer to the **advanced.py** code in the **./example_code**  folder. This file demonstrates how to implement the ma_anpr_detector and ma_anpr_ocr separately.\n\n<br><br>\n### \ud83d\udd2c Returns\nThe output from the ANPR will be similar to:\n\n```python\n{\n    'results': [\n        {'ocr': 'SL593LM', 'ocr_conf': 99, 'ltrb': [819, 628, 1085, 694], 'ltrb_conf': 90}\n        ], \n    'ltrb_proc_sec': 0.22,\n    'ocr_proc_sec': 0.15\n}\n```\n```python\n{\n    'results': [\n        {'ocr': '123\uac004568', 'ocr_conf': 99, 'ltrb': [181, 48, 789, 186], 'ltrb_conf': 83}, \n        {'ocr': '123\uac004568', 'ocr_conf': 99, 'ltrb': [154, 413, 774, 557], 'ltrb_conf': 82}, \n        {'ocr': '123\uac004568', 'ocr_conf': 99, 'ltrb': [154, 601, 763, 746], 'ltrb_conf': 80}, \n        {'ocr': '123\uac004568', 'ocr_conf': 99, 'ltrb': [156, 217, 773, 369], 'ltrb_conf': 80}\n        ],\n    'ltrb_proc_sec': 0.23,\n    'ocr_proc_sec': 0.6\n}\n```\n\n- **Results:** Contains OCR text, probabilities, and detection coordinate(left, top, right, bottom).\n- **Processing Speeds:** Provided for license plate detection and OCR.\n\n<br><br>\n## \ud83e\uddea API for Testing\n\n**Daily limit:** 1000 requests\n\n### Quick Test via CLI (Recommended)\n\n```bash\n# Test with an image using default models\nma-anpr test-api image.jpg\n\n# Specify custom models\nma-anpr test-api image.jpg --detector v13_small --ocr v13_kr\n\n# Process multiple images\nma-anpr test-api *.jpg\n\n# List available models\nma-anpr test-api --list-models\n\n# Save results to JSON\nma-anpr test-api image.jpg --json results.json\n```\n\n### Direct API Call (Advanced)\n\n<details>\n<summary>Click to see API details</summary>\n\n**Test Credentials:**\n- **User ID:** `marearts@public`\n- **API Key:** `J4K9L2Wory34@G7T1Y8rt-PP83uSSvkV3Z6ioSTR!`\n\n```bash\ncurl -X POST https://we303v9ck8.execute-api.eu-west-1.amazonaws.com/Prod/marearts_anpr \\\n     -H \"Content-Type: image/jpeg\" \\\n     -H \"x-api-key: J4K9L2Wory34@G7T1Y8rt-PP83uSSvkV3Z6ioSTR!\" \\\n     -H \"user-id: marearts@public\" \\\n     -H \"detector_model_version: v13_middle\" \\\n     -H \"ocr_model_version: v13_euplus\" \\\n     --data-binary \"@./image.jpg\"\n```\n\n</details>\n\n\n<br><br>\n## \u2693\ufe0f Create MareArts ANPR API Docker\nPlease refer to **./API_docker_example**  folder. \n```bash\nAPI_docker_example\n\u2502\n\u251c\u2500\u2500 api_call.sh           # Shell script to make API calls to the MareArts ANPR application.\n\u251c\u2500\u2500 app.py                # Python script containing the MareArts ANPR application.\n\u251c\u2500\u2500 build_image.sh        # Shell script to build the Docker image from the Dockerfile.\n\u251c\u2500\u2500 Dockerfile            # Dockerfile containing instructions for building the Docker image.\n\u251c\u2500\u2500 request.py            # Python script to send requests to the MareArts ANPR API server.\n\u251c\u2500\u2500 requirements.txt      # Contains a list of Python packages that the app requires.\n\u2514\u2500\u2500 run_container.sh      # Shell script to run the Docker container from the built image.\n```\n\n<br><br>\n## \u2699\ufe0f example_code\n\n**bg_subtraction.py** - Motion detection with OpenCV\n- Detects moving objects in video\n- Adjustable sensitivity and object size\n\n**basic.py** - Easy license plate recognition\n- Uses MareArts ANPR SDK with simple implementation\n\n**advance.py** - Advanced license plate recognition\n- Direct control of detection and OCR steps\n- Run detection and OCR separately for better control\n\n\n<br><br>\n## \u2753 Frequently Asked Questions (FAQ)\n\n### \ud83d\udee0\ufe0f Technical Questions\n\n#### Q: Do I need an internet connection to use the software?\n**A:** No, the software works offline after initial setup. Internet is only needed for:\n- Initial model download\n- Checking/downloading model updates\n- Without internet, SDK uses existing downloaded model\n\n#### Q: What's new in the latest version?\n**A:** Major enterprise improvements:\n- \ud83d\udee1\ufe0f **Enterprise Security**: Military-grade license protection\n- \ud83d\ude80 **GPU Acceleration**: Significantly faster with smart provider detection  \n- \ud83d\udd10 **Environment Variables**: Secure credential management\n- \ud83d\udcbb **CLI Interface**: `ma-anpr` command-line tool\n- \ud83c\udf0d **Multi-Platform**: Professional installation variants\n\n#### Q: How do I get GPU acceleration?\n**A:** Install the appropriate GPU variant:\n- **NVIDIA GPU**: `pip install marearts-anpr[gpu]` (Best performance)\n- **Windows GPU**: `pip install marearts-anpr[directml]` (Good performance)\n- **All GPUs**: `pip install marearts-anpr[all-gpu]`\n\n#### Q: How do I set up credentials securely?\n**A:** Use environment variables:\n```bash\nexport MAREARTS_ANPR_USERNAME=\"your-email@domain.com\"\nexport MAREARTS_ANPR_SERIAL_KEY=\"your-serial-key\"\nma-anpr validate  # Test credentials\n```\n\n### \ud83d\udccb Licensing & Usage\n\n#### Q: What types of licenses are available?\n**A:** Three license types are available:\n- **Monthly licenses** - Need renewal every month\n- **Yearly licenses** - Need renewal every year  \n- **Lifetime licenses** - No expiration, use indefinitely\n\n#### Q: Can I use my license on multiple computers?\n**A:** Yes! All licenses have no limits on the number of computers. You can use them on multiple computers simultaneously.\n\n#### Q: How does license renewal work?\n**A:** \n- **Monthly/Yearly licenses**: Must be renewed before expiration\n- **Lifetime licenses**: No expiration, use indefinitely\n\n### \ud83d\udcb3 Billing & Refunds\n\n#### Q: What is your refund policy?\n**A:** Refunds are only available when a license key has not been issued. However, subscription cancellation is possible at any time.\n\n#### Q: Can I cancel my subscription anytime?\n**A:** Yes, you can cancel your subscription at any time, though refunds are only available if the license key hasn't been issued yet.\n\n### \ud83d\udd12 Service Continuity\n\n#### Q: What happens if the service discontinues?\n**A:** We commit to either:\n- Open-sourcing the code, or\n- Providing lifetime licenses to active users\n\n### \ud83d\udcde Support\n\n#### Q: How can I get help?\n**A:** Contact our support team at [hello@marearts.com](mailto:hello@marearts.com) for setup, licensing, or technical issues.\n\n<br><br>\n## \ud83d\udcde Support & Resources\n\n| Resource | Link |\n|----------|------|\n| \ud83d\udce7 **Contact** | [hello@marearts.com](mailto:hello@marearts.com) |\n| \ud83c\udfe0 **Homepage** | [https://marearts.com](https://marearts.com) |\n| \ud83d\udcda **Blog** | [http://study.marearts.com](http://study.marearts.com) |\n| \ud83d\udcb3 **Subscription** | [ANPR Solution](https://study.marearts.com/p/anpr-lpr-solution.html) |\n| \ud83c\udfae **Live Demo** | [http://live.marearts.com](http://live.marearts.com) |\n| \ud83d\udcfa **Video Examples** | [YouTube Playlist](https://www.youtube.com/playlist?list=PLvX6vpRszMkxJBJf4EjQ5VCnmkjfE59-J) |\n| \ud83e\uddea **Colab Demo** | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1zZlueTZ1Le73yOQ3mdJFONxcebKyCgr-?usp=sharing) |\n\n## \ud83d\udcdc License\n\nThis software is proprietary and protected by copyright. Use requires a valid license key from MareArts.\n\n\u00a9 2024 MareArts. All rights reserved.\n\n\n---\n\n<div align=\"center\">\n\n**Made with \u2764\ufe0f by [MareArts](https://marearts.com)**\n\n\ud83d\ude47\ud83c\udffb\u200d\u2642\ufe0f Thank you for using MareArts ANPR!\n\n</div>\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "MareArts ANPR (Automatic Number Plate Recognition) library",
    "version": "3.3.0",
    "project_urls": {
        "Homepage": "https://www.marearts.com"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0396e2aeebe1feef7c7bfa673d5d4475003abcacee4b88bc229585b643f3565a",
                "md5": "46baeadbdd2da1d4d8d02982d748b426",
                "sha256": "9b9dcbe96d2ddc32701bec3ad6a0ca911d032b2092ecbb69893801ebe508077c"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "46baeadbdd2da1d4d8d02982d748b426",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.13,>=3.9",
            "size": 672165,
            "upload_time": "2025-09-11T06:29:10",
            "upload_time_iso_8601": "2025-09-11T06:29:10.672348Z",
            "url": "https://files.pythonhosted.org/packages/03/96/e2aeebe1feef7c7bfa673d5d4475003abcacee4b88bc229585b643f3565a/marearts_anpr-3.3.0-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9c83766d90860dd886e8b58060629716974585907bf959448a5bb6fbb4d3c0b7",
                "md5": "39e0c0c34da17d3e95332c3d6ac6b733",
                "sha256": "6858332097ddb2ab0297fa2ab7d9ae6da0ce0c396aefcd4cc4c7746ef78d577f"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "has_sig": false,
            "md5_digest": "39e0c0c34da17d3e95332c3d6ac6b733",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.13,>=3.9",
            "size": 2346072,
            "upload_time": "2025-09-11T06:25:50",
            "upload_time_iso_8601": "2025-09-11T06:25:50.388938Z",
            "url": "https://files.pythonhosted.org/packages/9c/83/766d90860dd886e8b58060629716974585907bf959448a5bb6fbb4d3c0b7/marearts_anpr-3.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "17200938ea09932fb7e194fbfe94276b54f5119a25b88a654f3c9d7bb68b89d0",
                "md5": "281239710a8917b813b6b11bd4cf4d75",
                "sha256": "9b9943ffe0696782220746fb854f60890f07a462fca50b6d103b4de3b565f336"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp310-cp310-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "281239710a8917b813b6b11bd4cf4d75",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.13,>=3.9",
            "size": 2359291,
            "upload_time": "2025-09-11T06:25:52",
            "upload_time_iso_8601": "2025-09-11T06:25:52.944654Z",
            "url": "https://files.pythonhosted.org/packages/17/20/0938ea09932fb7e194fbfe94276b54f5119a25b88a654f3c9d7bb68b89d0/marearts_anpr-3.3.0-cp310-cp310-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a231525df7aa8fcc9a66a2ece84c815b15a05a9b67928ad0067483e78e8de9e3",
                "md5": "a2ff6039b54efbc6f813c16aa3129d85",
                "sha256": "1511c57248a9ca876066d824a146259cb1188686f4a4666309a12826d73be76b"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a2ff6039b54efbc6f813c16aa3129d85",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<3.13,>=3.9",
            "size": 352079,
            "upload_time": "2025-09-11T06:29:13",
            "upload_time_iso_8601": "2025-09-11T06:29:13.515104Z",
            "url": "https://files.pythonhosted.org/packages/a2/31/525df7aa8fcc9a66a2ece84c815b15a05a9b67928ad0067483e78e8de9e3/marearts_anpr-3.3.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8978e7cafc80b880c86f98bd755f20c47d2f1e266221344bcbdc2f686af87e45",
                "md5": "649a4284fa972ad1ad5f5f1190129608",
                "sha256": "df484b2d8a186031f4a6e5a0fe0a695cefa06a8e35bee2de1c0cf10ca21f92ee"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "649a4284fa972ad1ad5f5f1190129608",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<3.13,>=3.9",
            "size": 669273,
            "upload_time": "2025-09-11T06:29:15",
            "upload_time_iso_8601": "2025-09-11T06:29:15.037350Z",
            "url": "https://files.pythonhosted.org/packages/89/78/e7cafc80b880c86f98bd755f20c47d2f1e266221344bcbdc2f686af87e45/marearts_anpr-3.3.0-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9cd6cc116c65a3dc3239879310b79d4866d99d26e1eac9369e3431abd381b827",
                "md5": "8074b9b7d741d9785c2584abbf0973c7",
                "sha256": "c871f7f7a3dc61885fa9d26a2444813820e31b5c8f1550e77017c36551729347"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp311-cp311-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8074b9b7d741d9785c2584abbf0973c7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<3.13,>=3.9",
            "size": 2371146,
            "upload_time": "2025-09-11T06:25:54",
            "upload_time_iso_8601": "2025-09-11T06:25:54.779608Z",
            "url": "https://files.pythonhosted.org/packages/9c/d6/cc116c65a3dc3239879310b79d4866d99d26e1eac9369e3431abd381b827/marearts_anpr-3.3.0-cp311-cp311-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a8071b1f0b918192e5c1d8f1e6107ba2d298e13cb13cc95a91b18c9c6f164232",
                "md5": "dccc245686890af8c16d8cf2bad69ab8",
                "sha256": "11487d0f60d3c61a40fa6d7ca4fa62022f44d33b31a5c2f306b745d897ed1529"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "dccc245686890af8c16d8cf2bad69ab8",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<3.13,>=3.9",
            "size": 353787,
            "upload_time": "2025-09-11T06:29:16",
            "upload_time_iso_8601": "2025-09-11T06:29:16.218531Z",
            "url": "https://files.pythonhosted.org/packages/a8/07/1b1f0b918192e5c1d8f1e6107ba2d298e13cb13cc95a91b18c9c6f164232/marearts_anpr-3.3.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "efcd2c0ccd512bb6b3bd567d2b6ef67142ad79f10cdfbabd0249e3b4c0f48413",
                "md5": "d67ef7a1c1cdf442c35ea686a2d3446c",
                "sha256": "884cc2a4679ec2741c073468c7f683d5d9fe21f4c69080ea8d3a85ce590d6632"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp312-cp312-macosx_10_13_universal2.whl",
            "has_sig": false,
            "md5_digest": "d67ef7a1c1cdf442c35ea686a2d3446c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<3.13,>=3.9",
            "size": 664015,
            "upload_time": "2025-09-11T06:29:17",
            "upload_time_iso_8601": "2025-09-11T06:29:17.380603Z",
            "url": "https://files.pythonhosted.org/packages/ef/cd/2c0ccd512bb6b3bd567d2b6ef67142ad79f10cdfbabd0249e3b4c0f48413/marearts_anpr-3.3.0-cp312-cp312-macosx_10_13_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "92cc105e61c84c7b99b8cf2f41184df1b958efb0acf5ac9ab7ea268b34efa4a4",
                "md5": "6695bea846e60ce3890015bc05aca588",
                "sha256": "8a11712b2928e039af07868bb26503193b5b76003290494b7652a10278b57c3f"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6695bea846e60ce3890015bc05aca588",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<3.13,>=3.9",
            "size": 2373584,
            "upload_time": "2025-09-11T06:25:56",
            "upload_time_iso_8601": "2025-09-11T06:25:56.175498Z",
            "url": "https://files.pythonhosted.org/packages/92/cc/105e61c84c7b99b8cf2f41184df1b958efb0acf5ac9ab7ea268b34efa4a4/marearts_anpr-3.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fda7f641b24cfd1096ba9c09721afc7e4e116850d1f889799c4628f017d71f13",
                "md5": "1c1cba332075006d9ac5758385989b40",
                "sha256": "0ad07b9ea0c8b5fef6ef9a093d7d77c1a4d5671e727c8a49e36e48c894fa5f2d"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp312-cp312-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1c1cba332075006d9ac5758385989b40",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<3.13,>=3.9",
            "size": 463648,
            "upload_time": "2025-09-11T06:25:57",
            "upload_time_iso_8601": "2025-09-11T06:25:57.960662Z",
            "url": "https://files.pythonhosted.org/packages/fd/a7/f641b24cfd1096ba9c09721afc7e4e116850d1f889799c4628f017d71f13/marearts_anpr-3.3.0-cp312-cp312-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c1fb7e99e04fb2b68b168834d692aaf3058b44322f76a52662c76a2d972af4fb",
                "md5": "62e4b42505f846e35c4690b5ce15a188",
                "sha256": "15d4e84a5ccc8237c78c61179c9e5d5b8795b3dea6d2c3a6c19cf91909a40680"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "62e4b42505f846e35c4690b5ce15a188",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<3.13,>=3.9",
            "size": 350448,
            "upload_time": "2025-09-11T06:29:19",
            "upload_time_iso_8601": "2025-09-11T06:29:19.087077Z",
            "url": "https://files.pythonhosted.org/packages/c1/fb/7e99e04fb2b68b168834d692aaf3058b44322f76a52662c76a2d972af4fb/marearts_anpr-3.3.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2b8abe8d3d1a582fa97977f1988150ff1e4ca7c4cc0032b7613164df586d5c70",
                "md5": "8c2ce4669fbf222f0cd96203d5a69d6b",
                "sha256": "3f4c35c54e9f8ac1c7d7320dfb4cbbeba8feea5f15aa0b7d055043013676b54f"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "8c2ce4669fbf222f0cd96203d5a69d6b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.13,>=3.9",
            "size": 671269,
            "upload_time": "2025-09-11T06:29:20",
            "upload_time_iso_8601": "2025-09-11T06:29:20.539016Z",
            "url": "https://files.pythonhosted.org/packages/2b/8a/be8d3d1a582fa97977f1988150ff1e4ca7c4cc0032b7613164df586d5c70/marearts_anpr-3.3.0-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "65ed45b48ae2c28053a2d217f12fd7ea19a6625ddc9010fd6393ceebea698415",
                "md5": "4fa84f05ce472d0f9f27f05d08006f8c",
                "sha256": "6e4e5b75057e144c7ca9067f115779924a6760c52ac18bc5576d178b7db8e040"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "has_sig": false,
            "md5_digest": "4fa84f05ce472d0f9f27f05d08006f8c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.13,>=3.9",
            "size": 2338971,
            "upload_time": "2025-09-11T06:26:00",
            "upload_time_iso_8601": "2025-09-11T06:26:00.078968Z",
            "url": "https://files.pythonhosted.org/packages/65/ed/45b48ae2c28053a2d217f12fd7ea19a6625ddc9010fd6393ceebea698415/marearts_anpr-3.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ed06228e024dbc847884562d643c292b2c1c0f033134a2fbc99e1d0970e47da8",
                "md5": "302caf779db9f67e06a7784802dc9a9f",
                "sha256": "2a6444405d08d294e701880b7b3079cde4f045848bec3583d6411299d9f41aa5"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp39-cp39-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "302caf779db9f67e06a7784802dc9a9f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.13,>=3.9",
            "size": 2352889,
            "upload_time": "2025-09-11T06:26:02",
            "upload_time_iso_8601": "2025-09-11T06:26:02.019758Z",
            "url": "https://files.pythonhosted.org/packages/ed/06/228e024dbc847884562d643c292b2c1c0f033134a2fbc99e1d0970e47da8/marearts_anpr-3.3.0-cp39-cp39-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ae86357e58a919f742988d71f4fdfe718cb76790900d405cc0d7223bd377e09a",
                "md5": "8998b90969af76f0825e6d7be8a03de0",
                "sha256": "f4ad233e3eba9970649ad5c5060c250d4a3a2453c1370bf4d48b385508b81200"
            },
            "downloads": -1,
            "filename": "marearts_anpr-3.3.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "8998b90969af76f0825e6d7be8a03de0",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<3.13,>=3.9",
            "size": 353813,
            "upload_time": "2025-09-11T06:29:22",
            "upload_time_iso_8601": "2025-09-11T06:29:22.179659Z",
            "url": "https://files.pythonhosted.org/packages/ae/86/357e58a919f742988d71f4fdfe718cb76790900d405cc0d7223bd377e09a/marearts_anpr-3.3.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-11 06:29:10",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "marearts-anpr"
}
        
Elapsed time: 1.66721s