0

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. 

image

I have correctly installed paddleocr & paddlepaddle-gpu to run the OCR on GPU.

Kiran Roy
  • 1
  • 1

0 Answers0