task1_v2 / app.py
Samariddin Kushmuratov
yangi qoida qoshildi
adaf02d
import os
import subprocess
import glob
import gradio as gr
from gradio.components import Gallery, Video, Textbox, Radio
from classificatsion_video_demo import process
def get_car_numbers(result_folder):
# change current working directory to binare/linux/mu gdfg
current_dir = os.getcwd()
os.chdir("binaries/linux/x86_64")
# construct and run the command
# command = "python ../../../python/setup.py build_ext --inplace -v"
# process = subprocess.Popen(command, shell=True, stdin=subprocess.PIPE)
command = "PYTHONPATH=$PYTHONPATH:.:../../../python LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH python ../../../scripts/alpr/license_plate_recognizer.py --image ../../../"+result_folder+" --assets ../../../assets"
process = subprocess.Popen(command, shell=True, stdin=subprocess.PIPE)
# send newline character to standard input
process.communicate(input='\n'.encode())
# wait for the subprocess to exit
process.wait()
os.chdir(current_dir)
return 0
def predict(video_path, radio):
"""
Gradio interface orqali yuklab olingan videodan problem framelarni ajratib olinadi va resultat sifatida Galleryga chiqariladi
:param video_path:
:return: file
"""
# Your image processing code here
# print(video_path)
print("radio: ",radio,type(radio))
which_model=True
if radio =="128-1":
which_model=False
_path_RES = "assets/result_imgs"
images_res = glob.glob(f'{_path_RES}/*.jpg')
for image in images_res:
os.remove(image)
_path = "assets/images"
images_res = glob.glob(f'{_path}/*.jpg')
for image in images_res:
os.remove(image)
problem, good, result = process(video_path,which_model)
get_car_numbers(_path)
images = glob.glob(f'{_path_RES}/*.jpg')
# # selected_images = [images[0],images[len(images)//2],images[-1]]
res_txt = f"{problem}/{problem+good}"
return res_txt,images
# return 0, 0, 0, images
my_example = [
['video/vid_39_1284-2_1202.mp4']
# ['video/vid_39_1284-2_1174.mp4']
]
my_title = "To’xtash chizig’i bosilgan kadrlarni topish (modda:128-4)"
my_description = """
"""
all_frame = Textbox(label="Topilgan kadrlar / Umumiy kadrlar")
problem_frames = Gallery(label="Muammoli kadrlar", elem_id="gallery").style(
grid_cols=[3], height="auto"
)
input_video = Video(label="Kiruvchi video") # Create input video component
radio = Radio(choices=["128-1", "128-4"], label="Qoida buzilishi modda boyicha")
gr.Interface(fn=predict,
inputs=[input_video, radio],
outputs=[all_frame,problem_frames],
title=my_title,
examples=my_example,
description=my_description).launch()