ciglenecki / facial-emotion-recognition-pytorch

Prediction of emotions based on human facial expressions (deep learning)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prepoznavanje emocija iz izraza lica metodom deep learninga

Uvod:

Strojnim učenjem stvorit ćemo istrenirani model koji može prepoznavati tj. klasificirati ljudske emocije uz određenu točnost, ovisno o pristupu kojeg koristimo prilikom odabira skupa podataka pomoću kojeg treniramo model.

Odabrani skup podataka Cohn-Kanade koji sadrži sekvence slika ljudskih emocija i njihove označene emocije.

Prije samog treniranja potrebno je procesirati i urediti podatke te stvoriti jedinku svake slike koja u sebi ima sve potrebne labele nužne za što bolje stvoren model.

To je uređen par (sadržaj slike, emocija, FACS podatak).

Za pojedinu sekvencu znamo samo o kojoj se emociji radi potrebno je linearno sklairati neutralnu emociju i emociju o kojoj se radi tako da svaka slika uistinu reprezentira o kojoj se kombinacija emocija radi.

Treutna točnost modela

70% CK+ dataset

Tools:

  • PyTorch
  • numpy
  • pyplot
  • PIL (Image module)

Dataset:

  • Cohn-Kanade (CK+)
    • 593 sequences from 123 subjects
    • sequences go from neutral to peak emotion
    • 68 landmarks for each frame
      • Points are generated using Active Appearance Models (AAM)
    • emotions - 327/593 (55%) sequences are labeled with emotions
      • 0=neutral, 1=anger, 2=contempt, 3=disgust, 4=fear, 5=happy, 6=sadness, 7=surprise
      • Za AU detection - 123 različitih
      • Za emotion detection - 118 različitih
    • FACS
      • FACS je podskup bitnih landmarks AU obilježja koji se računa samo na peak frameu
      • Each line of the file corresponds to a specific AU and then the intensity. An example is given below
        • 0000000e+00 4.0000000e+00
        • 7000000e+01 2.0000000e+00
        • this means that AU9d and AU17b are present
        • B if an AU is present but the intensity is 0 this means that the intensity was not given

Code summary (2020-03-11) :

  • create_image_numpy.py
    • obrada strukture "CK+" dataseta
    • čitanje svih podataka u datasetu
    • stvaranje raw sample oblika: {image, emotion}
      • image: { ..pixels.. }
      • emotion: { [0.3, 0, 0, 0, 0, 0.7, 0] }
        • neutralna_emocija + slika_emocija = 1
    • sample se sprema kao "subjekt_sekvenca_brojSekvence.npy"
  • create_dataset.py
    • dohvat i čitanje svih .npy podataka
    • brada sample .npy podataka
    • mogućnost primjene TorchVision transformacije
    • rekonstrukcija u PyTorch dataset format

TODO-general:

Single .npy file structure:

sample1{
    image: {..pixels..}
    emotions: {[0.3, 0, 0, 0, 0, 0.7, 0]}
}

Dataset structure

------subject\_numberS005
------------sequence\_number001
------------------image\_numberS005\_001\_00000011.png


images{
    S005{
        001{
            S005\_001\_00000011: {..pixels..}
            S005\_001\_00000011: {..pixels..}
            ...
        }
        002{
            ...
        }
        ...
    }
    S993{
        ...
    }
}

About

Prediction of emotions based on human facial expressions (deep learning)


Languages

Language:Python 100.0%