mirror of
https://github.com/immich-app/immich
synced 2025-11-07 17:27:20 +00:00
29 lines
813 B
Python
29 lines
813 B
Python
|
|
from typing import Any, Iterable
|
||
|
|
|
||
|
|
import numpy as np
|
||
|
|
import numpy.typing as npt
|
||
|
|
from rapidocr.utils.typings import EngineType, LangRec
|
||
|
|
from typing_extensions import TypedDict
|
||
|
|
|
||
|
|
|
||
|
|
class TextDetectionOutput(TypedDict):
|
||
|
|
image: npt.NDArray[np.float32]
|
||
|
|
boxes: npt.NDArray[np.float32]
|
||
|
|
scores: npt.NDArray[np.float32]
|
||
|
|
|
||
|
|
|
||
|
|
class TextRecognitionOutput(TypedDict):
|
||
|
|
box: npt.NDArray[np.float32]
|
||
|
|
boxScore: npt.NDArray[np.float32]
|
||
|
|
text: Iterable[str]
|
||
|
|
textScore: npt.NDArray[np.float32]
|
||
|
|
|
||
|
|
|
||
|
|
# RapidOCR expects `engine_type`, `lang_type`, and `font_path` to be attributes
|
||
|
|
class OcrOptions(dict[str, Any]):
|
||
|
|
def __init__(self, **options: Any) -> None:
|
||
|
|
super().__init__(**options)
|
||
|
|
self.engine_type = EngineType.ONNXRUNTIME
|
||
|
|
self.lang_type = LangRec.CH
|
||
|
|
self.font_path = None
|