Explicació detallada del codi i les biblioteques

1. Llibreries utilitzades i noves possibilitats

2. Explicació pas a pas del codi

Instal·lació de llibreries

!pip install ultralytics opencv-python-headless deep_sort_realtime

Importació de mòduls

import cv2
import pandas as pd
from ultralytics import YOLO
from deep_sort_realtime.deepsort_tracker import DeepSort
from google.colab import files
import os

Pujar el vídeo

uploaded = files.upload()
video_path = list(uploaded.keys())[0]
print(f'Fitxer pujat: {video_path}')

Carregar el model YOLOv8

model = YOLO('yolov8n.pt')

Configuració del tracker DeepSORT

tracker = DeepSort(max_age=30)

Obrir i preparar el vídeo

cap = cv2.VideoCapture(video_path)
fps = cap.get(cv2.CAP_PROP_FPS)
width  = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
output_path = '/content/output_tracked.mp4'
out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))

Inicialització de dades

data = []
frame_count = 0

Processament de cada frame

Tancament i alliberament de recursos

cap.release()
out.release()
cv2.destroyAllWindows()
print(f'Vídeo amb tracking guardat a: {output_path}')

Estadístiques bàsiques

df = pd.DataFrame(data)
counts = df.groupby('track_id')['frame'].nunique()
seconds_visible = counts / fps
print('\n⏱ Temps visible per jugador (segons):')
print(seconds_visible)

Descarregar el vídeo resultant

files.download(output_path)

3. Possibilitats noves amb aquest flux de treball

En resum

Aquest codi aprofita les últimes tecnologies de detecció (YOLOv8) i tracking (DeepSORT) per automatitzar l’anàlisi de vídeos, obrint la porta a aplicacions avançades en esports, seguretat i investigació.

🔗 Enllaços útils: