Human-centric
AI Computer Vision
3DiVi Inc., founded in 2011, is one of the leading developers of AI and machine learning (ML) technologies for computer vision.

Face Recognition in Flutter: [Not So] Deep Dive Into pub.dev

Finding a reliable Face Recognition solution on pub.dev is not as easy as it seems. Sure, a quick search for “Face Recognition” brings up 100+ plugins, but most of them aren't exactly what you need.

face_sdk_3divi seems to be the only pub.dev plugin that allows you to immediately test Face Recognition. Top-rated NIST technology, right in your smartphone. In just 15 minutes. Without having to register somewhere or talk to sales people.

So, you're a Flutter developer and you need to integrate Face Recognition into your app. You might decide to start by going to good old pub.dev and typing “face recognition” into the search. And what will be there? Well, there's this:

120+ plugins at your service, it would seem that the choice is huge. But it's not.

Absolutely irrelevant plugins. There are plugins like fluent_ui, material_symbols_icons, carbon_icon in the search output for some reason. These are plugins that have NOTHING to do with Face Recognition and they make up about 60% of the search output. It's very funny that Google didn't do a proper search for one of its affiliate sites.
Irrelevant plugins. Here are some plugins where is no Face Recognition, but something remotely similar. This is how people confuse the concepts of Face Detection and Face Recognition. Using Face Detection, we want to establish where the faces are located in the image. We process the image with Face Detector and get a set of bounding boxes (bboxes). A bbox is simply a rectangle bounding a face in the frame.

Face Recognition solves a completely different task. Actually, there are even two tasks - Face Identification and Face Verification. Face Verification estimates whether the same person is presented in two images. Face Identification estimates whether some person is among our database of faces. Thus, Face Detection is an integral part of any Face Recognition Pipeline.
Because of this massive misconception, we have a large number of plugins which give you Face Detection but not Face Recognition. For example, there are a whole bunch of wrapper plugins over Google Vision API / Google ML KIT (google_ml_vision, google_ml_vision, google_ml_face_detection, google_mlkit_face_mesh_detection, google_vision, google_ml_kit), Apple Vision (apple_vision) and similar solutions. And there is no Face Recognition at all.
Also there are a few packages for solving the related task of Liveness Detection/Face Anti-Spoofing (but not Face Recognition!): mnc_identifier_face, livelyness_detection, live_photo_detector, etc.
Face Recognition from the smartphone vendor. It seems that all modern smartphones already have biometrics (Fingerprint Recognition and/or Face Recognition). This is a great choice if you only need Face Recognition to authenticate the user at app startup. But here's a short list of things YOU CAN NOT do with on-board biometrics:
  • Take biometric template and use it somewhere other than this device
  • Build any large database of templates and use it for Face Identification.
  • Customize the Face Recognition algorithm, for example, change the threshold for Matching Score
  • Get information about the quality of the Face Recognition algorithm. Seriously, try to find an answer to the question “What is the FAR/FRR of Face Recognition on my phone?”.
There are face_recognition, local_auth, nevis_mobile_authentication_sdk, etc. packages to work with built-in Face Recognition.
Real Face Recognition. And finally, we've gotten to what we need, real Face Recognition. The absolute majority of plugins in this category are commercial solutions. And that means that you need to get a license file/token/activation code from the creators of the package. Typically, this happens like this:
  • You go to the Face Recognition vendor's website
  • Fill out an application form there. You'd better specify your corporate e-mail address, because people are usually not very happy with nonames from google.com.
  • You wait until they contact you and offer you a trial to test the plugin. In the best case, the trial will drop to your e-mail after you fill out the form.
  • Congratulations, you have left your e-mail address to some people on the Internet, and now they will spam you for the rest of eternity!
Also, among commercial solutions there is a specific group of plugins. These plugins are customized for the KYC case and use Face Recognition to compare selfies and photos from ID. These include blinkid_flutter, shuftipro_demo_sdk, vcheck, flutter_kyc_qitech, reverify, etc.
And so, now we can talk about Face Recognition plugins, less customized KYC or other business cases. Let's take a look at the ones I found most interesting and relevant.
Plugin
Description
This and some other theme plugins are from the vendor Regula. Mobile SDK provides several features including Face Detection, Face Recognition (1:1 and 1:N) and Liveness Detection.
There are no tools to estimate Face Quality and other attributes (gender, age, emotion). You need to get app_id and app_key from the vendor.
Part of a large Huawei ecosystem that can give you a lot, but will also require a lot of time to figure out.
You need to register in Huawei AppGallery. The framework is primarily focused on Huawei devices and EMUI. There is no Face Identification (1:N matching).
This and some other plugins belong to the Accura Scan vendor. This plugin provides Liveness Detection and Face Verification.
No Face Identification (1:N matching). You need to get a license from the vendor for testing.
Our Mobile SDK. Out of the box you can immediately evaluate Face Detection and Face Recognition (1:1). And then, if you like what you see - write to us, we'll give you a trial with which you will open for you
  • Face Identification (1:N)
  • Liveness / Face Antispoofing algorithms to prevent fraud
  • Face Image Quality to enhance recognition accuracy
  • Age, Gender and Emotions Estimation
  • and much more!
And, that's all, our brief review of Face Recognition plugins on pub.dev has come to an end. What we have found out:
  • Really provides Face Recognition not so many packages.
  • Almost all such plugins are restricted by vendor licensing
  • face_sdk_3divi is the best first step you can take when dealing with Face Recognition on Flutter.