Spaces:
Build error
Build error
| import gradio as gr | |
| import main | |
| import json | |
| def video_identity(video): | |
| video_path = video.name | |
| frames = main.extract_frames(video_path) | |
| pepsi_pts, cocacola_pts = main.detect_logos(frames) | |
| def to_serializable(obj): | |
| if isinstance(obj, (list, dict)): | |
| return obj | |
| elif hasattr(obj, 'tolist'): | |
| return obj.tolist() # Convert numpy arrays or tensors | |
| elif hasattr(obj, 'item'): | |
| return obj.item() # Convert single element tensors | |
| else: | |
| return str(obj) # Convert other non-serializable objects to string | |
| output = { | |
| "Pepsi_pts": [entry["timestamp"] for entry in pepsi_pts], | |
| "CocaCola_pts": [entry["timestamp"] for entry in cocacola_pts], | |
| "Pepsi_details": [ {k: to_serializable(v) for k, v in entry.items()} for entry in pepsi_pts ], | |
| "CocaCola_details": [ {k: to_serializable(v) for k, v in entry.items()} for entry in cocacola_pts ] | |
| } | |
| return json.dumps(output) | |
| demo = gr.Interface( | |
| fn=video_identity, | |
| inputs=[ | |
| "file", | |
| ], | |
| outputs="json" | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |