-
Notifications
You must be signed in to change notification settings - Fork 0
/
services.py
24 lines (19 loc) · 932 Bytes
/
services.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import ddddocr
from typing import Union, List, Optional
class OCRService:
def __init__(self):
self.ocr = ddddocr.DdddOcr()
self.det = ddddocr.DdddOcr(det=True)
self.slide = ddddocr.DdddOcr(det=False, ocr=False)
def ocr_classification(self, image: bytes, probability: bool = False, charsets: Optional[str] = None, png_fix: bool = False) -> Union[str, dict]:
if charsets:
self.ocr.set_ranges(charsets)
result = self.ocr.classification(image, probability=probability, png_fix=png_fix)
return result
def slide_match(self, target: bytes, background: bytes, simple_target: bool = False) -> List[int]:
result = self.slide.slide_match(target, background, simple_target=simple_target)
return result
def detection(self, image: bytes) -> List[List[int]]:
bboxes = self.det.detection(image)
return bboxes
ocr_service = OCRService()