Spaces:
Sleeping
Sleeping
import requests | |
import base64 | |
import io | |
from transformers import TrOCRProcessor, VisionEncoderDecoderModel | |
from PIL import Image | |
import torch | |
import time | |
processor = TrOCRProcessor.from_pretrained("arcma/decap") | |
model = VisionEncoderDecoderModel.from_pretrained("arcma/decap") | |
model.eval() | |
# torch.compile(model) | |
def check(x): | |
if len(x) < 6: | |
return False | |
if not set(x).issubset('1234567890abcdefghijklmnopqrstuvwxyz'): | |
return False | |
return True | |
def process_image(image): | |
pixel_values = processor(image, return_tensors="pt").pixel_values | |
with torch.no_grad(): | |
generated_ids = model.generate(pixel_values, num_beams=2, num_return_sequences=2) | |
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True) | |
generated_text = [x for x in generated_text if check(x)] | |
return generated_text[0] | |
def process_html(html): | |
orig_im = Image.open( | |
io.BytesIO( | |
base64.b64decode( | |
html | |
.partition('''" style="background:white url('data:image/jpg;base64,''')[2] | |
.partition("') no-repeat")[0] | |
) | |
) | |
) | |
return process_image(orig_im) | |
from werkzeug.wrappers import Request, Response | |
from flask import Flask, request | |
from flask import jsonify | |
app = Flask(__name__) | |
def hello(): | |
try: | |
return jsonify({ | |
'x': process_html(request.json['data']) | |
}) | |
except: | |
print('fail') | |
return "Hello World!" | |
def after_request(response): | |
response.headers.add("Access-Control-Allow-Origin", "*") | |
response.headers.add("Access-Control-Allow-Credentials", "true") | |
response.headers.add("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT") | |
response.headers.add("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers") | |
return response | |
if __name__ == '__main__': | |
from werkzeug.serving import run_simple | |
run_simple('0.0.0.0', 7860, app) | |