1. A computer-implemented method for training a facial feature detector, the method comprising: (a) generating a grid for an image containing a facial image, the grid including a plurality of locations each corresponding to a facial feature of a plurality of facial features within the facial image; (b) overlaying the grid over the image; (c) reducing lighting effects; (d) extracting feature vectors from the image; (e) generating descriptors based on the feature vectors, each descriptor being obtained by increasing a dimensionality of a corresponding feature vector of the feature vectors; (f) for each facial feature of the plurality of facial features, adding a first portion of the descriptors to a Positive data array, the descriptors of the first portion each having a coordinate corresponding to a location of the each facial feature within the facial image and adding a second portion of the descriptors to an All data array, the descriptors of the second portion each having a coordinate in the facial image not corresponding to the location of the each facial feature; (g) for each facial feature of the plurality of facial features, calculating weights for the descriptors according to the All data array and Positive data array to which the descriptors were added with respect to the each facial feature in (f); (h) for each facial feature of the plurality of facial features, generating a detector including the descriptors corresponding to the each facial feature and the weights thereof and calculating minimum and maximum values of the detector in a neighborhood of the each facial feature; (i) for each facial feature of the plurality of facial features, identifying points in the facial image with high value of the detector corresponding to the each facial feature and that do not belong to the each facial feature; (j) for each facial feature of the plurality of facial features, adding descriptors extracted at the identified points from (i) to the All data array for the each facial feature; and (k) for each facial feature, recalculating weights for the features descriptors of the detector corresponding to the each facial feature based on the Positive and All data arrays corresponding to the each facial feature.