import gradio as gr import paddleocr import numpy as np ocr = paddleocr.PaddleOCR(lang='en') def ocr_function(image): if not isinstance(image, np.ndarray): image = np.array(image) result = ocr.ocr(image, cls=True) text_lines = [] for line in result: for word_info in line: if len(word_info) > 1 and isinstance(word_info[1], (list, tuple)): text_lines.append(word_info[1][0]) mrz_lines = [line for line in text_lines if len(line) > 0] return "\n".join(mrz_lines[-2:]) # Tạo giao diện Gradio interface = gr.Interface( fn=ocr_function, inputs=gr.Image(type="pil"), # Định dạng đầu vào là ảnh PIL outputs=gr.Textbox(label="Kết quả MRZ"), # Đầu ra là một hộp văn bản title="MRZ OCR với PaddleOCR", description="Tải lên ảnh để nhận diện 2 dòng MRZ." ) interface.launch(share = True)