OpenCV is basically a free and very powerful SDK for all kinds of image processing. It can work on Android and iOS . You can also use it from Java . There are several ways to use Face Recognition . OpenCV is very well optimized, but I have no experience with it on smartphones.