Embedded face recognition

By using homogeneous transformation to align face images and generate unique numerical representations in embedded face recognition systems, combined with dimensionality reduction and similarity threshold matching, the problems of inaccurate alignment of non-frontal images and complexity of high-dimensional comparisons are solved, thereby improving recognition accuracy and efficiency.

CN121789254APending Publication Date: 2026-04-03INFINEON TECHNOLOGIES AMERICAS CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511361148.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-09-26
Filing Date
2025-09-23
Publication Date
2026-04-03

AI Technical Summary

Technical Problem

Existing embedded face recognition systems are inaccurate when processing non-frontal images, and as the number of stored embeddings increases, the computational complexity of the system in high-dimensional vector comparisons increases, affecting real-time performance.

Method used

Homogeneous transformation is used to align the detected face images, and a unique numerical representation embedding is generated through preprocessing. Dimensionality reduction techniques are combined to improve recognition efficiency, and a similarity score threshold is used for user matching.

Benefits of technology

It improves the recognition accuracy and embedding comparison efficiency of non-frontal face images, and enhances the robustness and real-time performance of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121789254A_ABST
    Figure CN121789254A_ABST
Patent Text Reader

Abstract

An embedded face recognition system receives captured images from an image capture device. And extracting a face image from the captured image. The extracted face image is aligned with a reference face model. Face embedding is generated using a machine learning model and based on the aligned extracted face image. An individual associated with the face embedding is identified based on the database of the generated face embedding and the existing face embedding.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The aspects and embodiments disclosed herein relate to embedded face recognition. Background Technology

[0002] Facial recognition (Face ID) systems use computer vision and machine learning techniques to identify or verify a person's identity based on their facial features. Embedded Face ID systems (i.e., Face ID systems implemented on embedded devices) have gained significant traction in various applications due to their portability and convenience. These systems integrate sophisticated facial recognition algorithms into compact, frequently moving devices, enabling real-time identification in diverse environments, from unlocking smartphones to security checkpoints. Attached Figure Description

[0003] The various aspects and embodiments of this disclosure will be more fully understood through the following detailed description and the accompanying drawings, which illustrate various aspects and embodiments of this disclosure. However, these aspects and embodiments should not be construed as limiting this disclosure to any particular aspect or embodiment, but are intended for explanation and understanding only.

[0004] Figure 1 An example computing system according to an embodiment of the present disclosure is shown.

[0005] Figure 2 Embodiments according to this disclosure are shown. Figure 1 An example of a continuous face detection component in an embedded face recognition system.

[0006] Figure 3 Embodiments according to this disclosure are shown. Figure 1 An example of an embedded face recognition system with an on-demand face recognition component.

[0007] Figure 4 A flowchart of an example method for embedding face recognition according to an embodiment of the present disclosure is shown.

[0008] Figure 5 This is a block diagram illustrating an exemplary computer system according to an embodiment of the present disclosure. Detailed Implementation

[0009] This disclosure relates to embedded face ID systems. With significant advancements in various applications, embedded face ID systems combine processing steps including face detection, landmark estimation, alignment, and recognition. Face alignment normalizes the detected image using a similarity transform based on five facial landmarks, while recognition compares newly captured face embeddings with a database of stored embeddings.

[0010] However, two major technical challenges hinder the efficiency and accuracy of embedded face ID systems on devices with constrained computing resources. First, current alignment methods assume coplanarity and uniform scaling of feature points, which proves insufficient for non-frontal capture and leads to suboptimal alignment for angular viewpoints. Second, as the number of stored embeddings increases, the system's performance in high-dimensional vector comparisons grows linearly, resulting in increased processing time and resource consumption. This computational complexity adversely affects real-time performance. Therefore, enhanced alignment techniques are needed to handle non-frontal images and employ more efficient embedding comparison methods to improve the overall robustness, accuracy, and efficiency of these systems.

