marearts-anpr 3.7.3__cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl → 3.7.6__cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.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 CHANGED
@@ -1,3 +1,3 @@
1
1
  """Version information for marearts-anpr package."""
2
2
 
3
- __version__ = "3.7.3"
3
+ __version__ = "3.7.6"
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("=" * 50)
626
+ print("=" * 70)
627
627
 
628
- print("\n📍 DETECTOR MODELS (Legacy only - no V14 on public API):")
629
- print("-" * 40)
630
- print(" v10 Series:")
631
- print(" - v10_nano, v10_small, v10_middle, v10_large, v10_xlarge")
632
- print(" v11 Series:")
633
- print(" - v11_nano, v11_small, v11_middle, v11_large")
634
- print(" v13 Series (Recommended):")
635
- print(" - v13_nano, v13_small, v13_middle, v13_large")
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🔤 OCR MODELS:")
638
- print("-" * 40)
639
- print(" Base Models:")
640
- print(" - eu, euplus, kr, cn, univ")
641
- print(" v11 Series:")
642
- print(" - v11_eu, v11_euplus, v11_kr, v11_cn, v11_univ")
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📝 NOTES:")
647
- print("-" * 40)
648
- print("• Daily limit: 1000 requests")
649
- print("• No authentication required")
650
- print("• V14 models NOT available on public API")
651
- print("• For V14 models, use local processing with V2 license")
652
- print("\n💡 Recommended: v13_middle + v13_euplus")
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='v13_middle',
911
- help='Detector model (default: v13_middle)')
912
- test_api_parser.add_argument('--ocr', default='v13_euplus',
913
- help='OCR model (default: v13_euplus)')
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
3
+ Version: 3.7.6
4
4
  Summary: MareArts ANPR (Automatic Number Plate Recognition) library
5
5
  Home-page: https://www.marearts.com
6
6
  Author: MareArts
@@ -16,7 +16,6 @@ Classifier: Operating System :: OS Independent
16
16
  Requires-Python: <3.13,>=3.9
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
- Requires-Dist: numpy>=1.21.0
20
19
  Requires-Dist: opencv-python>=4.5.0
21
20
  Requires-Dist: requests>=2.25.0
22
21
  Requires-Dist: imageio>=2.10.0
@@ -26,6 +25,10 @@ Requires-Dist: PyYAML>=5.0.0
26
25
  Requires-Dist: dotmap>=1.3.0
27
26
  Requires-Dist: marearts-crystal>=2.0.0
28
27
  Requires-Dist: tqdm>=4.0.0
28
+ Requires-Dist: numpy<2.0,>=1.23.0; python_version == "3.10"
29
+ Requires-Dist: numpy<2.0,>=1.23.0; python_version == "3.11"
30
+ Requires-Dist: numpy<2.0,>=1.21.6; python_version == "3.9"
31
+ Requires-Dist: numpy<2.0,>=1.26.0; python_version >= "3.12"
29
32
  Provides-Extra: cuda
30
33
  Requires-Dist: onnxruntime-gpu>=1.15.0; extra == "cuda"
31
34
  Provides-Extra: directml
