There are three stages including face detection, feature capturing, face recognition. The first one is basic.You can use OpenCV to do detection. But I prefer Face++ face detection APIs
. It support Java, C# and so on. With bigger pics, it comes better results.
I have just compare Face++ to OpenCV. It seems Face++ APIs are better considering detection and recognition.