As anotações FER+ fornecem um conjunto de novos rótulos para o conjunto de dados Emotion FER padrão. No FER+, cada imagem foi rotulada por 10 taggers de crowdsourcing, que fornecem informações de melhor qualidade para a emoção da imagem estática do que os rótulos FER originais. Ter 10 etiquetadores para cada imagem permite aos pesquisadores estimar uma distribuição de probabilidade de emoção por rosto. Isso permite construir algoritmos que produzem distribuições estatísticas ou saídas multi-rótulo em vez da saída convencional de rótulo único, conforme descrito em: https://arxiv.org/abs/1608.01041
Aqui estão alguns exemplos de rótulos FER vs FER+ extraídos do artigo mencionado acima (FER superior, FER+ inferior):
O novo arquivo de rótulo é denominado fer2013new.csv e contém o mesmo número de linhas que o arquivo de rótulo fer2013.csv original com a mesma ordem, para que você possa inferir qual tag de emoção pertence a qual imagem. Como não podemos hospedar o conteúdo real da imagem, encontre o conjunto de dados FER original aqui: https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data
O formato do arquivo CSV é o seguinte: uso, neutro, felicidade, surpresa, tristeza, raiva, nojo, medo, desprezo, desconhecido, NF. O "uso" das colunas é igual ao rótulo FER original para diferenciar entre conjuntos de treinamento, teste público e conjuntos de teste privados. As outras colunas são a contagem de votos para cada emoção com a adição de desconhecido e NF (Not a Face).
Também fornecemos um código de treinamento com implementação para todos os modos de treinamento (maioria, probabilidade, entropia cruzada e multi-rótulo) descritos em https://arxiv.org/abs/1608.01041. O código de treinamento usa o MS Cognitive Toolkit (anteriormente CNTK) disponível em: https://github.com/Microsoft/CNTK.
Depois de instalar o Cognitive Toolkit e baixar o conjunto de dados (discutiremos o layout do conjunto de dados a seguir), você pode simplesmente executar o seguinte para iniciar o treinamento:
python train.py -d -m majority
python train.py -d -m probability
python train.py -d -m crossentropy
python train.py -d -m multi_target
Existe uma pasta chamada data que possui o seguinte layout:
/data
/FER2013Test
label.csv
/FER2013Train
label.csv
/FER2013Valid
label.csv
label.csv em cada pasta contém o rótulo real de cada imagem, o nome da imagem está no seguinte formato: ferXXXXXXX.png, onde XXXXXXXX é o índice de linha do arquivo FER csv original. Então aqui estão os nomes das primeiras imagens:
fer0000000.png
fer0000001.png
fer0000002.png
fer0000003.png
As pastas não contêm as imagens reais, você precisará baixá-las em https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data e, em seguida, extrair o imagens do arquivo FER csv de forma que todas as imagens correspondentes a "Treinamento" vão para a pasta FER2013Train, todas as imagens correspondentes a "PublicTest" vão para A pasta FER2013Valid e todas as imagens correspondentes a "PrivateTest" vão para a pasta FER2013Test. Ou você pode usar o script generate_training_data.py
para fazer tudo acima para você, conforme mencionado na próxima seção.
Fornecemos um script simples generate_training_data.py
em python que usa fer2013.csv e fer2013new.csv como entradas, mescla os dois arquivos CSV e exporta todas as imagens em arquivos png para o treinador processar.
python generate_training_data.py -d -fer -ferplus
Se você usar o novo rótulo FER+ ou o código de amostra ou parte dele em sua pesquisa, cite o seguinte:
@inproceedings{BarsoumICMI2016,
title={Treinamento de redes profundas para reconhecimento de expressão facial com distribuição de rótulos coletivos},
autor={Barsoum, Emad e Zhang, Cha e Canton Ferrer, Cristian e Zhang, Zhengyou},
booktitle={Conferência Internacional ACM sobre Interação Multimodal (ICMI)},
ano={2016}
}