This paper describes the detection of faces in complex backgrounds where their sizes, positions and directions are arbitrary. We detect the faces by extracting face components such as eyes, a mouth and so on. We first extract face features and then calculate their likelihoods as each face component. Second we detect the face features which satisfy geometrical relations of the face. In order to reduce the number of combinations of all labels for all features, we determine face candidate regions using generalized Hough transform and then apply a relaxation method to each candidate region.