File size: 5,485 Bytes
5ebeb73
 
7ca72fb
67066cc
 
 
 
3f5b634
 
5ebeb73
 
 
 
 
 
67f4e81
5ebeb73
 
3f5b634
79016b7
5ebeb73
 
 
7ca72fb
5ebeb73
 
 
 
 
79016b7
5ebeb73
 
 
 
 
7ca72fb
83edd59
79016b7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a79b804
79016b7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a79b804
79016b7
 
 
 
 
 
5ebeb73
 
 
67066cc
 
 
 
 
 
 
 
 
 
 
 
5ebeb73
 
67066cc
5ebeb73
 
 
 
 
 
 
 
a79b804
5ebeb73
7ca72fb
5ebeb73
 
954392c
5ebeb73
 
 
 
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import gradio as gr

from helper.gradio_config import css, theme
from helper.text.text_about import TextAbout
from helper.text.text_app import TextApp
from helper.text.text_howto import TextHowTo
from helper.text.text_roadmap import TextRoadmap
from tabs.htr_tool import htr_tool_tab
from tabs.stepwise_htr_tool import stepwise_htr_tool_tab

with gr.Blocks(title="HTR Riksarkivet", theme=theme, css=css) as demo:
    gr.Markdown(TextApp.title_markdown)

    with gr.Tabs():
        with gr.Tab("HTR Tool"):
            htr_tool_tab.render()

        with gr.Tab("Stepwise HTR Tool"):
            stepwise_htr_tool_tab.render()

        with gr.Tab("How to use"):
            with gr.Tabs():
                with gr.Tab("HTR Tool"):
                    with gr.Row(equal_height=False):
                        with gr.Column():
                            gr.Markdown(TextHowTo.htr_tool)
                        with gr.Column():
                            gr.Markdown(TextHowTo.both_htr_tool_video)
                            gr.Video(
                                value="https://github.com/Borg93/htr_gradio_file_placeholder/raw/main/htr_tool_media_cut.mp4",
                                label="How to use HTR Tool",
                            )
                            gr.Markdown(TextHowTo.reach_out)

                with gr.Tab("Stepwise HTR Tool"):
                    with gr.Row(equal_height=False):
                        gr.Markdown(TextHowTo.stepwise_htr_tool)
                    with gr.Row():
                        gr.Markdown(TextHowTo.stepwise_htr_tool_tab_intro)
                    with gr.Row():
                        with gr.Accordion("The tabs for the Stepwise HTR Tool:", open=True):
                            with gr.Tabs():
                                with gr.Tab("1. Region Segmentation"):
                                    gr.Markdown(TextHowTo.stepwise_htr_tool_tab1)
                                with gr.Tab("2. Line Segmentation"):
                                    gr.Markdown(TextHowTo.stepwise_htr_tool_tab2)
                                with gr.Tab("3. Transcribe Text"):
                                    gr.Markdown(TextHowTo.stepwise_htr_tool_tab3)
                                with gr.Tab("4. Explore Results"):
                                    gr.Markdown(TextHowTo.stepwise_htr_tool_tab4)
                    gr.Markdown(TextHowTo.stepwise_htr_tool_end)

                with gr.Tab("API"):
                    with gr.Row():
                        with gr.Column():
                            gr.Markdown(TextHowTo.htr_tool_api_text)
                            gr.Code(
                                value="""
from gradio_client import Client # pip install gradio_client

# Change url to your client (localhost: http://127.0.0.1:7860/)
client = Client("https://huggingface.co/spaces/Riksarkivet/htr_demo") 
job = client.submit(
    "https://your.image.url.or.pah.jpg", 
    api_name="/predict",
)

print(job.result())

                        """,
                                language="python",
                                interactive=False,
                                show_label=False,
                            )
                            gr.Markdown(
                                """                    
                    Below you can see the results, in XML, from the API call:
                    """
                            )
                            gr.Markdown(TextHowTo.figure_htr_api)

                        with gr.Column():
                            gr.Markdown(TextHowTo.duplicatin_space_htr_text)
                            gr.Markdown(TextHowTo.figure_htr_hardware)

                            gr.Markdown(
                                "Note that if you have GPU hardware available, you can also run this application on Docker or clone it locally."
                            )

        with gr.Tab("About"):
            with gr.Tabs():
                with gr.Tab("Project"):
                    with gr.Row():
                        gr.Markdown(TextAbout.intro_and_pipeline_overview_text)
                    with gr.Row():
                        with gr.Tabs():
                            with gr.Tab("I. Binarization"):
                                gr.Markdown(TextAbout.binarization)
                            with gr.Tab("II. Region Segmentation"):
                                gr.Markdown(TextAbout.text_region_segment)
                            with gr.Tab("III. Line Segmentation"):
                                gr.Markdown(TextAbout.text_line_segmentation)
                            with gr.Tab("IV. Transcriber"):
                                gr.Markdown(TextAbout.text_htr)
                    with gr.Row():
                        with gr.Column():
                            gr.Markdown(TextAbout.text_data)
                        with gr.Column():
                            gr.Markdown(TextAbout.text_models)

                with gr.Tab("Roadmap"):
                    with gr.Row():
                        with gr.Column():
                            gr.Markdown(TextRoadmap.roadmap)
                        with gr.Column():
                            gr.Markdown(TextRoadmap.discussion)

    # demo.load(None, None, None, _js=js)


demo.queue(concurrency_count=2, max_size=2)


if __name__ == "__main__":
    demo.launch(server_name="0.0.0.0", server_port=7860, show_api=False, show_error=True)