I have a detectron2 model for image classification followed by paddleocr. My detectron runs on GPU while paddleocr on CPU and the complete request takes 2-4s for execution. when I try to run paddleocr-gpu, i get an error "gpu properties already registered". This is because my Detectron2 model has already registered it. The code is as follows:
def get_detectron(img):
with open('train_cfg.pickle','rb') as f :
cfg = pickle.load(f)
cfg.MODEL.DEVICE = "cuda"
cfg.MODEL.WEIGHTS = "model_final.pth"
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5
predictor = DefaultPredictor(cfg)
predictor.model.share_memory() # To share GPU among multiple detectron processes
return predictor
# Get Predictor
def on_start():
predictor = get_detectron()
ocr = PaddleOCR(use_angle_cls=True, lang='en', debug=False, show_log = False,use_gpu=True)
return predictor, ocr
# Process Image
def process_image(img,predictor, ocr):
results = predictor(img)["instances"]
# If results are correct then pass to PaddleOCR
text_results = ocr.ocr(img)
return text_results
Error Message if I run PaddleOCR on GPU:
paddleocr - libpaddle : _gpu_properties already registered.
I have correctly installed paddleocr & paddlepaddle-gpu to run the OCR on GPU.