| import gradio as gr |
| from transformers import VisionEncoderDecoderModel, TrOCRProcessor |
| import torch |
| from PIL import Image |
|
|
| def recognize_captcha(input, mdl): |
| |
| |
| processor = TrOCRProcessor.from_pretrained(mdl) |
| model = VisionEncoderDecoderModel.from_pretrained(mdl) |
| |
| |
| pixel_values = processor(input, return_tensors="pt").pixel_values |
|
|
| |
| generated_ids = model.generate(pixel_values) |
| generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0] |
| |
| return generated_text |
|
|
| iface = gr.Interface( |
| fn=recognize_captcha, |
| inputs=[ |
| gr.Image(), |
| gr.Dropdown( |
| ['anuashok/ocr-captcha-v3','anuashok/ocr-captcha-v2','anuashok/ocr-captcha-v1','microsoft/trocr-base-printed'], label='Model to use' |
| ) |
| ], |
| outputs=['text'], |
| title = "Character Sequence Recognition From Captcha Image", |
| description = "Using some TrOCR models found on the HF Hub to test/break tough text captchas. Will you have to train your own?", |
| examples = [ |
| ['krcx5.jpg','anuashok/ocr-captcha-v3'], |
| ['hyp2a.jpg','microsoft/trocr-base-printed'], |
| ['k4kyf.jpg','anuashok/ocr-captcha-v2'] |
| ], |
| article="Created by JSGR with ❤️ !!!" |
| ) |
|
|
| iface.queue(max_size=10) |
| iface.launch() |
|
|