For the first challenge, we trained a neural network in two steps:
In the first step, we performed training on a very large, publicly available image dataset from the internet.
In the second step, we refined the model by training with images of volunteers that were taken with the customer's camera system.
As a result, the trained neural network learned by itself which features are important for determining the similarity of faces. It can now handle faces it hasn't seen before. So for a new company that wants to use face recognition, the neural network does not need to be retrained. All that is needed is to use the camera system to capture images of people who are authorized to enter and store them in the database. If they are then standing in front of the door, the system will recognize them.
For solving the second challenge, preventing unauthorized access by showing photos of authorized people, we chose classical computer vision methods. This approach takes advantage of the fact that a person's face is captured by two cameras each looking at the face from different angles. In simple terms, this method works by measuring the distances between certain points on the face. From the differences between the two images, one can conclude whether the face is real, i.e. three-dimensional, or whether it is a flat photo of a person.