Spaces:
Sleeping
Sleeping
| from models.frame_extractor import extract_frame_timestamp | |
| from models.bounding_box_extractor import extract_bounding_box | |
| from models.catchphrase_extractor import extract_catchphrase | |
| from models.bet_extractor import extract_bet_amount | |
| from src.utils import extract_frame , center_bbox_in_circle , overlay_image_bottom_right , overlay_image_top_left, annotate_image_with_phrase_and_label | |
| import os | |
| import re | |
| def main(): | |
| video_path = "race_vid.mp4" | |
| image_path = "tmp/extracted_frame.png" | |
| background_path = "path/to/your/background.png" | |
| mask_path = "path/to/your/mask.png" | |
| output_path = "path/to/output/image.png" | |
| # Extract frame timestamp | |
| response , uploaded_obj = extract_frame_timestamp(video_path) # Extract frame at 10 seconds | |
| print(f"Response from frame extraction: {response}") | |
| timestamp_match = re.search(r'\*\*Winning Timestamp:\*\*\s*(\d{2}:\d{2}:\d{2}\.\d{3})', response) | |
| timestamp = timestamp_match.group(1) if timestamp_match else None | |
| # Extract the short description | |
| description_match = re.search(r'\*\*Short description of the winner:\*\*\s*(.*?)\s*(?=\*\*|$)', response, re.DOTALL) | |
| description = description_match.group(1).strip() if description_match else None | |
| print(f"Extracted timestamp: {timestamp}") | |
| print(f"Extracted description: {description}") | |
| extract_frame(video_path, timestamp, image_path) | |
| # # Extract bounding box | |
| response = extract_bounding_box(image_path,description) | |
| bbox_match = re.search(r'\((\d+),\s*(\d+),\s*(\d+),\s*(\d+)\)', response) | |
| bbox = tuple(map(int, bbox_match.groups())) if bbox_match else None | |
| print(f"Extracted bounding box: {bbox}") | |
| center_bbox_in_circle(image_path, bbox,image_path) | |
| overlay_image_bottom_right(image_path,"assets/corner.png",image_path) | |
| overlay_image_top_left(image_path,"assets/GetOn_Logo.png",image_path) | |
| catchphrases = extract_catchphrase(video_path) | |
| pattern = r'["](.*?)["]' | |
| phrases = re.findall(pattern, catchphrases) | |
| # Extract bet amount | |
| bet_amounts = extract_bet_amount(video_path) | |
| pattern = r'\*\*Exact Label Text:\*\* "([^"]+)"' | |
| labels = re.findall(pattern, bet_amounts) | |
| phrase = phrases[0] if phrases else "No catchphrase found" | |
| label = labels[0] if labels else "No bet label found" | |
| annotate_image_with_phrase_and_label(image_path,image_path,phrase,label) | |
| if __name__ == "__main__": | |
| main() |