AlexCool2024 commited on
Commit
d5d26af
·
verified ·
1 Parent(s): 868daac

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +4 -21
app.py CHANGED
@@ -4,28 +4,18 @@ import random
4
  import numpy as np
5
  import requests
6
  from PIL import Image
 
7
 
8
  # Функция для извлечения случайного кадра из видео
9
  def get_random_frame(video_file):
10
- # Открываем видео файл
11
  cap = cv2.VideoCapture(video_file)
12
- # Получаем общее количество кадров
13
  total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
14
-
15
- # Генерируем случайный номер кадра
16
  random_frame_number = random.randint(0, total_frames - 1)
17
-
18
- # Устанавливаем указатель на случайный кадр
19
  cap.set(cv2.CAP_PROP_POS_FRAMES, random_frame_number)
20
  success, frame = cap.read()
21
-
22
- # Закрываем видеопоток
23
  cap.release()
24
 
25
- if success:
26
- return frame
27
- else:
28
- return None
29
 
30
  # Заголовок приложения
31
  st.title("Video to Text Converter")
@@ -34,24 +24,18 @@ st.title("Video to Text Converter")
34
  uploaded_file = st.file_uploader("Загрузите видео файл...", type=["mp4", "avi"])
35
 
36
  if uploaded_file is not None:
37
- # Извлечение случайного кадра из видео
38
  frame = get_random_frame(uploaded_file)
39
 
40
  if frame is not None:
41
- # Отображение извлечённого кадра
42
  st.image(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB), caption='Случайный кадр', use_column_width=True)
43
 
44
- # Сохранение временного изображения для отправки в модель
45
  _, buffer = cv2.imencode('.png', frame)
46
  image_data = buffer.tobytes()
47
 
48
- # Обработка изображения с помощью модели
49
  if st.button("Преобразовать в текст"):
50
- # Здесь должен быть URL вашей модели
51
  model_url = "https://api-inference.huggingface.co/models/nttdataspain/Image-To-Text-Lora-ViT"
52
- headers = {"Authorization": "Bearer YOUR_HUGGINGFACE_API_TOKEN"} # Замените на ваш токен
53
 
54
- # Отправка запроса к модели
55
  response = requests.post(
56
  model_url,
57
  headers=headers,
@@ -59,10 +43,9 @@ if uploaded_file is not None:
59
  )
60
 
61
  if response.status_code == 200:
62
- # Отображаем сгенерированный текст
63
  output_text = response.json().get("generated_text")
64
  st.success(output_text)
65
  else:
66
  st.error("Ошибка при обработке изображения!")
67
  else:
68
- st.error("Не удалось извлечь кадр из видео.")
 
4
  import numpy as np
5
  import requests
6
  from PIL import Image
7
+ import os
8
 
9
  # Функция для извлечения случайного кадра из видео
10
  def get_random_frame(video_file):
 
11
  cap = cv2.VideoCapture(video_file)
 
12
  total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
 
 
13
  random_frame_number = random.randint(0, total_frames - 1)
 
 
14
  cap.set(cv2.CAP_PROP_POS_FRAMES, random_frame_number)
15
  success, frame = cap.read()
 
 
16
  cap.release()
17
 
18
+ return frame if success else None
 
 
 
19
 
20
  # Заголовок приложения
21
  st.title("Video to Text Converter")
 
24
  uploaded_file = st.file_uploader("Загрузите видео файл...", type=["mp4", "avi"])
25
 
26
  if uploaded_file is not None:
 
27
  frame = get_random_frame(uploaded_file)
28
 
29
  if frame is not None:
 
30
  st.image(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB), caption='Случайный кадр', use_column_width=True)
31
 
 
32
  _, buffer = cv2.imencode('.png', frame)
33
  image_data = buffer.tobytes()
34
 
 
35
  if st.button("Преобразовать в текст"):
 
36
  model_url = "https://api-inference.huggingface.co/models/nttdataspain/Image-To-Text-Lora-ViT"
37
+ headers = {"Authorization": f"Bearer {os.getenv('HUGGINGFACE_TOKEN_READ')}"}
38
 
 
39
  response = requests.post(
40
  model_url,
41
  headers=headers,
 
43
  )
44
 
45
  if response.status_code == 200:
 
46
  output_text = response.json().get("generated_text")
47
  st.success(output_text)
48
  else:
49
  st.error("Ошибка при обработке изображения!")
50
  else:
51
+ st.error("Не удалось извлечь кадр из видео.")