Spaces:
Build error
Build error
File size: 3,430 Bytes
f849799 7971a7a 0112deb 2a1a736 7971a7a 3b3290d 2a1a736 8d6b883 0112deb 8d6b883 879e657 8d6b883 2935ca0 a4158a1 2935ca0 0112deb b9cd4c4 879e657 2935ca0 f849799 2935ca0 f849799 2935ca0 f849799 a7b0fd6 2935ca0 f849799 8d6b883 879e657 9061a2e 8d6b883 2935ca0 f849799 7f2c8f8 a7b0fd6 7f2c8f8 a4158a1 f849799 |
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 68 69 70 71 |
import logging
import gradio as gr
from config import *
from videomatch import index_hashes_for_video, get_decent_distance, \
get_video_index, compare_videos, get_change_points, get_videomatch_df
from plot import plot_comparison, plot_multi_comparison, plot_segment_comparison
logging.basicConfig()
logging.getLogger().setLevel(logging.INFO)
def get_comparison(url, target, MIN_DISTANCE = 4):
""" Function for Gradio to combine all helper functions"""
video_index, hash_vectors = get_video_index(url)
target_index, _ = get_video_index(target)
lims, D, I, hash_vectors = compare_videos(hash_vectors, target_index, MIN_DISTANCE = MIN_DISTANCE)
fig = plot_comparison(lims, D, I, hash_vectors, MIN_DISTANCE = MIN_DISTANCE)
return fig
def get_auto_comparison(url, target, smoothing_window_size=10, metric="OFFSET_LIP"):
""" Function for Gradio to combine all helper functions"""
distance = get_decent_distance(url, target, MIN_DISTANCE, MAX_DISTANCE)
if distance == None:
return None
raise gr.Error("No matches found!")
video_index, hash_vectors = get_video_index(url)
target_index, _ = get_video_index(target)
# For each video do...
for i in range(0, 1):
lims, D, I, hash_vectors = compare_videos(hash_vectors, target_index, MIN_DISTANCE = distance)
df = get_videomatch_df(url, target, min_distance=MIN_DISTANCE, vanilla_df=False)
change_points = get_change_points(df, smoothing_window_size=smoothing_window_size, method="ROBUST", metric=metric)
fig, segment_decisions = plot_segment_comparison(df, change_points, target)
return fig, segment_decisions
video_urls = ["https://www.dropbox.com/s/8c89a9aba0w8gjg/Ploumen.mp4?dl=1",
"https://www.dropbox.com/s/rzmicviu1fe740t/Bram%20van%20Ojik%20krijgt%20reprimande.mp4?dl=1",
"https://www.dropbox.com/s/wcot34ldmb84071/Baudet%20ontmaskert%20Omtzigt_%20u%20bent%20door%20de%20mand%20gevallen%21.mp4?dl=1",
"https://drive.google.com/uc?id=1XW0niHR1k09vPNv1cp6NvdGXe7FHJc1D&export=download",
"https://www.dropbox.com/s/4ognq8lshcujk43/Plenaire_zaal_20200923132426_Omtzigt.mp4?dl=1"]
index_iface = gr.Interface(fn=lambda url: index_hashes_for_video(url).ntotal,
inputs="text",
outputs="text",
examples=video_urls, cache_examples=True)
compare_iface = gr.Interface(fn=get_comparison,
inputs=["text", "text", gr.Slider(2, 30, 4, step=2)],
outputs="plot",
examples=[[x, video_urls[-1]] for x in video_urls[:-1]])
auto_compare_iface = gr.Interface(fn=get_auto_comparison,
inputs=["text",
"text",
gr.Slider(2, 50, 10, step=1),
gr.Dropdown(choices=["OFFSET_LIP", "ROLL_OFFSET_MODE"], value="OFFSET_LIP")],
outputs=["plot", "json"],
examples=[[x, video_urls[-1]] for x in video_urls[:-1]])
iface = gr.TabbedInterface([auto_compare_iface, compare_iface, index_iface,], ["AutoCompare", "Compare", "Index"])
if __name__ == "__main__":
import matplotlib
matplotlib.use('SVG') # To be able to plot in gradio
iface.launch(show_error=True)
#iface.launch(auth=("test", "test"), share=True, debug=True) |