Semi-supervised Facial Action Unit Intensity Estimation with Contrastive Learning

Enrique Sanchez, Adrian Bulat, Anestis Zaganidis, Georgios Tzimiropoulos; Proceedings of the Asian Conference on Computer Vision (ACCV), 2020


This paper tackles the challenging problem of estimating the intensity of Facial Action Units with few labeled images. Contrary to previous works, our method does not require to manually select key frames, and produces state-of-the-art results with as little as 2% of annotated frames, which are randomly chosen. To this end, we propose a semi-supervised learning approach where a spatio-temporal model combining a feature extractor and a temporal module are learned in two stages. The first stage uses datasets of unlabeled videos to learn a strong spatio-temporal representation of facial behavior dynamics based on contrastive learning. To our knowledge we are the first to build upon this framework for modeling facial behavior in an unsupervised manner. The second stage uses another dataset of randomly chosen labeled frames to train a regressor on top of our spatio-temporal model for estimating the AU intensity. We show that although backpropagation through time is applied only with respect to the output of the network for extremely sparse and randomly chosen labeled frames, our model can be effectively trained to estimate AU intensity accurately, thanks to the unsupervised pre-training of the first stage. We experimentally validate that our method outperforms existing methods when working with as little as 2% of randomly chosen data for both DISFA and BP4D datasets, without a careful choice of labeled frames, a time-consuming task still required in previous approaches.

Related Material

[pdf] [arXiv]
@InProceedings{Sanchez_2020_ACCV, author = {Sanchez, Enrique and Bulat, Adrian and Zaganidis, Anestis and Tzimiropoulos, Georgios}, title = {Semi-supervised Facial Action Unit Intensity Estimation with Contrastive Learning}, booktitle = {Proceedings of the Asian Conference on Computer Vision (ACCV)}, month = {November}, year = {2020} }