xiaoyao9184 commited on
Commit
e8fce12
·
verified ·
1 Parent(s): eac5c70

Synced repo using 'sync_with_huggingface' Github Action

Browse files
Files changed (1) hide show
  1. gradio_app.py +31 -6
gradio_app.py CHANGED
@@ -63,11 +63,21 @@ def run_ocr_errors(pdf_file, page_count, sample_len=512, max_samples=10, max_pag
63
  return label, results.labels
64
 
65
  # just copy from streamlit_app.py
 
 
 
 
 
 
 
 
 
 
66
  def text_detection(img) -> (Image.Image, TextDetectionResult):
67
- pred = predictors["detection"]([img])[0]
68
- polygons = [p.polygon for p in pred.bboxes]
69
- det_img = draw_polys_on_image(polygons, img.copy())
70
- return det_img, pred
71
 
72
  # just copy from streamlit_app.py
73
  def layout_detection(img) -> (Image.Image, LayoutResult):
@@ -178,6 +188,7 @@ with gr.Blocks(title="Surya") as demo:
178
  in_img = gr.Image(label="Select page of Image", type="pil", sources=None)
179
 
180
  text_det_btn = gr.Button("Run Text Detection")
 
181
  layout_det_btn = gr.Button("Run Layout Analysis")
182
 
183
  lang_dd = gr.Dropdown(label="Languages", choices=sorted(list(CODE_TO_LANGUAGE.values())), multiselect=True, max_choices=4, info="Select the languages in the image (if known) to improve OCR accuracy. Optional.")
@@ -218,13 +229,27 @@ with gr.Blocks(title="Surya") as demo:
218
 
219
  # Run Text Detection
220
  def text_det_img(pil_image):
221
- det_img, pred = text_detection(pil_image)
222
- return det_img, pred.model_dump(exclude=["heatmap", "affinity_map"])
223
  text_det_btn.click(
224
  fn=text_det_img,
225
  inputs=[in_img],
226
  outputs=[result_img, result_json]
227
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  # Run layout
229
  def layout_det_img(pil_image):
230
  layout_img, pred = layout_detection(pil_image)
 
63
  return label, results.labels
64
 
65
  # just copy from streamlit_app.py
66
+ def inline_detection(img) -> (Image.Image, TextDetectionResult):
67
+ text_pred = predictors["detection"]([img])[0]
68
+ text_boxes = [p.bbox for p in text_pred.bboxes]
69
+
70
+ inline_pred = predictors["inline_detection"]([img], [text_boxes], include_maps=True)[0]
71
+ inline_polygons = [p.polygon for p in inline_pred.bboxes]
72
+ det_img = draw_polys_on_image(inline_polygons, img.copy(), color='blue')
73
+ return det_img, text_pred, inline_pred
74
+
75
+ # just copy from streamlit_app.py `name 'inline_pred' is not defined`
76
  def text_detection(img) -> (Image.Image, TextDetectionResult):
77
+ text_pred = predictors["detection"]([img])[0]
78
+ text_polygons = [p.polygon for p in text_pred.bboxes]
79
+ det_img = draw_polys_on_image(text_polygons, img.copy())
80
+ return det_img, text_pred #, inline_pred
81
 
82
  # just copy from streamlit_app.py
83
  def layout_detection(img) -> (Image.Image, LayoutResult):
 
188
  in_img = gr.Image(label="Select page of Image", type="pil", sources=None)
189
 
190
  text_det_btn = gr.Button("Run Text Detection")
191
+ inline_det_btn = gr.Button("Run Inline Math Detection")
192
  layout_det_btn = gr.Button("Run Layout Analysis")
193
 
194
  lang_dd = gr.Dropdown(label="Languages", choices=sorted(list(CODE_TO_LANGUAGE.values())), multiselect=True, max_choices=4, info="Select the languages in the image (if known) to improve OCR accuracy. Optional.")
 
229
 
230
  # Run Text Detection
231
  def text_det_img(pil_image):
232
+ det_img, text_pred = text_detection(pil_image)
233
+ return det_img, text_pred.model_dump(exclude=["heatmap", "affinity_map"])
234
  text_det_btn.click(
235
  fn=text_det_img,
236
  inputs=[in_img],
237
  outputs=[result_img, result_json]
238
  )
239
+ def inline_det_img(pil_image):
240
+ det_img, text_pred, inline_pred = inline_detection(pil_image)
241
+ json = {
242
+ "text": text_pred.model_dump(exclude=["heatmap", "affinity_map"]),
243
+ "inline": inline_pred.model_dump(exclude=["heatmap", "affinity_map"])
244
+ }
245
+ return det_img, json
246
+ inline_det_btn.click(
247
+ fn=inline_det_img,
248
+ inputs=[in_img],
249
+ outputs=[result_img, result_json]
250
+ )
251
+
252
+
253
  # Run layout
254
  def layout_det_img(pil_image):
255
  layout_img, pred = layout_detection(pil_image)