Kazel commited on
Commit
5b84e6f
·
verified ·
1 Parent(s): 5fd9575

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +5 -4
app.py CHANGED
@@ -4,6 +4,7 @@ import threading
4
  import torch
5
  from transformers import BlipProcessor, BlipForConditionalGeneration
6
  from PIL import Image
 
7
 
8
  # Initialize the webcam
9
  cap = cv2.VideoCapture(0)
@@ -11,7 +12,7 @@ cap = cv2.VideoCapture(0)
11
  # Load the Hugging Face model and processor
12
  processor = BlipProcessor.from_pretrained("Salesforce/blip-vqa-base")
13
  model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-vqa-base").to("cuda" if torch.cuda.is_available() else "cpu")
14
-
15
  def query_the_image(query: str, image_data: bytes):
16
  try:
17
  image = Image.open(io.BytesIO(image_data)).convert("RGB")
@@ -21,20 +22,20 @@ def query_the_image(query: str, image_data: bytes):
21
  return answer
22
  except Exception as e:
23
  return f"Error: {e}"
24
-
25
  def get_frame():
26
  ret, frame = cap.read()
27
  if not ret:
28
  return None
29
  _, buffer = cv2.imencode('.jpg', frame)
30
  return buffer.tobytes()
31
-
32
  def process_image(prompt):
33
  frame_data = get_frame()
34
  if frame_data:
35
  return query_the_image(prompt, frame_data)
36
  return "Error capturing image"
37
-
38
  def video_feed():
39
  while True:
40
  ret, frame = cap.read()
 
4
  import torch
5
  from transformers import BlipProcessor, BlipForConditionalGeneration
6
  from PIL import Image
7
+ import spaces
8
 
9
  # Initialize the webcam
10
  cap = cv2.VideoCapture(0)
 
12
  # Load the Hugging Face model and processor
13
  processor = BlipProcessor.from_pretrained("Salesforce/blip-vqa-base")
14
  model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-vqa-base").to("cuda" if torch.cuda.is_available() else "cpu")
15
+ @spaces.GPU
16
  def query_the_image(query: str, image_data: bytes):
17
  try:
18
  image = Image.open(io.BytesIO(image_data)).convert("RGB")
 
22
  return answer
23
  except Exception as e:
24
  return f"Error: {e}"
25
+ @spaces.GPU
26
  def get_frame():
27
  ret, frame = cap.read()
28
  if not ret:
29
  return None
30
  _, buffer = cv2.imencode('.jpg', frame)
31
  return buffer.tobytes()
32
+ @spaces.GPU
33
  def process_image(prompt):
34
  frame_data = get_frame()
35
  if frame_data:
36
  return query_the_image(prompt, frame_data)
37
  return "Error capturing image"
38
+ @spaces.GPU
39
  def video_feed():
40
  while True:
41
  ret, frame = cap.read()