Follow
I checked dozens of free and paid facial recognition services. Here’s what I learned
After extensively researching the best software for face recognition, I came to the conclusion that almost all the articles currently published are just copied and pasted from advertisements. Even worse, most of these articles recommend outdated libraries and services that are not supported anymore. Some of their suggested solutions can’t even run on modern operating systems!
I promise, this is not one of those articles. I’ve done my best to make a comprehensive list of all the modern face recognition solutions on the market. Surprisingly, half of the promising free solutions only started their active development in 2020! I found it somewhat difficult to adequately study paid solutions for enterprises as they don’t give much information for ordinary people, so I imagine this article will be most useful for small and medium-sized companies, and of course DIY enthusiasts.
The first thing you should know is that there’s a huge variety of facial recognition solutions. Some of them are ready to use without machine learning skills, and others need much more time and expertise.
I would split facial recognition services into three types, each with its own advantages and disadvantages. Let’s take a look:
- Software as a Service (SaaS)-based facial recognition engines. In this case, a face recognition service provider handles everything from keeping up with machine learning technology to managing and supporting high-load servers. All you have to do is to integrate the software with your IT systems via an API. Despite their many advantages, these solutions also have lots of downsides. First of all, this is the most expensive option, as everything is handled by the provider. You also need a stable Internet connection, as you will need to send heavy images to a server somewhere on the Internet. There could also be security issues since you have to send your photos to a third-party company and can’t control what they do with them.
- Self-hosted REST API solutions. Such systems can be deployed both on premises and in the cloud. They don’t have the same problems as SaaS products. You store data on your own servers (or in your private cloud), so you can control where it goes, and you can even create a system that works offline. Of course, in exchange, you will have to manage the servers on your own, too. But in most cases, servers are delivered as docker containers, so it’s quite easy to orchestrate them. Self-hosted solutions, while not as expensive as their SaaS counterparts, are still pretty pricey. Fortunately, free and open-source self-hosted REST API solutions are beginning to appear. They are not as mature as other solutions, but they are very promising.
- Open-source frameworks and libraries. These are typically free, as many researchers are happy to publish the code from their state-of-the-art approaches. Of course, you will need at least some experience with machine learning to use this kind of software. You will also need to spend some time to RESTify it if you want to integrate these solutions with your custom apps. The upside is that you will get a state-of-the-art solution that you know inside and out.
As you can see, it’s important to know your resources. Face recognition used to be very expensive for ordinary people. There are some services that can start at $86.40 per day or go up to $30,000 per year per camera for facial recognition from streaming video (see prices for individual solutions below). This is probably why we only hear about face recognition when the government or big companies make use of it.
But this is less of an issue than it used to be, as there is an increasing number of free options. They are at various stages of maturity, but they’re not just for niche enthusiasts; they’re ready for use at small and mid-sized businesses.
Before we get down to comparing the best facial recognition software, I want to clarify that I’ve chosen accuracy as a key parameter for my research. There are plenty of benchmarks that solutions can use to demonstrate their high standards. Just as there are new face recognition solutions coming to the market every year, the performance benchmarks are constantly changing too. So it’s often difficult to compare even two-year-old solutions with new ones. However, there is one very old, but still popular benchmark: Labeled Faces in the Wild (LFW). Fortunately, all of the solutions on our list shared results from this benchmark, so I was able to compare their accuracy.
This alphabetical list of free up-and-coming solutions will help you get started.
- Ageitgey/face_recognition (GitHub Repository)
This is probably the most popular free face recognition library, as it has 45k stars on GitHub. There are two options for using it; you can either use their Python API or their binary command line tool. There are installation instructions for all main platforms and even a docker image for fast set-up. While there are good reasons for its popularity, there are serious downsides you must consider if you want to use it. For starters, the last release was in 2018 (three years in the AI world is a lot), and there are still commits in the repository, but it looks like there are no big improvements. Second, it uses a pretty outdated face recognition model that’s only 99.38% accurate on LFW (we can do better in 2022). Finally, it’s not as easy to integrate with this solution since it doesn’t have a REST API.
2. CompreFace
This solution was only published on GitHub in July 2020 and has just about 2000 stars, but it looks very promising. CompreFace is one of the few self-hosted REST API face recognition solutions on this list — you can start it using just one docker-compose command. Because it has a REST API, you don’t need to be a machine learning engineer to implement it; it’s very easy to integrate it into your system. The solution is scalable, so you can simultaneously recognize faces on several video streams. CompreFace also has a straightforward 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%). As of the middle of 2022, the latest version is 1.0.0.
3. DeepFace
This framework was published on GitHub in February 2020 and already has about 4,100 stars, probably because it has the same name as Facebook’s DeepFace face recognition method. This library also supports different face recognition methods like FaceNet and InsightFace (among others, but FaceNet and InsightFace are the most accurate). It also provides a REST API, but it only supports verify methods, so you can’t create face collections and find your face among them. Even though it’s quite easy to start if you are a Python developer, it’s pretty complicated for everyone else. As of the middle of 2022, the latest version is 0.0.75.
4. FaceNet
FaceNet is a face recognition method created by Google researchers and the open-source Python library that implements it. The repository has 12,600 stars, and lots of “how to” articles use it as a base library. Even though this method is quite old, some new researchers still use it (most recently for face recognition in masks). The accuracy of this method is quite high (99.65% on the LFW dataset, which is definitely not bad, but it’s not top of the line). The disadvantages of this solution are that it doesn’t have a REST API and that the repository isn’t supported anymore (the last major update was in April 2018).
5. InsightFace
InsightFace is another open-source Python library with 12,100 stars. It uses one of the most recent and accurate methods for face detection (RetinaFace) and face recognition (SubCenter-ArcFace). As of the middle of 2022, this repository is very active. This solution is also very accurate — 99.86% on the LFW dataset. The only disadvantage is that it’s not easy to use. If you’re looking for solutions that use InsightFace, provide a more convenient REST API, and can run from a docker container, try CompreFace and InsightFace-REST.
This is another promising repository created in 2019, although active development only started in October 2020. Like CompreFace, this is a docker-based solution that provides a convenient REST API. The biggest advantage is that the developers sped up InsightFace’s recognition by a factor of three! The downside of this solution is that they only provide face embeddings and don’t give the API for actual face recognition, so you’ll need to have your own classifier. Also, 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 middle of 2022, is v0.7.0.0.
So that covers the best software solutions for face recognition, but of course there are paid options. As they are not open source, it’s often difficult to compare them — you don’t know which methods they use, and they don’t usually provide their accuracy on public datasets.
So I tried to gather information about pricing plans, additional services, and the integration SDK languages each solution supports (which is very helpful when you need to merge the service to your application).
As with the free recognition solutions, I didn’t just blindly list all the companies I happened to find. I only included solutions with specific information on their landing pages and other documentation. I even tried registering for them to see what other information that would unlock. If there still wasn’t sufficient information to make a valid comparison, I left them off this list.
Amazon Rekognition offers a generous free trial plan for 12 months and 5,000 free recognitions per month on their SaaS version. It’s unclear whether or not there is a self-hosted version. It’s very easy to start developing if you use one of the three programming languages for which they provide SDKs (Java, .Net, and Python). The price depends on the number of recognitions per month and starts at $1 per 1,000 recognitions. Amazon also provides a bunch of additional services like emotion recognition, landmark detection, age estimation, and gender recognition.
Deep Vision AI provides both SaaS and self-hosted versions. But as there is no pricing information on the website, I assume they work only with enterprise-level companies. There is no information on which programming languages they provide SDKs for. In addition to face recognition, there are also age estimation and gender recognition services.
3. FaceFirst
There is almost no available information about FaceFirst, even though it is often on lists of the best face recognition services. I assume that they work only with enterprises and only have a self-hosted version. They do provide an age estimation service.
4. Face++
Face++ has an unusual free plan — they offer unlimited requests, but only three per second, and they are shared among all free users, so there is no guarantee that your application will work at any given moment. You should also know that paid requests cost twice as much as other leading services — Amazon and Microsoft are both $1 for 1,000 recognitions. However, Face++ supports the largest variety of SDKs — Python, PHP, Java, Javascript, C++, Ruby, iOS, and Matlab — and has lots of additional services (emotion recognition, landmark detection, age estimation, and gender recognition). They also support both SaaS and self-hosted versions. But you need to consider that, as of the middle of 2022, Megvii, the Face++ parent company, was sanctioned by the U.S. government due to the use of its technology in human rights abuses against Uyghurs in Xinjiang.
5. FaceX
FaceX is a new company out of India founded in 2018 that provides both SaaS and self-hosted versions. They don’t have a free plan and offer only monthly subscription pricing that starts from 300 requests per day for $15/month. I haven’t found any information about SDKs for programming languages, but FaceX comes along with a variety of additional services like landmark detection, age estimation, and gender recognition.
6. Kairos
Kairos offers a free trial for 14 days but it has a maximum limit of 10,000 requests. After that, you will need to pay for both subscriptions starting at $19 per month and $20 per 1,000 recognitions, which is quite a lot compared to their competitors. The upside is that they provide SDKs for PHP, JS, .Net, and Python languages and additional services like landmark detection, age estimation, and gender recognition. They also provide both SaaS and self-hosted versions.
7. Machine Box
Machine Box’s license for non-commercial usage is quite interesting — they provide a self-hosted solution which is free as long as you save only 100 faces in the face collection. Its other advantage is the SDK for Go language, although of course that’s only an upside if you use Go. It is only scalable when you have a commercial license. As this solution is the only self-hosted solution I managed to test, I can say that it’s quite easy to start and integrate. The free version looks even simpler than some open-source face recognition solutions that provide scalability and allow commercial usage.
8. Microsoft Azure Cognitive Services Face API
Microsoft offers a very generous free plan — you can make 30,000 free requests per month with a limit of 20 requests per minute. Keep in mind that there is no SLA in this case. For paid requests (with SLA), the price depends on the number of recognitions per month and starts at $1 per 1,000 recognitions. There are quite a lot of supported SDKs: .Net, Python, Java, Node.js, and Go. Microsoft offers both SaaS and self-hosted versions and lots of additional services like emotion recognition, landmark detection, age estimation, and gender recognition.
9. Paravision
Paravision is a face recognition company targeting enterprises. They provide only self-hosted solutions, and they don’t say one way or the other if they have additional services. Paravision has SDKs for C++ and Python. And, as per usual for such companies, there is no information about pricing.
10. Trueface
Trueface is another face recognition company serving enterprises. They provide only self-hosted face recognition solutions with additional features like landmark detection, age estimation, and gender recognition. Supported SDKs are for C++ and Python. Trueface’s pricing is also a mystery.
The face recognition industry is still actively developing in the middle of 2022. Face recognition algorithms are becoming more and more accurate, so there is no sense in using old services that are no longer supported. Using face recognition software is becoming more affordable because of new open-source solutions. There are plenty of opportunities to use this promising technology, and although comparing them can be difficult, there’s sure to be an option that works right for you.