FindFace, an out-of-the-box solution by NtechLab, allows recognizing human faces and silhouettes, cars, and license plates. It is used in areas such as access control, fraud prevention, public safety, and behavior analysis.
The FindFace database stores image vectors—basically arrays of numbers. At the input, the system accepts a video stream from security cameras. The system recognizes target images such as faces, silhouettes, car models, and license plates. It also records new vectors. These vectors are then compared with the number arrays that are already in the database. Finally, the system displays search results.
In 2016, FindFace was a working prototype that encountered problems like database corruption and lack of scalability. At the same time, new functionality and reliability requirements arose. To make FindFace a scalable out-of-the-box solution, the developers had to do the following:
To choose the best performing solution, the NtechLab team compared technologies from different vendors. The NtechLab developers wrote a function for comparing two vectors and tested it on databases of up to 10 million images. Tarantool showed the best performance in the comparative tests.
As of today, there is a Tarantool-based biometric database that stores biometric samples (feature vectors) and face detection events.
The production version uses sharding via a dedicated service that connects to Tarantool, that is, this service has addresses of all Tarantool servers, and it determines which instances should be accessed for which query. For heavy demands and fault tolerance, read-only replicas can be added. They partly relieve the master, taking care of the search queries. Developers use Tarantool as a repository with quick access to a certain range of data entries and the ability to filter it with indexes.
As a result, searches in the database of biometric vectors can be performed in the following configurations.
The FindFace service can process information from cameras in less than 0.5 seconds, even if the database contains millions of images. A full walk through the database in search of a similar image no longer overloads the DBMS and is now six times faster. Note that Tarantool incorporates several functions: saving images to the database, searching through the databases, and implementing direct queries to the databases.
Recognition and search speed for a single image from a database with a billion images using the quick index.
More than a billion images can be stored in Tarantool.
images per second are processed during search and verification with “regular index” on one Tarantool shard. In live projects, the number of shards can go up to hundreds and thousands with parallel processing.
Tarantool experts will contact you shortly