Atulit23/ui-deception
1
1from paddleocr import PaddleOCR2import requests3import numpy as np4from PIL import Image5from io import BytesIO6import json7import gradio as gr8import paddleocr9 10# ocr = PaddleOCR(use_angle_cls=True, lang='en', use_pdserving=False, cls_batch_num=8, det_batch_num=8, rec_batch_num=8)11 12ocr = PaddleOCR(use_angle_cls=True, lang='en')13 14def index(url):15 response = requests.get(url)16 img = Image.open(BytesIO(response.content))17 resize_factor = 118 new_size = tuple(int(dim * resize_factor) for dim in img.size)19 img = img.resize(new_size, Image.Resampling.LANCZOS)20 21 img_array = np.array(img.convert('RGB'))22 23 result = ocr.ocr(img_array)24 25 boxes = [line[0] for line in result]26 txts = [line[1][0] for line in result]27 scores = [line[1][1] for line in result]28 29 print(boxes)30 print(txts)31 32 output_dict = {"texts": txts, "boxes": boxes, "scores": scores}33 output_json = json.dumps(output_dict) # Convert to JSON string34 35 return output_json36 37 38inputs_image_url = [39 gr.Textbox(type="text", label="Image URL"),40]41 42outputs_result_json = [43 gr.Textbox(type="text", label="Result JSON"),44]45 46interface_image_url = gr.Interface(47 fn=index,48 inputs=inputs_image_url,49 outputs=outputs_result_json,50 title="Text Extraction",51 cache_examples=False,52).queue().launch()53 