onnxtr 0.6.0__py3-none-any.whl → 0.6.3__py3-none-any.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.
Files changed (55) hide show
  1. onnxtr/contrib/artefacts.py +1 -1
  2. onnxtr/contrib/base.py +1 -1
  3. onnxtr/file_utils.py +1 -1
  4. onnxtr/io/elements.py +3 -3
  5. onnxtr/io/html.py +1 -1
  6. onnxtr/io/image.py +1 -1
  7. onnxtr/io/pdf.py +1 -1
  8. onnxtr/io/reader.py +1 -1
  9. onnxtr/models/_utils.py +1 -1
  10. onnxtr/models/builder.py +1 -1
  11. onnxtr/models/classification/models/mobilenet.py +5 -5
  12. onnxtr/models/classification/predictor/base.py +1 -1
  13. onnxtr/models/classification/zoo.py +1 -1
  14. onnxtr/models/detection/_utils/base.py +1 -1
  15. onnxtr/models/detection/core.py +1 -1
  16. onnxtr/models/detection/models/differentiable_binarization.py +1 -1
  17. onnxtr/models/detection/models/fast.py +1 -1
  18. onnxtr/models/detection/models/linknet.py +1 -1
  19. onnxtr/models/detection/postprocessor/base.py +3 -5
  20. onnxtr/models/detection/predictor/base.py +1 -1
  21. onnxtr/models/detection/zoo.py +2 -1
  22. onnxtr/models/engine.py +7 -1
  23. onnxtr/models/factory/hub.py +1 -1
  24. onnxtr/models/predictor/base.py +1 -1
  25. onnxtr/models/predictor/predictor.py +1 -1
  26. onnxtr/models/preprocessor/base.py +1 -1
  27. onnxtr/models/recognition/core.py +1 -1
  28. onnxtr/models/recognition/models/crnn.py +1 -1
  29. onnxtr/models/recognition/models/master.py +1 -1
  30. onnxtr/models/recognition/models/parseq.py +1 -1
  31. onnxtr/models/recognition/models/sar.py +1 -1
  32. onnxtr/models/recognition/models/vitstr.py +1 -1
  33. onnxtr/models/recognition/predictor/_utils.py +1 -1
  34. onnxtr/models/recognition/predictor/base.py +1 -1
  35. onnxtr/models/recognition/utils.py +1 -1
  36. onnxtr/models/recognition/zoo.py +1 -1
  37. onnxtr/models/zoo.py +1 -1
  38. onnxtr/transforms/base.py +35 -19
  39. onnxtr/utils/common_types.py +1 -1
  40. onnxtr/utils/data.py +1 -1
  41. onnxtr/utils/fonts.py +1 -1
  42. onnxtr/utils/geometry.py +1 -1
  43. onnxtr/utils/multithreading.py +1 -1
  44. onnxtr/utils/reconstitution.py +1 -1
  45. onnxtr/utils/repr.py +1 -1
  46. onnxtr/utils/visualization.py +6 -2
  47. onnxtr/utils/vocabs.py +103 -29
  48. onnxtr/version.py +1 -1
  49. {onnxtr-0.6.0.dist-info → onnxtr-0.6.3.dist-info}/METADATA +8 -4
  50. onnxtr-0.6.3.dist-info/RECORD +75 -0
  51. {onnxtr-0.6.0.dist-info → onnxtr-0.6.3.dist-info}/WHEEL +1 -1
  52. onnxtr-0.6.0.dist-info/RECORD +0 -75
  53. {onnxtr-0.6.0.dist-info → onnxtr-0.6.3.dist-info/licenses}/LICENSE +0 -0
  54. {onnxtr-0.6.0.dist-info → onnxtr-0.6.3.dist-info}/top_level.txt +0 -0
  55. {onnxtr-0.6.0.dist-info → onnxtr-0.6.3.dist-info}/zip-safe +0 -0
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/contrib/base.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/file_utils.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/io/elements.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -331,7 +331,7 @@ class Page(Element):
331
331
  )
332
332
  # Create the body
333
333
  body = SubElement(page_hocr, "body")
