Spaces:
Paused
Paused
| import gradio as gr | |
| from IndicPhotoOCR.ocr import OCR | |
| import torch | |
| import cv2 | |
| import numpy as np | |
| def visualize_detection(image, detections): | |
| for box in detections: | |
| points = np.array(box, np.int32) | |
| x_min = np.min(points[:, 0]) | |
| y_min = np.min(points[:, 1]) | |
| x_max = np.max(points[:, 0]) | |
| y_max = np.max(points[:, 1]) | |
| cv2.rectangle(image, (x_min, y_min), (x_max, y_max), color=(0, 255, 0), thickness=3) | |
| return image | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| ocr = OCR(device) | |
| def process_image(image_path, identifier_lang): | |
| global ocr | |
| if identifier_lang != ocr.indentifier_lang: | |
| del ocr | |
| ocr = OCR(device,identifier_lang) | |
| ocr_data,ocr_detect = ocr.ocr(image_path) | |
| return '\n'.join([' '.join(line) for line in ocr_data]),visualize_detection(image_path, ocr_detect) | |
| gr.Interface(process_image,[gr.Image(type="pil"),gr.Dropdown(["hindi", "assamese", "bengali", "gujarati", "kannada", "malayalam","odia", "punjabi", "tamil", "telugu", "auto"], label="Language")],[gr.Textbox(label="Recognized Text"),gr.Image(type="pil")]).launch() | |