| | import gradio as gr |
| | from transformers import TrOCRProcessor, VisionEncoderDecoderModel |
| | import requests |
| | from PIL import Image |
| |
|
| | url = 'https://huggingface.co/yhshin/latex-ocr/raw/main/tokenizer-wordlevel.json' |
| | r = requests.get(url) |
| | open('tokenizer-wordlevel.json' , 'wb').write(r.content) |
| |
|
| |
|
| | processor = TrOCRProcessor.from_pretrained("microsoft/trocr-small-printed") |
| | model = VisionEncoderDecoderModel.from_pretrained("yhshin/latex-ocr") |
| |
|
| | from tokenizers import Tokenizer |
| | tokenizer = Tokenizer.from_file("tokenizer-wordlevel.json") |
| |
|
| | |
| |
|
| | def process_image(image): |
| | |
| | pixel_values = processor(image, return_tensors="pt").pixel_values |
| |
|
| | |
| | generated_ids = model.generate(pixel_values) |
| |
|
| | |
| | generated_text = tokenizer.decode_batch(generated_ids.tolist(), skip_special_tokens=True)[0] |
| |
|
| | |
| | generated_text = generated_text.replace(" ", "") |
| |
|
| | return generated_text |
| |
|
| | |
| |
|
| | |
| | title = "Convert image to LaTeX source code" |
| |
|
| | with open('article.md',mode='r') as file: |
| | article = file.read() |
| |
|
| | description = """ |
| | This is a demo of machine learning model trained to reconstruct the LaTeX source code of an equation from an image. |
| | To use it, simply upload an image or use one of the example images below and click 'submit'. |
| | Results will show up in a few seconds. |
| | |
| | Try rendering the generated LaTeX [here](https://quicklatex.com/) to compare with the original. |
| | (The model is not perfect yet, so you may need to edit the resulting LaTeX a bit to get it to render a good match.) |
| | |
| | """ |
| |
|
| | examples = [ |
| | [ "examples/1d32874f02.png" ], |
| | [ "examples/1e466b180d.png" ], |
| | [ "examples/2d3503f427.png" ], |
| | [ "examples/2f9d3c4e43.png" ], |
| | [ "examples/51c5cc2ff5.png" ], |
| | [ "examples/545a492388.png" ], |
| | [ "examples/6a51a30502.png" ], |
| | [ "examples/6bf6832adb.png" ], |
| | [ "examples/7afdeff0e6.png" ], |
| | [ "examples/b8f1e64b1f.png" ], |
| | ] |
| | |
| |
|
| | iface = gr.Interface(fn=process_image, |
| | inputs=[gr.inputs.Image(type="pil")], |
| | outputs=gr.outputs.Textbox(), |
| | title=title, |
| | description=description, |
| | article=article, |
| | examples=examples) |
| | iface.launch() |
| |
|
| |
|