marearts-anpr 3.7.3__cp312-cp312-macosx_10_13_universal2.whl → 3.7.6__cp312-cp312-macosx_10_13_universal2.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- marearts_anpr/_version.py +1 -1
- marearts_anpr/cli.py +77 -29
- {marearts_anpr-3.7.3.dist-info → marearts_anpr-3.7.6.dist-info}/METADATA +20 -8
- {marearts_anpr-3.7.3.dist-info → marearts_anpr-3.7.6.dist-info}/RECORD +8 -8
- {marearts_anpr-3.7.3.dist-info → marearts_anpr-3.7.6.dist-info}/LICENSE +0 -0
- {marearts_anpr-3.7.3.dist-info → marearts_anpr-3.7.6.dist-info}/WHEEL +0 -0
- {marearts_anpr-3.7.3.dist-info → marearts_anpr-3.7.6.dist-info}/entry_points.txt +0 -0
- {marearts_anpr-3.7.3.dist-info → marearts_anpr-3.7.6.dist-info}/top_level.txt +0 -0
marearts_anpr/_version.py
CHANGED
marearts_anpr/cli.py
CHANGED
|
@@ -623,33 +623,77 @@ def cmd_test_api(args):
|
|
|
623
623
|
# List models option
|
|
624
624
|
if hasattr(args, 'list_models') and args.list_models:
|
|
625
625
|
print("Available Test API Models (Public Cloud Service):")
|
|
626
|
-
print("=" *
|
|
626
|
+
print("=" * 70)
|
|
627
627
|
|
|
628
|
-
print("\n
|
|
629
|
-
print("-" *
|
|
630
|
-
print("
|
|
631
|
-
print(" -
|
|
632
|
-
print("
|
|
633
|
-
print(" -
|
|
634
|
-
print("
|
|
635
|
-
print(" -
|
|
628
|
+
print("\n🚀 V14 DETECTOR MODELS (Recommended):")
|
|
629
|
+
print("-" * 70)
|
|
630
|
+
print(" 640p FP32 (Standard Precision):")
|
|
631
|
+
print(" • v14_pico_640p_fp32 - Fastest, good for real-time")
|
|
632
|
+
print(" • v14_micro_640p_fp32 - Balanced speed/accuracy")
|
|
633
|
+
print(" • v14_small_640p_fp32 - Good accuracy")
|
|
634
|
+
print(" • v14_medium_640p_fp32 - ⭐ Best overall (DEFAULT)")
|
|
635
|
+
print(" • v14_large_640p_fp32 - Highest accuracy")
|
|
636
636
|
|
|
637
|
-
print("\n
|
|
638
|
-
print("
|
|
639
|
-
print("
|
|
640
|
-
print("
|
|
641
|
-
print("
|
|
642
|
-
print("
|
|
643
|
-
print(" v13 Series (Recommended):")
|
|
644
|
-
print(" - v13_eu, v13_euplus, v13_kr, v13_cn, v13_univ")
|
|
637
|
+
print("\n 640p FP16 (Half Precision - Faster on GPU):")
|
|
638
|
+
print(" • v14_pico_640p_fp16")
|
|
639
|
+
print(" • v14_micro_640p_fp16")
|
|
640
|
+
print(" • v14_small_640p_fp16")
|
|
641
|
+
print(" • v14_medium_640p_fp16")
|
|
642
|
+
print(" • v14_large_640p_fp16")
|
|
645
643
|
|
|
646
|
-
print("\n
|
|
647
|
-
print("
|
|
648
|
-
print("•
|
|
649
|
-
print("•
|
|
650
|
-
print("•
|
|
651
|
-
print("•
|
|
652
|
-
|
|
644
|
+
print("\n 320p FP32 (Lower Resolution - Faster):")
|
|
645
|
+
print(" • v14_pico_320p_fp32")
|
|
646
|
+
print(" • v14_micro_320p_fp32")
|
|
647
|
+
print(" • v14_small_320p_fp32")
|
|
648
|
+
print(" • v14_medium_320p_fp32")
|
|
649
|
+
print(" • v14_large_320p_fp32")
|
|
650
|
+
|
|
651
|
+
print("\n 320p FP16:")
|
|
652
|
+
print(" • v14_pico_320p_fp16")
|
|
653
|
+
print(" • v14_micro_320p_fp16")
|
|
654
|
+
print(" • v14_small_320p_fp16")
|
|
655
|
+
print(" • v14_medium_320p_fp16")
|
|
656
|
+
print(" • v14_large_320p_fp16")
|
|
657
|
+
|
|
658
|
+
print("\n🔤 V14 OCR MODELS:")
|
|
659
|
+
print("-" * 70)
|
|
660
|
+
print(" FP32 (Standard Precision):")
|
|
661
|
+
print(" • v14_pico_fp32")
|
|
662
|
+
print(" • v14_micro_fp32")
|
|
663
|
+
print(" • v14_small_fp32 - ⭐ Good balance (DEFAULT)")
|
|
664
|
+
print(" • v14_medium_fp32 - Better accuracy")
|
|
665
|
+
print(" • v14_large_fp32 - Highest accuracy")
|
|
666
|
+
|
|
667
|
+
print("\n🌍 REGIONS (Required for V14 OCR):")
|
|
668
|
+
print("-" * 70)
|
|
669
|
+
print(" • kr - Korean plates")
|
|
670
|
+
print(" • eup - European+ plates (EU countries + more)")
|
|
671
|
+
print(" • na - North American plates")
|
|
672
|
+
print(" • cn - Chinese plates")
|
|
673
|
+
print(" • univ - Universal (all regions)")
|
|
674
|
+
|
|
675
|
+
print("\n💡 RECOMMENDED COMBINATIONS:")
|
|
676
|
+
print("-" * 70)
|
|
677
|
+
print(" European plates: --detector v14_medium_640p_fp32 --ocr v14_small_fp32 --region eup")
|
|
678
|
+
print(" Korean plates: --detector v14_medium_640p_fp32 --ocr v14_small_fp32 --region kr")
|
|
679
|
+
print(" Fast processing: --detector v14_micro_640p_fp32 --ocr v14_micro_fp32 --region eup")
|
|
680
|
+
print(" Best accuracy: --detector v14_large_640p_fp32 --ocr v14_large_fp32 --region eup")
|
|
681
|
+
|
|
682
|
+
print("\n📝 USAGE NOTES:")
|
|
683
|
+
print("-" * 70)
|
|
684
|
+
print(" • Daily limit: 1000 requests (resets at midnight UTC)")
|
|
685
|
+
print(" • No authentication required (public test API)")
|
|
686
|
+
print(" • V14 models with region-specific vocabulary")
|
|
687
|
+
print(" • FP16 models faster on GPU, FP32 better for CPU")
|
|
688
|
+
print(" • 320p faster but may miss distant/small plates")
|
|
689
|
+
print(" • 640p recommended for best detection")
|
|
690
|
+
|
|
691
|
+
print("\n📚 EXAMPLES:")
|
|
692
|
+
print("-" * 70)
|
|
693
|
+
print(" ma-anpr test-api image.jpg")
|
|
694
|
+
print(" ma-anpr test-api image.jpg --region kr")
|
|
695
|
+
print(" ma-anpr test-api *.jpg --detector v14_small_640p_fp32 --region eup")
|
|
696
|
+
print(" ma-anpr test-api image.jpg --json results.json")
|
|
653
697
|
return
|
|
654
698
|
|
|
655
699
|
# Check if input files are provided
|
|
@@ -687,7 +731,8 @@ def cmd_test_api(args):
|
|
|
687
731
|
'x-api-key': PUBLIC_API_KEY,
|
|
688
732
|
'user-id': PUBLIC_USER_ID,
|
|
689
733
|
'detector_model_version': args.detector,
|
|
690
|
-
'ocr_model_version': args.ocr
|
|
734
|
+
'ocr_model_version': args.ocr,
|
|
735
|
+
'region': args.region
|
|
691
736
|
}
|
|
692
737
|
|
|
693
738
|
# Make API request with security settings
|
|
@@ -907,10 +952,13 @@ def main():
|
|
|
907
952
|
# Test API command
|
|
908
953
|
test_api_parser = subparsers.add_parser('test-api', help='Test ANPR using public API (no credentials required)')
|
|
909
954
|
test_api_parser.add_argument('input', nargs='*', help='Input image file(s)')
|
|
910
|
-
test_api_parser.add_argument('--detector', default='
|
|
911
|
-
help='Detector model (default:
|
|
912
|
-
test_api_parser.add_argument('--ocr', default='
|
|
913
|
-
help='OCR model (default:
|
|
955
|
+
test_api_parser.add_argument('--detector', default='v14_medium_640p_fp32',
|
|
956
|
+
help='Detector model (default: v14_medium_640p_fp32)')
|
|
957
|
+
test_api_parser.add_argument('--ocr', default='v14_medium_fp32',
|
|
958
|
+
help='OCR model (default: v14_medium_fp32)')
|
|
959
|
+
test_api_parser.add_argument('--region', default='eup',
|
|
960
|
+
choices=['kr', 'eup', 'na', 'cn', 'univ'],
|
|
961
|
+
help='Region for OCR (default: eup)')
|
|
914
962
|
test_api_parser.add_argument('--list-models', action='store_true',
|
|
915
963
|
help='List available models for test API')
|
|
916
964
|
test_api_parser.add_argument('--json', help='Save results to JSON file')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: marearts-anpr
|
|
3
|
-
Version: 3.7.
|
|
3
|
+
Version: 3.7.6
|
|
4
4
|
Summary: MareArts ANPR (Automatic Number Plate Recognition) library with multi-region support
|
|
5
5
|
Home-page: https://www.marearts.com
|
|
6
6
|
Author: MareArts
|
|
@@ -20,13 +20,16 @@ License-File: LICENSE
|
|
|
20
20
|
Requires-Dist: marearts-crystal==2.4.2
|
|
21
21
|
Requires-Dist: onnxruntime>=1.0
|
|
22
22
|
Requires-Dist: opencv-python>=4.0
|
|
23
|
-
Requires-Dist: numpy>=1.19
|
|
24
23
|
Requires-Dist: tqdm>=4.0
|
|
25
24
|
Requires-Dist: requests>=2.0
|
|
26
25
|
Requires-Dist: PyYAML>=6.0
|
|
27
26
|
Requires-Dist: pillow>=10.0
|
|
28
27
|
Requires-Dist: imageio>=2.0
|
|
29
28
|
Requires-Dist: dotmap>=1.3
|
|
29
|
+
Requires-Dist: numpy<2.0,>=1.23.0; python_version == "3.10"
|
|
30
|
+
Requires-Dist: numpy<2.0,>=1.23.0; python_version == "3.11"
|
|
31
|
+
Requires-Dist: numpy<2.0,>=1.21.6; python_version == "3.9"
|
|
32
|
+
Requires-Dist: numpy<2.0,>=1.26.0; python_version >= "3.12"
|
|
30
33
|
Provides-Extra: all-gpu
|
|
31
34
|
Requires-Dist: onnxruntime-gpu>=1.15.0; extra == "all-gpu"
|
|
32
35
|
Requires-Dist: onnxruntime-directml>=1.15.0; extra == "all-gpu"
|
|
@@ -50,6 +53,9 @@ Requires-Dist: pycuda>=2022.1; platform_system == "Linux" and extra == "tensorrt
|
|
|
50
53
|
[](https://www.marearts.com/products/anpr)
|
|
51
54
|
[](http://live.marearts.com)
|
|
52
55
|
|
|
56
|
+
[](https://pypi.org/project/marearts-anpr/)
|
|
57
|
+
[](https://apps.apple.com/app/marearts-anpr/id6753904859)
|
|
58
|
+
|
|
53
59
|
<div align="center">
|
|
54
60
|
|
|
55
61
|
| ANPR Detection | Road Objects Detection | Mobile App |
|
|
@@ -117,15 +123,14 @@ pip install marearts-anpr[directml] # Windows GPU (AMD/Intel/NVIDIA)
|
|
|
117
123
|
|
|
118
124
|
### Basic Usage
|
|
119
125
|
|
|
120
|
-
💡 **Recommended:** `micro_320p_fp32` (best overall) or `micro_320p_fp16` (best mobile). [See all models](https://github.com/MareArts/MareArts-ANPR/blob/main/docs/models.md)
|
|
121
126
|
|
|
122
127
|
```python
|
|
123
128
|
from marearts_anpr import ma_anpr_detector_v14, ma_anpr_ocr_v14, marearts_anpr_from_image_file
|
|
124
129
|
|
|
125
130
|
# Initialize detector
|
|
126
131
|
detector = ma_anpr_detector_v14(
|
|
127
|
-
"micro_320p_fp32",
|
|
128
|
-
# 320p models (
|
|
132
|
+
"micro_320p_fp32",
|
|
133
|
+
# 320p models (Fast): pico_320p_fp32/fp16, micro_320p_fp32/fp16, small_320p_fp32/fp16, medium_320p_fp32/fp16, large_320p_fp32/fp16
|
|
129
134
|
# 640p models (High detection): pico_640p_fp32/fp16, micro_640p_fp32/fp16, small_640p_fp32/fp16, medium_640p_fp32/fp16, large_640p_fp32/fp16
|
|
130
135
|
user_name,
|
|
131
136
|
serial_key,
|
|
@@ -150,6 +155,7 @@ result = marearts_anpr_from_image_file(detector, ocr, "image.jpg")
|
|
|
150
155
|
print(result)
|
|
151
156
|
# Output: {'results': [{'ocr': 'ABC123', 'ocr_conf': 99, ...}], ...}
|
|
152
157
|
```
|
|
158
|
+
💡 🔄 [Learn more about usage](https://github.com/MareArts/MareArts-ANPR/blob/main/docs/usage.md#dynamic-region-switching)
|
|
153
159
|
|
|
154
160
|
#### Dynamic Region Switching
|
|
155
161
|
|
|
@@ -193,8 +199,6 @@ ma-anpr validate # Validate license
|
|
|
193
199
|
|
|
194
200
|
### Detector Performance
|
|
195
201
|
|
|
196
|
-
*Tested on 33% validation set (12,583 images) with NVIDIA RTX 4090*
|
|
197
|
-
|
|
198
202
|
| Model Name | Detection Rate | Speed (GPU) | Notes |
|
|
199
203
|
|------------|----------------|-------------|-------|
|
|
200
204
|
| **micro_320p_fp32** | **97.13%** | **128 FPS** (7.8ms) | 🏆 Best overall |
|
|
@@ -223,7 +227,7 @@ ma-anpr validate # Validate license
|
|
|
223
227
|
|
|
224
228
|
**Supported Regions**: Korean (`kr`), Europe+ (`eup`), North America (`na`), China (`cn`), Universal (`univ`)
|
|
225
229
|
|
|
226
|
-
📊 [See all
|
|
230
|
+
📊 [See all models and benchmarks](https://github.com/MareArts/MareArts-ANPR/blob/main/docs/models.md)
|
|
227
231
|
|
|
228
232
|
<br>
|
|
229
233
|
|
|
@@ -286,3 +290,11 @@ Explore our AI toolkit:
|
|
|
286
290
|
© 2024 MareArts. All rights reserved.
|
|
287
291
|
|
|
288
292
|
This software requires a valid license key. Visit [MareArts ANPR Solution](https://www.marearts.com/products/anpr) for licensing options.
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
<div align="center">
|
|
297
|
+
|
|
298
|
+
<a href='https://clustrmaps.com/site/1c8t6' title='Visit tracker'><img src='https://clustrmaps.com/map_v2.png?cl=080808&w=600&t=t&d=I-__iZrXFcHfzEXPbD_E0f9ipSE8cNnANPUFRBu-c2Q&co=ffffff&ct=808080' alt='Visitor Map' width='300'/></a>
|
|
299
|
+
|
|
300
|
+
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
marearts_anpr/__init__.py,sha256=YzrK3DFACnJ-JOQjHnV0Lj0YTzeWpHGAqTIWhptuudg,845
|
|
2
|
-
marearts_anpr/_version.py,sha256=
|
|
3
|
-
marearts_anpr/cli.py,sha256=
|
|
2
|
+
marearts_anpr/_version.py,sha256=zGNGpkQjSytGALD5hcAdD8jzB1hkyGf8rY7GMtr8uwA,75
|
|
3
|
+
marearts_anpr/cli.py,sha256=JzIF-nYSjbWrm6fzWYZ6H9V1pI71CqcxQj9JvKFpJCA,40663
|
|
4
4
|
marearts_anpr/image_processor.cpython-312-darwin.so,sha256=PVhoSkBY8jIVE2T5KleG6RM2RQH31jbTbnn5FcpRmIc,272728
|
|
5
5
|
marearts_anpr/license.cpython-312-darwin.so,sha256=4lKEui_ndoisG1X0guuKMI3pNnMF5RYLaAus6pPgvkE,241248
|
|
6
6
|
marearts_anpr/marearts_anpr.py,sha256=OSSOZnODYscVPGLcw6Qw4btE_b_6qCbeWOUZA2vi150,3308
|
|
@@ -12,9 +12,9 @@ marearts_anpr/marearts_anpr_r_v14.cpython-312-darwin.so,sha256=TnDQcORrhN4NW8-R7
|
|
|
12
12
|
marearts_anpr/secret.cpython-312-darwin.so,sha256=Yqx8zgNFngOsCveXkqz0wvigMQtb-mXwXMKViOR-9DM,257920
|
|
13
13
|
marearts_anpr/tokenizer.cpython-312-darwin.so,sha256=dNPSh-XnjQ3hbhJrwrtrSSQmbYiLBMnZj-MbxOjxkT4,255856
|
|
14
14
|
marearts_anpr/utils.cpython-312-darwin.so,sha256=FWoRGQXcUl86SY5a1AuF3hK8nkPu-HAEvY5eMujGLVI,340376
|
|
15
|
-
marearts_anpr-3.7.
|
|
16
|
-
marearts_anpr-3.7.
|
|
17
|
-
marearts_anpr-3.7.
|
|
18
|
-
marearts_anpr-3.7.
|
|
19
|
-
marearts_anpr-3.7.
|
|
20
|
-
marearts_anpr-3.7.
|
|
15
|
+
marearts_anpr-3.7.6.dist-info/LICENSE,sha256=-QowWRBizXxzIyeIKvORInIIG3pjTHtImpvy4alJ9H4,1693
|
|
16
|
+
marearts_anpr-3.7.6.dist-info/METADATA,sha256=NQLpnzzCfZ4XgyH5OysTgEiInvhxpzC55PqjS4oFoBA,13708
|
|
17
|
+
marearts_anpr-3.7.6.dist-info/WHEEL,sha256=YSOgIWN3MSXRyh_BPP5Wwo0hUJ36-LNZntzwwXBtVrY,116
|
|
18
|
+
marearts_anpr-3.7.6.dist-info/entry_points.txt,sha256=4_q2PbsRTMUIMxt7BWxZdt9yuw-4bepqGyZl4jBLgfU,90
|
|
19
|
+
marearts_anpr-3.7.6.dist-info/top_level.txt,sha256=DX3y7nst7V7YBYS7dHQIIZxROhrheWGRsl2aCOLErEA,14
|
|
20
|
+
marearts_anpr-3.7.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|