Tunteiden tunnistaminen tekoälyllä

Olemme perehtyneet Tekoälypaja- ja Konenäkö-hankkeissa ihmisten tunteiden tunnistamista käyttämällä tekoälyä. Ihmisten tunteiden seuraamiseen on paljon erilaisia sovelluksia terveydenhuollossa ja ihmisen hyvinvoinnin edistämisessä. Esimerkiksi ihmisen tunnetilaa voidaan tarkkailla päivän aikana ja tehdä siitä johtopäätöksiä hänen mielentilastaan. Voidaan myös seurata osallistujien tunnetilaa erilaisten kokemusten aikana ja havainnoida, mihin kokemuksiin reagoidaan voimakkaimmin tai positiivisimmin. Tekoälyn avulla tunnetilojen seuraamista voidaan automatisoida ja ihmiskehon jatkuvasti tuottama tieto tiivistää olennaisimpiin asioihin.  

Kuva 1. Tekoälypaja-projektin logo
Kuva 1. Tekoälypajassa innovoidaan uusia sensori- ja tekoälyteknologian sovelluksia. (Kuva: Ville Teräväinen) 

Suunnittelimme prototyypin tietokonesovellukseksi, jolla voidaan analysoida ja laskea ihmisen eri ilmeitä livevideosta. Tietokoneeseen voidaan kytkeä ulkoinen kamera, esimerkiksi Web-kamera USB-liitännällä, tai käyttää suoraan kannettavan tietokoneen sisäänrakennettua kameraa, jos sellainen on.  Kameralla on tarkoitus lähettää videokuvaa sovellukselle, joka analysoi siitä tietyin intervallein löytyvät ilmeet. Ne tallennetaan aikaleiman kanssa Excel-taulukkoon, josta ne voidaan myöhemmin analysoida tarkemmin. Web-kamerana käytimme Logitechin c922 Pro Stream web-kameraa.  

Kuvasta ilmeiden tunnistaminen 

Ilmeet analysoidaan käyttäen kahta eri tekoälymallia. Ensimmäinen tekoälymalli tunnistaa ihmisten kasvoja ja niiden paikan kuvasta. Mallina on käytetty valmiiksi koulutettua OpenCV:n Haar Cascade Classifier -mallia. Kuvassa 2 näkyy tunnistettujen kasvojen ympärille muodostettu suorakulmio, jonka sisällä kasvot oletettavasti ovat.  

Kuva 2. Ihminen, jonka kasvoja kehystää laatikko. Laatikon yläkulmassa sana Neutral
Kuva 2. Tekoäly rajaa tunnistetut kasvot laatikon sisälle. Laatikon sisällön toinen tekoälymalli tunnistaa eri ilmeiden joukoista, tässä tapauksessa neutraaliksi ilmeeksi. (Kuva: Ville Teräväinen) 

Suorakulmion sisällä olevat kasvot käsitellään seuraavalla tekoälymallilla, joka luokittelee kasvoille yhden seitsemästä sille opetetusta ilmeestä. Malli on FER Python kirjastoon kuuluva Keras-luokittelumalli, joka perustuu koulutettuun neuroverkkoon. Kun mallille syötetään kuva kasvoista, luokittelee se todennäköisyyden jokaiselle seuraavasta seitsemästä vaihtoehdosta: 

  • Angry 
  • Disgust 
  • Fear 
  • Happy 
  • Sad 
  • Surprise 
  • Neutral 

Ratkaisussamme tallennamme näistä todennäköisimmän löydetyksi ilmeeksi. Sovelluksessa voidaan myös testata ilmeiden tunnistamista reaaliajassa, kuten kuvassa 2, jolloin videokuvaan voidaan piirtää laatikot kasvojen ympärille tunnistetun ilmeen kanssa. Tällä voidaan testata, että kamera on oikeassa kulmassa tai paikassa tunnistaakseen kasvot tehokkaasti. Kasvojentunnistus toimii parhaiten, kun ihmisen kasvot ovat mahdollisimman selkeästi kameran nähtävissä. Sovelluksen kanssa on myös mahdollista käyttää erilaisia laajakuvakameroita, jos halutaan saada taltioitua mahdollisimman suurelta näkökentältä ihmisten ilmeitä. Sovellus ei vaadi toimiakseen erityisen tehokasta tietokonetta.  

Kuva 3. Ilmeiden tunnistusta reaaliajassa. Kasvojen ympärille piirretään laatikko, jonka ylle kirjoitetaan tekstillä sen hetkinen ilme. (Kuva: Ville Teräväinen)

Löydettyjen ilmeiden perusteella luodun Excel-taulukon avulla voidaan seurata ihmisen ilmeiden vaihtelua eri tilanteissa ja tästä päätellä tämän reaktiota eri asioihin. Excel taulukkoa voidaan tulkita myös tekoälyn avulla, esimerkiksi jos halutaan luoda tekoälymalli, joka päättelee ihmisen tunnetilaa ilmeistä.  

Kirjoittaja

Ville Teräväinen työskentelee TKI-asiantuntijana LAB-ammattikorkeakoulussa ja tekniikan asiantuntijana Tekoälypaja- ja Konenäkö-hankkeissa. 

Linkit

LAB 2020. Tekoälypaja. [Viitattu 4.12.2020]. Saatavissa:  https://lab.fi/fi/projekti/tekoalypaja  

LAB 2020. Konenäön sovellukset sote- ja hyvinvointialalla. [Viitattu 4.12.2020]. Saatavissa: https://lab.fi/fi/projekti/konenaon-sovellukset-sote-ja-hyvinvointialalla  

OpenCV. 2020. Face Detection using Haar Cascades. [Viitattu 4.12.2020]. Saatavissa: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_objdetect/py_face_detection/py_face_detection.html 

Python Software Foundation. 2020. Project description – FER. [Viitattu 4.12.2020]. Saatavissa: https://pypi.org/project/fer/ 

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *