Spaces:
Running
on
Zero
Running
on
Zero
Commit
·
462a9b2
1
Parent(s):
0d4066e
using api and gpu
Browse files
app.py
CHANGED
|
@@ -3,10 +3,12 @@ import torch
|
|
| 3 |
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
|
| 4 |
import subprocess
|
| 5 |
import json
|
|
|
|
| 6 |
from PIL import Image, ImageDraw
|
| 7 |
import os
|
| 8 |
import tempfile
|
| 9 |
import numpy as np
|
|
|
|
| 10 |
|
| 11 |
# Dictionary of model names and their corresponding HuggingFace model IDs
|
| 12 |
MODEL_OPTIONS = {
|
|
@@ -35,19 +37,21 @@ def load_model(model_name):
|
|
| 35 |
return processor, model
|
| 36 |
|
| 37 |
def detect_lines(image_path):
|
|
|
|
|
|
|
| 38 |
# Run Kraken for line detection
|
| 39 |
lines_json_path = "lines.json"
|
| 40 |
-
|
| 41 |
-
|
| 42 |
|
| 43 |
-
#
|
| 44 |
-
|
| 45 |
-
lines_data = json.load(f)
|
| 46 |
|
| 47 |
-
#
|
| 48 |
-
|
|
|
|
| 49 |
|
| 50 |
-
return
|
| 51 |
|
| 52 |
def extract_line_images(image, lines):
|
| 53 |
line_images = []
|
|
@@ -88,6 +92,7 @@ def visualize_lines(image, lines):
|
|
| 88 |
draw.polygon(polygon, outline="red")
|
| 89 |
return output_image
|
| 90 |
|
|
|
|
| 91 |
def transcribe_lines(line_images, model_name):
|
| 92 |
processor, model = load_model(model_name)
|
| 93 |
|
|
@@ -152,4 +157,4 @@ with gr.Blocks() as iface:
|
|
| 152 |
outputs=[output_image, output_text]
|
| 153 |
)
|
| 154 |
|
| 155 |
-
iface.launch()
|
|
|
|
| 3 |
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
|
| 4 |
import subprocess
|
| 5 |
import json
|
| 6 |
+
import spaces
|
| 7 |
from PIL import Image, ImageDraw
|
| 8 |
import os
|
| 9 |
import tempfile
|
| 10 |
import numpy as np
|
| 11 |
+
import requests
|
| 12 |
|
| 13 |
# Dictionary of model names and their corresponding HuggingFace model IDs
|
| 14 |
MODEL_OPTIONS = {
|
|
|
|
| 37 |
return processor, model
|
| 38 |
|
| 39 |
def detect_lines(image_path):
|
| 40 |
+
# API endpoint
|
| 41 |
+
url = "https://wjbmattingly-kraken-api.hf.space/detect_lines"
|
| 42 |
# Run Kraken for line detection
|
| 43 |
lines_json_path = "lines.json"
|
| 44 |
+
# Prepare the file for upload
|
| 45 |
+
files = {'file': ('ms.jpg', open(image_path, 'rb'), 'image/jpeg')}
|
| 46 |
|
| 47 |
+
# Specify the model to use
|
| 48 |
+
data = {'model_name': 'catmus-medieval.mlmodel'}
|
|
|
|
| 49 |
|
| 50 |
+
# Send the POST request
|
| 51 |
+
response = requests.post(url, files=files, data=data)
|
| 52 |
+
result = response.json()["result"]["lines"]
|
| 53 |
|
| 54 |
+
return result
|
| 55 |
|
| 56 |
def extract_line_images(image, lines):
|
| 57 |
line_images = []
|
|
|
|
| 92 |
draw.polygon(polygon, outline="red")
|
| 93 |
return output_image
|
| 94 |
|
| 95 |
+
@spaces.GPU
|
| 96 |
def transcribe_lines(line_images, model_name):
|
| 97 |
processor, model = load_model(model_name)
|
| 98 |
|
|
|
|
| 157 |
outputs=[output_image, output_text]
|
| 158 |
)
|
| 159 |
|
| 160 |
+
iface.launch(debug=True)
|