Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -575,3 +575,44 @@ async def get_video_frames(file_name: str, frame_id: int) -> dict:
|
|
575 |
except Exception as e:
|
576 |
raise HTTPException(status_code=500, detail=f"Erreur lors de l'extraction des frames : {str(e)}")
|
577 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
575 |
except Exception as e:
|
576 |
raise HTTPException(status_code=500, detail=f"Erreur lors de l'extraction des frames : {str(e)}")
|
577 |
|
578 |
+
|
579 |
+
|
580 |
+
@app.post("/annotate/")
|
581 |
+
async def annotate(
|
582 |
+
video_path: str,
|
583 |
+
start_frame: int,
|
584 |
+
end_frame: int,
|
585 |
+
class_label: str,
|
586 |
+
player: str
|
587 |
+
):
|
588 |
+
try:
|
589 |
+
# Vérifier si le fichier vidéo est valide
|
590 |
+
#if not os.path.exists(video_path):
|
591 |
+
# raise HTTPException(status_code=400, detail="Le fichier vidéo n'existe pas.")
|
592 |
+
|
593 |
+
# Construire le nom du fichier CSV
|
594 |
+
csv_path = os.path.splitext(video_path)[0] + ".csv"
|
595 |
+
|
596 |
+
# Générer les frames
|
597 |
+
frames = list(range(start_frame, end_frame + 1))
|
598 |
+
data = {"frame": frames, "class": [class_label] * len(frames), "player": [player] * len(frames)}
|
599 |
+
df_new = pd.DataFrame(data)
|
600 |
+
|
601 |
+
# Vérifier si le fichier existe déjà
|
602 |
+
if os.path.exists(csv_path):
|
603 |
+
df_existing = pd.read_csv(csv_path)
|
604 |
+
|
605 |
+
# Fusionner sans doublons
|
606 |
+
df_combined = pd.concat([df_existing, df_new]).drop_duplicates(subset=["frame"], keep="last")
|
607 |
+
|
608 |
+
# Sauvegarder les données mises à jour
|
609 |
+
df_combined.to_csv(csv_path, index=False)
|
610 |
+
else:
|
611 |
+
df_new.to_csv(csv_path, index=False)
|
612 |
+
|
613 |
+
return {"message": "Fichier CSV mis à jour avec succès.", "csv_path": csv_path}
|
614 |
+
|
615 |
+
except Exception as e:
|
616 |
+
raise HTTPException(status_code=500, detail=str(e))
|
617 |
+
|
618 |
+
|