334
- SubElement(
334
+ page_div = SubElement(
335
335
  body,
336
336
  "div",
337
337
  attrib={
@@ -346,7 +346,7 @@ class Page(Element):
346
346
  raise TypeError("XML export is only available for straight bounding boxes for now.")
347
347
  (xmin, ymin), (xmax, ymax) = block.geometry
348
348
  block_div = SubElement(
349
- body,
349
+ page_div,
350
350
  "div",
351
351
  attrib={
352
352
  "class": "ocr_carea",
onnxtr/io/html.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/io/image.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/io/pdf.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/io/reader.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/models/_utils.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/models/builder.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -24,16 +24,16 @@ default_cfgs: dict[str, dict[str, Any]] = {
24
24
  "std": (0.299, 0.296, 0.301),
25
25
  "input_shape": (3, 256, 256),
26
26
  "classes": [0, -90, 180, 90],
27
- "url": "https://github.com/felixdittrich92/OnnxTR/releases/download/v0.0.1/mobilenet_v3_small_crop_orientation-5620cf7e.onnx",
28
- "url_8_bit": "https://github.com/felixdittrich92/OnnxTR/releases/download/v0.1.2/mobilenet_v3_small_crop_orientation_static_8_bit-4cfaa621.onnx",
27
+ "url": "https://github.com/felixdittrich92/OnnxTR/releases/download/v0.6.0/mobilenet_v3_small_crop_orientation-4fde60a1.onnx",
28
+ "url_8_bit": "https://github.com/felixdittrich92/OnnxTR/releases/download/v0.6.0/mobilenet_v3_small_crop_orientation_static_8_bit-c32c7721.onnx",
29
29
  },
30
30
  "mobilenet_v3_small_page_orientation": {
31
31
  "mean": (0.694, 0.695, 0.693),
32
32
  "std": (0.299, 0.296, 0.301),
33
33
  "input_shape": (3, 512, 512),
34
34
  "classes": [0, -90, 180, 90],
35
- "url": "https://github.com/felixdittrich92/OnnxTR/releases/download/v0.0.1/mobilenet_v3_small_page_orientation-d3f76d79.onnx",
36
- "url_8_bit": "https://github.com/felixdittrich92/OnnxTR/releases/download/v0.1.2/mobilenet_v3_small_page_orientation_static_8_bit-3e5ef3dc.onnx",
35
+ "url": "https://github.com/felixdittrich92/OnnxTR/releases/download/v0.6.0/mobilenet_v3_small_page_orientation-60606ce4.onnx",
36
+ "url_8_bit": "https://github.com/felixdittrich92/OnnxTR/releases/download/v0.6.0/mobilenet_v3_small_page_orientation_static_8_bit-13b5b014.onnx",
37
37
  },
38
38
  }
39
39
 
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -9,7 +9,6 @@
9
9
  import cv2
10
10
  import numpy as np
11
11
  import pyclipper
12
- from shapely.geometry import Polygon
13
12
 
14
13
  from ..core import DetectionPostProcessor
15
14
 
@@ -54,9 +53,8 @@ class GeneralDetectionPostProcessor(DetectionPostProcessor):
54
53
  area = (rect[1][0] + 1) * (1 + rect[1][1])
55
54
  length = 2 * (rect[1][0] + rect[1][1]) + 2
56
55
  else:
57
- poly = Polygon(points)
58
- area = poly.area
59
- length = poly.length
56
+ area = cv2.contourArea(points)
57
+ length = cv2.arcLength(points, closed=True)
60
58
  distance = area * self.unclip_ratio / length # compute distance to expand polygon
61
59
  offset = pyclipper.PyclipperOffset()
62
60
  offset.AddPath(points, pyclipper.JT_ROUND, pyclipper.ET_CLOSEDPOLYGON)
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -44,6 +44,7 @@ def _predictor(
44
44
  raise ValueError(f"unknown architecture: {type(arch)}")
45
45
 
46
46
  _model = arch
47
+ _model.assume_straight_pages = assume_straight_pages
47
48
  _model.postprocessor.assume_straight_pages = assume_straight_pages
48
49
 
49
50
  kwargs["mean"] = kwargs.get("mean", _model.cfg["mean"])
onnxtr/models/engine.py CHANGED
@@ -1,9 +1,10 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
5
5
 
6
6
  import logging
7
+ import os
7
8
  from typing import Any
8
9
 
9
10
  import numpy as np
@@ -15,6 +16,9 @@ from onnxruntime import (
15
16
  get_available_providers,
16
17
  get_device,
17
18
  )
19
+ from onnxruntime.capi._pybind_state import set_default_logger_severity
20
+
21
+ set_default_logger_severity(int(os.getenv("ORT_LOG_SEVERITY_LEVEL", 4)))
18
22
 
19
23
  from onnxtr.utils.data import download_from_url
20
24
  from onnxtr.utils.geometry import shape_translate
@@ -90,6 +94,8 @@ class Engine:
90
94
  def __init__(self, url: str, engine_cfg: EngineConfig | None = None, **kwargs: Any) -> None:
91
95
  engine_cfg = engine_cfg if isinstance(engine_cfg, EngineConfig) else EngineConfig()
92
96
  archive_path = download_from_url(url, cache_subdir="models", **kwargs) if "http" in url else url
97
+ # NOTE: older onnxruntime versions require a string path for windows
98
+ archive_path = rf"{archive_path}"
93
99
  # Store model path for each model
94
100
  self.model_path = archive_path
95
101
  self.session_options = engine_cfg.session_options
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/models/zoo.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/transforms/base.py CHANGED
@@ -1,9 +1,11 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
5
5
 
6
6
 
7
+ import math
8
+
7
9
  import numpy as np
8
10
  from PIL import Image, ImageOps
9
11
 
@@ -37,37 +39,51 @@ class Resize:
37
39
  raise AssertionError("size should be either a tuple or an int")
38
40
 
39
41
  def __call__(self, img: np.ndarray) -> np.ndarray:
40
- img = (img * 255).astype(np.uint8) if img.dtype != np.uint8 else img
41
- h, w = img.shape[:2] if img.ndim == 3 else img.shape[1:3]
42
+ if img.dtype != np.uint8:
43
+ img_pil = Image.fromarray((img * 255).clip(0, 255).astype(np.uint8))
44
+ else:
45
+ img_pil = Image.fromarray(img)
46
+
42
47
  sh, sw = self.size
48
+ w, h = img_pil.size
43
49
 
44
50
  if not self.preserve_aspect_ratio:
45
- return np.array(Image.fromarray(img).resize((sw, sh), resample=self.interpolation))
51
+ img_resized_pil = img_pil.resize((sw, sh), resample=self.interpolation)
52
+ return np.array(img_resized_pil)
46
53
 
47
54
  actual_ratio = h / w
48
55
  target_ratio = sh / sw
49
56
 
50
- if target_ratio == actual_ratio:
51
- return np.array(Image.fromarray(img).resize((sw, sh), resample=self.interpolation))
52
-
53
57
  if actual_ratio > target_ratio:
54
- tmp_size = (int(sh / actual_ratio), sh)
58
+ new_h = sh
59
+ new_w = max(int(sh / actual_ratio), 1)
55
60
  else:
56
- tmp_size = (sw, int(sw * actual_ratio))
61
+ new_w = sw
62
+ new_h = max(int(sw * actual_ratio), 1)
57
63
 
58
- img_resized = Image.fromarray(img).resize(tmp_size, resample=self.interpolation)
59
- pad_left = pad_top = 0
60
- pad_right = sw - img_resized.width
61
- pad_bottom = sh - img_resized.height
64
+ img_resized_pil = img_pil.resize((new_w, new_h), resample=self.interpolation)
65
+
66
+ delta_w = sw - new_w
67
+ delta_h = sh - new_h
62
68
 
63
69
  if self.symmetric_pad:
64
- pad_left = pad_right // 2
65
- pad_right -= pad_left
66
- pad_top = pad_bottom // 2
67
- pad_bottom -= pad_top
70
+ # Symmetric padding
71
+ pad_left = math.ceil(delta_w / 2)
72
+ pad_right = math.floor(delta_w / 2)
73
+ pad_top = math.ceil(delta_h / 2)
74
+ pad_bottom = math.floor(delta_h / 2)
75
+ else:
76
+ # Asymmetric padding
77
+ pad_left, pad_top = 0, 0
78
+ pad_right, pad_bottom = delta_w, delta_h
79
+
80
+ img_padded_pil = ImageOps.expand(
81
+ img_resized_pil,
82
+ border=(pad_left, pad_top, pad_right, pad_bottom),
83
+ fill=0,
84
+ )
68
85
 
69
- img_resized = ImageOps.expand(img_resized, (pad_left, pad_top, pad_right, pad_bottom))
70
- return np.array(img_resized)
86
+ return np.array(img_padded_pil)
71
87
 
72
88
  def __repr__(self) -> str:
73
89
  interpolate_str = self.interpolation
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/utils/data.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/utils/fonts.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/utils/geometry.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
onnxtr/utils/repr.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -276,7 +276,11 @@ def draw_boxes(boxes: np.ndarray, image: np.ndarray, color: tuple[int, int, int]
276
276
  for box in _boxes.tolist():
277
277
  xmin, ymin, xmax, ymax = box
278
278
  image = cv2.rectangle(
279
- image, (xmin, ymin), (xmax, ymax), color=color if isinstance(color, tuple) else (0, 0, 255), thickness=2
279
+ image,
280
+ (xmin, ymin),
281
+ (xmax, ymax),
282
+ color=color if isinstance(color, tuple) else (0, 0, 255),
283
+ thickness=2,
280
284
  )
281
285
  plt.imshow(image)
282
286
  plt.plot(**kwargs)
onnxtr/utils/vocabs.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021-2024, Mindee | Felix Dittrich.
1
+ # Copyright (C) 2021-2025, Mindee | Felix Dittrich.
2
2
 
3
3
  # This program is licensed under the Apache License 2.0.
4
4
  # See LICENSE or go to <https://opensource.org/licenses/Apache-2.0> for full license details.
@@ -9,32 +9,92 @@ __all__ = ["VOCABS"]
9
9
 
10
10
 
11
11
  VOCABS: dict[str, str] = {
12
- "digits": string.digits,
13
- "ascii_letters": string.ascii_letters,
14
- "punctuation": string.punctuation,
15
- "currency": "£€¥¢฿",
16
- "ancient_greek": "αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ",
17
- "arabic_letters": "ءآأؤإئابةتثجحخدذرزسشصضطظعغـفقكلمنهوىي",
18
- "persian_letters": "پچڢڤگ",
19
- "arabic_digits": "٠١٢٣٤٥٦٧٨٩",
12
+ # Arabic & Persian
20
13
  "arabic_diacritics": "ًٌٍَُِّْ",
14
+ "arabic_digits": "٠١٢٣٤٥٦٧٨٩",
15
+ "arabic_letters": "ءآأؤإئابةتثجحخدذرزسشصضطظعغـفقكلمنهوىي",
21
16
  "arabic_punctuation": "؟؛«»—",
22
- "hindi_letters": "अआइईउऊऋॠऌॡएऐओऔअंअःकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसह",
23
- "hindi_digits": "०१२३४५६७८९",
24
- "hindi_punctuation": "।,?!:्ॐ॰॥॰",
25
- "bangla_letters": "অআইঈউঊঋএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃেৈোৌ্ৎংঃঁ",
17
+ "persian_letters": "پچڢڤگ",
18
+ # Bangla
26
19
  "bangla_digits": "০১২৩৪৫৬৭৮৯",
20
+ "bangla_letters": "অআইঈউঊঋএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃেৈোৌ্ৎংঃঁ",
21
+ # Cyrillic
27
22
  "generic_cyrillic_letters": "абвгдежзийклмнопрстуфхцчшщьюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЮЯ",
23
+ "russian_cyrillic_letters": "ёыэЁЫЭ",
24
+ "russian_signs": "ъЪ",
25
+ # Greek
26
+ "ancient_greek": "αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ",
27
+ # Gujarati
28
+ "gujarati_consonants": "ખગઘચછજઝઞટઠડઢણતથદધનપફબભમયરલવશસહળક્ષ",
29
+ "gujarati_digits": "૦૧૨૩૪૫૬૭૮૯",
30
+ "gujarati_punctuation": "૰ઽ◌ંઃ॥ૐ઼ઁ" + "૱",
31
+ "gujarati_vowels": "અઆઇઈઉઊઋએઐઓ",
32
+ # Hindi
33
+ "hindi_digits": "०१२३४५६७८९",
34
+ "hindi_letters": "अआइईउऊऋॠऌॡएऐओऔंःकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसह",
35
+ "hindi_punctuation": "।,?!:्ॐ॰॥",
36
+ # Hebrew
37
+ "hebrew_cantillations": "֑֖֛֢֣֤֥֦֧֪֚֭֮֒֓֔֕֗֘֙֜֝֞֟֠֡֨֩֫֬֯",
38
+ "hebrew_letters": "אבגדהוזחטיךכלםמןנסעףפץצקרשת",
39
+ "hebrew_specials": "ׯװױײיִﬞײַﬠﬡﬢﬣﬤﬥﬦﬧﬨ﬩שׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּוֹבֿכֿפֿﭏ",
40
+ "hebrew_punctuation": "ֽ־ֿ׀ׁׂ׃ׅׄ׆׳״",
41
+ "hebrew_vowels": "ְֱֲֳִֵֶַָׇֹֺֻ",
42
+ # Latin
43
+ "digits": string.digits,
44
+ "ascii_letters": string.ascii_letters,
45
+ "punctuation": string.punctuation,
46
+ "currency": "£€¥¢฿",
28
47
  }
29
48
 
49
+ # Latin & latin-dependent alphabets
30
50
  VOCABS["latin"] = VOCABS["digits"] + VOCABS["ascii_letters"] + VOCABS["punctuation"]
31
51
  VOCABS["english"] = VOCABS["latin"] + "°" + VOCABS["currency"]
32
- VOCABS["legacy_french"] = VOCABS["latin"] + "°" + "àâéèêëîïôùûçÀÂÉÈËÎÏÔÙÛÇ" + VOCABS["currency"]
52
+
53
+ VOCABS["czech"] = VOCABS["english"] + "áčďéěíňóřšťúůýžÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ"
54
+
55
+ VOCABS["danish"] = VOCABS["english"] + "æøåÆØÅ"
56
+
57
+ VOCABS["dutch"] = VOCABS["english"] + "áéíóúüñÁÉÍÓÚÜÑ"
58
+
33
59
  VOCABS["french"] = VOCABS["english"] + "àâéèêëîïôùûüçÀÂÉÈÊËÎÏÔÙÛÜÇ"
60
+ VOCABS["legacy_french"] = VOCABS["latin"] + "°" + "àâéèêëîïôùûçÀÂÉÈËÎÏÔÙÛÇ" + VOCABS["currency"]
61
+
62
+ VOCABS["finnish"] = VOCABS["english"] + "äöÄÖ"
63
+
64
+ VOCABS["german"] = VOCABS["english"] + "äöüßÄÖÜẞ"
65
+
66
+ VOCABS["croatian"] = VOCABS["english"] + "ČčĆćĐ𩹮ž"
67
+
68
+ VOCABS["hebrew"] = (
69
+ VOCABS["english"]
70
+ + VOCABS["hebrew_letters"]
71
+ + VOCABS["hebrew_vowels"]
72
+ + VOCABS["hebrew_punctuation"]
73
+ + VOCABS["hebrew_cantillations"]
74
+ + VOCABS["hebrew_specials"]
75
+ + "₪"
76
+ )
77
+
78
+ VOCABS["italian"] = VOCABS["english"] + "àèéìíîòóùúÀÈÉÌÍÎÒÓÙÚ"
79
+
80
+ VOCABS["norwegian"] = VOCABS["english"] + "æøåÆØÅ"
81
+
82
+ VOCABS["polish"] = VOCABS["english"] + "ąćęłńóśźżĄĆĘŁŃÓŚŹŻ"
83
+
34
84
  VOCABS["portuguese"] = VOCABS["english"] + "áàâãéêíïóôõúüçÁÀÂÃÉÊÍÏÓÔÕÚÜÇ"
85
+
35
86
  VOCABS["spanish"] = VOCABS["english"] + "áéíóúüñÁÉÍÓÚÜÑ" + "¡¿"
36
- VOCABS["italian"] = VOCABS["english"] + "àèéìíîòóùúÀÈÉÌÍÎÒÓÙÚ"
37
- VOCABS["german"] = VOCABS["english"] + "äöüßÄÖÜẞ"
87
+
88
+ VOCABS["swedish"] = VOCABS["english"] + "åäöÅÄÖ"
89
+
90
+ VOCABS["vietnamese"] = (
91
+ VOCABS["english"]
92
+ + "áàảạãăắằẳẵặâấầẩẫậđéèẻẽẹêếềểễệóòỏõọôốồổộỗơớờởợỡúùủũụưứừửữựíìỉĩịýỳỷỹỵ"
93
+ + "ÁÀẢẠÃĂẮẰẲẴẶÂẤẦẨẪẬĐÉÈẺẼẸÊẾỀỂỄỆÓÒỎÕỌÔỐỒỔỘỖƠỚỜỞỢỠÚÙỦŨỤƯỨỪỬỮỰÍÌỈĨỊÝỲỶỸỴ"
94
+ )
95
+
96
+ # Non-latin alphabets.
97
+ # Arabic
38
98
  VOCABS["arabic"] = (
39
99
  VOCABS["digits"]
40
100
  + VOCABS["arabic_digits"]
@@ -44,24 +104,37 @@ VOCABS["arabic"] = (
44
104
  + VOCABS["arabic_punctuation"]
45
105
  + VOCABS["punctuation"]
46
106
  )
47
- VOCABS["czech"] = VOCABS["english"] + "áčďéěíňóřšťúůýžÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ"
48
- VOCABS["polish"] = VOCABS["english"] + "ąćęłńóśźżĄĆĘŁŃÓŚŹŻ"
49
- VOCABS["dutch"] = VOCABS["english"] + "áéíóúüñÁÉÍÓÚÜÑ"
50
- VOCABS["norwegian"] = VOCABS["english"] + "æøåÆØÅ"
51
- VOCABS["danish"] = VOCABS["english"] + "æøåÆØÅ"
52
- VOCABS["finnish"] = VOCABS["english"] + "äöÄÖ"
53
- VOCABS["swedish"] = VOCABS["english"] + "åäöÅÄÖ"
54
- VOCABS["vietnamese"] = (
55
- VOCABS["english"]
56
- + "áàảạãăắằẳẵặâấầẩẫậđéèẻẽẹêếềểễệóòỏõọôốồổộỗơớờởợỡúùủũụưứừửữựiíìỉĩịýỳỷỹỵ"
57
- + "ÁÀẢẠÃĂẮẰẲẴẶÂẤẦẨẪẬĐÉÈẺẼẸÊẾỀỂỄỆÓÒỎÕỌÔỐỒỔỘỖƠỚỜỞỢỠÚÙỦŨỤƯỨỪỬỮỰIÍÌỈĨỊÝỲỶỸỴ"
107
+
108
+ # Bangla
109
+ VOCABS["bangla"] = VOCABS["bangla_letters"] + VOCABS["bangla_digits"]
110
+
111
+ # Gujarati
112
+ VOCABS["gujarati"] = (
113
+ VOCABS["gujarati_vowels"]
114
+ + VOCABS["gujarati_consonants"]
115
+ + VOCABS["gujarati_digits"]
116
+ + VOCABS["gujarati_punctuation"]
117
+ + VOCABS["punctuation"]
58
118
  )
59
- VOCABS["hebrew"] = VOCABS["english"] + "אבגדהוזחטיכלמנסעפצקרשת" + "₪"
119
+
120
+ # Hindi
60
121
  VOCABS["hindi"] = VOCABS["hindi_letters"] + VOCABS["hindi_digits"] + VOCABS["hindi_punctuation"]
61
- VOCABS["bangla"] = VOCABS["bangla_letters"] + VOCABS["bangla_digits"]
122
+
123
+ # Cyrillic
124
+ VOCABS["russian"] = (
125
+ VOCABS["generic_cyrillic_letters"]
126
+ + VOCABS["russian_cyrillic_letters"]
127
+ + VOCABS["russian_signs"]
128
+ + VOCABS["digits"]
129
+ + VOCABS["punctuation"]
130
+ + "₽"
131
+ )
132
+
62
133
  VOCABS["ukrainian"] = (
63
134
  VOCABS["generic_cyrillic_letters"] + VOCABS["digits"] + VOCABS["punctuation"] + VOCABS["currency"] + "ґіїєҐІЇЄ₴"
64
135
  )
136
+
137
+ # Multi-lingual
65
138
  VOCABS["multilingual"] = "".join(
66
139
  dict.fromkeys(
67
140
  VOCABS["french"]
@@ -69,6 +142,7 @@ VOCABS["multilingual"] = "".join(
69
142
  + VOCABS["spanish"]
70
143
  + VOCABS["german"]
71
144
  + VOCABS["czech"]
145
+ + VOCABS["croatian"]
72
146
  + VOCABS["polish"]
73
147
  + VOCABS["dutch"]
74
148
  + VOCABS["italian"]
onnxtr/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = 'v0.6.0'
1
+ __version__ = 'v0.6.3'
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: onnxtr
3
- Version: 0.6.0
3
+ Version: 0.6.3
4
4
  Summary: Onnx Text Recognition (OnnxTR): docTR Onnx-Wrapper for high-performance OCR on documents.
5
5
  Author-email: Felix Dittrich <felixdittrich92@gmail.com>
6
6
  Maintainer: Felix Dittrich
@@ -229,7 +229,6 @@ Requires-Dist: numpy<3.0.0,>=1.16.0
229
229
  Requires-Dist: scipy<2.0.0,>=1.4.0
230
230
  Requires-Dist: pypdfium2<5.0.0,>=4.11.0
231
231
  Requires-Dist: pyclipper<2.0.0,>=1.2.0
232
- Requires-Dist: shapely<3.0.0,>=1.6.0
233
232
  Requires-Dist: rapidfuzz<4.0.0,>=3.0.0
234
233
  Requires-Dist: langdetect<2.0.0,>=1.0.9
235
234
  Requires-Dist: huggingface-hub<1.0.0,>=0.23.0
@@ -264,6 +263,7 @@ Provides-Extra: testing
264
263
  Requires-Dist: pytest>=5.3.2; extra == "testing"
265
264
  Requires-Dist: coverage[toml]>=4.5.4; extra == "testing"
266
265
  Requires-Dist: requests>=2.20.0; extra == "testing"
266
+ Requires-Dist: pytest-memray>=1.7.0; extra == "testing"
267
267
  Provides-Extra: quality
268
268
  Requires-Dist: ruff>=0.1.5; extra == "quality"
269
269
  Requires-Dist: mypy>=0.812; extra == "quality"
@@ -277,9 +277,11 @@ Requires-Dist: mplcursors>=0.3; extra == "dev"
277
277
  Requires-Dist: pytest>=5.3.2; extra == "dev"
278
278
  Requires-Dist: coverage[toml]>=4.5.4; extra == "dev"
279
279
  Requires-Dist: requests>=2.20.0; extra == "dev"
280
+ Requires-Dist: pytest-memray>=1.7.0; extra == "dev"
280
281
  Requires-Dist: ruff>=0.1.5; extra == "dev"
281
282
  Requires-Dist: mypy>=0.812; extra == "dev"
282
283
  Requires-Dist: pre-commit>=2.17.0; extra == "dev"
284
+ Dynamic: license-file
283
285
 
284
286
  <p align="center">
285
287
  <img src="https://github.com/felixdittrich92/OnnxTR/raw/main/docs/images/logo.jpg" width="40%">
@@ -290,9 +292,11 @@ Requires-Dist: pre-commit>=2.17.0; extra == "dev"
290
292
  [![codecov](https://codecov.io/gh/felixdittrich92/OnnxTR/graph/badge.svg?token=WVFRCQBOLI)](https://codecov.io/gh/felixdittrich92/OnnxTR)
291
293
  [![Codacy Badge](https://app.codacy.com/project/badge/Grade/4fff4d764bb14fb8b4f4afeb9587231b)](https://app.codacy.com/gh/felixdittrich92/OnnxTR/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
292
294
  [![CodeFactor](https://www.codefactor.io/repository/github/felixdittrich92/onnxtr/badge)](https://www.codefactor.io/repository/github/felixdittrich92/onnxtr)
293
- [![Pypi](https://img.shields.io/badge/pypi-v0.6.0-blue.svg)](https://pypi.org/project/OnnxTR/)
295
+ [![Socket Badge](https://socket.dev/api/badge/pypi/package/onnxtr/0.6.2?artifact_id=tar-gz)](https://socket.dev/pypi/package/onnxtr/overview/0.6.2/tar-gz)
296
+ [![Pypi](https://img.shields.io/badge/pypi-v0.6.3-blue.svg)](https://pypi.org/project/OnnxTR/)
294
297
  [![Docker Images](https://img.shields.io/badge/Docker-4287f5?style=flat&logo=docker&logoColor=white)](https://github.com/felixdittrich92/OnnxTR/pkgs/container/onnxtr)
295
298
  [![Hugging Face Spaces](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-blue)](https://huggingface.co/spaces/Felix92/OnnxTR-OCR)
299
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/onnxtr)
296
300
 
297
301
  > :warning: Please note that this is a wrapper around the [doctr](https://github.com/mindee/doctr) library to provide a Onnx pipeline for docTR. For feature requests, which are not directly related to the Onnx pipeline, please refer to the base project.
298
302
 
@@ -0,0 +1,75 @@
1
+ onnxtr/__init__.py,sha256=h7Wc2tuHLsaoCk5xNpEFEK-g11A6SJA7nAasA76TQ_Y,100
2
+ onnxtr/file_utils.py,sha256=rlflwU-KTHQ6wD1GU2EqPJs4y7gTyZSUnhtx9w2lIOk,1067
3
+ onnxtr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ onnxtr/version.py,sha256=59OmW64-lZAdyvZGKkVzWr6b7GEnjM7Dfx9gTahsuvc,23
5
+ onnxtr/contrib/__init__.py,sha256=0Jo052I1DIdbNVYQBg213UJBNH3UKZIOcn2HVusQlj4,39
6
+ onnxtr/contrib/artefacts.py,sha256=4uJyXrl2YEjeWaGC8pAVC5227eVzb34vTSbAe0fzGbw,5323
7
+ onnxtr/contrib/base.py,sha256=SPPWd8SVwZr4kGPI-yM8UdQguEZ0awRBUZGjGKZEC-U,3135
8
+ onnxtr/io/__init__.py,sha256=kS7tKGFvzxOCWBOun-Y8n9CsziwRKNynjwpZEUUI03M,106
9
+ onnxtr/io/elements.py,sha256=F-AcKzVqDKVE5zfHEVGRhRGJWt8Ln54ndk3cVNQXmas,17751
10
+ onnxtr/io/html.py,sha256=VleLE-94eJ2BermRZGDuKKLruE2p3bP1c3ZtaNkciF0,716
11
+ onnxtr/io/image.py,sha256=ehOcXzH1eFjwLO3pwiV3bUwGcn4SdW-FO9DVbUjWw2M,1700
12
+ onnxtr/io/pdf.py,sha256=cO_e9MWh2uCu20a9eLqp3y3GS9idpROkOuNkCU5yE8U,1327
13
+ onnxtr/io/reader.py,sha256=JBDoGXaQsiV3eZxDu4Sd8aeULIEmLV5oNGqGXLAmtBk,2755
14
+ onnxtr/models/__init__.py,sha256=QTfZlqUyv1d7NUCbGIUFM1DLOOXe-cqHZ7uaKkGdXvk,157
15
+ onnxtr/models/_utils.py,sha256=m_6Qnx9QNIxmf_rrYmjd0htFmGa6ySZLoQ9kPjtMlpA,6424
16
+ onnxtr/models/builder.py,sha256=aaMHLZl8fayeWsXHsvSy5Tq2yQWTO0gpj4Ob4kNZ0xk,14076
17
+ onnxtr/models/engine.py,sha256=mtU4kKoWcgkcLELIJKTxYD2GMFAVZ1b_i7tSG2VeYQ8,5113
18
+ onnxtr/models/zoo.py,sha256=44H7NfE4DWH7KgmF8vod9fMlPnxw41dwjpwjuIJkLHg,5303
19
+ onnxtr/models/classification/__init__.py,sha256=h1bZs55iLJBMATtzS4ntTKwfD6OGXBiiqGv_hEnOFnE,41
20
+ onnxtr/models/classification/zoo.py,sha256=4hD51Mdf5gkSoQ4g9zTBvurbBdrsaFFEl5WFpptBtNk,4271
21
+ onnxtr/models/classification/models/__init__.py,sha256=rohbM6ZQslfYchi7feZwwh-sX3XXRUhgtEJQeurAytQ,24
22
+ onnxtr/models/classification/models/mobilenet.py,sha256=pRI97DvBpBE-h2VymUG6sw_Jn-9-dUdvIMLavYF1syk,4818
23
+ onnxtr/models/classification/predictor/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
24
+ onnxtr/models/classification/predictor/base.py,sha256=hpLYmhn8PCbx46zYBM8rZiy2vabpN3YkviwmmbVaqRo,2313
25
+ onnxtr/models/detection/__init__.py,sha256=h1bZs55iLJBMATtzS4ntTKwfD6OGXBiiqGv_hEnOFnE,41
26
+ onnxtr/models/detection/core.py,sha256=8avDAHBh-S3jjQ-4WTcbXQvUgwrvJtFPti2ghUtE9uA,3497
27
+ onnxtr/models/detection/zoo.py,sha256=RbzG9nR0Oa9bV0vwEBer2GDJMg1XvthpRLBxD2MsUvQ,3385
28
+ onnxtr/models/detection/_utils/__init__.py,sha256=oPkIYbySSbLsOk02wVPNO9bUuywC47YjaenfyTwfOsw,20
29
+ onnxtr/models/detection/_utils/base.py,sha256=MUn3cHUSq-dIKAA021ZUrTm0SLpAC9qsiw1BAWvcppc,2300
30
+ onnxtr/models/detection/models/__init__.py,sha256=6Ea6knYrVCR2jAmPlsVWmCdHe-c6lSRETSAuZGfhx8I,85
31
+ onnxtr/models/detection/models/differentiable_binarization.py,sha256=38LrxqtcVJfEdpeTu3aSeBOWmf1J_cLUDQyAfXVIlhc,6630
32
+ onnxtr/models/detection/models/fast.py,sha256=8qsBwlV9J-eDqFDn0JMtvrvql3WmfWvKEy3iJ6_sSCY,6188
33
+ onnxtr/models/detection/models/linknet.py,sha256=jgCOf9d7sQPNZ4qKM5l4O3PQFBnBOJJklNhcCXKDBrs,6666
34
+ onnxtr/models/detection/postprocessor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ onnxtr/models/detection/postprocessor/base.py,sha256=sAjeYH3G_EMoN0yKOlk503ZGChVX85mNuhvBZj36PcI,5657
36
+ onnxtr/models/detection/predictor/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
37
+ onnxtr/models/detection/predictor/base.py,sha256=Yumq_zTSk5rnCbTJiVeOr1AQp6hv2yScI0MvXzl0n3w,2293
38
+ onnxtr/models/factory/__init__.py,sha256=cKPoH2V2157lLMTR2zsljG3_IQHziodqR-XK_LG0D_I,19
39
+ onnxtr/models/factory/hub.py,sha256=CzjFJ5ioPBG-QC8NYET51B-vzHn2t2EYj_tsoZXan44,7126
40
+ onnxtr/models/predictor/__init__.py,sha256=XL25XkRkgyK7mldF-CWhg2MMakSdP5vLpDLwL59hphk,25
41
+ onnxtr/models/predictor/base.py,sha256=1E70wZ6papp7OZkRCgY3Kf7xxMTpxIce_5ExFtT-GAg,9432
42
+ onnxtr/models/predictor/predictor.py,sha256=QLldSoBBfX72hw5dricsmVMnb1QzwYnYdOAmkEEBFpc,6377
43
+ onnxtr/models/preprocessor/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
44
+ onnxtr/models/preprocessor/base.py,sha256=oGvc2yNZJjGqHE6HFJ-2k7Z5BJ6Dcw6IwS5iY12cy_E,3963
45
+ onnxtr/models/recognition/__init__.py,sha256=h1bZs55iLJBMATtzS4ntTKwfD6OGXBiiqGv_hEnOFnE,41
46
+ onnxtr/models/recognition/core.py,sha256=V6DMa3ABT0amr9vPSQSyo0dZqK-Y8qmA__XWhOxItSU,730
47
+ onnxtr/models/recognition/utils.py,sha256=dtKsm5zycxy0t95AWKz9FnOQnQFiEXT6BZ94jXsecgA,3503
48
+ onnxtr/models/recognition/zoo.py,sha256=HA9OhykB2539iIvInOPZez8nitj0fjF2eEgos-u8vjg,2857
49
+ onnxtr/models/recognition/models/__init__.py,sha256=IXfiuzzkft8O1CpBZWYTpFw19y49mt5rJ_iGSdaWiU0,105
50
+ onnxtr/models/recognition/models/crnn.py,sha256=9NwYTsrAalNHuNkxURe574v4tvKY-BsJOb25X4XDIKk,8786
51
+ onnxtr/models/recognition/models/master.py,sha256=H_KcoJCK8nElyID5FKJdld5xapu5ZOWVcH5_H68_N1I,4669
52
+ onnxtr/models/recognition/models/parseq.py,sha256=qe7lavwFT37SPLSMWoPaoCYo7yrTYGcCYqQraTwIuQY,4512
53
+ onnxtr/models/recognition/models/sar.py,sha256=5v0VOPACvB_-I_kDh57pA00GmunIh6frD_4I6ojSjiQ,4523
54
+ onnxtr/models/recognition/models/vitstr.py,sha256=U1nlfmoga4-8Lv9aHuDQiyidp5lNdFGAi5xui7N0cUs,5964
55
+ onnxtr/models/recognition/predictor/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
56
+ onnxtr/models/recognition/predictor/_utils.py,sha256=YW6g3zzmfX1fNTaQyDk483xj1JibtNSA6lr1cYdsqm0,3329
57
+ onnxtr/models/recognition/predictor/base.py,sha256=FhpVKHnKDALssssEjYAy0IixNRoj1DQaJ1ncsF6_a1o,2488
58
+ onnxtr/transforms/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
59
+ onnxtr/transforms/base.py,sha256=jKYrJ99BQDrIgdPL-OSfDw8KoAQsW6Su2n0xLhxSsp8,4120
60
+ onnxtr/utils/__init__.py,sha256=pESRJKtcQyjRxiMgZPhtPYeLbCj-YSGyMVRHTbcMONU,94
61
+ onnxtr/utils/common_types.py,sha256=BiPSNYSU8p2R-LqBmyFw7TL-VN4RliKKlRwFOeYkpng,551
62
+ onnxtr/utils/data.py,sha256=K7t5dvQoCWsxLUwOD3o70TxCFdwe7laCVGEmtF0XHMQ,4262
63
+ onnxtr/utils/fonts.py,sha256=WAUitozOFoYZl6UI4uHEt3qkYvL_XIZ0NmEJvVvYP6U,1282
64
+ onnxtr/utils/geometry.py,sha256=-5Rx6mJN3eRqyv2QqQPkwjKKQ-eA5Vu3wjLdgMLR2Qg,20418
65
+ onnxtr/utils/multithreading.py,sha256=P8LXpaZSKRYsYZw6SRlWWXiQMDswk8zEgDSbCYVHzSA,1994
66
+ onnxtr/utils/reconstitution.py,sha256=2SUkaReD5eJ5NFs7V7Z0m4N4lUr8QB7oH1mSHTC3vLA,6119
67
+ onnxtr/utils/repr.py,sha256=lAcKRShXLpJ2DvsS2qf3vYq0lJrMJa30kLYXmfN3rV0,2105
68
+ onnxtr/utils/visualization.py,sha256=MImlxVKOLXPriJYSrBfjZfJw0GEZ1gT8eni3KXZHrXk,9831
69
+ onnxtr/utils/vocabs.py,sha256=Ad6EkGcb6-kiYsDHfTgrKoohKhosb_1jkb2mv7ifbiY,5834
70
+ onnxtr-0.6.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
71
+ onnxtr-0.6.3.dist-info/METADATA,sha256=eVjFTr1hxbsZPt6p-7bEYuXvUFpFq2F9El75KWoO4RY,34904
72
+ onnxtr-0.6.3.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
73
+ onnxtr-0.6.3.dist-info/top_level.txt,sha256=r_MSUTpspp4pWEEWvly-s7ZkfCg1KwrK6-kBlXkWKU8,7
74
+ onnxtr-0.6.3.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
75
+ onnxtr-0.6.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (80.3.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,75 +0,0 @@
1
- onnxtr/__init__.py,sha256=h7Wc2tuHLsaoCk5xNpEFEK-g11A6SJA7nAasA76TQ_Y,100
2
- onnxtr/file_utils.py,sha256=LnHd3Ns6TA9AAyYnOnE8hs-obAKYdJfnxo4WshUo300,1067
3
- onnxtr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- onnxtr/version.py,sha256=wIe1qRfuQKAuHZHcUFU7RwRIL___wvw0qm3KCxHLyFg,23
5
- onnxtr/contrib/__init__.py,sha256=0Jo052I1DIdbNVYQBg213UJBNH3UKZIOcn2HVusQlj4,39
6
- onnxtr/contrib/artefacts.py,sha256=gPy2uD1gHIRsTS3-BSJHPZleqNsWoQkRh465QUJpFJ4,5323
7
- onnxtr/contrib/base.py,sha256=tA00-Mo4QsJ5Bjtexg2YFnBQ3xIfs3vn-PiMSBXp8Dc,3135
8
- onnxtr/io/__init__.py,sha256=kS7tKGFvzxOCWBOun-Y8n9CsziwRKNynjwpZEUUI03M,106
9
- onnxtr/io/elements.py,sha256=k4CLnZiyXt3HvDkIxXsjYqDwNSpksinRKMrr8qCx3Pk,17736
10
- onnxtr/io/html.py,sha256=fnBj3-wfk1UhRQWgiF6TST54K97N_bxg-XdLtddbk0k,716
11
- onnxtr/io/image.py,sha256=GBVAC1Au_18Oz6FG4sZKINhspb6-w447WdRYZsKMxEo,1700
12
- onnxtr/io/pdf.py,sha256=8TD2kFdVRky5-hs8xXgvrM8DspRHaJNVUSg5x4Z3JuI,1327
13
- onnxtr/io/reader.py,sha256=BAatmgolmAkFtrExtE-sZ1dT8R8rTy8az2RgoKIUlTo,2755
14
- onnxtr/models/__init__.py,sha256=QTfZlqUyv1d7NUCbGIUFM1DLOOXe-cqHZ7uaKkGdXvk,157
15
- onnxtr/models/_utils.py,sha256=ep0kXUIUoyvVWQtJBkF7Ma_2NI_-vunMciS5vas_RC8,6424
16
- onnxtr/models/builder.py,sha256=Q-UdIlQUyT7tAcPiZ5lxsIMrvvvQweYSlTRSzmkg700,14076
17
- onnxtr/models/engine.py,sha256=q5kAjSMoQNJz0cYD9Td4K6JUfXXeKGjxMaTVjazJR88,4839
18
- onnxtr/models/zoo.py,sha256=JYwhhU1dKi05dZ_d5Rte5qvTEtEFWqHCmpRHWpGjLJw,5303
19
- onnxtr/models/classification/__init__.py,sha256=h1bZs55iLJBMATtzS4ntTKwfD6OGXBiiqGv_hEnOFnE,41
20
- onnxtr/models/classification/zoo.py,sha256=loXyRt0YIbNOUVBTtzioPx0wQTu5nNNmiO8O40w-TZU,4271
21
- onnxtr/models/classification/models/__init__.py,sha256=rohbM6ZQslfYchi7feZwwh-sX3XXRUhgtEJQeurAytQ,24
22
- onnxtr/models/classification/models/mobilenet.py,sha256=bAxLLh3WDF2l6LIQMF-iT42EAi_5tQLVh_xV_YF_vXs,4818
23
- onnxtr/models/classification/predictor/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
24
- onnxtr/models/classification/predictor/base.py,sha256=Cu-WJalJTmt3jw7kA8yProUqNEtDxyNPsac6RgwkpLs,2313
25
- onnxtr/models/detection/__init__.py,sha256=h1bZs55iLJBMATtzS4ntTKwfD6OGXBiiqGv_hEnOFnE,41
26
- onnxtr/models/detection/core.py,sha256=QfJkzhX2RFFPzw6L4YYPK838ych2HcmTLpincSyKyzw,3497
27
- onnxtr/models/detection/zoo.py,sha256=xoFPyNKFg3gcuYjzRBA54dNkK6NRvVYmy48yp59Kr3M,3324
28
- onnxtr/models/detection/_utils/__init__.py,sha256=oPkIYbySSbLsOk02wVPNO9bUuywC47YjaenfyTwfOsw,20
29
- onnxtr/models/detection/_utils/base.py,sha256=2jDJxfmLG1WdBEjFuNXisMQIheLkxv5zZNdBoatpJh8,2300
30
- onnxtr/models/detection/models/__init__.py,sha256=6Ea6knYrVCR2jAmPlsVWmCdHe-c6lSRETSAuZGfhx8I,85
31
- onnxtr/models/detection/models/differentiable_binarization.py,sha256=794Ohj6wNJ2aW5iG6EsvF73xH_h7Zm6VaYHycxiD4xY,6630
32
- onnxtr/models/detection/models/fast.py,sha256=6COxzjFYEy5I1eu6goT7Rg_C4hOzErBFtr2Ewm9_FVM,6188
33
- onnxtr/models/detection/models/linknet.py,sha256=KBAZfrG_1G2XiSYDzA1oWUeF-YBGAZgM7ICx2e-EaQ4,6666
34
- onnxtr/models/detection/postprocessor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- onnxtr/models/detection/postprocessor/base.py,sha256=T8uWfjiEamuSX9IHesToz5BeEHUAUijOBf0L9or0FWM,5692
36
- onnxtr/models/detection/predictor/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
37
- onnxtr/models/detection/predictor/base.py,sha256=JDA7IzqIYB7QdmWxXl8bXzVA6aCfjtlo0nPlkhlhxu8,2293
38
- onnxtr/models/factory/__init__.py,sha256=cKPoH2V2157lLMTR2zsljG3_IQHziodqR-XK_LG0D_I,19
39
- onnxtr/models/factory/hub.py,sha256=voxC3yxElLQYx_dkFLvFIFGZnLJn10KGgJ0NYGL0LBU,7126
40
- onnxtr/models/predictor/__init__.py,sha256=XL25XkRkgyK7mldF-CWhg2MMakSdP5vLpDLwL59hphk,25
41
- onnxtr/models/predictor/base.py,sha256=skQ52iKd_Yb06UsHJ4IDlqWjUxeJzxj770ViSUBeki4,9432
42
- onnxtr/models/predictor/predictor.py,sha256=Ds2k2_5hsq9DCrWoTFunkEvfZnSwKvMp_NZBDRpYiBE,6377
43
- onnxtr/models/preprocessor/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
44
- onnxtr/models/preprocessor/base.py,sha256=tGv4FZddcjOXEXKkYF-EqisY7xok13gJ41rKmYxuuGk,3963
45
- onnxtr/models/recognition/__init__.py,sha256=h1bZs55iLJBMATtzS4ntTKwfD6OGXBiiqGv_hEnOFnE,41
46
- onnxtr/models/recognition/core.py,sha256=uvlJJcrMkfchdfjXSrxRV3eyGT01e_OTORQ8NbMX1KI,730
47
- onnxtr/models/recognition/utils.py,sha256=ewxztEeZx7dG8wq6FEwesaAXp_S1mED-h-mnSR4KcbI,3503
48
- onnxtr/models/recognition/zoo.py,sha256=W0RgI8wde83QLIeSm3k4YHoLzFwmVvCheF2D7I3Jlr4,2857
49
- onnxtr/models/recognition/models/__init__.py,sha256=IXfiuzzkft8O1CpBZWYTpFw19y49mt5rJ_iGSdaWiU0,105
50
- onnxtr/models/recognition/models/crnn.py,sha256=1mZrwnxBk_bkSpZwxZw2EZBdRQ_QST4kfElIIKb34ZA,8786
51
- onnxtr/models/recognition/models/master.py,sha256=nAUiQ5FS7jqSDfOCmgNt3Oh76xPEKMF28VefvXfve7Y,4669
52
- onnxtr/models/recognition/models/parseq.py,sha256=001zYFYhGv9F_3wneBccHG9KLd8_3ul_dO_OHVnYimI,4512
53
- onnxtr/models/recognition/models/sar.py,sha256=On-rBYw7eboLDRN8pSBHPaN_XgOUgVoVvZ3ytcMh62k,4523
54
- onnxtr/models/recognition/models/vitstr.py,sha256=sk2JXxQ0uRqqq0FWpM90MfW8HhHmeQUW8C-ew9lyG4w,5964
55
- onnxtr/models/recognition/predictor/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
56
- onnxtr/models/recognition/predictor/_utils.py,sha256=Ee_BfKyhvJJij763VRGTfzqWcft0pGnN_zSSmXAY8fE,3329
57
- onnxtr/models/recognition/predictor/base.py,sha256=3OREQIsAWPxdKKRyJD5WRAs47AZknff85EeIU5qZsBA,2488
58
- onnxtr/transforms/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
59
- onnxtr/transforms/base.py,sha256=Fu0xBf9xdDrbVP9Hc7l3R35TGNANSbRqrFCoxl4OTqo,3887
60
- onnxtr/utils/__init__.py,sha256=pESRJKtcQyjRxiMgZPhtPYeLbCj-YSGyMVRHTbcMONU,94
61
- onnxtr/utils/common_types.py,sha256=6fn8g3aLV-cu4QkM_R_Ab8Ihmok16EXvhpuz7Q5no20,551
62
- onnxtr/utils/data.py,sha256=2nHI3WH5NYZW94LigQwBxG2bSDBXQl9UIu-e3sHq-CQ,4262
63
- onnxtr/utils/fonts.py,sha256=OnSgUAXn4zkfMuD1AO08zfYyM_qI5FRp39oXP_6kU40,1282
64
- onnxtr/utils/geometry.py,sha256=sFw66wThJfFKOyaM-kPeA719WHOIBH97mGoLhtE7nhg,20418
65
- onnxtr/utils/multithreading.py,sha256=4vHWzX__xOnvtlpL_BTQUzUDLhTtJbYFXhm7C_NyIpc,1994
66
- onnxtr/utils/reconstitution.py,sha256=C2U7qEU2xHBnxN_7bDq3wvCrYG2gf6cWWxWguChKXbY,6119
67
- onnxtr/utils/repr.py,sha256=CPHCedlVWUMSTjcDpj7YpsV4wu7Z0tXbY1SfCixNvZ0,2105
68
- onnxtr/utils/visualization.py,sha256=LYMDIIxYlt0B4AxvoGfw463pD9_B88I-811_vwcrSw0,9782
69
- onnxtr/utils/vocabs.py,sha256=PTqQwd3itXRlX057JV4PjpXlAw_k7Yb5_wxK4CGKFHE,4136
70
- onnxtr-0.6.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
71
- onnxtr-0.6.0.dist-info/METADATA,sha256=8KUWIDZ_gtm9YfH1aq0yf5iitRx5D6PkAMPM4p6k-Fo,34597
72
- onnxtr-0.6.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
73
- onnxtr-0.6.0.dist-info/top_level.txt,sha256=r_MSUTpspp4pWEEWvly-s7ZkfCg1KwrK6-kBlXkWKU8,7
74
- onnxtr-0.6.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
75
- onnxtr-0.6.0.dist-info/RECORD,,