All the cool phones now are doing facial recognition. While that sounds like a big job, you can add face detection and recognition easily to your projects if you can support the OpenCV library. [LinuxHint] has a great tutorial that steps you from the basics of OpenCV to actually acquiring and identifying faces. It is aimed at Ubuntu users, but the code would apply to any OpenCV-supported platform. You can also see a less detailed tutorial to learn more about installing OpenCV on the Pi Zero from [DanishMalhotra].
Of course, any facial recognition system is going to need a camera. The nice thing about the first tutorial is that it assumes you know nothing about OpenCV, so it covers the basics on up to using the face-related libraries.
There are two distinct operations to accomplish for face recognition. The first is to simply identify that the image contains a face. This is useful all by itself sometimes (for example, a selfie camera or a Snapchat-like filter). OpenCV provides the Haar cascade face detector that uses some Haar classification algorithms to quickly find patterns in images.
Once you find a face, Eigenfaces can recognize it by matching regions to a known database of face types. There are several databases the tutorial discusses that you can use.
The more building blocks you have, the easier it is to make impressive projects. OpenCV is certainly a high-powered building block. If you want to do the Eigenface algorithm on something smaller, it is certainly possible.