An efficient algorithm for detecting human faces in color images is proposed. The first step of our algorithm is to segment the possible skin-like regions in an image by using color information. One of the major problems of using skin color is that a face region may not be detected under poor or intense lighting conditions, or if the lighting conditions vary over the face region. Our approach considers the distribution of the color components of skin pixels under different illumination. This information can be used to identify skin color pixels reliably under different lighting conditions. The skin color regions are then clustered and verified as human face regions or not. In order to improve the reliability of detection, an eigenmask that has a large magnitude at the important facial features of a human face is devised. Experimental results show that this algorithm can detect human faces under different lighting conditions reliably.