Explicație Detaliată a Codului - Contor de Flotări
Rezumat
Acest cod utilizează biblioteca MediaPipe și OpenCV pentru a analiza poziția corpului într-
un videoclip și a detecta numărul de flotări efectuate. Folosind puncte cheie ale corpului
(umeri și coate), codul determină mișcările sus/jos, contorizează flotările și salvează datele
într-un fișier CSV pentru analiză ulterioară.
Tabel de Conținut
1. Rezumat
2. Inițializarea Bibliotecilor
3. Configurări și Setări Inițiale
4. Procesarea Videoclipului
5. Detectarea Flotărilor
6. Concluzii
1. Inițializarea Bibliotecilor
Codul începe prin importarea bibliotecilor esențiale:
- **cv2**: pentru procesarea imaginilor și afișarea rezultatelor.
- **mediapipe**: pentru analiza poziției corpului folosind puncte cheie anatomice.
- **csv** și **os**: pentru gestionarea fișierelor CSV în care sunt salvate datele rezultate.
- **time**: pentru măsurarea timpului în procesarea cadrelor din video.
2. Configurări și Setări Inițiale
În această secțiune, sunt inițializate variabilele globale necesare pentru urmărirea
flotărilor:
- `count`: contorizează flotările efectuate.
- `position`: stochează starea curentă (sus/jos).
- `start_time`: măsoară timpul total de procesare al videoclipului.
De asemenea, se configurează:
- Calea către fișierul video (`vid1.mp4`).
- Crearea folderului `CSV-Date` pentru salvarea datelor.
Această secțiune include verificări pentru existența folderelor și atribuirea de nume unice
pentru fișierele CSV. Aceste operații sunt importante pentru prevenirea suprascrierii
datelor.
Adaugă aici o captură de ecran cu configurările inițiale.
3. Procesarea Videoclipului
Această secțiune conține logica pentru procesarea fiecărui cadru al videoclipului. Folosind
MediaPipe, codul identifică pozițiile punctelor cheie (umeri și coate). Imaginea este
convertită în format RGB, iar rezultatele sunt procesate pentru a extrage coordonatele
relevante.
O funcție importantă din această secțiune este detectarea pozițiilor vizibile (`[Link]`).
Punctele sunt luate în considerare doar dacă vizibilitatea depășește un prag de 0.5.
Adaugă aici o imagine cu exemplul de puncte detectate pe un cadru.
4. Detectarea Flotărilor
Pentru a detecta flotările, codul calculează mediile coordonatelor Y ale umerilor și coatelor:
- Dacă umerii sunt mai jos decât coatele (`shoulder_avg >= elbow_avg`), poziția este 'down'.
- Dacă umerii revin mai sus decât coatele, poziția devine 'up', iar contorul de flotări se
incrementează.
Datele pentru fiecare schimbare de poziție sunt salvate în fișierul CSV împreună cu
timestamp-ul.
5. Concluzii
Codul este o demonstrație practică a utilizării bibliotecii MediaPipe pentru recunoașterea
mișcărilor umane. Un punct de îmbunătățire ar putea fi creșterea preciziei detectării prin
includerea altor puncte cheie.