Spaces:
Runtime error
Runtime error
File size: 2,271 Bytes
7576d10 d2aa7b7 f7db529 7576d10 eddda5a 7576d10 b73d81d 2c113f4 6e8c2ef 4d701c0 eddda5a e213266 7576d10 8353801 7576d10 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
import gradio as gr
import os
import subprocess
if os.getenv('SYSTEM') == 'spaces':
subprocess.call('pip install -U openmim'.split())
subprocess.call('pip install torch==1.11.0 torchvision==0.12.0'.split())
subprocess.call('mim install mmcv>=2.0.0'.split())
subprocess.call('mim install mmengine'.split())
subprocess.call('mim install mmdet'.split())
subprocess.call('pip install opencv-python-headless==4.5.5.64'.split())
subprocess.call('pip install git+https://github.com/cocodataset/panopticapi.git'.split())
import cv2
import numpy as np
import gradio as gr
from inference import inference_frame
import os
def analize_video(x):
cap = cv2.VideoCapture(x)
path = '/tmp/test/'
os.makedirs(path, exist_ok=True)
videos = len(os.listdir(path))
path = f'{path}{videos}'
os.makedirs(path, exist_ok=True)
outname = f'{path}_processed.mp4'
#out = cv2.VideoWriter(outname,cv2.VideoWriter_fourcc(*'h264'), 20.0, (640,480))
counter = 0
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
name = os.path.join(path,f'{counter:05d}.png')
frame = inference_frame(frame)
# write the flipped frame
cv2.imwrite(name, frame)
counter +=1
else:
break
# Release everything if job is finished
print(path)
os.system(f'''ffmpeg -framerate 20 -pattern_type glob -i '{path}/*.png' -c:v libx264 -pix_fmt yuv420p {outname}''')
return outname
with gr.Blocks(title='Shark Patrol',theme=gr.themes.Soft(),live=True,) as demo:
gr.Markdown("Initial DEMO.")
with gr.Tab("Shark Detector"):
with gr.Row():
video_input = gr.Video(source='upload',include_audio=False)
#video_input.style(witdh='50%',height='50%')
video_output = gr.Video()
#video_output.style(witdh='50%',height='50%')
video_button = gr.Button("Analyze")
with gr.Accordion("Open for More!"):
gr.Markdown("Place holder for detection")
video_button.click(analize_video, inputs=video_input, outputs=video_output)
demo.queue()
demo.launch(share=True,width='40%',auth=(os.environ.get('SHARK_USERNAME'), os.environ.get('SHARK_PASSWORD'))) |