OCR / app.py
henryu's picture
Update app.py
fa5d4fa
raw
history blame contribute delete
No virus
1.31 kB
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()