[0011] The aspects and embodiments of this disclosure address these and other limitations of the prior art by providing embedded face recognition that uses a homogeneous transform to align a detected face image and subsequently preprocesses the embeddings of the detected faces to allow for more efficient face recognition. Specifically, the system for embedded face recognition continuously receives images and detects the presence of faces (e.g., detected faces) in the images. The system aligns the detected faces by using a homogeneous transform and identifying a set of parameters that align the detected faces with a reference face using one or more features of the detected faces (e.g., left eye, right eye, and center of the lips). For the aligned detected faces, the system generates embeddings (e.g., detected face embeddings) that represent unique numerical representations of the face features. The system also performs dimensionality reduction on the embeddings for faster comparison with embeddings of known users (or registered users). The system calculates a similarity score between the detected face embedding and one or more representative embeddings within each cluster of the known user (or registered user) embeddings. The system compares each calculated similarity score with a predefined similarity score threshold assigned to each known user (or registered user). If the calculated similarity score associated with a known user satisfies (e.g., exceeds) a predefined similarity score assigned to a known user, the system determines that the detected face belongs to a known user.

[0012] The aspects of this disclosure overcome these and other shortcomings by improving the accuracy of face recognition from non-frontal face images and the efficiency of comparative embedding.

[0013] Figure 1 This is a simplified diagram of a computing system 10 according to an embodiment of the present disclosure. The computing system 10 may be a server, workstation, personal computer (PC), mobile phone, personal digital assistant (PDA), or any other suitable computing device. The computing system 10 includes a computing processing device (also referred to as a processing device) 50, a capture device 170, and a storage device 180.

[0014] Processing device 50 includes various components capable of executing instructions encoded with arithmetic, logic, or I / O operations. Processing device 50 may be a single-core or multi-core processor capable of executing multiple instructions simultaneously. Processing device 50 may be implemented as a single integrated circuit, two or more integrated circuits, or a component of a multi-chip module. Storage device 180 may include volatile and / or non-volatile memory, such as RAM, ROM, EEPROM, or any other device capable of storing data.

[0015] The computing device 50 includes an embedded face recognition system 100. The face recognition system 100 includes a continuous face detection component 110 and an on-demand face recognition component 150 that jointly provide face recognition.

[0016] The continuous face detection unit 110 continuously receives input (e.g., captured images) from the image capture device 170 (e.g., a camera) coupled to the computing device 50, and performs detection preprocessing, bounding box and feature point detection to initially determine whether a face exists in the captured image. Upon detection of a face, the on-demand face recognition unit 150 aligns the detected face and performs face ID preprocessing to prepare an aligned face image for recognition. The on-demand face recognition unit 150 generates an embedding of a unique digital representation of the face features and performs post-processing to refine this representation. The on-demand face recognition unit 150 compares the embedding of the detected face (e.g., the detected face embedding) with the embeddings of known faces stored in a database of registered faces 185 in the storage device 180.

[0017] The database of registered faces (185) includes embeddings of each user registered in face recognition or detection (e.g., face recognition). During registration, each user provides multiple images, each with different orientations of the face (e.g., yaw, pitch, and roll). For each image of a user, the face in the corresponding image is detected and aligned, high-dimensional features are extracted and compressed into a compact, fixed-length vector, which serves as a unique digital representation of the face (e.g., embedding). A unique similarity threshold (e.g., a per-user similarity threshold) is assigned to each user to distinguish them from other similar registered users (e.g., siblings). In some embodiments, the per-user similarity threshold is a threshold that uses the cosine distance between the user and each of the other users to distinguish the user from all other users.

[0018] Figure 2 Based on the embodiments of this disclosure and Figure 1A simplified diagram of a continuous face detection component 200, similar to the continuous face detection component 110. The continuous face detection component 200 may include a detection preprocessing module 210, a face detection model 220, and a feature point detection model 230. The preprocessing module 210 and similar modules include executable instructions processed and executed by one or more processing devices.

