Skip to content

Liigiia/Katter-og-Handtracking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Katter og Handtracking

I dette prosjektet har jeg brukt Python (versjon 3.11.9) sammen med OpenCV og Google sitt MediaPipe-bibliotek for håndsporing (hand tracking).

Premisset for programmet er enkelt: Når kameraet detekterer X antall fingre, vises et bilde med tilsvarende X antall katter på skjermen.

Per nå fungerer løsningen best med venstre hånd, men jeg jobber videre med å få den til å fungere med begge hender.

Brukte bibliotek

OpenCV

OpenCV er et bibliotek for datamaskinsyn og bildebehandling. I dette prosjektet brukes det blant annet til:

  • å lese kamerafeed

  • håndtere bilder og videoframes

  • vise bilder/vinduer på skjermen

MediaPipe

MediaPipe er et bibliotek fra Google som tilbyr ferdigtrente modeller for blant annet hånd- og kroppsdeteksjon. Her brukes MediaPipe Hands til å:

  • detektere hånd

  • finne håndens landemerker (fingre og ledd)

  • gjøre det mulig å telle fingre på en relativt enkel måte

Filstruktur

Prosjektet består av to Python-filer, som begge ligger i samme mappe:

/ prosjektmappe

├── Katter.py
├── Hand_module.py
├── katt1.jpg
├── andre bilder...

Katter.py

Hovedprogrammet som:

  • starter kameraet

  • mottar finger-informasjon

  • viser riktig bilde basert på antall fingre

Hand_module.py

Er modulen som inneholder logikken for:

  • å lage en topografisk markering/oversikt av hånda (å “mappe” hånden)

  • tolke MediaPipe-landmarks

  • telle antall fingre som holdes oppe

Denne modulen importeres og brukes direkte i hovedprogrammet.

Råd for testing og feilsøking av kode

Bildene som brukes i programmet må (som forklart tidligere) dessuten ligge i samme mappe som Python-filene, ellers vil ikke programmet finne dem korrekt. (Det er forsåvidt mulig å kunne legge til filstier, men opplevde selv komplikasjoner ved utføring av dette)

Merk også at det kan hende at OpenCV-funksjonen cv2.imread() returnerer None (altså et bilde ikke blir funnet uten å kaste en eksplisitt feilmelding). For eksempel kan dette forekomme dersom programmet kjører fra en annen working directory enn der bildefilene ligger. Men det kan også hende dersom filnavn og filendelser ikke matcher nøyaktig. Dersom dette skjer er det viktig å sikre at bildefilene ligger i riktig mappe og at korrekte filstier brukes, samt å sjekke at bildene faktisk er laster før de brukes i videre kode. En annen mulig løsning er også å kjøre koden fra samme working directory som filene ligger i.

Andre brukte ressurser:

inspirasjonen bak modulen:
https://www.youtube.com/watch?v=vQZ4IvB07ec&t=281s
https://www.youtube.com/watch?v=6gVL0hbxIzo
https://github.com/MohamedAlaouiMhamdi/Hand_Tracking/blob/main/handtracking.py

info om Mediapipe finnes her:
https://mediapipe.readthedocs.io/en/latest/solutions/hands.html https://ai.google.dev/edge/mediapipe/solutions/vision/hand_landmarker/python

info om openCV finnes her:
https://www.geeksforgeeks.org/computer-vision/opencv-overview/
https://opencv-tutorial.readthedocs.io/en/latest/intro/intro.html

About

Dette er et lite program jeg laget ila juleferien : ) Her har jeg brukt Python(3.11.9), sammen med OpenCV, og google sitt Mediapipe bibliotek. Premisset er at programmet ved X antall fingre hviser et bilde med tilsvarende X antall katter.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages