Vis enkel innførsel

dc.contributor.advisorEidheim, Ole Christian
dc.contributor.authorKanter, Haakon Tideman
dc.contributor.authorSheikh, Omar Tveiten
dc.contributor.authorTosbakken, Aleksander
dc.date.accessioned2023-07-11T17:29:44Z
dc.date.available2023-07-11T17:29:44Z
dc.date.issued2023
dc.identifierno.ntnu:inspera:146721987:149459054
dc.identifier.urihttps://hdl.handle.net/11250/3078087
dc.description.abstractDenne oppgaven omfatter utviklingen av en håndgests-detektor, som ble utviklet for Pexip. Det er to hoveddeler til denne prosessen, en objektdetekteringsmodell og et GStreamer element med en prosesseringsalgoritme for deteksjoner. Håndgest-modellen ble laget med bredt anerkjente objekt-detektsjons arkitekturer. Arkitekturene som ble utforsket var YOLO, SSD og Faster R-CNN. Alle objektdeteksjonsmodellene ble trent på HaGRID datasettet, som inneholder 18 forskjellige håndgester. Resultatet av å trene disse modellene var flere modeller med mAP@50 resultater over 0.9, som også hadde akseptabel eller god ytelse. De fullstendig implementerte modellene hadde rammerater fra 3.3 FPS til 26.3 FPS. Den andre delen av denne oppgaven var utviklingen av et GStreamer element med en prosesseringsalgoritme for deteksjoner. Dette var hovedsakelig implementert i C og C++, ettersom god ytelse var et krav. Dette elementet var ansvarlig for å sende ut et "oppreist hånd" signal, som igjen kunne bli vist i Pexips webapplikasjon. Det var viktig at dette elementet hadde god ytelse, ettersom responsivitet og minimal ressursbruk var foretrukket. I tillegg til dette ble elementet utviklet med en håndfull av debuggingsfunksjoner, slik at å eksperimentere, debugge og endre på parametere var så enkelt som mulig. Sluttresultatet var en "håndgest" detektor, som for tiden er i en branch i Pexips GitHub repository. Detektoren varsler andre deltakende i en videokonferanse om at en deltaker har løftet hånden sin. Siden modellen har flere håndgester, er den lett å utvide dersom flere funksjoner skulle ønskes.
dc.description.abstractThis thesis covers the development of a hand gesture detector, developed for Pexip. There are two main parts of this process, namely an object detection model, as well as a GStreamer element with a detection processing algorithm. The hand gesture detection model was made with prominently recognized object detection architectures. Among the architectures explored were YOLO, SSD and Faster R-CNN. All of the object detection models were trained on the HaGRID dataset, which includes 18 different gestures. Some of the trained models achieved a mAP@50 score of over 0.9, while also maintaining a sufficient framerate. The final selection of models consisted only of different versions of YOLO models. These models resulted in framerates ranging from 3.3 FPS to 26.3 FPS. The second part of this thesis was the development of a GStreamer element with a detection processing algorithm. As Pexip requires high performance, this was done in C++. This element was responsible for emitting a "raised hand" signal, which would trigger a "raised hand" functionality within the Pexip webapp, raising a banner and notifying other participants. It was also important that this element had high performance, as responsiveness and minimal resource use in terms of CPU and memory was desired. This element also contained debugging features, allowing quick and easy experimentation. The final result was a gesture detector, which is currently in one of Pexip’s GitHub branches. The detector notifies other users within a video call that a participant has raised their hand. As the model contains a multitude of hand gestures, the gesture detector is easily extensible to help provide additional desired features. The detector serves as a strong foundation for not only using the "raise hand" feature, but can also be extended for a multitude of other use cases.
dc.languageeng
dc.publisherNTNU
dc.titleHand gesture recognition and interactivity in Pexip video conference calls
dc.typeBachelor thesis


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel