File size: 1,761 Bytes
e3ebbf6
 
 
f3d368b
e3ebbf6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d3545bf
 
e3ebbf6
 
 
 
 
 
373edc3
4aec448
e3ebbf6
 
 
f3d368b
e3ebbf6
 
d3545bf
d6db295
e3ebbf6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import os
import gradio as gr
from PIL import Image
from lang_list import LANGS

##Image Classification
from transformers import AutoFeatureExtractor, AutoModelForImageClassification
extractor = AutoFeatureExtractor.from_pretrained("rajistics/finetuned-indian-food")
model = AutoModelForImageClassification.from_pretrained("rajistics/finetuned-indian-food")

def image_to_text(imagepic):
  inputs = extractor(images=imagepic, return_tensors="pt")
  outputs = model(**inputs)
  logits = outputs.logits
  predicted_class_idx = logits.argmax(-1).item()
  return (model.config.id2label[predicted_class_idx])

##Translation
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline
#Get list of language codes: https://github.com/facebookresearch/flores/tree/main/flores200#languages-in-flores-200
modelt = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M")
tokenizert = AutoTokenizer.from_pretrained("facebook/nllb-200-distilled-600M")

def translation(text,target):
  translator = pipeline('translation', model=modelt, tokenizer=tokenizert, src_lang="eng_Latn", tgt_lang=target)
  output = translator(text)
  return (output[0]['translation_text'])

##Translation
demo = gr.Blocks()
with demo:
    image_file = gr.Image(type="pil")
    examples = gr.Examples(examples=[["003.jpg"],["126.jpg"],["401.jpg"]],inputs=[image_file])
    b1 = gr.Button("Recognize Image")
    text = gr.Textbox()
    b1.click(image_to_text, inputs=image_file, outputs=text)
    target = gr.Dropdown(LANGS,interactive=True,label="Target Language")
    b2 = gr.Button("Translation")
    out1 = gr.Textbox()
    b2.click(translation, inputs=[text,target], outputs=out1)
    #examples = gr.Examples(examples=[["003.jpg"]],inputs=[image_file])
demo.launch()