Update app.py
Browse files
app.py
CHANGED
@@ -7,11 +7,18 @@ import numpy as np
|
|
7 |
from pydub import AudioSegment
|
8 |
from langdetect import detect
|
9 |
from rembg import remove
|
10 |
-
import
|
|
|
|
|
|
|
11 |
|
12 |
# Инициализация клиента для модели HuggingFaceH4/zephyr-7b-beta
|
13 |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
|
14 |
|
|
|
|
|
|
|
|
|
15 |
# Функция для обработки PDF
|
16 |
def process_pdf(file):
|
17 |
pdf_reader = PyPDF2.PdfReader(file)
|
@@ -51,6 +58,23 @@ def remove_background(image):
|
|
51 |
output = remove(image)
|
52 |
return output
|
53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
# Функция для определения языка текста
|
55 |
def detect_language(text):
|
56 |
try:
|
@@ -158,6 +182,14 @@ with gr.Blocks() as demo:
|
|
158 |
remove_bg_button = gr.Button("Удалить фон")
|
159 |
remove_bg_button.click(fn=remove_background, inputs=image_input, outputs=image_output)
|
160 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
# Интерфейс чата
|
162 |
chat_interface = gr.ChatInterface(
|
163 |
respond,
|
|
|
7 |
from pydub import AudioSegment
|
8 |
from langdetect import detect
|
9 |
from rembg import remove
|
10 |
+
import torch
|
11 |
+
import torchvision
|
12 |
+
from torchvision.models.detection import fasterrcnn_resnet50_fpn
|
13 |
+
from torchvision.transforms import functional as F
|
14 |
|
15 |
# Инициализация клиента для модели HuggingFaceH4/zephyr-7b-beta
|
16 |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
|
17 |
|
18 |
+
# Загрузка предобученной модели для обнаружения объектов
|
19 |
+
model = fasterrcnn_resnet50_fpn(pretrained=True)
|
20 |
+
model.eval()
|
21 |
+
|
22 |
# Функция для обработки PDF
|
23 |
def process_pdf(file):
|
24 |
pdf_reader = PyPDF2.PdfReader(file)
|
|
|
58 |
output = remove(image)
|
59 |
return output
|
60 |
|
61 |
+
# Функция для определения количества объектов на изображении
|
62 |
+
def count_objects(image):
|
63 |
+
if image is None:
|
64 |
+
return "Изображение не загружено."
|
65 |
+
|
66 |
+
# Преобразование изображения в формат, подходящий для модели
|
67 |
+
img = Image.open(image.name).convert("RGB")
|
68 |
+
img_tensor = F.to_tensor(img).unsqueeze(0)
|
69 |
+
|
70 |
+
# Обнаружение объектов
|
71 |
+
with torch.no_grad():
|
72 |
+
predictions = model(img_tensor)
|
73 |
+
|
74 |
+
# Подсчет количества объектов
|
75 |
+
num_objects = len(predictions[0]['labels'])
|
76 |
+
return f"Количество объектов на изображении: {num_objects}"
|
77 |
+
|
78 |
# Функция для определения языка текста
|
79 |
def detect_language(text):
|
80 |
try:
|
|
|
182 |
remove_bg_button = gr.Button("Удалить фон")
|
183 |
remove_bg_button.click(fn=remove_background, inputs=image_input, outputs=image_output)
|
184 |
|
185 |
+
# Вкладка Numage
|
186 |
+
with gr.Tab("Numage"):
|
187 |
+
gr.Markdown("## Numage: Подсчет объектов на изображении")
|
188 |
+
numage_input = gr.File(label="Загрузите изображение", file_types=["image"])
|
189 |
+
numage_output = gr.Textbox(label="Результат", interactive=False)
|
190 |
+
numage_button = gr.Button("Определить количество объектов")
|
191 |
+
numage_button.click(fn=count_objects, inputs=numage_input, outputs=numage_output)
|
192 |
+
|
193 |
# Интерфейс чата
|
194 |
chat_interface = gr.ChatInterface(
|
195 |
respond,
|