facial-emotion-analysis-eval
Facial-R1: Aligning Reasoning and Recognition for Facial Emotion Analysis — Jiulong Wu et al. (2025) (arXiv:2511.10254, 2025)
What this evaluates
Evaluates vision-language models on facial emotion analysis tasks, including fine-grained action unit detection, categorical emotion recognition, and grounded natural language reasoning over facial expressions. The protocol tests both recognition accuracy and the model's ability to generate interpretable, AU-grounded explanations.
Datasets
- DISFA — total 87192; splits: train (52392), test (27654)
- BP4D — total 146847; splits: train (100813), test (46034)
- RAF-AU — total 4601; splits: train (3479), test (853)
- FER2013 — total 35887; splits: train (28709), test (3589)
- AffectNet — total 303330; splits: train (287618), test (3493)
- RAF-DB — total 29672; splits: train (12271), test (3068)
- FABA-Instruct — total 14379; splits: train (6060), test (314)
- FEA-20K — total 19425; splits: train (17737), test (1688); repo https://github.com/RobitsG/Facial-R1
Metrics
F1 score (primary) — range: [0, 1]
- Harmonic mean of precision and recall across all action unit classes, typically averaged macro to handle class imbalance.
Accuracy (primary) — range: [0, 1]
- Ratio of correctly predicted emotion categories to total test samples.
SEGE — range: [0, 1]
- Aggregates AU recognition F1 score and ROUGE-L score of generated textual descriptions to evaluate joint recognition and reasoning quality.
ROUGE-L — range: [0, 1]
- Longest common subsequence overlap between generated reasoning text and ground-truth reference text.
GPT-4o-mini Evaluator — range: [0, 10]
- Automated LLM-as-a-judge scoring semantic similarity between generated and ground-truth reasonings on a 0–10 scale.
Input / output format
Input: Single facial image (grayscale or color). For reasoning tasks, the image is accompanied by a text prompt requesting emotion/AU analysis or explanation.
Output: Predicted action unit labels (binary/multi-label), emotion category labels (multi-class), or natural language text describing the emotion and reasoning.
Scoring recipe
def compute_metrics(predictions, golds, task, dataset):
if task == 'AU_recognition':
return f1_score(golds, predictions, average='macro')
elif task == 'emotion_recognition':
return accuracy_score(golds, predictions)
elif task == 'emotion_reasoning':
rouge_l = rouge_l_score(golds['text'], predictions['text'])
if dataset == 'FABA-Instruct':
au_f1 = f1_score(golds['au'], predictions['au'], average='macro')
return 0.5 * au_f1 + 0.5 * rouge_l
elif dataset == 'FEA-20K':
return rouge_l
elif dataset == 'FEA-20K_reliability':
return gpt4o_mini_evaluate(golds['text'], predictions['text'], scale=10)
Common pitfalls
- AU recognition is a multi-label binary classification task; using standard multi-class accuracy will severely underreport performance.
- Official splits for DISFA and BP4D are frame-level; inconsistent frame extraction or sampling changes dataset size and skews results.
- SEGE metric combines AU F1 and ROUGE-L; failing to normalize or weight them correctly breaks comparability with prior work.
- GPT-4o-mini evaluator scores are non-deterministic and sensitive to prompt phrasing, requiring fixed temperature and system prompts for reproducibility.
Evidence (verbatim from paper)
For AU recognition, we employ the F1 score*(mavadati2013disfa; zhang2014bp4d), ensuring a balanced evaluation of precision and recall. Regarding emotion recognition, we adopt accuracy (Acc.) as the primary metric, following established protocols(li2017RAF-DB). For AU-based emotion reasoning, we employ task-specific metrics. Specifically, on the FABA-Instruct dataset, we utilize the SEGE metric proposed in FABA(li2024faba), which aggregates the AU recognition F1 and the ROUGE-L score of textual descriptions. For the FEA-20K dataset, we report ROUGE-L to measure the textual similarity between generated and ground-truth reasonings. Additionally, to comprehensively evaluate the reliability of emotion reasoning, we propose employing GPT-4o-mini(hurst2024gpt4o)* as an automated evaluator for measuring semantic similarity between generated and ground-truth reasonings, with scores ranging from 0 to 10.
Citation
@misc{wu2025facialr1,
title={Facial-R1: Aligning Reasoning and Recognition for Facial Emotion Analysis},
author={Jiulong Wu et al. (2025)},
year={2025},
note={arXiv:2511.10254}
}
1---2name: facial-emotion-analysis-eval3description: Evaluates vision-language models on facial emotion analysis tasks, including fine-grained action unit detection, categorical emotion recognition, and grounded natural language reasoning over facial expressions. The protocol tests both recognition accuracy and the model's ability to generate interpretable, AU-grounded explanations. Use when the user wants to benchmark on DISFA, BP4D, RAF-AU, FER2013, AffectNet, RAF-DB, FABA-Instruct, FEA-20K, or asks about evaluating this task. Reports F1 score, Accuracy.4---56# facial-emotion-analysis-eval78> Facial-R1: Aligning Reasoning and Recognition for Facial Emotion Analysis — Jiulong Wu et al. (2025) (arXiv:2511.10254, 2025)910## What this evaluates1112Evaluates vision-language models on facial emotion analysis tasks, including fine-grained action unit detection, categorical emotion recognition, and grounded natural language reasoning over facial expressions. The protocol tests both recognition accuracy and the model's ability to generate interpretable, AU-grounded explanations.1314## Datasets1516- **DISFA** — total 87192; splits: train (52392), test (27654)17- **BP4D** — total 146847; splits: train (100813), test (46034)18- **RAF-AU** — total 4601; splits: train (3479), test (853)19- **FER2013** — total 35887; splits: train (28709), test (3589)20- **AffectNet** — total 303330; splits: train (287618), test (3493)21- **RAF-DB** — total 29672; splits: train (12271), test (3068)22- **FABA-Instruct** — total 14379; splits: train (6060), test (314)23- **FEA-20K** — total 19425; splits: train (17737), test (1688); repo https://github.com/RobitsG/Facial-R12425## Metrics2627- `F1 score` **(primary)** — range: [0, 1]28 - Harmonic mean of precision and recall across all action unit classes, typically averaged macro to handle class imbalance.29- `Accuracy` **(primary)** — range: [0, 1]30 - Ratio of correctly predicted emotion categories to total test samples.31- `SEGE` — range: [0, 1]32 - Aggregates AU recognition F1 score and ROUGE-L score of generated textual descriptions to evaluate joint recognition and reasoning quality.33- `ROUGE-L` — range: [0, 1]34 - Longest common subsequence overlap between generated reasoning text and ground-truth reference text.35- `GPT-4o-mini Evaluator` — range: [0, 10]36 - Automated LLM-as-a-judge scoring semantic similarity between generated and ground-truth reasonings on a 0–10 scale.3738## Input / output format3940**Input**: Single facial image (grayscale or color). For reasoning tasks, the image is accompanied by a text prompt requesting emotion/AU analysis or explanation.4142**Output**: Predicted action unit labels (binary/multi-label), emotion category labels (multi-class), or natural language text describing the emotion and reasoning.4344## Scoring recipe4546```python47def compute_metrics(predictions, golds, task, dataset):48 if task == 'AU_recognition':49 return f1_score(golds, predictions, average='macro')50 elif task == 'emotion_recognition':51 return accuracy_score(golds, predictions)52 elif task == 'emotion_reasoning':53 rouge_l = rouge_l_score(golds['text'], predictions['text'])54 if dataset == 'FABA-Instruct':55 au_f1 = f1_score(golds['au'], predictions['au'], average='macro')56 return 0.5 * au_f1 + 0.5 * rouge_l57 elif dataset == 'FEA-20K':58 return rouge_l59 elif dataset == 'FEA-20K_reliability':60 return gpt4o_mini_evaluate(golds['text'], predictions['text'], scale=10)61```6263## Common pitfalls6465- AU recognition is a multi-label binary classification task; using standard multi-class accuracy will severely underreport performance.66- Official splits for DISFA and BP4D are frame-level; inconsistent frame extraction or sampling changes dataset size and skews results.67- SEGE metric combines AU F1 and ROUGE-L; failing to normalize or weight them correctly breaks comparability with prior work.68- GPT-4o-mini evaluator scores are non-deterministic and sensitive to prompt phrasing, requiring fixed temperature and system prompts for reproducibility.6970## Evidence (verbatim from paper)7172> For AU recognition, we employ the F1 score*(mavadati2013disfa; zhang2014bp4d)*, ensuring a balanced evaluation of precision and recall. Regarding emotion recognition, we adopt accuracy (Acc.) as the primary metric, following established protocols*(li2017RAF-DB)*. For AU-based emotion reasoning, we employ task-specific metrics. Specifically, on the FABA-Instruct dataset, we utilize the SEGE metric proposed in FABA*(li2024faba)*, which aggregates the AU recognition F1 and the ROUGE-L score of textual descriptions. For the FEA-20K dataset, we report ROUGE-L to measure the textual similarity between generated and ground-truth reasonings. Additionally, to comprehensively evaluate the reliability of emotion reasoning, we propose employing GPT-4o-mini*(hurst2024gpt4o)* as an automated evaluator for measuring semantic similarity between generated and ground-truth reasonings, with scores ranging from 0 to 10.7374## Citation7576```bibtex77@misc{wu2025facialr1,78 title={Facial-R1: Aligning Reasoning and Recognition for Facial Emotion Analysis},79 author={Jiulong Wu et al. (2025)},80 year={2025},81 note={arXiv:2511.10254}82}83```8485- arXiv: 2511.10254