[0019] The detection preprocessing module 210 resizes the image to match the input size required by the neural network model trained for face detection (e.g., face detection model 220), while maintaining image integrity and avoiding distortion. After resizing, the detection preprocessing module 210 performs image normalization based on the image's bit depth or precision to adjust the image's pixel values ​​to fit within a specified input range. For example, a 32-bit floating-point (fp32) image will typically be normalized to the range of -1 to 1. Image normalization may include zero-centering or utilizing different mean and standard deviation values. The detection preprocessing module 210 converts the image (after resizing and normalization) to the desired precision to ensure that the output bit depth matches the requirements of the face detection model 220.

[0020] Face detection model 220 scans the entire image using a sliding window and / or predefined anchor boxes to generate multiple potential bounding boxes of different sizes and locations. Each of these bounding boxes is assigned a confidence score, indicating the likelihood that the bounding box contains a face. In some embodiments, one or more techniques, such as non-maximum suppression (NMS), systematically select high-confidence bounding boxes while removing those that significantly overlap according to a predefined confidence threshold, thereby ensuring that each face is represented by only one bounding box to eliminate redundancy. Each bounding box, defined by its coordinates within the original image, serves as a guide for extracting the sub-region containing the detected face. Face detection model 220 uses the coordinates of each bounding box (typically the x and y coordinates of the top-left corner, and width and height; other coordinate systems or reference locations may be used) to isolate (e.g., crop) the corresponding portion of the original image, thereby producing a separate face image containing only the detected faces.

[0021] Feature point detection model 230 identifies key facial feature points (e.g., facial feature points for each eye, each corner of the mouth, and the nose) in a face image. Feature point detection model 230 processes the face image through multiple layers, extracting relevant facial features and patterns for predicting the precise locations of key facial feature points within the face image. Key facial feature points are represented as coordinate points relative to the face image. The output of feature point detection model 230 consists of coordinate values, effectively mapping the key facial features of the face in the face image.

[0022] In some embodiments, the face detection model 220 and the feature point detection model 230 can be integrated into a single unified model that simultaneously detects faces and facial feature points. In some embodiments, the face detection model 220 and the feature point detection model 230 can operate as separate sequential components: the face detection model 220 first identifies faces and generates bounding boxes, followed by the feature point detection model 230, which processes these cropped face regions (associated with the bounding boxes) to identify specific facial feature points.

[0023] Figure 3 Based on the embodiments of this disclosure and Figure 1 A simplified diagram of an on-demand face recognition component 300, similar to the on-demand face recognition component 150. The on-demand face recognition component 300 includes a face alignment module 310, a face ID preprocessing module 320, an embedding generation module 330, and an embedding postprocessing module 340. The face alignment module 310, face ID preprocessing module 320, embedding generation module 330, embedding postprocessing module 340, and similar modules include executable instructions processed and executed by one or more processing devices.

[0024] The face alignment module 310 uses a similarity transformation to align faces (e.g., detected faces) in a face image. A similarity transformation is a method of preserving the shape of an object (e.g., a detected face) during rotation, translation, and uniform scaling. Rotation refers to rotating the object by a certain angle. Translation refers to offsetting or moving the object along the x and y axes. Uniform scaling refers to scaling the object by the same factor in both the x and y directions while maintaining the aspect ratio. These operations (rotation, translation, and scaling) can be combined into a single transformation affecting a set of points or an image, typically two-dimensional (2D). This transformation can be represented as:

[0025]

