Content Marketing Specialist at Exadel
Real-time face recognition systems remain a very popular topic in computer vision, and a large number of companies have developed their own solutions to try and tap into the growing market. Compared with traditional methods of recognition, real-time face recognition systems have the advantage of using multiple instances of the same individual in sequential frames.
If you’re looking to take advantage of the benefits of real-time face recognition, open-source projects can be a great starting point. Since the source code is published, you can see how it works and be sure that it doesn’t steal your data. In this article, we will help you navigate through the best open-source face recognition projects and show you why choosing open-source software is often the best option.
Face recognition systems vary in terms of their functionality and unique features. But generally, the process of automating your system with face recognition software requires the same basic steps.
First, you place a camera in your desired location and start streaming video. The camera should be placed in such a way that the lens gets enough light and the subject will be looking at the camera. If getting a complete look at the user’s face is not possible, the camera should have as clear a resolution as possible. In order to not overload the face recognition server, it's better to detect motion first.
Open-source software has a lot of advantages. First of all, with open-source code, you’re sure about how your data is treated. Secondly, open-source projects are often of higher quality.
Bugs are identified very quickly, as the code is being constantly reviewed by multiple developers. Thirdly, licence fees are lower, and such projects are usually developed in-house or by freely choosable IT service providers. It’s hard to find outdated open-source software, as it usually follows modern software development practices. Finally, open-source is considered to be the next level of code maturation. It allows developers to understand a code fluently in a few minutes and inspires them to work on it.
We studied github repositories of real-time open-source face recognition software and prepared a list of the best options:
This library supports different face recognition methods like FaceNet and InsightFace. It also provides a REST API, but it only supports verification methods, so you can’t create face collections and find a face among them. Even though it’s easy to start if you are a Python developer, it may be harder for others to integrate. The latest version as of the beginning of 2021 is 0.0.49.
This solution was only published on github in July 2020 and looks very promising. CompreFace made our best open-source face recognition projects’ list because it’s one of the few self-hosted REST API face recognition solutions that can be started with one docker-compose command. A REST API allows you to easily integrate it into your system without prior machine learning skills. Additionally, it’s scalable, so you can simultaneously recognize faces on several video streams.
CompreFace has a simple UI for managing user roles and face collections. It gives a choice between the two most popular face recognition methods: FaceNet (LFW accuracy 99.65%) and InsightFace (LFW accuracy 99.86%). It’s still in the active development phase, and the latest version as of the beginning of 2021 is version 0.5.
The main feature of this solution is that it uses their Python API and binary command line tool. Additionally, installation instructions to all main platforms and even a docker image for a fast setup are available on their github. Despite its popularity, the software has a few disadvantages. The last release was in 2018, and there have been no major improvements since then. It uses a fairly outdated face recognition model with only 99.38% accuracy on LFW and doesn’t have a REST API.
InsightFace is another open-source Python library that uses one of the most recent and accurate face recognition methods for face detection (RetinaFace) and face recognition (SubCenter-ArcFace). The accuracy of this solution is very high – 99.86% on the LFW dataset. The only disadvantage is that it’s not easy to use.
FaceNet is a popular open-source Python library. The accuracy of this method is quite high – 99.65% on the LFW dataset, which is great but not the highest. The disadvantages of this solution are that it doesn't have a REST API and that the repository is no longer supported (the last update was in April 2018).
This is another promising repository created in 2019 with active development starting in October 2020. Like CompreFace, this is a docker-based solution that provides a convenient REST API. The biggest advantage is that its developers sped up InsightFace’s recognition by a factor of three. The disadvantage of this solution is that it provides only embeddings of the face and doesn't give an API for actual face recognition, so you’ll need to have your own classifier. The repository still doesn’t have a license, so you’ll need to ask the author if you can use it. The latest version as of the beginning of 2021 is v0.5.9.6.
While the best open-source face recognition projects available on GitHub today are different in their features, they all have a potential to make your life easier. When choosing an open-source face recognition solution, we recommend compiling a list of criteria that are relevant to your business and choosing the option that prioritizes the same things you do. While there may be some features that are more important to you than others, each of the free open-source projects we’ve identified here will provide a high-quality real-time face recognition experience.