1. A method implemented on one or more processors, the method comprising: detecting automatically, in an image, the location of a face and one or more facial features, the detecting being performed by the one or more processors; extracting from the image at least part of the image corresponding to the face aligning the at least part of the image based on the one or more detected facial features; defining one or more image windows at a plurality of locations of the face, the one or more image windows comprising image windows having two or more different scales; applying one or more image filters to each of the one or more image windows to produce a set of descriptors representing contents of the image window; processing outputs of the one or more image filter for the one or more windows using a feature selection stage implemented on the one or more processors, the feature selection stage choosing a subset of the set of descriptors for each of the one or more windows; estimating a relative likelihood of each of a plurality of facial action units based on the subset of the set of descriptors for each of the one or more image windows; producing for the image a score vector based on a combination of the relative likelihoods for the one or more windows, the score vector comprising a value for each of the plurality of action units and quantifying a probability of a presence of each of the plurality of action units in the face shown in the image; and promoting the score vector.