File size: 1,488 Bytes
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
import os
import gradio as gr
from PIL import Image

##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):
  translator = pipeline('translation', model=modelt, tokenizer=tokenizert, src_lang="eng_Latn", tgt_lang='ron_Latn')
  output = translator(text)
  return (output[0]['translation_text'])

##Translation
demo = gr.Blocks()
with demo:
    image_file = gr.inputs.Image(type="pil")
    b1 = gr.Button("Recognize Image")
    text = gr.Textbox()
    b1.click(image_to_text, inputs=image_file, outputs=text)
    b2 = gr.Button("Translation")
    out1 = gr.Textbox()
    b2.click(translation, inputs=text, outputs=out1)
demo.launch()