Spaces:
Sleeping
Sleeping
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() | |