Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from paddleocr import PaddleOCR, draw_ocr | |
| import json | |
| import os | |
| import cv2 | |
| import numpy as np | |
| from PIL import Image | |
| ocr_en = PaddleOCR(use_angle_cls=True, lang="en") | |
| ocr_ch = PaddleOCR(use_angle_cls=True, lang='ch') | |
| ocr_ru = PaddleOCR(use_angle_cls=True, lang='cyrillic') | |
| ocr_ar = PaddleOCR(use_angle_cls=True, lang='ar') | |
| ocr_korean = PaddleOCR(user_angle_cls=True, lang="korean") | |
| ocr_fa = PaddleOCR(user_angle_cls=True, lang="fa") | |
| #ocr_ch = PaddleOCR(det_model_dir="models/det/ch/ch_PP-OCRv4_det_infer", rec_model_dir="models/rec/ch/ch_PP-OCRv4_rec_infer", cls_model_dir="models/cls/ch_ppocr_mobile_v2.0_cls_infer", rec_char_dict_path="models/dict/ppocr_keys_v1.txt", lang="ch") | |
| def perform_ocr(img, lang): | |
| if lang == "English": | |
| ocr = ocr_en | |
| elif lang == "Chinese (Simplified)": | |
| ocr = ocr_ch | |
| elif lang == "Russian" or lang == "Ukrainian": | |
| ocr = ocr_ru | |
| elif lang == "Arabic": | |
| ocr = ocr_ar | |
| elif lang == "Persian": | |
| ocr = ocr_fa | |
| elif lang == "Only Arabic Lang": | |
| ocr = ocr_ar | |
| elif lang == "Korean": | |
| ocr = ocr_korean | |
| result = ocr.ocr(img, cls=True) | |
| final_result = "" | |
| image = Image.open(img).convert('RGB') | |
| boxes = [line[0] for line in result] | |
| txts = [line[1][0] for line in result] | |
| scores = [line[1][1] for line in result] | |
| # im_show = draw_ocr(image, boxes, txts, scores, font_path='fonts/simfang.ttf') | |
| return [img, txts, result] | |
| demo = gr.Blocks() | |
| with demo: | |
| gr.Markdown("# Multilingual OCR") | |
| with gr.Row(): | |
| with gr.Column(): | |
| input_image = gr.Image(source="upload", type="filepath") | |
| input_radio = gr.Radio(["English", "Chinese (Simplified)", "Russian", "Ukrainian", "Arabic", "Persian", "Only Arabic Lang"], label="Languages") | |
| input_button = gr.Button("Run!") | |
| with gr.Column(): | |
| output_image = gr.Image() | |
| output_texts = gr.Textbox(label="Texts") | |
| output_text = gr.Textbox(label="Results") | |
| input_button.click(fn=perform_ocr, inputs=[input_image, input_radio], outputs=[output_image, output_texts, output_text]) | |
| demo.launch(server_name="0.0.0.0", server_port=7860) | |