NTechlab is only a year old. Over the course of this year, the team won first place at the MegaFace Benchmark, an international face-recognition championship, beating out Google and Peking University, and launched the FindFace app, which allows users to search for profiles on vk.com based on a photograph. NTechlab employs 20 people and has 300 customer orders, as well as 30 successful tests and a cloud solution. Lab founder Artem Kukharenko told us how they managed to achieve their goal more efficiently than their competitors and create a product that has already enjoyed great commercial success.
For the NTechlab team, “picking one out of a billion” is not just talk. It takes less than a second to find a person in a database of one billion photographs. “We are the first to learn how to efficiently handle large picture databases,” says Artem Kukharenko. “This advantage is the key to solving real-world problems, such as finding a criminal in real-time or identifying a regular customer from store surveillance cameras.”
In addition to excellent picture database search capabilities, the algorithm has a very high level of recognition accuracy. The secret is in deep learning and the neural network architecture. The lab notes that when talking about accuracy, one has to understand how it is measured. It is usually lower for larger picture databases: finding one person in a million is much more difficult than finding one in a hundred. At the MegaFace Benchmark Championship, NTechlab demonstrated 73% accuracy with a database of one million pictures, whereas its system achieved 95% accuracy for a database of 10,000 pictures. As for verification, when two pictures have to be compared, the system works perfectly in 99% of cases.
The neural network is the heart and brain of the system. The most complicated tasks for artificial intelligence systems are those that a human brain handles easily. It’s easy for us to recognize faces in a crowd or identify a dog’s breed. Our decision is affected by a million factors and past experiences. Neural networks are based on the same model. Many mixed signals are inputted into the neuron. Based on those signals, it forms an output signal. If the system makes an error, the formula responsible for weighting the input signals is corrected. This kind of learning from mistakes improves accuracy.
Perhaps surprisingly, when we see a familiar face, our brain performs the same calculations as a machine would. The system receives the original image, e.g. a picture of a random passer-by is loaded into FindFace. First, a face is immediately identified in this picture. According to Artem Kukharenko, face recognition is the most resource-intensive operation in the entire process, however odd it may seem. Right now the team is trying to make the algorithm work faster and require fewer resources.
The second stage of recognition involves building a feature vector using a trained neural network. A feature vector consists of 80 numbers that contain information about the face. The numbers are similar for the same person and very different for two different people. The search system is built on these differences. At this stage, the system needs to identify information that will stay constant even if a person puts on glasses, grows a beard, or if there is a gap of several years between the two pictures.
The last stage includes searching for this “face” in the picture database. To undertake multiple studies and calculations aimed at creating a search algorithm, NTechlab’s team of developers needed efficient workstations. The choice was made to acquire Intel® Core™ i7 processors, which allowed NTechlab to create a truly efficient tool, which in turn allows efficient searches of a large number of pictures. If the database size increases tenfold, the search time does not increase by a factor of 10, but instead by only 1.5x.
The system has an impressive range of possible applications which may include anything from fun dating apps to government security systems. Security is a key area, and products developed by NTechlab stand out in the field. The existing systems solve the problem of comparing two pictures, such as when your passport photograph is compared to the one in the database at the airport. However, this is not sufficient for ensuring safety at a city-wide scale, for instance. NTechlab’s solution is able to process information from thousands of surveillance cameras in real time and find criminals in a huge megalopolis.
In retail, this system could replace discount cards. They could simply save the customer’s feature vector using his photograph. Next time he enters the mall, the surveillance camera will recognize his face. In addition to convenience, this solves the problem of storing personal data — stores will no longer have to collect first/last names and phone numbers.
The entertainment sector has implemented systems which search for visitors in picture databases. Visitors take selfies and send them to a bot, which then returns all of the pictures featuring the visitor. This system works well for festivals, weddings, and other events. According to Artem, the system has already enjoyed success at the Alfa Future People Festival and at an Australian amusement park.
NTechlab is not planning on simply coasting along after their first success and has already launched a cloud-based face recognition service. Any company can upload a picture database to the system and perform searches in it, as well as build it into its services. An SDK will soon be launched for third-party developers, and a few months after that, face recognition for factory security systems will go online.
At present, the lab is working on optimizing the algorithm and improving accuracy. The goal is to recognize emotions in photographs and develop a module that would allow the machine to distinguish between a real person and his/her photograph. Artificial intelligence has no chance of success without continuous development.