marearts-anpr 3.7.3__cp312-cp312-manylinux2014_x86_64.whl → 3.7.6__cp312-cp312-manylinux2014_x86_64.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 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
  [![License: Proprietary](https://img.shields.io/badge/License-Proprietary-red.svg)](https://www.marearts.com/products/anpr)
51
54
  [![Live Demo](https://img.shields.io/badge/demo-live-brightgreen.svg)](http://live.marearts.com)
52
55
 
56
+ [![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/)
57
+ [![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)
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", # 🏆 BEST: 97.13% detection, 128 FPS
128
- # 320p models (Best): pico_320p_fp32/fp16, micro_320p_fp32/fp16, small_320p_fp32/fp16, medium_320p_fp32/fp16, large_320p_fp32/fp16
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 detailed benchmarks and region-based performance](https://github.com/MareArts/MareArts-ANPR/blob/main/docs/models.md)
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>
@@ -0,0 +1,20 @@
1
+ marearts_anpr/__init__.py,sha256=YzrK3DFACnJ-JOQjHnV0Lj0YTzeWpHGAqTIWhptuudg,845
2
+ marearts_anpr/_version.py,sha256=zGNGpkQjSytGALD5hcAdD8jzB1hkyGf8rY7GMtr8uwA,75
3
+ marearts_anpr/cli.py,sha256=JzIF-nYSjbWrm6fzWYZ6H9V1pI71CqcxQj9JvKFpJCA,40663
4
+ marearts_anpr/image_processor.cpython-312-x86_64-linux-gnu.so,sha256=Oo4UWJ3vltrwrEuFZZlZxszyaXf3bTp0Jw8aFx-PEfA,848904
5
+ marearts_anpr/license.cpython-312-x86_64-linux-gnu.so,sha256=G4JCH7L-OaUVT9BodK0yIMoLqa9p7phtAn3-Tvj0bDM,688448
6
+ marearts_anpr/marearts_anpr.py,sha256=OSSOZnODYscVPGLcw6Qw4btE_b_6qCbeWOUZA2vi150,3308
7
+ marearts_anpr/marearts_anpr_d.cpython-312-x86_64-linux-gnu.so,sha256=LDqQaZm45k2ptC1cHDtfbhS0c183u3Qr_XjxeKaJt1U,952376
8
+ marearts_anpr/marearts_anpr_d_v14.cpython-312-x86_64-linux-gnu.so,sha256=HDrL3wg_gPZ9oWJVHJ5WvgxpbzhpXazv3oXTFTthAxA,1053792
9
+ marearts_anpr/marearts_anpr_p.cpython-312-x86_64-linux-gnu.so,sha256=EMXOrfSP0M3Dg3glsP8e0-zjfoURMfrSg0AWy3wZG40,1170256
10
+ marearts_anpr/marearts_anpr_r.cpython-312-x86_64-linux-gnu.so,sha256=44XtUeHzIK8kyogQAzJ_Oq-k-GbIvO1Bq89QQ_fzpdQ,1156408
11
+ marearts_anpr/marearts_anpr_r_v14.cpython-312-x86_64-linux-gnu.so,sha256=P_BDPBRlScWHshuzaWq3Kr1-Ou85QavhsZQe_pKyP_g,778440
12
+ marearts_anpr/secret.cpython-312-x86_64-linux-gnu.so,sha256=qjR8Uf2kg6SuE4k5KbI31mPc9m41O0aXxls-7OJ_qRE,796160
13
+ marearts_anpr/tokenizer.cpython-312-x86_64-linux-gnu.so,sha256=Uhsumz5_8uvP2pUi7H7gbUEXlFnnyqGZMSNVymxKWhU,813200
14
+ marearts_anpr/utils.cpython-312-x86_64-linux-gnu.so,sha256=mwCVzeYNbfJufHgI9oagTEDe4r1WMgZTGCQoXqPyWhA,1110880
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=H_7U0lK8Ggeo7Wed152JxiCsTSTuFzJRrTRQ2duoo5E,105
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,,
@@ -1,20 +0,0 @@
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
4
- marearts_anpr/image_processor.cpython-312-x86_64-linux-gnu.so,sha256=kK64GCU8XGEUZfNkdSCdfoOvE3yqLvG8hC2Wvam-NJ8,166480
5
- marearts_anpr/license.cpython-312-x86_64-linux-gnu.so,sha256=i9Hx4VBAofrJ4g-LJYSH8NemUsWhoe2DG8HwFrUr5q8,132784
6
- marearts_anpr/marearts_anpr.py,sha256=OSSOZnODYscVPGLcw6Qw4btE_b_6qCbeWOUZA2vi150,3308
7
- marearts_anpr/marearts_anpr_d.cpython-312-x86_64-linux-gnu.so,sha256=xEYTQ5jt1IMzLohv8nuv5iQqxKTVoldBs4LiIp83cg8,190208
8
- marearts_anpr/marearts_anpr_d_v14.cpython-312-x86_64-linux-gnu.so,sha256=fIM7bQ2Ag4xfwca8z5DiHygWXrI453-Yz8XUVKAY0Zk,205912
9
- marearts_anpr/marearts_anpr_p.cpython-312-x86_64-linux-gnu.so,sha256=8ErwWRsIHvjjpjHKRGD2_MH7e_HIh5-J9_NAhP6JOOM,221184
10
- marearts_anpr/marearts_anpr_r.cpython-312-x86_64-linux-gnu.so,sha256=ERsDzbd8Cpv0CKLXTQ5E-M8P0kgMHXQkcqDniJUPEb0,220704
11
- marearts_anpr/marearts_anpr_r_v14.cpython-312-x86_64-linux-gnu.so,sha256=Ytt7ezDQ8Tq5UeVZupsOte4_8tpFwzAXcsU1kX8lQTM,147392
12
- marearts_anpr/secret.cpython-312-x86_64-linux-gnu.so,sha256=vlQe60HJoLlN4SiEc7Zj5Agdxs9hQ3ibxKZR5iQarDU,152984
13
- marearts_anpr/tokenizer.cpython-312-x86_64-linux-gnu.so,sha256=VeyHB_Yrs2HNvGcRiunx6CbKPO57X4443tvfY5qRayk,145552
14
- marearts_anpr/utils.cpython-312-x86_64-linux-gnu.so,sha256=hm6C-1Co0KBKP5PkkcklS6RZ6FtbKOP3L0wse3Tt_tg,214936
15
- marearts_anpr-3.7.3.dist-info/LICENSE,sha256=-QowWRBizXxzIyeIKvORInIIG3pjTHtImpvy4alJ9H4,1693
16
- marearts_anpr-3.7.3.dist-info/METADATA,sha256=E8hyiwg9VVdj1HGaUjeQMHlQAGJJ33QgBYkLtfybGbE,13028
17
- marearts_anpr-3.7.3.dist-info/WHEEL,sha256=H_7U0lK8Ggeo7Wed152JxiCsTSTuFzJRrTRQ2duoo5E,105
18
- marearts_anpr-3.7.3.dist-info/entry_points.txt,sha256=4_q2PbsRTMUIMxt7BWxZdt9yuw-4bepqGyZl4jBLgfU,90
19
- marearts_anpr-3.7.3.dist-info/top_level.txt,sha256=DX3y7nst7V7YBYS7dHQIIZxROhrheWGRsl2aCOLErEA,14
20
- marearts_anpr-3.7.3.dist-info/RECORD,,