sneedium commited on
Commit
49c9603
·
1 Parent(s): 15e9bae

Create new file

Browse files
Files changed (1) hide show
  1. app.py +40 -0
app.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ os.system("curl -L -o tensor.pt https://seyarabata.com/btfo_by_24mb_model")
3
+
4
+ import torch
5
+ from PIL import Image
6
+ import gradio as gr
7
+ from torchvision import transforms as T
8
+ from typing import Tuple
9
+
10
+ def get_transform(img_size: Tuple[int], augment: bool = False, rotation: int = 0):
11
+ transforms = []
12
+ if augment:
13
+ from .augment import rand_augment_transform
14
+ transforms.append(rand_augment_transform())
15
+ if rotation:
16
+ transforms.append(lambda img: img.rotate(rotation, expand=True))
17
+ transforms.extend([
18
+ T.Resize(img_size, T.InterpolationMode.BICUBIC),
19
+ T.ToTensor(),
20
+ T.Normalize(0.5, 0.5)
21
+ ])
22
+ return T.Compose(transforms)
23
+
24
+ parseq = torch.load('tensor.pt', map_location=torch.device('cpu')).eval()
25
+ img_transform = get_transform(parseq.hparams.img_size)
26
+
27
+ def captcha_solver(img):
28
+ img = img.convert('RGB')
29
+ img = img_transform(img).unsqueeze(0)
30
+
31
+ logits = parseq(img)
32
+ logits.shape
33
+
34
+ # # Greedy decoding
35
+ pred = logits.softmax(-1)
36
+ label, confidence = parseq.tokenizer.decode(pred)
37
+ return label[0]
38
+
39
+ demo = gr.Interface(fn=captcha_solver, inputs=gr.inputs.Image(type="pil"), outputs=gr.outputs.Textbox())
40
+ demo.launch()