File size: 1,309 Bytes
			
			| cdf0320 fa5d4fa b1685cc cdf0320 4a01149 b1685cc cdf0320 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 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() |