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.
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.
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.
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/