[0026] This transformation formula encompasses four degrees of freedom: rotation (θ), uniform scaling (s), x-axis translation (t). x ) and y-axis translation (t yIn face alignment, these four parameters are crucial for transforming the detected face to match the reference face. To determine these parameters, two pairs of corresponding points are used—typically key facial features on both the detected and reference faces. Two pairs are necessary because a single pair only provides information about translation, while two pairs provide enough data to compute all four transformation parameters. The first pair establishes a baseline for translation and rotation, while the second pair allows for scaling and refinement of rotation calculations. By comparing the positions, angles, and distances between these point pairs on the two faces, the face alignment module 310 can compute the precise rotations, scaling, and translations required to align the detected face with the reference face. Thus, the face alignment module 310 effectively solves for all four parameters in the similarity transformation formula (e.g., formula (1)) to achieve accurate face alignment adapted to individual face geometries while standardizing the position, orientation, and scale used for subsequent recognition tasks.

[0027] Since at least five features exist in the detected face, least squares estimation can be used in face alignment to determine the optimal parameters that minimize the overall difference between points in the detected face and points in the reference face, thereby compensating for detection inaccuracies and face variations. By utilizing all available data, it provides more robust and accurate alignment compared to using only two pairs, such as those required for degrees of freedom. However, at angular viewpoints, unlike the eyes and corners of the lips which are usually located on a single plane, the tip of the nose protrudes on a different plane, causing its position to have a different scale compared to other features. Least squares estimation, which treats all points equally, does not account for this difference, leading to inaccurate alignment at non-frontal viewpoints.

[0028] Conversely, when using homogeneous coordinates (e.g., homogeneous transformations), the transformation can be represented as a 3x3 matrix. A homogeneous transformation can be represented as:

[0029]

[0030] Homogeneous transformations encompass six degrees of freedom, not four, including the parameters s·cosθ, -s·sinθ, s·sinθ, s·cosθ, and x-axis translation (t). x ) and y-axis translation (t y Similarly, to determine these parameters, three pairs of corresponding points are used—typically key facial features on both the detected face and the reference face. Key facial features on both the detected face and the reference face are typically the left eye, right eye, and the center of the lips, all on the same plane.

[0031]

[0032] Where x0 and y0 refer to the original point of the left eye (before transformation), x'0 and y'0 refer to the transformed point of the left eye (after transformation), x1 and y1 refer to the original point of the right eye (before transformation), x'1 and y'1 refer to the transformed point of the right eye (after transformation), x2 and y2 refer to the original point of the middle of the lips (before transformation), and x'2 and y'2 refer to the transformed point of the middle of the lips (after transformation).

[0033] Solving for the parameters of the homogeneous transformation involves forming an overdetermined system of linear equations for each pair of points (e.g., establishing two equations), when considering multiple pairs of points. Then, least squares are used to find the best-fit parameters that minimize the overall error across all pairs of points. Techniques such as singular value decomposition (SVD) or normal equations can produce values ​​for the parameters used in the homogeneous transformation.

[0034] The face alignment module 310 uses the acquired parameters to construct a 3x3 matrix:

[0035]

[0036] This is then applied to each pixel of the face image. The resulting non-integer pixel coordinates undergo interpolation, typically using bilinear or bicubic methods to generate a new aligned face image. This aligned image is characterized by standardized size, orientation, and facial feature locations, conforming to the reference image.

[0037] Similar to the detection preprocessing module 210, the face ID preprocessing module 320 normalizes the aligned face image to adjust pixel values ​​and converts the aligned face image to the desired precision, data type, channel order, contrast enhancement and / or noise reduction.

[0038] Embedding generation module 330 receives face images and passes them through a pre-trained neural network model trained to process input images and output embeddings (e.g., detected face embeddings). In some embodiments, the pre-trained neural network model can be optimized using specialized loss functions such as contrastive, triplet, quadruple, or additive angular margin loss, which enhances the model's ability to distinguish between different individuals. Ideally, embeddings of different images of the same person cluster together in a high-dimensional space, while embeddings of different individuals remain clearly separated, which is crucial for accurate face recognition and verification.

[0039] The embedding post-processing module 340 reduces the dimensionality of the embedding received from the face ID preprocessing module 320. The embedding post-processing module 340 can use various techniques to perform dimensionality reduction, such as principal component analysis, t-distributed random neighborhood embedding (t-SNE), uniform manifold approximation and projection (UMAP), etc.

[0040] Once the embedding dimension is reduced, the embedding post-processing module 340 calculates the detected face embeddings against the database of registered faces (e.g., ...). Figure 1 The post-embedding processing module 340 calculates similarity scores between each embedding in a database of 185 registered faces. In some embodiments, instead of calculating similarity scores between the detected face embedding and each embedding in the database of registered faces, the post-embedding processing module 340 clusters each embedding in the database of registered faces to calculate similarity scores between the detected face embedding and one or more representative embeddings. The post-embedding processing module 340 uses various techniques (e.g., nearest neighbor, cluster centroid, K-nearest neighbor (KNN), support vector machine (SVM), etc.) to identify one or more representative embeddings in each cluster of embeddings in the database of registered faces.

[0041] The embedding post-processing module 340 compares each similarity score with a user-specific similarity threshold associated with a registered user. If the similarity score exceeds the user-specific similarity threshold associated with a registered user, the embedding post-processing module 340 indicates that the detected face may be a registered user. Otherwise, the detected face may not be a registered user. In some embodiments, once a match is determined, other techniques (e.g., the OpenCV library) can be used to track the detected face and identity until the detected face leaves the frame to provide faster and more efficient tracking of the detected face.

[0042] Figure 4 This is a flowchart of a method 400 for embedded face recognition according to embodiments of the present disclosure. Method 400 can be executed by processing logic, which may include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, device hardware, integrated circuits, etc.), software (e.g., instructions that run or execute on the processing device), or a combination thereof. In some embodiments, method 400 is executed by an embedded face recognition system 100.

[0043] At operation 410, the processing logic performs continuous face detection on a series of images from the image capture device. As previously described, the processing logic continuously receives images captured by the image capture device as input. In some embodiments, the image size is adjusted to match the input dimension of a face detection model that scans the input to generate potential bounding boxes. Each potential bounding box is assigned a confidence score, which indicates the probability that the bounding box contains a face. If the confidence score exceeds a predefined confidence threshold (i.e., a face is detected), the coordinates of the bounding box are used to generate a face image containing the detected face. The processing logic identifies key facial feature points in the face images.

[0044] At operation 420, the processing logic, in response to detecting a face in one of a series of images, aligns the face in the image. In some embodiments, the face in the face image is not aligned relative to a reference face. Therefore, the processing logic uses key facial feature points in the face image and key facial feature points in the reference face to determine the parameters of a homogeneous transform. After determining the parameters of the homogeneous transform, the processing logic applies the homogeneous transform with the determined parameters to each pixel of the face image to align the face to the reference face. In other words, the size, orientation, and position of the face in the face image are determined to conform to the reference face.

[0045] At operation 430, the processing logic generates face embeddings using aligned faces. As previously described, the face images of aligned faces are processed by a pre-trained neural network model trained to process input images and output face embeddings. Ideally, the trained neural network model generates embeddings for different images of the same person clustered together in a high-dimensional space, while producing embeddings of distinctly separate individuals. In some embodiments, the processing logic may reduce the dimensionality of the face embeddings.

[0046] At operation 440, the processing logic identifies individuals belonging to the aligned faces. For each face embedding in the database of registered faces, the processing logic calculates a similarity score between the generated face embedding and the corresponding face embedding. It then compares the similarity score with a similarity threshold for the corresponding face embedding to determine if the registered user associated with the corresponding face embedding matches the generated face embedding. If so, the individual associated with the generated face embedding is a registered user associated with the corresponding face embedding. Otherwise, the individual associated with the generated face embedding is not a registered user associated with the corresponding face embedding.

[0047] According to an embodiment, the processing logic can identify representative face embeddings for each cluster of face embeddings in a database of registered faces. For each representative face embedding, the processing logic calculates a similarity score between the generated face embedding and the corresponding representative face embedding, and then compares the similarity score with a similarity threshold for the representative face embedding to determine whether the registered user associated with the corresponding representative face embedding matches the generated face embedding. If so, the individual associated with the generated face embedding is a registered user associated with the corresponding representative face embedding. Otherwise, the individual associated with the generated face embedding is not a registered user associated with the corresponding representative face embedding.