@@ -45,6 +48,9 @@ Requires-Dist: nvidia-cuda-runtime-cu12; platform_system == "Linux" and extra ==
45
48
  [![License: Proprietary](https://img.shields.io/badge/License-Proprietary-red.svg)](https://www.marearts.com/products/anpr)
46
49
  [![Live Demo](https://img.shields.io/badge/demo-live-brightgreen.svg)](http://live.marearts.com)
47
50
 
51
+ [![Python SDK](https://img.shields.io/github/v/release/MareArts/MareArts-ANPR?filter=marearts-anpr-python-sdk-*&label=Python%20SDK&color=blue)](https://pypi.org/project/marearts-anpr/)
52
+ [![iOS App](https://img.shields.io/github/v/release/MareArts/MareArts-ANPR?filter=marearts-anpr-mobile-app-ios-*&label=iOS%20App&color=green)](https://apps.apple.com/app/marearts-anpr/id6753904859)
53
+
48
54
  <div align="center">
49
55
 
50
56
  | ANPR Detection | Road Objects Detection | Mobile App |
@@ -112,15 +118,14 @@ pip install marearts-anpr[directml] # Windows GPU (AMD/Intel/NVIDIA)
112
118
 
113
119
  ### Basic Usage
114
120
 
115
- 💡 **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)
116
121
 
117
122
  ```python
118
123
  from marearts_anpr import ma_anpr_detector_v14, ma_anpr_ocr_v14, marearts_anpr_from_image_file
119
124
 
120
125
  # Initialize detector
121
126
  detector = ma_anpr_detector_v14(
122
- "micro_320p_fp32", # 🏆 BEST: 97.13% detection, 128 FPS
123
- # 320p models (Best): pico_320p_fp32/fp16, micro_320p_fp32/fp16, small_320p_fp32/fp16, medium_320p_fp32/fp16, large_320p_fp32/fp16
127
+ "micro_320p_fp32",
128
+ # 320p models (Fast): pico_320p_fp32/fp16, micro_320p_fp32/fp16, small_320p_fp32/fp16, medium_320p_fp32/fp16, large_320p_fp32/fp16
124
129
  # 640p models (High detection): pico_640p_fp32/fp16, micro_640p_fp32/fp16, small_640p_fp32/fp16, medium_640p_fp32/fp16, large_640p_fp32/fp16
125
130
  user_name,
126
131
  serial_key,
@@ -145,6 +150,7 @@ result = marearts_anpr_from_image_file(detector, ocr, "image.jpg")
145
150
  print(result)
146
151
  # Output: {'results': [{'ocr': 'ABC123', 'ocr_conf': 99, ...}], ...}
147
152
  ```
153
+ 💡 🔄 [Learn more about usage](https://github.com/MareArts/MareArts-ANPR/blob/main/docs/usage.md#dynamic-region-switching)
148
154
 
149
155
  #### Dynamic Region Switching
150
156
 
@@ -188,8 +194,6 @@ ma-anpr validate # Validate license
188
194
 
189
195
  ### Detector Performance
190
196
 
191
- *Tested on 33% validation set (12,583 images) with NVIDIA RTX 4090*
192
-
193
197
  | Model Name | Detection Rate | Speed (GPU) | Notes |
194
198
  |------------|----------------|-------------|-------|
195
199
  | **micro_320p_fp32** | **97.13%** | **128 FPS** (7.8ms) | 🏆 Best overall |
@@ -218,7 +222,7 @@ ma-anpr validate # Validate license
218
222
 
219
223
  **Supported Regions**: Korean (`kr`), Europe+ (`eup`), North America (`na`), China (`cn`), Universal (`univ`)
220
224
 
221
- 📊 [See all detailed benchmarks and region-based performance](https://github.com/MareArts/MareArts-ANPR/blob/main/docs/models.md)
225
+ 📊 [See all models and benchmarks](https://github.com/MareArts/MareArts-ANPR/blob/main/docs/models.md)
222
226
 
223
227
  <br>
224
228
 
@@ -282,4 +286,11 @@ Explore our AI toolkit:
282
286
 
283
287
  This software requires a valid license key. Visit [MareArts ANPR Solution](https://www.marearts.com/products/anpr) for licensing options.
284
288
 
289
+ ---
290
+
291
+ <div align="center">
292
+
293
+ <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>
294
+
295
+ </div>
285
296
 
@@ -1,6 +1,6 @@
1
1
  marearts_anpr/__init__.py,sha256=YzrK3DFACnJ-JOQjHnV0Lj0YTzeWpHGAqTIWhptuudg,845
2
- marearts_anpr/_version.py,sha256=AM_i0cYt4HijPDCkmPINYjsPO7nolURCrZ3qvFs_lfA,75
3
- marearts_anpr/cli.py,sha256=J1T6OWpk6cuqKW_dVbsukK_C2XBLHvLHjp4mUG0zi0g,38119
2
+ marearts_anpr/_version.py,sha256=zGNGpkQjSytGALD5hcAdD8jzB1hkyGf8rY7GMtr8uwA,75
3
+ marearts_anpr/cli.py,sha256=JzIF-nYSjbWrm6fzWYZ6H9V1pI71CqcxQj9JvKFpJCA,40663
4
4
  marearts_anpr/image_processor.cpython-39-aarch64-linux-gnu.so,sha256=2bBzGbp3IawgHqfu6OkRcLYrpnWjJ5T3eO3N-UCMgyg,938440
5
5
  marearts_anpr/license.cpython-39-aarch64-linux-gnu.so,sha256=l51N3nIoITZabBD7DuETO6bNS702r4kLwOz3WkWW6-4,884288
6
6
  marearts_anpr/marearts_anpr.py,sha256=OSSOZnODYscVPGLcw6Qw4btE_b_6qCbeWOUZA2vi150,3308
@@ -12,9 +12,9 @@ marearts_anpr/marearts_anpr_r_v14.cpython-39-aarch64-linux-gnu.so,sha256=BY6HmmT
12
12
  marearts_anpr/secret.cpython-39-aarch64-linux-gnu.so,sha256=iMawGkK1AdSxE59hQ8SC8BS5Z709zEM8B0yS3OCMH3s,1014368
13
13
  marearts_anpr/tokenizer.cpython-39-aarch64-linux-gnu.so,sha256=jd9nsmzH2DGwQTJ9AGPOXik0bHJgodGqddr566bLh0Y,1015496
14
14
  marearts_anpr/utils.cpython-39-aarch64-linux-gnu.so,sha256=PFMG2e0-CF4b6oPhdoHXbL-h4ESWTvV47fj44h0qHnI,1276528
15
- marearts_anpr-3.7.3.dist-info/LICENSE,sha256=-QowWRBizXxzIyeIKvORInIIG3pjTHtImpvy4alJ9H4,1693
16
- marearts_anpr-3.7.3.dist-info/METADATA,sha256=CPFkq3Is6vZ-5tt92a4J6BOLyykMXMGfrF8y2T3ZqdU,12698
17
- marearts_anpr-3.7.3.dist-info/WHEEL,sha256=OyU_a3_0g4nHrDfscT3ntE6UTOgLWum2-dKsAfzpQqc,150
18
- marearts_anpr-3.7.3.dist-info/entry_points.txt,sha256=hLIURtN8fSxpadtPdl8TZ0C_nY6DL2ua0sXEIACQxRs,91
19
- marearts_anpr-3.7.3.dist-info/top_level.txt,sha256=DX3y7nst7V7YBYS7dHQIIZxROhrheWGRsl2aCOLErEA,14
20
- marearts_anpr-3.7.3.dist-info/RECORD,,
15
+ marearts_anpr-3.7.6.dist-info/LICENSE,sha256=-QowWRBizXxzIyeIKvORInIIG3pjTHtImpvy4alJ9H4,1693
16
+ marearts_anpr-3.7.6.dist-info/METADATA,sha256=s0FQAvYCtmu11bb0PuZsQ9s7C2g_JRyCSIK1I2DrhPc,13375
17
+ marearts_anpr-3.7.6.dist-info/WHEEL,sha256=OyU_a3_0g4nHrDfscT3ntE6UTOgLWum2-dKsAfzpQqc,150
18
+ marearts_anpr-3.7.6.dist-info/entry_points.txt,sha256=hLIURtN8fSxpadtPdl8TZ0C_nY6DL2ua0sXEIACQxRs,91
19
+ marearts_anpr-3.7.6.dist-info/top_level.txt,sha256=DX3y7nst7V7YBYS7dHQIIZxROhrheWGRsl2aCOLErEA,14
20
+ marearts_anpr-3.7.6.dist-info/RECORD,,