Udhëzues detyrash për njohjen e gjesteve

Një dorë që bën një lëvizje me gishtin e madh lart që identifikohet si një gjest me gishtin e madh lart nga modeli me një vlerësim besimi prej 63%.

Detyra e Njohësit të Gjesteve MediaPipe ju lejon të njihni gjestet e duarve në kohë reale dhe ofron rezultatet e gjesteve të njohura të duarve së bashku me pikat referuese të duarve të zbuluara. Mund ta përdorni këtë detyrë për të njohur gjestet specifike të duarve nga një përdorues dhe për të aktivizuar veçoritë e aplikacionit që korrespondojnë me ato gjeste.

Kjo detyrë funksionon me të dhëna imazhi me një model të të mësuarit automatik (ML) dhe pranon ose të dhëna statike ose një rrjedhë të vazhdueshme. Detyra nxjerr pika referimi për duart në koordinatat e imazhit, pika referimi për duart në koordinatat botërore, dorën e majtë/të djathtë dhe kategoritë e gjesteve të dorës për shumë duar.

Provojeni!

Filloni

Filloni ta përdorni këtë detyrë duke ndjekur një nga këto udhëzues zbatimi për platformën tuaj të synuar. Këta udhëzues specifikë për platformën ju udhëzojnë përmes një zbatimi bazë të kësaj detyre, duke përdorur një model të rekomanduar dhe ofrojnë shembuj kodi me opsionet e rekomanduara të konfigurimit:

Detajet e detyrës

Ky seksion përshkruan aftësitë, të dhënat hyrëse, të dhënat dalëse dhe opsionet e konfigurimit të kësaj detyre.

Karakteristikat

  • Përpunimi i imazhit hyrës - Përpunimi përfshin rrotullimin e imazhit, ndryshimin e madhësisë, normalizimin dhe konvertimin e hapësirës së ngjyrave.
  • Pragu i rezultatit - Filtroni rezultatet bazuar në rezultatet e parashikimit.
  • Etiketo listën e lejimeve dhe listën e mohimeve - Specifikoni kategoritë e gjesteve të njohura nga modeli.
Hyrjet e detyrave Rezultatet e detyrave
Njohësi i Gjesteve pranon një hyrje të njërit prej llojeve të mëposhtme të të dhënave:
  • Imazhe statike
  • Korniza video të dekoduara
  • Transmetim video i drejtpërdrejtë
Njohësi i Gjesteve jep rezultatet e mëposhtme:
  • Kategoritë e gjesteve të duarve
  • Dorëzimi i duarve të zbuluara
  • Pikat referuese të duarve të zbuluara në koordinatat e imazhit
  • Pikat referuese të duarve të zbuluara në koordinatat e botës

Opsionet e konfigurimit

Kjo detyrë ka opsionet e mëposhtme të konfigurimit:

Emri i opsionit Përshkrimi Diapazoni i Vlerave Vlera e parazgjedhur
running_mode Cakton modalitetin e ekzekutimit për detyrën. Ekzistojnë tre mënyra:

IMAZH: Modaliteti për futjen e një imazhi të vetëm.

VIDEO: Modaliteti për kuadrot e dekoduara të një videoje.

LIVE_STREAM: Modaliteti për një transmetim të drejtpërdrejtë të të dhënave hyrëse, si p.sh. nga një kamera. Në këtë modalitet, duhet të thirret resultListener për të konfiguruar një dëgjues për të marrë rezultatet në mënyrë asinkrone.
{ IMAGE, VIDEO, LIVE_STREAM } IMAGE
num_hands Numri maksimal i duarve mund të zbulohet nga GestureRecognizer . Any integer > 0 1
min_hand_detection_confidence Rezultati minimal i besimit që zbulimi i dorës të konsiderohet i suksesshëm në modelin e zbulimit të pëllëmbës. 0.0 - 1.0 0.5
min_hand_presence_confidence Rezultati minimal i besimit të rezultatit të pranisë së dorës në modelin e zbulimit të pikës së referimit të dorës. Në modalitetin Video dhe modalitetin e transmetimit të drejtpërdrejtë të Njohësit të Gjesteve, nëse rezultati i besimit të pranisë së dorës nga modeli i pikës së referimit të dorës është nën këtë prag, ai aktivizon modelin e zbulimit të pëllëmbës. Përndryshe, një algoritëm i lehtë i gjurmimit të dorës përdoret për të përcaktuar vendndodhjen e dorës(ve) për zbulimin e mëvonshëm të pikës së referimit. 0.0 - 1.0 0.5
min_tracking_confidence Rezultati minimal i besimit që gjurmimi i dorës të konsiderohet i suksesshëm. Ky është pragu i hapësirës së pakufizuar të kutisë kufizuese midis duarve në kuadrin aktual dhe kuadrin e fundit. Në modalitetin Video dhe modalitetin Transmetim të Njohësit të Gjesteve, nëse gjurmimi dështon, Njohësi i Gjesteve aktivizon zbulimin e dorës. Përndryshe, zbulimi i dorës anashkalohet. 0.0 - 1.0 0.5
canned_gestures_classifier_options Opsionet për konfigurimin e sjelljes së klasifikuesit të gjesteve të konservuara. Gjestet e konservuara janë ["None", "Closed_Fist", "Open_Palm", "Pointing_Up", "Thumb_Down", "Thumb_Up", "Victory", "ILoveYou"]
  • Lokalizimi i emrave të ekranit: lokalizimi që do të përdoret për emrat e ekranit të specifikuar përmes Metadatave të Modelit TFLite, nëse ka.
  • Rezultatet maksimale: numri maksimal i rezultateve të klasifikimit me rezultatet më të larta që duhen kthyer. Nëse < 0, do të kthehen të gjitha rezultatet e disponueshme.
  • Pragu i pikëve: rezultati nën të cilin rezultatet refuzohen. Nëse vendoset në 0, do të kthehen të gjitha rezultatet e disponueshme.
  • Lista e lejuar e kategorive: lista e lejuar e emrave të kategorive. Nëse nuk është bosh, rezultatet e klasifikimit kategoria e të cilave nuk është në këtë grup do të filtrohen. Reciprokisht përjashtuese me listën e deny-t.
  • Lista e mohimit të kategorive: lista e mohimit e emrave të kategorive. Nëse nuk është bosh, rezultatet e klasifikimit kategoria e të cilave është në këtë grup do të filtrohen. Reciprokisht përjashtuese me listën e lejimeve.
    • Lokalizimi i emrave të ekranit: any string
    • Rezultatet maksimale: any integer
    • Pragu i pikëve: 0.0-1.0
    • Lista e lejimeve të kategorive: vector of strings
    • Lista e mohimeve të kategorive: vector of strings
    • Lokalizimi i emrave të ekranit: "en"
    • Rezultatet maksimale: -1
    • Pragu i pikëve: 0
    • Lista e lejuar e kategorive: bosh
    • Lista e mohimeve të kategorive: bosh
    custom_gestures_classifier_options Opsione për konfigurimin e sjelljes së klasifikuesit të gjesteve të personalizuara.
  • Lokalizimi i emrave të ekranit: lokalizimi që do të përdoret për emrat e ekranit të specifikuar përmes Metadatave të Modelit TFLite, nëse ka.
  • Rezultatet maksimale: numri maksimal i rezultateve të klasifikimit me rezultatet më të larta që duhen kthyer. Nëse < 0, do të kthehen të gjitha rezultatet e disponueshme.
  • Pragu i pikëve: rezultati nën të cilin rezultatet refuzohen. Nëse vendoset në 0, do të kthehen të gjitha rezultatet e disponueshme.
  • Lista e lejuar e kategorive: lista e lejuar e emrave të kategorive. Nëse nuk është bosh, rezultatet e klasifikimit kategoria e të cilave nuk është në këtë grup do të filtrohen. Reciprokisht përjashtuese me listën e deny-t.
  • Lista e mohimit të kategorive: lista e mohimit e emrave të kategorive. Nëse nuk është bosh, rezultatet e klasifikimit kategoria e të cilave është në këtë grup do të filtrohen. Reciprokisht përjashtuese me listën e lejimeve.
    • Lokalizimi i emrave të ekranit: any string
    • Rezultatet maksimale: any integer
    • Pragu i pikëve: 0.0-1.0
    • Lista e lejimeve të kategorive: vector of strings
    • Lista e mohimeve të kategorive: vector of strings
    • Lokalizimi i emrave të ekranit: "en"
    • Rezultatet maksimale: -1
    • Pragu i pikëve: 0
    • Lista e lejuar e kategorive: bosh
    • Lista e mohimeve të kategorive: bosh
    result_callback Cakton dëgjuesin e rezultateve që të marrë rezultatet e klasifikimit në mënyrë asinkrone kur njohësi i gjesteve është në modalitetin e transmetimit të drejtpërdrejtë. Mund të përdoret vetëm kur modaliteti i ekzekutimit është vendosur në LIVE_STREAM ResultListener N/A N/A

    Modele

    Njohësi i Gjesteve përdor një paketë modelesh me dy paketa modelesh të parapërgatitura: një paketë modeli të pikave të referimit të dorës dhe një paketë modeli të klasifikimit të gjesteve. Modeli i pikave të referimit zbulon praninë e duarve dhe gjeometrinë e dorës, dhe modeli i njohjes së gjesteve njeh gjestet bazuar në gjeometrinë e dorës.

    Emri i modelit Forma e hyrjes Lloji i kuantizimit Kartë modeli Versionet
    Klasifikuesi i Gjesteve të Duarve 192 x 192, 224 x 224 noton 16 informacion Më të fundit

    Kjo detyrë mbështet gjithashtu modifikimin e paketës së modelit duke përdorur Model Maker. Për më shumë informacion mbi përdorimin e Model Maker për të personalizuar modelet për këtë detyrë, shihni faqen Personalizoni modelet për Njohësin e Gjesteve .

    Pako modelesh me pika referimi për dorën

    Paketa e modelit të pikave të referimit të dorës zbulon lokalizimin e pikave kyçe të 21 koordinatave të nyjës së dorës brenda rajoneve të zbuluara të dorës. Modeli u trajnua në afërsisht 30 mijë imazhe të botës reale, si dhe në disa modele sintetike të dorës të renderuara të vendosura mbi sfonde të ndryshme. Shihni përkufizimin e 21 pikave të referimit më poshtë:

    Kodet për pikat specifike të referencës së dorës

    Paketa e modelit të pikave të referimit të dorës përmban modelin e zbulimit të pëllëmbëve dhe modelin e zbulimit të pikave të referimit të dorës. Modeli i zbulimit të pëllëmbëve lokalizon rajonin e duarve nga e gjithë imazhi i futur dhe modeli i zbulimit të pikave të referimit të dorës gjen pikat e referimit në imazhin e prerë të dorës të përcaktuar nga modeli i zbulimit të pëllëmbëve.

    Meqenëse modeli i zbulimit të pëllëmbëve kërkon shumë më tepër kohë, në modalitetin Video ose në modalitetin Live Transmetim, Njohësi i Gjesteve përdor kutinë kufizuese të përcaktuar nga pikat e referimit të duarve të zbuluara në kuadrin aktual për të lokalizuar rajonin e duarve në kuadrin tjetër. Kjo zvogëlon kohën që Njohësi i Gjesteve aktivizon modelin e zbulimit të pëllëmbëve. Vetëm kur modeli i pikave të referimit të duarve nuk mund të identifikojë më numrin e mjaftueshëm të kërkuar të pranisë së duarve, ose gjurmimi i duarve dështon, modeli i zbulimit të pëllëmbëve thirret për të rilokalizuar duart.

    Paketa e modelit të klasifikimit të gjesteve

    Paketa e modelit të klasifikimit të gjesteve mund të njohë këto gjeste të zakonshme të duarve:

    0 - Unrecognized gesture, label: Unknown
    1 - Closed fist, label: Closed_Fist
    2 - Open palm, label: Open_Palm
    3 - Pointing up, label: Pointing_Up
    4 - Thumbs down, label: Thumb_Down
    5 - Thumbs up, label: Thumb_Up
    6 - Victory, label: Victory
    7 - Love, label: ILoveYou
    

    Nëse modeli zbulon duart, por nuk njeh një gjest, njohësi i gjesteve kthen rezultatin "Asnjë". Nëse modeli nuk zbulon duart, njohësi i gjesteve kthen rezultatin bosh.

    Paketa e modelit të klasifikimit të gjesteve përmban një tubacion rrjeti nervor me dy hapa me një model të ngulitur gjestesh të ndjekur nga një model i klasifikimit të gjesteve. Shihni më shumë detaje në kartën e modelit të klasifikimit të gjesteve .

    Modeli i ngulitjes së gjesteve kodon veçoritë e imazhit në një vektor veçorish, dhe modeli i klasifikimit është një klasifikues i lehtë gjestesh që merr vektorin e veçorive si të dhënë. Paketa e dhënë e modelit të klasifikimit të gjesteve përmban klasifikuesin e gjesteve të konservuara, i cili zbulon 7 gjestet e zakonshme të duarve të prezantuara më sipër. Ju mund ta zgjeroni paketën e modeleve për të njohur më shumë gjeste duke trajnuar klasifikuesin tuaj të personalizuar të gjesteve. Shihni më shumë detaje në seksionin vijues të Modeleve të Personalizuara .

    Njohësi i Gjesteve me klasifikuesin e gjesteve të konservuar dhe klasifikuesin e gjesteve të personalizuara preferon gjestin e personalizuar nëse të dy klasifikuesit njohin të njëjtin gjest në kategoritë e tyre. Nëse vetëm një klasifikues gjestesh e njeh gjestin, Njohësi i Gjesteve e nxjerr gjestin e njohur direkt.

    Standardet e detyrave

    Ja pikat e referencës së detyrave për të gjithë rrjedhën e punës bazuar në modelet e trajnuara paraprakisht më sipër. Rezultati i vonesës është vonesa mesatare në Pixel 6 duke përdorur CPU / GPU.

    Emri i modelit Latencia e CPU-së Vonesa e GPU-së
    Njohësi i Gjesteve 16.76ms 20.87ms

    Modele të personalizuara

    Nëse dëshironi të përmirësoni ose ndryshoni aftësitë e modeleve të ofruara në këtë detyrë, mund të përdorni Model Maker për të modifikuar modelet ekzistuese. Modelet e personalizuara të përdorura me MediaPipe duhet të jenë në formatin .task , i cili është një skedar pakete modelesh. Duhet të merrni në konsideratë përdorimin e Model Maker për të modifikuar modelet e ofruara për këtë detyrë përpara se të ndërtoni modelet tuaja.

    Për më shumë informacion rreth personalizimit të një modeli për këtë detyrë, shihni Personalizoni modelet për Njohësin e Gjesteve .