ShreyMehra commited on
Commit
1a00b4d
Β·
unverified Β·
1 Parent(s): 10784fe

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -19
app.py CHANGED
@@ -2,25 +2,26 @@ import easyocr as ocr #OCR
2
  import streamlit as st #Web App
3
  from PIL import Image #Image Processing
4
  import numpy as np #Image Processing
 
 
5
 
6
- #title
7
- st.title("Easy OCR - Extract Text from Images")
8
 
9
- #subtitle
10
- st.markdown("## Optical Character Recognition - Using `easyocr`, `streamlit` - hosted on πŸ€— Spaces")
11
 
12
- st.markdown("Link to the app - [image-to-text-app on πŸ€— Spaces](https://huggingface.co/spaces/Amrrs/image-to-text-app)")
13
 
14
  #image uploader
15
  image = st.file_uploader(label = "Upload your image here",type=['png','jpg','jpeg'])
16
 
17
 
18
  @st.cache
19
- def load_model():
20
- reader = ocr.Reader(['en'],model_storage_directory='.')
21
- return reader
22
-
23
- reader = load_model() #load model
 
24
 
25
  if image is not None:
26
 
@@ -28,18 +29,17 @@ if image is not None:
28
  st.image(input_image) #display image
29
 
30
  with st.spinner("πŸ€– AI is at Work! "):
31
-
 
 
32
 
33
- result = reader.readtext(np.array(input_image))
34
 
35
- result_text = [] #empty list for results
 
36
 
37
-
38
- for text in result:
39
- result_text.append(text[1])
40
-
41
- st.write(result_text)
42
- #st.success("Here you go!")
43
  st.balloons()
44
  else:
45
  st.write("Upload an Image")
 
2
  import streamlit as st #Web App
3
  from PIL import Image #Image Processing
4
  import numpy as np #Image Processing
5
+ from transformers import AutoProcessor, Blip2ForConditionalGeneration
6
+ import torch
7
 
 
 
8
 
9
+ #title
10
+ st.title("Image Captioner - Caption the images")
11
 
12
+ st.markdown("Link to the model - [Image-to-Caption-App on πŸ€— Spaces](https://huggingface.co/spaces/Shrey23/Image-Captioning)")
13
 
14
  #image uploader
15
  image = st.file_uploader(label = "Upload your image here",type=['png','jpg','jpeg'])
16
 
17
 
18
  @st.cache
19
+ def load_model():
20
+ processor = AutoProcessor.from_pretrained("Salesforce/blip2-opt-2.7b")
21
+ model = Blip2ForConditionalGeneration.from_pretrained("Shrey23/Image-Captioning", device_map="auto", load_in_8bit=True)
22
+ return processor, model
23
+
24
+ processor, model = load_model() #load model
25
 
26
  if image is not None:
27
 
 
29
  st.image(input_image) #display image
30
 
31
  with st.spinner("πŸ€– AI is at Work! "):
32
+ device = "cuda" if torch.cuda.is_available() else "cpu"
33
+ inputs = processor(images=image, return_tensors="pt").to(device, torch.float16)
34
+ pixel_values = inputs.pixel_values
35
 
 
36
 
37
+ generated_ids = model.generate(pixel_values=pixel_values, max_length=25)
38
+ generated_caption = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
39
 
40
+ st.write(generated_caption)
41
+
42
+ st.success("Here you go!")
 
 
 
43
  st.balloons()
44
  else:
45
  st.write("Upload an Image")