File size: 1,445 Bytes
fb2cfa5
 
 
 
 
 
 
 
 
 
 
 
5930569
fb2cfa5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
44
45
46
47
48
49
50
from __future__ import annotations

import os
from pathlib import Path

import gradio as gr  # type: ignore
import rerun as rr
import rerun.blueprint as rrb
from gradio_rerun import Rerun  # type: ignore
from ocr import detect_and_log_layout  # type: ignore


@rr.thread_local_stream("OCR")
def log_to_rr(img_path: Path):
    print(img_path)
    stream = rr.binary_stream()

    blueprint = rrb.Blueprint(
        rrb.Vertical(
            rrb.Spatial2DView(name="Input", contents=["Image/**"]),
        ),
        collapse_panels=True,
    )
    rr.send_blueprint(blueprint)

    detect_and_log_layout(img_path)

    yield stream.read()

with gr.Blocks() as demo:
    with gr.Row():
        with gr.Column(scale=1):
            with gr.Row():
                input_image = gr.Image(label="Input Image", image_mode="RGBA", sources="upload", type="filepath")
            with gr.Row():
                button = gr.Button()
            with gr.Row():
                gr.Examples(
                    examples=[os.path.join("examples", img_name) for img_name in sorted(os.listdir("examples"))],
                    inputs=[input_image],
                    label="Examples",
                    cache_examples=False,
                    examples_per_page=12,
                )
        with gr.Column(scale=4):
            viewer = Rerun(streaming=True, height=900)
    button.click(log_to_rr, inputs=[input_image], outputs=[viewer])

demo.launch()