Facial comparison biometric system
Patent Information
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- UNISSEY
- Filing Date
- 2023-10-20
- Publication Date
- 2026-07-17
AI Technical Summary
Existing biometric systems face challenges in detecting injection attacks, such as pre-recorded videos or deepfakes, while maintaining a user-friendly experience, as current methods either require user interaction or suffer from performance limitations in varying lighting conditions.
A biometric system that dynamically varies acquisition parameters like zoom, clarity, exposure, and color saturation to detect injection attacks by analyzing the resulting changes in the biometric video flow, using a configurator to set these parameters and an analyzer to measure and compare these changes against expected values.
Effectively detects and bypasses injection attacks without requiring user interaction, providing robust protection and maintaining a seamless user experience across varying lighting conditions.
Abstract
Description
Title of the invention: Facial comparison biometrics system
[0001] The invention relates to the field of facial comparison biometrics. Facial comparison biometrics can be used by online applications or services, for example during an authentication or identity verification process.
[0002] The principle of these applications is to record or process in real time a selfie video of a user, in front of his computer or mobile phone, who is carrying out an authentication or identity verification process.
[0003] This video is analyzed by algorithms and / or human operators whose role is to authenticate the user, or to validate whether the user corresponds to an identity document provided in a remote identification process.
[0004] Algorithms and human operators also play a role in detecting attempted attacks that involve transmitting a video to the system showing another person, whom an attacker wants to impersonate. These algorithms are generally referred to as "Liveness Detection."
[0005] There are two types of attacks: - The presentation in front of the camera used for acquiring the biometric video stream of a photo, a video, a deepfake (a video modified by an artificial intelligence engine to superimpose the face of the user targeted by the attack onto the face of another person), or even a 3D mask of the user targeted by the attack. This type of attack is called a "presentation attack"; - The injection of a pre-recorded video, a photo, or a deepfake in real time directly into the system, replacing the video stream from the camera used to acquire the biometric video stream. For example, the attacker can use a virtual camera—that is, software that will be recognized as a camera by the operating system of the device used to acquire the biometric video stream—or directly alter the video stream of the physical camera, or use any other method to transmit the attack video stream, impersonating the camera's stream. This type of attack is called an "injection attack."
[0006] The invention relates to measures implemented to counter injection attacks. The solutions used to counter injection attacks consist of attempting to determine whether the received video is indeed a selfie video of the user physically present in front of the camera, and whether it is a pre-recorded video or a deepfake.
[0007] To achieve this, some systems will introduce a random specificity into the video. determined in real time. For example, the user is asked during recording to perform a specific action, or a series of specific actions, different each time. If the number of actions is sufficient, this introduces enough randomness to distinguish a previously recorded video. However, this type of defense is vulnerable to real-time deepfakes that can successfully perform the requested actions.
[0008] Beyond this inherent limitation, these methods offer a disastrous user experience: the user must understand and follow a series of instructions, more or less clear depending on the case, which inevitably generates friction and frustration. This represents a major drawback.
[0009] In order to offer a completely passive solution, that is, one that does not require the user to perform any particular actions, alternative systems propose introducing randomness into the video stream itself. For example, US patent 10,133,943 proposes significantly varying the color of a portion of the user's screen, which is reflected on their face and can be detected in the video acquisition stream.
[0010] Here again, the user experience is unacceptable. Indeed, the variations in color and brightness are significant and rapid, generating an intrusive and disturbing "strobe" effect. Moreover, in conditions of intense ambient light (for example, outdoors on a sunny day), reflections of the screen on the face are very difficult to detect, which limits the use of these techniques to very restricted lighting conditions, unless a significant degradation in performance is accepted.
[0011] The invention improves the situation. To this end, it proposes a facial comparison biometrics system, comprising a facial comparison biometrics server and one or more devices arranged to acquire a biometric video stream from a user. The facial comparison biometrics server includes a configurator arranged to send an acquisition configuration to said at least one device and an analyzer arranged to receive and process a biometric video stream from said at least one device in response to an acquisition configuration and to return an injection attack indicator.The facial comparison biometrics server is arranged to determine, for each acquisition configuration, at least one acquisition parameter condition chosen from the group including a zoom value, a sharpness value, an exposure value, a white balance value, and a color saturation value, to vary the value of at least one acquisition parameter condition in the acquisition configuration for which it was determined, to measure in the resulting biometric video stream at least one characteristic property of at least one condition. of acquisition parameter, and to return an injection attack indicator based on the measurement of at least one characteristic property.
[0012] This device is particularly advantageous because it allows for covert detection of injection attacks, which are both complex to detect and to circumvent when detected.
[0013] According to various embodiments, the invention may have one or more of the following features: - The configurator is designed to output an acquisition configuration in which a single acquisition parameter condition varies over time, - The configurator is designed to output an acquisition configuration in which several acquisition parameter conditions vary over time, - the analyzer is arranged to determine a distance between, on the one hand, the value measured in the biometric video stream of an acquisition parameter condition modified by the acquisition configuration used to acquire the biometric stream, and on the other hand, the value of this modified acquisition parameter condition in the acquisition configuration used to acquire the biometric stream, and - the analyzer is arranged to use as distance the Levenshtein distance, a distance based on the area under the curve, the Euclidean distance, the cross correlation, or the dynamic time warp.
[0014] The invention also relates to a facial comparison biometrics method comprising the following operations: a) Receive a biometric request via facial comparison from a device configured to acquire a biometric video stream from a user, b) Determine an acquisition configuration in which at least one acquisition parameter condition varies over time, said at least one acquisition parameter condition being chosen from the group comprising a zoom value, a sharpness value, an exposure value, a white balance value, and a color saturation value, to add the at least one acquisition parameter condition to the acquisition configuration for which it was determined, and send it to the device of operation a), c) Measure in the biometric video stream resulting from the acquisition with the configuration of operation b) at least one characteristic property of at least one acquisition parameter condition, and d) Return an injection attack indicator based on the measurement of at least one characteristic property of operation c).
[0015] According to various embodiments, the process according to the invention may have one or more of the following characteristics: - Operation b) involves varying a single parameter condition acquisition, - operation b) includes varying several acquisition parameter conditions, - operation c) includes determining a distance between, on the one hand, the value measured in operation c) and, on the other hand, the value of the corresponding acquisition parameter condition resulting from operation b), and - operation d) uses as distance the Levenshtein distance, a distance based on the area under the curve, the Euclidean distance, the cross correlation, or the dynamic time warp.
[0016] The invention also relates to a computer program comprising instructions for executing the process according to the invention, a data storage medium on which such a computer program is recorded and a computer system comprising a processor coupled to a memory, the memory having recorded such a computer program.
[0017] Other features and advantages of the invention will become more apparent upon reading the following description, taken from illustrative and non-limiting examples shown in the drawings: - Figure [1] represents a schematic diagram of a system according to the invention, - [Fig.2] represents an example of the implementation of a system operating loop of [Fig.1], - [Fig.3] represents an example of the implementation of a first operation of [Fig.2], - [Fig.4] represents an example of the implementation of a second operation of [Fig.2], - Figure 5 represents an example of the implementation of a third operation from Figure 2, and - [Fig.6] represents an example of the implementation of an operation from [Fig.5].
[0018] The drawings and description below contain, essentially, elements of a definite nature. They may therefore not only serve to better understand the present invention, but also contribute to its definition, if necessary.
[0019] This description may contain elements protected by copyright. The rights holder has no objection to the reproduction by any person of this patent document or its description, as it appears in the official files. Otherwise, the rights holder reserves all rights.
[0020] Figure 1 shows a schematic diagram of a facial comparison biometrics system 2 according to the invention. The system 2 comprises a facial comparison biometrics server 4 and a plurality of biometric video stream acquisition devices 6. Although several devices 6 are shown in the [Fig.1], there may only be one device 6.
[0021] In the example described here, the facial comparison biometrics server 4 is a server connected to the Internet. The term "server" refers to any type of server, that is, any computer connected to the Internet capable of running an application, in this case facial comparison biometrics, through interactions with the devices 6. Thus, this server can be a computer or a set of resources in the cloud. Similarly, the devices 6 can be desktop or laptop computers equipped with video streaming devices, or mobile phones such as smartphones with an integrated camera, or even a smartwatch, a tablet, or any other electronic device capable of connecting to the server 4 via the Internet and equipped with or controlling a video streaming device.
[0022] The facial comparison biometrics server 4 comprises a configurator 8 and an analyzer 10. The configurator 8 and the analyzer 10 access the memory of the facial comparison biometrics server 4 directly or indirectly. Although the configurator 8 and the analyzer 10 are presented as separate in the example described here, they can be implemented within a single functional unit. They can be implemented in the form of suitable computer code running on one or more processors. By processors, we mean any processor suitable for the calculations described below.Such a processor can be implemented in any known way, as a microprocessor for a personal computer, laptop, tablet, or smartphone; as a dedicated FPGA or SoC chip; as a computing resource on a grid or in the cloud; as a graphics processing unit (GPU) cluster; as a microcontroller; or in any other form suitable for providing the computing power necessary for the implementation described below. One or more of these elements can also be implemented as specialized electronic circuits such as an ASIC. A combination of processors and electronic circuits can also be considered. Processors dedicated to machine learning could also be considered.
[0023] Figure 1 represents, by means of arrows, the data flows that take place between the facial comparison biometrics server 4 and the device(s) 6. Once a device 6 has requested the facial comparison biometrics server 4 to perform an authentication or identification operation (operation not shown), the facial comparison biometrics server 4 executes its configurator 8 to determine one or more sequences of image acquisition parameters for the device 6 in question, enabling the detection of an injection attack. The device(s) 6 then acquire a biometric video stream, taking into account the configuration determined and transmitted by the configurator 8. After the acquisition of the biometric video stream, the device(s) 6 send the resulting stream to the analyzer 10 which determines whether a video injection attack has taken place given the configuration which was transmitted by the configurator 8 and the biometric video stream acquired by the device(s) 6.
[0024] Figure 2 represents an example of the implementation of an operating loop of the system of [Fig.1].
[0025] In a first operation 200, the configurator 8 receives an identification or authentication request from one of the devices 6, and in response, it executes a Select() function. The Select() function generates a sequence of parameters that will be transmitted as a configuration by the configurator 8, and which are used to generate variations in the acquired biometric video stream in order to detect an injection attack.
[0026] Thus, the invention is based on the use of the perturbation of certain video acquisition parameters relative to standard parameters in order to detect whether the acquired video reproduces the variations induced by these parameters.
[0027] Without limitation, these acquisition parameters may be one or more of the following: zoom, sharpness, exposure, white balance, color saturation, or any other parameter resulting in a measurable change in the acquired biometric video stream.
[0028] Thus, if it is zoom, the size of the face will change in the acquired biometric video stream, if it is sharpness, the sharpness will change in the acquired biometric video stream, if it is exposure, the brightness will change in the acquired biometric video stream, if it is white balance, the color cast will change in the acquired biometric video stream, and if it is color saturation, the color saturation will change in the acquired biometric video stream.
[0029] Therefore, if the biometric video stream transmitted to the analyzer 10 is injected, it will not be able to contain the modifications induced by the configuration. And even a live deepfake will almost certainly fail, because it will modify the biometric video stream unpredictably with respect to the modified acquisition parameters, given the nature of the processing by the artificial intelligence engines.
[0030] Advantageously, by defining as a configuration a series of parameter values which changes throughout the duration of the acquisition of the biometric video stream, it becomes possible to considerably strengthen the robustness of the biometric system by facial comparison 2.
[0031] Indeed, the configuration can then be seen as a form of steganographic message that the acquired biometric video stream must reproduce in order not to be considered an injection attack. For this purpose, the configurator 8 can be arranged so that the Select() function chooses randomly or pseudo- random a series of parameters forming the configuration, their value, as well as the duration of the configuration during which each parameter is used.
[0032] Advantageously, the configurator 8 can choose to modify several parameters at the same time, ensuring that these parameters are not correlated in their measurement. Thus, protection can be strengthened, since the injection can be detected on several different axes simultaneously.
[0033] Figure 3 illustrates an example of implementing operation 200. In a first operation 300, the configurator 8 executes a Rand() function that returns a vector S[] containing a sequence of values indicating which parameter is affected, what value that parameter should take, and for how long. Alternatively, the Rand() function can ensure that only one type of parameter is modified in a given configuration (i.e., either only the focus, or only the zoom, etc.), and / or that the durations for which the configuration parameters are applied are substantially equal, thus avoiding the need to pass the application duration of each parameter. Alternatively, only one of these two conditions is implemented by the Rand() function.
[0034] After operation 300, the configurator 8 executes a function Conf() which receives the vector S[] and transforms it into an operational configuration for the biometric video stream acquisition camera by the relevant device 6. In other words, the Conf() function returns a set of parameter sets that allow the acquisition by the camera to be executed according to a sequence in which the camera's configuration parameters C[] vary according to the values of the vector S[].
[0035] Finally, after operation 310, the biometric video stream is acquired in an operation 320 by a call to the execution of an Acq() function by the device 6, with the configuration parameters from operation 310.
[0036] Once operation 200 is completed, a measurement operation 210 follows, executing a Meas() function. The Meas() function can be executed within the device 6 or by the analyzer 10. [Fig. 4] shows an example of the implementation of the Meas() function by the analyzer 10. In an operation 400, the analyzer 10 receives from the device 6 the biometric video stream that was acquired in operation 320. Then, in an operation 410, the analyzer 10 executes a Capt() function that uses the biometric video stream F[] to determine a measurement of the parameter that was modified during the acquisition, so that this measurement can then be compared to the value that was expected given the configuration resulting from operation 310. The result of the Capt() function is a signal M[] that indicates the value of the parameter modified by the configuration C[].It appears that the Capt() function will vary depending on the type of parameter that is modified by configurator 8, and that if configurator 8 emits a configuration in which several types of parameters are modified for . At the same instant, the signal M[] will contain a signal for each type of parameter.
[0037] As mentioned above, the Meas() function can be executed by device 6, in which case operation 400 is immediate. Furthermore, operations 400 and 410 could be considered part of operation 320, since it is executed by device 6.
[0038] Finally, in operation 220, the analyzer 10 executes a function Analyz() to test the signal M[] and determine whether it indicates an injection attack or not. Thus, in operation 500, the analyzer 10 executes a function Quant() which receives the signal M[] and returns a distance value D between the parameter(s) in the configuration C[] and their values in the biometric video stream.
[0039] Figure 6 shows an example of an algorithm that implements the Quant() function. As can be seen in this figure, the signal M[] is represented in the upper diagram. In this example implementation, only the sharpness is changed; each value in the configuration set is maintained for a fixed time interval, as can be seen from the values on the time axis. Thus, the configuration applied here was "100100".
[0040] In the example described here, the Quant() function distinguishes three possible values for the modified parameter: a value above which the measurement indicates 1, a value below which the measurement indicates 0, and an indeterminate value x between these two thresholds. In the example described here, the Quant() function is configured to average the signal value between significant changes, in order to obtain the signal in the lower part of [Fig. 6], which is therefore a series of steps. In the example shown here, the analysis of this signal gives the following values for the biometric video stream from which it is taken: x 10010. The comparison between the value taken from the signal x 10010 and the configuration value 100100 shows 2 errors (x added at the beginning and the addition of a 0 afterward). The distance D is therefore 2 here. In this example, the Quant() function uses a binary word-for-word distance.This type of distance is well suited because it allows us to reflect the steganographic aspect of the effect of the configuration C[]. Advantageously, the Quant() function can include one or more preprocessing steps for filtering / denoising and normalization before calculating the distance D. The goal is to determine a measure of similarity between the scenario applied to the parameter (C[]) and the measurements taken (M[]).
[0041] It appears that the Quant() function is similar to a similarity measure performed by calculating a distance, calculated in our implementation by denoising, normalizing, and calculating a Levenshtein distance. Alternatively, another distance could be used, for example, based on the area under the curve, or any other variant allowing the calculation of a distance between the signal M[] and what it ideally should have been. Any other distance measure could be used, for example and, without limitation, Euclidean distance, cross correlation, or dynamic time warp (“DTW” in English).
[0042] As with the Capt() function, the Quant() function will vary depending on the type of parameter that is modified by the configurator 8, and if the configurator 8 emits a configuration in which several types of parameters are modified for the same instant, the Quant() function will return a distance for each type of parameter.
[0043] Finally, the analyzer 10 executes a Return() function which returns an indicator of whether or not an attack was carried out by injection in the biometric video stream acquired from the distance D. For example, it may be a thresholding which defines the maximum number of errors tolerated in the signal M[].
[0044] The injection attack indicator can also be coupled with a liveness detection measure (for example based on rPPG or other) for the provision of a result by the biometrics server by facial comparison to the device 6 concerned.
Claims
Claims
1. A facial comparison biometrics system, comprising a facial comparison biometrics server (4) and one or more devices (6) arranged to acquire a biometric video stream of a user, the facial comparison biometrics server (4) comprising a configurator (8) arranged to issue an acquisition configuration to said at least one device (6) and an analyzer (10) arranged to receive and process a biometric video stream by said at least one device (6) in response to an acquisition configuration and to return an injection attack indicator, the facial comparison biometrics server (4) being arranged to determine, for each acquisition configuration, at least one acquisition parameter condition chosen from the group comprising a zoom value, a sharpness value, an exposure value, a white balance value, and a color saturation value,to vary the value of the at least one acquisition parameter condition in the acquisition configuration for which it was determined, to measure in the resulting biometric video stream at least one characteristic property of the at least one acquisition parameter condition, and to return an injection attack indicator based on the measurement of the at least one characteristic property.,
2. The system of claim 1, wherein the configurator (8) is arranged to output an acquisition configuration in which a single acquisition parameter condition varies over time.
3. The system of claim 1, wherein the configurator (8) is arranged to output an acquisition configuration in which several acquisition parameter conditions vary over time.
4. System according to one of the preceding claims, in which the analyzer (10) is arranged to determine a distance between on the one hand the value measured in the biometric video stream of an acquisition parameter condition modified by the acquisition configuration used to acquire the biometric stream and on the other hand the value of this acquisition parameter condition modified in the acquisition configuration used to acquire the biometric stream.
5. System according to claim 4, in which the analyzer (10) is arranged to use as distance the Levenshtein distance, a distance based on area under the curve, Euclidean distance, cross-correlation, or dynamic time warping.
6. A method of biometrics by facial comparison comprising the following operations: a. Receiving a request for biometrics by facial comparison from a device arranged to acquire a biometric video stream of a user, b. Determining an acquisition configuration in which at least one acquisition parameter condition varies over time, said at least one acquisition parameter condition being chosen from the group comprising a zoom value, a sharpness value, an exposure value, a white balance value, and a color saturation value, to add the at least one acquisition parameter condition to the acquisition configuration for which it was determined, and sending it to the device of operation a), c.Measure in the biometric video stream resulting from the acquisition with the configuration of operation b) at least one characteristic property of the at least one acquisition parameter condition, d. Return an injection attack indicator based on the measurement of the at least one characteristic property of operation c).
7. The method of claim 6, wherein step b) comprises varying a single acquisition parameter condition.
8. The method of claim 6, wherein step b) comprises varying a plurality of acquisition parameter conditions.
9. Method according to one of claims 6 to 8, in which operation c) comprises determining a distance between on the one hand the value measured in operation c) and on the other hand the value of the corresponding acquisition parameter condition resulting from operation b).
10. The method of claim 9, wherein step d) uses as the distance the Levenshtein distance, a distance based on the area under the curve, the Euclidean distance, the cross-correlation, or the dynamic time warping.
11. A computer-implemented computer program comprising instructions for carrying out the method according to one of claims 6 to 10.
12. Data storage medium on which the computer program according to claim 11 is recorded.