ahasera commited on
Commit
0846e85
·
1 Parent(s): ad928cc

PaddleOCR engine feature + tesseract-ocr pacakage fix

Browse files
Files changed (3) hide show
  1. app.py +9 -2
  2. packages.txt +1 -0
  3. requirements.txt +3 -1
app.py CHANGED
@@ -16,16 +16,18 @@ from transformers import TrOCRProcessor, VisionEncoderDecoderModel
16
  import torch
17
  from datetime import datetime
18
  import time
 
19
 
20
  # Initialisation of models
21
  def load_models():
22
- global model_vehicle, model_plate, reader_easyocr, pipeline_kerasocr, processor_trocr, model_trocr
23
  model_vehicle = YOLO('models/yolov8n.pt')
24
  model_plate = YOLO('models/best.pt')
25
  reader_easyocr = easyocr.Reader(['en'], gpu=False)
26
  pipeline_kerasocr = keras_ocr.pipeline.Pipeline()
27
  processor_trocr = TrOCRProcessor.from_pretrained('microsoft/trocr-base-handwritten')
28
  model_trocr = VisionEncoderDecoderModel.from_pretrained('microsoft/trocr-base-handwritten')
 
29
  load_models()
30
 
31
  # patterns plate layouts europe
@@ -81,6 +83,11 @@ def read_license_plate(license_plate_crop, ocr_engine='easyocr'):
81
  text_preprocessed = trocr_ocr(preprocess_image(license_plate_crop))
82
  detections_raw = [(None, text_raw.strip(), None)]
83
  detections_preprocessed = [(None, text_preprocessed.strip(), None)]
 
 
 
 
 
84
  else:
85
  raise ValueError(f"OCR engine '{ocr_engine}' not supported.")
86
 
@@ -297,7 +304,7 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
297
  with gr.Row():
298
  with gr.Column(scale=1):
299
  input_image = gr.Image(type="numpy", label="Input image")
300
- ocr_selector = gr.Radio(choices=['easyocr', 'pytesseract', 'kerasocr', 'trocr'], value='easyocr', label="Select OCR Engine")
301
  confidence_slider = gr.Slider(minimum=0, maximum=1, value=0.5, step=0.01, label="Detection Confidence Threshold")
302
  submit_btn = gr.Button("Detect License Plates", variant="primary")
303
 
 
16
  import torch
17
  from datetime import datetime
18
  import time
19
+ from paddleocr import PaddleOCR
20
 
21
  # Initialisation of models
22
  def load_models():
23
+ global model_vehicle, model_plate, reader_easyocr, pipeline_kerasocr, processor_trocr, model_trocr, ocr_paddle
24
  model_vehicle = YOLO('models/yolov8n.pt')
25
  model_plate = YOLO('models/best.pt')
26
  reader_easyocr = easyocr.Reader(['en'], gpu=False)
27
  pipeline_kerasocr = keras_ocr.pipeline.Pipeline()
28
  processor_trocr = TrOCRProcessor.from_pretrained('microsoft/trocr-base-handwritten')
29
  model_trocr = VisionEncoderDecoderModel.from_pretrained('microsoft/trocr-base-handwritten')
30
+ ocr_paddle = PaddleOCR(use_angle_cls=True, lang='en', use_gpu=False)
31
  load_models()
32
 
33
  # patterns plate layouts europe
 
83
  text_preprocessed = trocr_ocr(preprocess_image(license_plate_crop))
84
  detections_raw = [(None, text_raw.strip(), None)]
85
  detections_preprocessed = [(None, text_preprocessed.strip(), None)]
86
+ elif ocr_engine == 'paddleocr':
87
+ result_raw = ocr_paddle.ocr(license_plate_crop)
88
+ result_preprocessed = ocr_paddle.ocr(preprocessed_image)
89
+ detections_raw = [(None, result_raw[0][0][1][0], result_raw[0][0][1][1] if result_raw[0] else 0.0)]
90
+ detections_preprocessed = [(None, result_preprocessed[0][0][1][0], result_preprocessed[0][0][1][1] if result_preprocessed[0] else 0.0)]
91
  else:
92
  raise ValueError(f"OCR engine '{ocr_engine}' not supported.")
93
 
 
304
  with gr.Row():
305
  with gr.Column(scale=1):
306
  input_image = gr.Image(type="numpy", label="Input image")
307
+ ocr_selector = gr.Radio(choices=['easyocr', 'paddleocr' 'pytesseract', 'kerasocr', 'trocr'], value='easyocr', label="Select OCR Engine")
308
  confidence_slider = gr.Slider(minimum=0, maximum=1, value=0.5, step=0.01, label="Detection Confidence Threshold")
309
  submit_btn = gr.Button("Detect License Plates", variant="primary")
310
 
packages.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ tesseract-ocr
requirements.txt CHANGED
@@ -10,4 +10,6 @@ pytesseract==0.3.10
10
  torch==2.4.0
11
  transformers==4.44.0
12
  ultralytics==8.2.74
13
- tensorflow==2.14.0
 
 
 
10
  torch==2.4.0
11
  transformers==4.44.0
12
  ultralytics==8.2.74
13
+ tensorflow==2.14.0
14
+ paddleocr
15
+ paddlepaddle