Ihmisen perustunnetilojen tulkinta ja hyödyntäminen sosiaalisissa roboteissa
Jaakkola, Petri; Rinkinen, Mikael; Vihriälä, Janne (2023-06-30)
Jaakkola, Petri
Rinkinen, Mikael
Vihriälä, Janne
P. Jaakkola; M. Rinkinen; J. Vihriälä
30.06.2023
© 2023 Petri Jaakkola, Mikael Rinkinen, Janne Vihriälä. Tämä Kohde on tekijänoikeuden ja/tai lähioikeuksien suojaama. Voit käyttää Kohdetta käyttöösi sovellettavan tekijänoikeutta ja lähioikeuksia koskevan lainsäädännön sallimilla tavoilla. Muunlaista käyttöä varten tarvitset oikeudenhaltijoiden luvan.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-202307062848
https://urn.fi/URN:NBN:fi:oulu-202307062848
Tiivistelmä
Tietotekniikan kehittyessä tekoälyn ja robottien käyttö on moninkertaistunut monilla eri teollisuuden- ja tekniikan aloilla. Ihmisen tärkeintä aistia, näkökykyä, hyödynnetään robotiikassa keinotekoisen näön, eli konenäön toteuttamisessa. Koska sosiaaliset robotit yleistyvät, on tärkeää, että ihmisen ja robotin vuorovaikutus on mahdollisimman luontevaa. Tällöin varsinaisen näkökyvyn lisäksi kasvojen ilmeet ja niiden tulkinta ovat keskeisessä asemassa, jotta robotti pystyy tulkitsemaan ihmistä oikein. Tässä projektissa toteutettiin kasvojen perustunnetilojen tulkitseminen InMoov-robotin robottipään avulla, jonka 3d-mallit ovat vapaasti saatavilla. Robotti ohjelmoitiin tunnistamaan ihmisen kasvot sen silmässä olevalla web-kameralla ja tulkitsemaan kasvoista perustunnetiloja: neutraali, iloinen, vihainen, hämmästynyt, surullinen ja pelko. Tunteen tunnistamisen jälkeen robotti reagoi eri tunteisiin eri liikkeellä. Järjestelmän toteuttamisessa käytettiin pääasiassa OpenCV-ohjelmistokirjastoa konenäön toteuttamiseen, Tensorflow-koneoppimisalustan korkean tason ohjelmointirajapintaa Kerasta tunteen tunnistamiseen ja Robot Operating Systemiä järjestelmän ytimenä ja itse robotin pään liikkeiden ohjaamiseen. Kuviin perustuvista lähestymistavoista käytettiin neuroverkkoja, jotka syväoppimisen kautta opetettiin tunnistamaan kasvojen tunneilmaisuja kuvasta opetusdatan pohjalta. Tulokseksi projektissa saatiin järjestelmä, joka pystyi tunnistamaan käytetyissä olosuhteissa tunteita varsin hyvin. As computer science is developing the usage of artificial intelligence and robots has multiplied in several fields of industry and technology. The most important sensor of humans, vision, is utilized in robotics in the implementation of artificial vision, i.e. machine vision. As social robots become more common it is essential for human-robot interaction to be as natural as possible. In this case, in addition to vision facial expressions and their interpretation are vital components for fluent interaction. In this project, the interpretation of basic human facial expressions was implemented using the InMoov-robot head, the 3d-models of which are distributed freely. The system was programmed to recognize the facial expressions of a human in front of a webcam and identify some basic emotions, namely neutral, happy, angry, surprised, sad and fear and react differently to each emotion. The system was created using these main components: OpenCV library for machine vision, Keras, a high-level Application Programming Interface for the Tensorflow machine learning platform, for recognizing emotions and Robot Operating System as a core for running the whole system and controlling the robot head. The project explored neural networks function based on deep learning. Neural networks were trained to recognize emotions from facial expression images. The result of the project was a system capable of recognizing facial expressions quite well considering the challenges of the subject.
Kokoelmat
- Avoin saatavuus [34573]