This paper introduces a facial expression recognition system that uses stepwise linear discriminant analysis (SWLDA) for feature extraction and hidden conditional random fields (HCRF) for recognition. The system employs a hierarchical recognition strategy to first recognize the category of expression, and then identify the specific expression within that category. Across four public datasets, the proposed approach achieved an average recognition rate of 96.37%, significantly outperforming existing facial expression recognition methods.