[0048] A similarity threshold is assigned to each face embedding or representative face embedding in the database of registered faces based on the user corresponding to the face embedding or representative face embedding of the registered face.

[0049] Figure 5This is a block diagram illustrating an exemplary computer system 500 according to embodiments of the present disclosure. The computer system 500 may operate as a server or endpoint machine in an endpoint-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. A machine may be a television, personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular phone, web device, server, network router, switch, or bridge, or any machine capable of executing a set of instructions (in sequence or otherwise) specifying actions to be taken by that machine. Furthermore, although only a single machine is shown, the term "machine" should also be considered to include any collection of machines that individually or jointly execute one or more sets of instructions to perform any one or more methods discussed herein.

[0050] Example computer system 500 includes a processing device (processor) 502, main memory 504 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDRSDRAM) or DRAM (RDRAM), etc.), static memory 506 (e.g., flash memory, static random access memory (SRAM), etc.), and data storage devices 518 that communicate with each other via bus 540.

[0051] Processor (processing device) 502 represents one or more general-purpose processing devices, such as microprocessors, central processing units, etc. More specifically, processor 502 may be a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, or a processor that implements other instruction sets or combinations of instruction sets. Processor 502 may also be one or more special-purpose processing devices, such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), network processors, etc. Processor 502 may include processing logic 522 for performing the operations discussed herein. Processor 502 is configured to execute instructions 505 for performing the operations discussed herein.

[0052] The computer system 500 may also include a network interface device 508. The computer system 500 may also include a video display unit 510 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an input device 512 (e.g., a keyboard and alphanumeric keypad, a motion-sensing input device, a touch screen), a cursor control device 514 (e.g., a mouse), and a signal generation device 520 (e.g., a speaker).

[0053] Data storage device 518 may include a non-transitory machine-readable storage medium 524 (also a computer-readable storage medium) storing one or more instruction sets 526 embodying any or more of the methods or functions described herein. Instructions may also reside wholly or at least partially in main memory 504 and / or processor 502 during execution by computer system 500, which also constitute machine-readable storage media. Instructions may also be transmitted or received via network 530 via network interface device 508.

[0054] Although computer-readable storage medium 524 (machine-readable storage medium) is shown as a single medium in the exemplary embodiment, the terms "computer-readable storage medium" and "machine-readable storage medium" should be considered to include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) that store one or more sets of instructions. The terms "computer-readable storage medium" and "machine-readable storage medium" should also be considered to include any medium capable of storing, encoding, or carrying a set of instructions for execution by a machine and causing the machine to perform any one or more of the methods of this disclosure. Therefore, the terms "computer-readable storage medium" and "machine-readable storage medium" should be considered to include, but are not limited to, solid-state memory, optical media, and magnetic media.

[0055] Throughout this specification, references to "one embodiment," "an example," "implementation," or "example" mean that a particular feature, structure, or characteristic described in connection with an embodiment and / or example is included in at least one embodiment and / or example. Therefore, the phrases "in one embodiment" or "in an embodiment" appearing throughout the specification may, but do not necessarily, refer to the same embodiment, depending on the context. Furthermore, in one or more embodiments, a particular feature, structure, or characteristic may be combined in any suitable manner.

[0056] In the extent to which the terms “comprising,” “including,” “containing,” “comprising,” “having,” “containing,” and variations thereof are used in the specific embodiments or claims, these terms are intended to be inclusive in a manner similar to the term “including” as an open transition word, without excluding any additional or other elements.

