File size: 917 Bytes
36255e5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from transformers import TrOCRProcessor, VisionEncoderDecoderModel

# Singleton class for TrOCR model and processor
class OCRModelSingleton:
    _instance = None

    def __init__(self):
        if OCRModelSingleton._instance is not None:
            raise Exception("This class is a singleton!")
        else:
            OCRModelSingleton._instance = self
            self.processor = TrOCRProcessor.from_pretrained('microsoft/trocr-large-printed')
            self.model = VisionEncoderDecoderModel.from_pretrained('microsoft/trocr-large-printed')

    @staticmethod
    def get_instance():
        if OCRModelSingleton._instance is None:
            OCRModelSingleton()
        return OCRModelSingleton._instance

# Automatically initialize the shared processor and model
ocr_model_instance = OCRModelSingleton.get_instance()
processor_tr_ocr = ocr_model_instance.processor
trocr_model = ocr_model_instance.model