| from codecs import encode, decode |
| import requests |
| import gradio as gr |
|
|
|
|
| def infer(im): |
| im.save("converted.png") |
| url = "https://ajax.thehive.ai/api/demo/classify?endpoint=text_recognition" |
| files = { |
| "image": ("converted.png", open("converted.png", "rb"), "image/png"), |
| "model_type": (None, "detection"), |
| "media_type": (None, "photo"), |
| } |
| headers = {"referer": "https://thehive.ai/"} |
|
|
| res = requests.post(url, headers=headers, files=files) |
|
|
| text = "" |
| blocks = [] |
| for output in res.json()["response"]["output"]: |
| text += output["block_text"] |
| for poly in output["bounding_poly"]: |
| blocks.append( |
| { |
| "text": "".join([c["class"] for c in poly["classes"]]), |
| "rect": poly["dimensions"], |
| } |
| ) |
|
|
| text = decode(encode(text, "latin-1", "backslashreplace"), "unicode-escape") |
|
|
| return text, blocks |
|
|
|
|
| iface = gr.Interface( |
| fn=infer, |
| title="OCR_Hive", |
| description="Demo for OCR_Hive. Transcribe and analyze media depicting typed, written, or graphic text", |
| inputs=[gr.Image(type="pil")], |
| outputs=["text", "json"], |
| examples=["202306.jpg"], |
| article='<a href="https://thehive.ai/hive-ocr-solutions">Sample OCR</a>', |
| ).launch() |