[0057] As used herein, the terms “block,” “layer,” “component,” “module,” “system,” etc., are generally intended to refer to a computer-related entity that is either hardware (e.g., circuitry), software, a combination of hardware and software, or an entity associated with an operating machine having one or more specific functions. For example, a component can be, but is not limited to, a process, processor, object, executable file, execution thread, program, and / or computer running on a processor (e.g., a digital signal processor). As an illustration, an application running on a controller and the controller itself can both be components. One or more components may reside within a process and / or execution thread, and components may be located on one computer and / or distributed among two or more computers. Furthermore, “device” can take the form of: specially designed hardware; general-purpose hardware that is specialized by executing software thereon, which enables the hardware to perform a specific function (e.g., generating points of interest and / or descriptors); software on a computer-readable medium; or a combination thereof.

[0058] The aforementioned systems, circuits, modules, etc., have been described with respect to the interactions between several components and / or blocks. It will be understood that such systems, circuits, components, blocks, etc., may include those components or designated sub-components, some of designated components or sub-components, and / or additional components, according to the various arrangements and combinations described above. Sub-components may also be implemented as components communicatively coupled to other components rather than being included within a parent component (layer). Furthermore, it should be noted that one or more components may be combined into a single component providing aggregate functionality or divided into several separate sub-components, and any one or more intermediate layers (e.g., management layers) may be provided to communicatively couple to these sub-components to provide integrated functionality. Any component described herein may also interact with one or more other components not specifically described herein but known to those skilled in the art.

[0059] Furthermore, the terms “example” or “exemplary” are used herein to mean used as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as superior or better than other aspects or designs. Rather, the use of the terms “example” or “exemplary” is intended to present concepts in a specific manner. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless otherwise stated or clearly seen from the context, “X adopts A or B” is intended to mean any natural inclusive arrangement. That is, “X adopts A or B” is satisfied in any of the foregoing instances if X adopts A; X adopts B; or X adopts both A and B. Additionally, the articles “a” and “an” as used in this application and the appended claims should generally be construed as meaning “one or more” unless otherwise stated or clearly indicated from the context to the singular form.

[0060] Finally, the implementation methods described herein include the collection of data describing users and / or their activities. In one implementation, such data is collected only if the user consents to its collection. In some implementations, the user is prompted to explicitly allow data collection. Furthermore, the user may choose to join or opt out of such data collection activities. In one implementation, the collected data is anonymized before any analysis is performed to obtain any statistical patterns, making it impossible to identify the user from the collected data.

Claims

1. A method comprising: Receive captured images from the image capture device; Extract face images from the captured images; Align the extracted face image with the reference face model; A face embedding is generated using a machine learning model and based on aligned extracted face images; and Identify individuals associated with the face embeddings based on existing databases of face embeddings and the generated face embeddings.

2. The method according to claim 1, wherein, Aligning the extracted face image with the reference face model includes: Identify a set of feature points from the extracted face images; Obtain a subset of the feature point set from the feature point set; The parameters of the homogeneous transformation are determined using the subset, the reference face model, and the homogeneous transformation; and The homogeneous transformation with the determined parameters is applied to each pixel of the extracted face image.

3. The method according to claim 2, wherein, The subset includes the left eye of the face image, the right eye of the face image, and the center of the lips of the face image.

4. The method according to claim 1, wherein, Generating the face embedding includes: The aligned, extracted face image is input into the machine learning model to output the face embedding; and Reduce the size of the face embedding.

5. The method according to claim 1, wherein, Determining the individual associated with the face embedding based on the existing database of face embeddings and the generated face embeddings includes: For each existing face embedding in the existing face embedding database, calculate a similarity score between the generated face embedding and the corresponding existing face embedding; and The calculated similarity score between the generated face embedding and the corresponding existing face embedding is compared with the similarity score threshold of the corresponding existing face embedding.

6. The method according to claim 1, wherein, Determining the individual associated with the face embedding based on the existing database of face embeddings and the generated face embeddings includes: For each cluster of existing face embeddings in the existing face embedding database, obtain the representative face embedding of the corresponding cluster of existing face embeddings; For each representative face embedding, calculate the similarity score between the generated face embedding and the representative face embedding; and The calculated similarity score between the generated face embedding and the representative face embedding is compared with the similarity score threshold of the representative face embedding.

7. The method according to claim 5, wherein, Each cluster of existing face embeddings in the database corresponding to an individual is assigned a unique similarity threshold.

8. The method according to claim 1, wherein, The existing database of face embeddings includes embeddings for each user at various orientations.

9. A non-transitory computer-readable medium comprising instructions that, in response to execution by a processing device, cause the processing device to perform operations including: Receive captured images from the image capture device; Extract face images from the captured images; Align the extracted face image with the reference face model; A face embedding is generated using a machine learning model and based on aligned extracted face images; and Identify individuals associated with the face embeddings based on existing databases of face embeddings and the generated face embeddings.

10. The non-transitory computer-readable medium according to claim 9, wherein, Aligning the extracted face image with the reference face model includes: Identify a set of feature points from the extracted face images; Obtain a subset of the feature point set from the feature point set; The parameters of the homogeneous transformation are determined using the subset, the reference face model, and the homogeneous transformation; and The homogeneous transformation with the determined parameters is applied to each pixel of the extracted face image.

11. The non-transitory computer-readable medium according to claim 10, wherein, The subset includes the left eye of the face image, the right eye of the face image, and the center of the lips of the face image.

12. The non-transitory computer-readable medium according to claim 9, wherein, Generating the face embedding includes: The aligned, extracted face image is input into the machine learning model to output the face embedding; and Reduce the size of the face embedding.

13. The non-transitory computer-readable medium according to claim 9, wherein, Determining the individual associated with the face embedding based on the existing database of face embeddings and the generated face embeddings includes: For each existing face embedding in the existing face embedding database, calculate a similarity score between the generated face embedding and the corresponding existing face embedding; and The calculated similarity score between the generated face embedding and the corresponding existing face embedding is compared with the similarity score threshold of the corresponding existing face embedding.

14. The non-transitory computer-readable medium according to claim 9, wherein, Determining the individual associated with the face embedding based on the existing database of face embeddings and the generated face embeddings includes: For each cluster of existing face embeddings in the existing face embedding database, obtain the representative face embedding of the corresponding cluster of existing face embeddings; For each representative face embedding, calculate the similarity score between the generated face embedding and the representative face embedding; and The calculated similarity score between the generated face embedding and the representative face embedding is compared with the similarity score threshold of the representative face embedding.

15. The non-transitory computer-readable medium according to claim 13, wherein, Each cluster of existing face embeddings in the database corresponding to an individual is assigned a unique similarity threshold.

16. The non-transitory computer-readable medium according to claim 9, wherein, The existing database of face embeddings includes embeddings for each user at various orientations.

17. A system comprising: Image capture device; as well as A processing device coupled to the image capture device, wherein the processing device is configured to perform operations including the following: Receive captured images from the image capture device; Extract face images from the captured images; Align the extracted face image with the reference face model; A face embedding is generated using a machine learning model and based on aligned extracted face images; and Identify individuals associated with the face embeddings based on existing databases of face embeddings and the generated face embeddings.

18. The system according to claim 17, wherein, Aligning the extracted face image with the reference face model includes: Identify a set of feature points from the extracted face images; Obtain a subset of the feature point set from the feature point set; The parameters of the homogeneous transformation are determined using the subset, the reference face model, and the homogeneous transformation; and The homogeneous transformation with the determined parameters is applied to each pixel of the extracted face image.

19. The system according to claim 17, wherein, Generating the face embedding includes: The aligned, extracted face image is input into the machine learning model to output the face embedding; and Reduce the size of the face embedding.

20. The system according to claim 17, wherein, Determining the individual associated with the face embedding based on the existing database of face embeddings and the generated face embeddings includes: For each cluster of existing face embeddings in the existing face embedding database, obtain the representative face embedding of the corresponding cluster of existing face embeddings; For each representative face embedding, calculate the similarity score between the generated face embedding and the representative face embedding; and The calculated similarity score between the generated face embedding and the representative face embedding is compared with the similarity score threshold of the representative face embedding.